com.sldWorks 返回可直接访问 SOLIDWORKS API 的 COM 对象,并补充文档管理、模板校验、结构化模型反馈、视图导出以及 VBA/C# 宏功能。建模优先使用 API;图像用于辅助检查,而不是用鼠标坐标代替模型对象。
本版使用 SOLIDWORKS 2025 验证。SaveAs 调用的 IModelDocExtension.SaveAs3 要求 SOLIDWORKS 2020 SP02 或更新版本;其他版本不在本轮实测范围内。
先启动 SOLIDWORKS,再执行:
import com.sldWorks;
import JSON;
// 创建 SldWorks.Application 实例(已扩展增强),false 表示仅连接前台实例,不能仅连接后台实例(启动后保持 Visible=false)。
var sw,err = com.sldWorks(false);
if(!sw){
print(err);
return;
}
var documents = [];
for i,doc in sw.eachDocument(){
table.push(documents,sw.GetDocInfo(doc));
}
print(JSON.stringify({app=sw.GetAppInfo();documents=documents},true));
没有活动文档不代表连接失败。可以先读取 GetAppInfo(),再通过 NewDoc() 或 OpenDoc() 取得目标文档。
NewSketch/Extrude 助手与带孔零件示例。GetConfigurationTable/ApplyConfigurationTable 一次读写系列零件的尺寸/压缩/属性/材料/质量。toward 自动定向与回读校正)/圆周阵列、装配体组件与配合、工程图视图与模型尺寸。| 方法 | 用途 |
|---|---|
com.sldWorks(false,2025) |
只连接已运行的前台实例;指定版本则不允许回退版本,年份可以用数值或字符串;如无必要不需要限定年份,不必步步设防 |
FindDoc(nameOrDoc) |
通过文档对象、完整路径或准确标题定位 |
GetDefaultTemplate(docType) |
读取并验证当前配置的模板,不弹选择框 |
NewDoc(docType,template) |
从有效模板新建文档 |
OpenDoc(path,docType,options,config,visible) / ActivateDoc(nameOrDoc) |
打开(可隐藏加载)/ 激活,保留原生状态码;拒绝同名冲突 |
SaveAs(path,version,options,exportData,doc,advancedOptions) |
保存或导出完整模型;拒绝同名不同路径冲突 |
SaveDoc(doc) |
保存已有路径的文档 |
GetDocumentList() / CloseDoc(doc,discard) / CloseDocs / CloseNewDocs(snapshot) |
文档快照 / 按对象安全关闭 / 批量关闭 / 清理本任务打开的文档 |
com.sldWorks.isResponsive() / sw.IsResponsive() |
不经 COM 探测 SOLIDWORKS 是否响应,连接前与长任务中调用 |
GetDocInfo(doc) |
读取纯数据文档摘要(含单位、配置、材料) |
eachFeature(doc) / GetFeatures(doc,limit) / FindFeature(doc,name) |
原生顶层特征遍历 / 有限纯数据诊断 / 按名取特征 |
NewSketch(doc,target,draw,name) |
在基准面或面上安全地新建草图并找回草图特征 |
Extrude(doc,sketch,options) |
凸台或切除拉伸,选项表代替 23/27 个位置参数 |
GetSketchInfo(doc,feature) |
草图完全定义状态与轮廓数量 |
GetDimensions(doc,feature) / SetDimension(doc,name,value) |
列出尺寸 / 设置尺寸并重建回读 |
GetFaces(doc) / GetEdges(doc) / FindEntity(doc,type,{x,y,z}) / SelectByPoint(doc,type,x,y,z) |
面与边的纯数据 / 按几何定位实体 / 选择实体 |
Fillet / Chamfer / Revolve / LinearPattern / CircularPattern |
常用特征,选项表代替长参数列表;LinearPattern 用 toward1/toward2 指定方向并回读实际方向 |
GetConfigurations / AddConfiguration / ActivateConfiguration / DeleteConfiguration |
配置明细 / 新增(可派生、可不激活)/ 激活并重建 / 删除(拒绝活动与唯一配置) |
GetFeatureSuppression / SetFeatureSuppression(doc,feature,suppressed,configuration) |
按配置读取 / 压缩、解除压缩特征并逐配置回读 |
AddComponent / GetComponents / AddMate / GetMates |
装配体组件与配合 |
GetDrawingViews / InsertModelDimensions / AddNote |
工程图视图、模型尺寸、注释 |
GetMaterials() / GetMaterial(doc) / SetMaterial(doc,name) |
材料库解析 / 读取 / 设置并回读 |
GetCustomProperties(doc) / SetCustomProperty(doc,name,value) |
自定义属性读写 |
GetMassProperties(doc) |
整个模型的 SI 质量属性 |
RebuildDoc(doc) |
重建并检查返回状态 |
CaptureView(path,doc,width,height,view) |
导出模型视图并返回图像元信息;可选标准视图名 |
com.nothing() |
构造原生接口要求的空 COM 对象 |
VBA(code,templateOwner) / NetCompiler("C#") |
文本宏 / C# 宏编译 |
doc 参数省略时通常使用活动文档;自动化更建议显式传入已经核对过的目标文档,避免活动窗口改变后操作错模型。
OpenDoc、ActivateDoc、SaveAs、RunMacro、VBA、NetCompiler 入口。SaveAs 的原四个参数顺序不变;后面新增目标文档和高级保存选项。现在默认导出完整模型,会激活目标并清空选择;要导出选择子集请自行调用原生接口。OpenDoc 返回了文档也不等于引用文件完整。GetDocInfo 与 GetFeatures 只增加字段,CaptureView 只增加可选的 view 参数,原有调用不受影响。SaveAs/OpenDoc 拒绝同名不同路径冲突;CloseDoc 改为按对象安全关闭(默认拒绝丢弃未保存修改,原生行为改用 QuitDoc);OpenDoc 增加 visible 参数,AddComponent 默认隐藏加载组件;新增 GetDocumentList/CloseDocs/CloseNewDocs/IsResponsive 与静态 probe/isResponsive。连接的是桌面 SOLIDWORKS 会话,不是无界面 CAD 内核。建模 API 通常不需要前置窗口;图像导出仍依赖可用的模型图形窗口。模态对话框、程序忙、进程退出等情况仍会影响 COM 调用;主线程不泵消息时 COM 调用会无限等待,请先用 com.sldWorks.isResponsive() 探测,并遵守 会话卫生 一节(唯一文件名、快照清理、不堆积同名文档)。
不要将“函数未抛异常”“宏引擎返回成功”或“截图看起来正确”单独当作任务完成依据。应同时核对目标文档、状态码、实体/特征、尺寸或体积等业务不变量。