核心 API 详解:二次开发的 “语言字典”
SolidWorks API 基于 COM(组件对象模型)架构,通过 “对象 - 方法 - 属性” 的层级结构实现与软件的交互。理解核心对象的功能与使用场景,是实现二次开发需求的关键。以下为信息管理人员与技术团队协作时需重点关注的 5 个核心对象:
(一)SldWorks 对象:二次开发的 “入口”
-
功能定位:代表 SolidWorks 应用程序本身,是所有 API 操作的起点,用于获取软件全局信息、创建 / 打开文档、调用全局工具(如数学工具
MathUtility)。 -
常用方法与属性:
GetActiveObject("SldWorks.Application"):获取当前运行的 SolidWorks 实例(需引用System.Runtime.InteropServices)。NewDocument(templatePath, 0, 0, 0):基于模板创建新文档(零件、装配体、工程图),templatePath为模板文件路径(如零件模板Part.prtdot)。OpenDoc6(filePath, swDocumentTypes_e.swDocPART, swOpenDocOptions_e.swOpenDocOptions_Silent, "", out errors, out warnings):打开已有文档,支持静默打开(不弹出对话框)。RevisionNumber():获取 SolidWorks 版本号(如 “2023 SP5.0”),用于版本兼容性判断。
-
应用场景:启动软件、创建 / 打开文档、获取全局配置(如单位设置、模板路径)。
(二)ModelDoc2 对象:模型操作的 “核心”
-
功能定位:代表 SolidWorks 中的单个文档(零件
.sldprt、装配体.sldasm、工程图.slddrw),是对模型进行具体操作(如修改尺寸、添加特征、生成视图)的核心对象。 -
常用方法与属性:
ActiveDoc:通过SldWorks对象获取当前激活的文档(如swApp.ActiveDoc)。GetType():获取文档类型,返回值为swDocumentTypes_e枚举(如swDocPART代表零件、swDocASSEMBLY代表装配体)。Extension.SetConfigurationSpec(configName):切换文档的配置(如切换零件的 “标准件”“定制件” 配置)。FeatureManager.FeatureCount(True):获取模型中的特征总数(包含隐藏特征)。
-
应用场景:修改零件尺寸、添加 / 删除特征、切换配置、生成工程图视图。
(三)Feature 对象:模型特征的 “操作单元”
-
功能定位:代表模型中的单个特征(如拉伸、旋转、倒角、孔、阵列),用于获取特征信息、修改特征参数(如尺寸、布尔运算类型)、抑制 / 解除抑制特征。
-
常用方法与属性:
FirstFeature()/NextFeature():通过ModelDoc2对象遍历模型中的所有特征(如从第一个特征开始,循环获取下一个特征,直至null)。GetTypeName():获取特征类型名称(如 “Boss-Extrude” 代表拉伸凸台、“Hole-Wizard” 代表孔向导)。GetDimension2(dimName, 0):获取特征的指定尺寸(如拉伸特征的 “深度” 尺寸),并通过SetSystemValue2(newValue, False)修改尺寸值。Suppression(True):抑制特征(隐藏特征并排除其对模型的影响)。
-
应用场景:批量修改特征尺寸、抑制不需要的特征(如简化模型)、遍历特征并提取 BOM 信息。
(四)SelectionMgr 对象:模型选择的 “管理器”
-
功能定位:管理 SolidWorks 中的选择集,用于获取用户手动选择的对象(如面、边、顶点、特征),或通过代码自动选择对象(如选择某个面作为草图基准面)。
-
常用方法与属性:
ModelDoc2.SelectionManager:获取当前文档的选择管理器。GetSelectedObjectCount():获取当前选择的对象数量。GetSelectedObject6(index, mark):获取指定索引的选择对象(index从 1 开始,mark为选择标记,通常为 0),返回值需根据对象类型强制转换(如转换为Face2代表面、Edge代表边)。CreateMark():创建选择标记,用于区分不同批次的选择对象(如批量选择多个面时标记分组)。
-
应用场景:自动选择模型元素(如选择孔的内表面进行倒角)、获取用户选择的对象并进行批量操作(如对选中的特征统一修改颜色)。
(五)MathUtility 对象:几何计算的 “工具库”
-
功能定位:提供数学计算与几何操作功能,支持点、向量、矩阵、坐标系的创建与变换,是实现复杂几何逻辑(如零件定位、路径规划)的核心工具。
-
常用方法与属性:
SldWorks.GetMathUtility():获取数学工具实例。CreatePoint(double[] coordinates):创建三维点(坐标数组为[x, y, z]),返回MathPoint对象。CreateVector(double[] direction):创建三维向量(方向数组为[dx, dy, dz]),返回MathVector对象,可用于计算向量的点积、叉积。CreateTransform():创建变换矩阵,用于实现模型的平移、旋转(如将零件沿 X 轴平移 100mm)。
-
应用场景:零件在装配体中的自动定位、基于坐标的特征创建(如在指定点创建孔)、几何尺寸的计算(如两点之间的距离)。