SolidWorks二次开发技术导出工程图BOM

引言

SolidWorks是世界上第一个基于Windows平台的CAD设计软件,它可实现零件制造、大型装配设计及工程图自动生成等功能,且采用全相关技术,使得任何零件结构的修改,都可以实现装配图和工程图的同步更新。功能强大、操作简便,使其为越来越多的设计人员和企业所使用,已成为目前世界上比较流行的CAD软件之一。

然而,SolidWorks本身无法导出工程图BOM、通用的BOM无法满足设计需求,无法对数据进行归类和排序。企业对SolidWorks进行本土化的二次开发,缩短设计周期,节约设计成本,已成为企业提高竞争力的必然选择。

 

1 C#SolidWorks二次开发的支持

基于SolidWorks平台的二次开发系统设计途径主要是利用SolidoWorks提供的数以百计的API(Appliation Programming Interface)函数。Solidworks API的对象是一个多层次结构。其中,SldWorks对象是最顶层对象,其子对象有ModelDoc、AttributeDef、Frame、Environment,SWPropertySheet等,ModelDoc2的子结构有PartDoc、AssemblyDoc和DrawingDoc,程序访问的顺序是依上而下的遍历顺序,即要想访问低层对象,必须先访问高层对象。
SOLIDWORKS Document Manager API提供了对SolidWorks文档(包括零件、装配体、工程图)进行管理的一系列接口方法,其主要目的是帮助用户展开二次开发工作。这些API函数是SolidWorks的OLE Automation或COM编程接口,任何支持OLE和COM的编程语言都可以作为SolidWorks的开发工具。目前流行的开发工具主要有VB、VC、Delphi、Visual C#等,这些开发工具都支持OLE和COM技术,C#结合了VB和VC的优点,既拥有像VC一样强大的功能,又具有像VB一样简单易学易用的特点,同时它还支持.net Framework技术,它是目前比较流行的开发工具之一。

 

2 SolidWorks二次开发实例

以导出SolidWorks工程图材料明细表开发为例,介绍以C#为程序设计语言对SolidWorks进行二次开发的方法,图1为所示开发系统的用户界面。

SolidWorks二次开发技术导出工程图BOM

  • 通过应用程序许可码获取应用程序管理对象,并打开指定的SolidWorks工程图文件,主要代码如下:

SolidWorks二次开发技术导出工程图BOM

  • 使用相关API方法获取材料明细表,并选择指定的表格,代码如下:

SolidWorks二次开发技术导出工程图BOM

  • 对数据进行归类和排序,主要代码如下:

SolidWorks二次开发技术导出工程图BOM

  • 使用Microsoft Office组件进行导出,主要代码:

SolidWorks二次开发技术导出工程图BOM

  • 导出Excel表格的最终效果:

SolidWorks二次开发技术导出工程图BOM

3 结语

本文主要是使用C#语言,针对SolidWorks工程图展开二次开发工作,同时还调用了微软Office组件功能,通过不同技术的结合使用,开发出我们想要的效果,这种方式对企业只上了三维设计软件而未使用PDM进行CAD文档管理时是一个很好的解决方案,减少人工生成BOM的工作量及提高准确率。