SolidWorks API二次开发的应用_第1页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、SolidWorks API二次开发的应用SolidWorks API是SolidWorks的OLE应用程序开发接口,用户可以利用它并通过支持OLE编程的开发工具,如Visual Basici、VBA(Excel,Access)、C、VC、C+等对SolidWorks进行二次开发,建立适合用户需要的、专用的SolidWorks 功能模块。本文通过介绍“自定义属性”这个程序的开发和使用过程,来简单地说明一下SolidWorks API的应用,希望起到抛砖引玉的作用。一、问题的提出大多数工程图纸的标题栏中应该包括一些基本的设计信息,如零件名称、零件代号、材料以及设计人员和设计日期等方面的信息,其中

2、,零件的名称、代号、材料、数量、重量、一些重要的后处理要求等信息还应该出现在装配图的材料明细表(BOM)中。这些内容如果在工程图中一一进行编写和修改,其工作量是很大的,并且这种处理方法也不利于保证设计信息的一致性,对模型文件(零件或装配体文件)和图纸文件的管理来讲是脱节的。 SolidWorks是一个全相关的三维机械设计软件,模型文件中的设计数据,如尺寸、注释、文件属性等内容与工程图相关,因此,我们在处理上述工程图标题栏和材料明细表中的设计数据时,应该将这些内容保存在模型文件中,并且自动显示在工程图相应的位置上。当需要对工程图中的内容进行修改时,直接修改模型文件中的相应数据即可实现。这样的处理

3、方法不仅保证了设计信息的一致性,而且可以大大提高设计效率。 根据这个设想,我们将这些设计信息进行了归纳,并将它们作为模型文件的自定义属性保存在模型文件指定配置的属性(在SolidWorks中,选择菜单“文件/属性”,单击“指定配置”标签,如图1所示)中,针对模型文件指定配置的这些属性可以自动带入到工程图的标题栏和材料明细表。 图1 指定模型当前配的属性 图1中自定义属性的含义和解释如下表: 含义代号说明零件代号PartID零件代号是零件的标识,在整个企业中是唯一的零件名称无采用模型名称,即保存模型文件的文件名称,这样工程图的文件名可以自动默认为模型的文件名称材料Material零件的材料,对装

4、配图是可选项后处理Description零件的后处理情况,对装配图是可选项设计人员Designed By图纸设计人员姓名设计日期Designed Date图纸完成日期采用这样的方法处理以后,需要在工程图格式文件的相应位置建立包含这些变量的注释文本即可。同时,对于材料明细表模板进行修改或建立新的明细表模板就可以在装配图中的材料明细表中显示所需要的设计信息(工程图格式文件的定义和材料明细表模板的定义,请参阅SolidWorks2001中文版实用技术精粹一书)。因此,无论何时需要修改设计信息,只需在SolidWorks中打开相应的模型文件,修改指定配置的属性就可以实现。 然而,即使采用的这样的处理方

5、法,在修改文件当前配置的属性时仍然显得有些繁琐,能否为SolidWorks建立一个工作界面,可以更加方便地添加和修改这些信息就成了问题的关键。二、自定义属性Cpbom为了更大程度地提高工作效率,我们利用VB6.0通过SolidWorks API建立了自定义属性设置程序Cpbom,这个程序本程序通过一个对话界面直接对当前模型文件的当前配置添加或修改自定义属性,其基本功能如下: 针对配置添加模型文件的自定义属性; 设置的项目包括:零件代号、材料名称、后处理、设计者姓名、设计日期; 确定自定义属性后,自动保存文件;如当前文件还没有保存,提示文件保存路径和文件名称; 针对装配文件,可以选择是否删除“材

6、料”和“后处理”两个属性。 本程序利用VB进行编译生成可执行文件,其界面如图2所示。 “自定义属性”程序就是通过SolidWorks API对当前模型文件中当前配置的自定义属性的名称和值进行“读”和“写”的操作,程序非常简单,这里介绍一下该程序中用到的一些SolidWorks API的对象和方法:1SldWorks对象:这是SolidWorks API的最高级别的对象。通过该对象可以控制SolidWorks软件的执行或退出,以及SolidWorks文件的建立、打开、关闭等操作。在VB中利用CreateObject方法来获得SldWorks对象,利用该对象的activedoc方法可以获得当前So

7、lidWorks文件对象,文件对象为空时,表示SolidWorks没有打开任何文件。如:Dim swApp As ObjectDim activeDocument As ObjectSet swApp = CreateObject(SldWorks.Application)Set activeDocument = swApp.activedocIf (activeDocument Is Nothing) ThenDim Msg, Style, titleStyle = vbExclamationtitle = 模型自定义属性Msg = 请首先打开一个Solidworks模型文件Call Msg

8、Box(Msg, Style, title) Display error messageEndEnd If2获取当前文件信息自定义属性程序是对模型文件设置自定义属性,与工程图文件无关,因此需要利用GetType方法获得当前文件的类型,并利用Gettitle()方法和Getpathname()方法获得当前文件的名称和存盘路径。如:Dim docType As LongDim docName As StringDim filename As StringDim FilePath as StringdocType = activeDocument.GetTypeIf (docType = swDoc

9、PART) ThendocName = 零件With CPbomfrm.deldescription.Enabled = False.delmaterial.Enabled = FalseEnd WithPicture5.Picture = Picture3.PictureElseIf (docType = swDocASSEMBLY) ThendocName = 装配Picture5.Picture = Picture2.PictureElseIf (docType = swDocDRAWING) ThenStyle = vbExclamationMsg = 当前文件是工程图文件,请打开零件

10、或装配文件Call MsgBox(Msg, Style, title) Display error messageEndEnd Iffilename = activeDocument.GETTITLE()FilePath = activeDocument.getpathname()3获取文件配置名称SolidWorks API提供了按照配置名称访问自定义属性的方法CustomInfo2(读取自定义属性的值)、deletecustominfo2(删除指定的自定义属性)、ADDcustominfo3(添加自定义属性的名称和参数值),这些方法都要求指定文件的配置名称。因此,为了对当前模型文件当前配置

11、设定自定义属性,必须首先要获得当前配置的名称,利用GetActiveConfiguration()方法可以获得当前模型文件配置的对象,并利用Name方法获得当前配置的名称,如:Dim ConfName As StringSet CurCFG = activeDocument.GetActiveConfiguration()ConfName = CurCFG.Name4按照配置访问自定义属性在本程序中,我们对于指定配置的属性设置按照如下的步骤:1) 按照配置名称读取文件中的自定义属性值,并赋值于相应的文本框;2) 判定当前文件和当前配置是否已经改变,如其中之一发生变化,则提示错误信息;3) 根据

12、配置名称删除指定的自定义属性;4) 将相应文本框中的内容按照配置名称添加到模型文件自定义属性名称和参数值。下面说明一下上述控制配置自定义属性的三种方法:l CustomInfo2:获取或设置当前文档指定配置的自定义属性的值value = ModelDoc.CustomInfo2 (configuration, fieldName)其中: configuration为配置名称;fieldName为自定义属性的名称;l deletecustominfo2:删除当前文档指定配置的自定义属性的值retval = ModelDoc.DeleteCustomInfo2( configuration, Fi

13、eldName )l ADDcustominfo3:向当前文档中指定的配置添加自定义属性以及值retval = ModelDoc.AddCustomInfo3 ( configuration, FieldName, FieldType, FieldValue )其中: FieldType为自定义属性的类型FieldValue为自定义属性的值下面这段代码是单击“确定”的子程序,为了简单起见,只给出了其中一个自定义属性的处理过程。Private Sub cmd_OK_Click()On Error GoTo ERR_91Dim swApp2 As ObjectDim activeDocument2

14、 As ObjectDim curcfg2 As ObjectDim cfgname2 As StringDim retval As BooleanSet swApp2 = CreateObject(SldWorks.Application)Set activeDocument2 = swApp2.activedocSet curcfg2 = activeDocument2.GetActiveConfiguration()cfgname2 = curcfg2.Name 判断文件或配置是否改变,如改变,则提示错误。If cfgname2 = ConfName And FilePath = act

15、iveDocument2.getpathname() Then 删除属性设置retval = activeDocument2.deletecustominfo2(ConfName, PartID) 添加属性retval = activeDocument2.ADDcustominfo3(ConfName, PartID, swCustomInfoText, frmPartID) 保存文件retval = activeDocument2.Save()ElseStyle = vbExclamationtitle = 模型自定义属性Msg = 错误:打开的文件或配置已经改变! & Chr(10) &

16、请重新执行本程序Call MsgBox(Msg, Style, title)EndEnd IfERR_91:Style = vbExclamationtitle = 模型自定义属性Msg = 程序运行错误,文件可能已经关闭 & Chr(10) & 自定义属性无法添加,单击确定退出!Call MsgBox(Msg, Style, title)EndEnd Sub三、在SolidWorks界面中执行应用程序对于使用VB编译的EXE,DLL文件,目前SolidWorks还不能直接支持这些文件作为插件使用,如果要在SolidWorks 中直接调用通过VB编译的可执行程序,可以使用SolidWorks“

17、宏”操作来进行。利用“宏”在SolidWorks界面中添加指定的应用程序后,就好像SolidWorks调用了自身的功能一样,利用类似的方法,可以在SolidWorks添加任何可执行的文件。下面利用“自定义属性”程序来说明一下步骤: 1建立“宏”文件在SolidWorks中,我们利用录制并修改“宏”的方法来建立所需要的“宏”文件。 1) 选择菜单“工具/宏操作/录制”。2) 停止录制,并保存宏文件。给定文件名称如:Cpbom.swp。3) 选择菜单“工具/宏操作/编辑”,把Cpbom.swp “宏”文件录制的内容全部删除,并输入下面的内容,如图3所示:4) 保存并退出宏编辑,返回到SolidWorks环境。Sub main()MyAppID = Shell(C:Program FilesCPbomCPbom.exe, 1)AppActivate MyAppID

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论