跳到主要内容

使用SOLIDWORKS API在HTML页面中渲染特征树

该示例演示了如何使用SOLIDWORKS API将SOLIDWORKS零件文件的特征树加载到HTML页面中,使用JavaScript和Internet Explorer中的ActiveX(这不适用于其他浏览器,因为默认情况下不支持ActiveX - 可能需要安装特殊插件以启用支持)。

  • 创建一个新的HTML文件
  • 将以下代码复制粘贴到文件中
<!DOCTYPE html>
<html>
<body>

<input type="text" placeholder="零件文件路径" id="filePath"></input>
<button type="button" onclick="RenderFeatureTree()">获取特征树</button>

<p id="featTree">特征树</p>

<script>
function RenderFeatureTree() {

var swApp = new ActiveXObject("SldWorks.Application");
var filePath = document.getElementById('filePath').value;

var docSpec = swApp.GetOpenDocSpec(filePath);
docSpec.ReadOnly = true;
docSpec.Silent = true;
var swModel = swApp.OpenDoc7(docSpec);

var swFeatMgr = swModel.FeatureManager;

var swRootFeatNode = swFeatMgr.GetFeatureTreeRootItem2(1);

var root = document.getElementById("featTree");

RenderFeatureNode(swRootFeatNode, root);

swApp.CloseDoc(swModel.GetTitle());
}

function RenderFeatureNode(featNode, parentElem) {

parentElem.innerText = featNode.Text

var ul = document.createElement("UL");
parentElem.appendChild(ul);

var swChildFeatNode = featNode.GetFirstChild()

while (swChildFeatNode !== null) {
var li = document.createElement("LI");
ul.appendChild(li);
RenderFeatureNode(swChildFeatNode, li);
swChildFeatNode = swChildFeatNode.GetNext();
}
}
</script>
</body>
</html>
  • 保存文件并在MS Internet Explorer中打开 带有输入字段的HTML页面

由于此页面使用了ActiveX,因此可能会显示以下消息:

Internet Explorer中的ActiveX限制警告

点击允许阻止的内容按钮

  • 在文本框输入字段中输入SOLIDWORKS零件的完整路径

  • 点击获取特征树按钮

  • 在弹出窗口上点击

关于ActiveX内容的警告消息{ width=350 }

结果,零件的特征树将在页面上呈现出来

在HTML中呈现的SOLIDWORKS零件特征树{ width=250 }