如何在脚本中使用SOLIDWORKS API方法
本节提供示例并解释从不同脚本调用 SOLIDWORKS API 的方法,包括 vbScript、PowerShell、JavaScript。
在 SOLIDWORKS 自动化中使用脚本的主要优点是简化了部署和维护过程。脚本是开源的,不需要特殊的IDE,可以很容易地集成到自动化工作流程中。
脚本通常接受参数,从而实现交互式自动化方式。
脚本可以使用专用于 OLE 自动化的特殊“自动化”版本的 SOLIDWORKS。这意味着 SOLIDWORKS 可以在后台轻量级启动,从而大大提高了流程的性能。
在 JavaScript 中使用 SOLIDWORKS API 方法
JavaScript是一种高级编程语言,主要用于Web应用程序。
由于安全原因,在 Web 浏览器中运行的 Java 脚本不允许访问桌面对象。但是,在Internet Explorer浏览器中运行的JavaScript允许通过ActiveXObject对象访问COM对象。
本节中的示例演示了如何使用此技术在 Web 浏览器中从 JavaScript 调用 SOLIDWORKS API。
使用 SOLIDWORKS API 在 HTML 页面中呈现特征树
此示例演示如何使用 Internet Explorer 中的 JavaScript 和 ActiveX 使用 SOLIDWORKS API 将 SOLIDWORKS 零件文件的特征树内容加载到 HTML 页面中(这在任何其他浏览器中都不起作用,因为默认情况下不支持 ActiveX - 可能需要安装特殊插件才能启用支持)。
<!DOCTYPE html>
<html>
<body>
<input type="text" placeholder="Part File Path" id="filePath"></input>
<button type="button" onclick="RenderFeatureTree()">Get Feature Tree</button>
<p id="featTree">Feature Tree</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>
包含输入字段的 HTML 页面
此页正在使用 ActiveX,因此可以显示以下消息:
Internet Explorer 中的 ActiveX 限制警告
单击“允许阻止的内容”按钮。
有关 ActiveX 内容的警告消息
结果,零件的特征树呈现在页面上。
以 HTML 格式呈现的 SOLIDWORKS 零件特征树
文章翻译自https://www.codestack.net/
仅供学习使用。