使用VBA进行solidworks开发指南.doc
《使用VBA进行solidworks开发指南.doc》由会员分享,可在线阅读,更多相关《使用VBA进行solidworks开发指南.doc(52页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、.目录 第1章概述2 1.1内容简介2 1.2名词解释2 1.3预备知识3 第2章录制、编辑、运行宏3 2.1录制、编辑、运行宏基本步骤:3 2.2一些基本的建议:3 第3章代码格式及帮助信息5 3.1代码格式:5 3.2获得帮助:6 第4章常用对象模型7 4.1综述:7 4.2 SldWorks.SldWorks :8 4.3 SldWorks.ModelDoc2:8 4.4 SldWorks.PartDoc、SldWorks.AssemblyDoc、SldWorks.DrawingDoc:9 4.5 SldWorks.feature、SldWorks.Sketch :9 第5章零件 Par
2、tDoc9 5.1综述:9 5.2选择对象的话题:10 5.3访问并修改特征:12 5.4草图的话题:17 第6章装配体18 6.1综述:18 6.2组件的话题:插入零部件到装配体19 6.3配合的话题:在装配体中添加配合22 6.4由于说到参考,顺便讨论一下配合参考:26 第7章工程图28 7.1综述:28 7.2注释的话题:29 7.3生成图纸的话题:并讨论如何解决实际问题30 第8章总结:40 第1章 概述1.1 内容简介Solidworks在提供了强大的三维建模功能的同时,也为使用者提供了开放的应用程序编程接口(API),通过调用这些API,我们可以将solidworks中一些重复单调
3、或者规则明确的操作使用程序语言描述,通过简单的人机交互,让计算机自己来完成此类工作。掌握了此类本领,可以在以后的工作中,开阔自己的视野,更加深入的了解软件本身工作的原理,并且,改善自己的工作,提高工作效率和质量。本文旨在总结作者工作中获得的经验,专注于solidworks软件本身特点,文章中示例的代码基本上使用了vb语言描述,选择vb语言是因为其语法简单易懂,并且和应用程序间有很明朗的接口不需要再学习其它技术(如果使用c+,可能需要读者拥有COM知识)。Solidworks提供了极其丰富的API,并且有很完善的帮助系统。我们可以使用 Microsoft VBA编写SolidWorks Macr
4、os或者使用其他编程环境编写Standalone and Add-in Applications。(使用visual studio到.NET都可以)在SW的API帮助中我们可以很明了的查看API调用语法及相关的示例代码。本文不可能对每一个API进行细致的解释,在后面章节主要指导大家如何使用软件提供的帮助来在需要时得到有用信息的手段。本文所有API和代码都以solidworks2005 sp0.0 版本为准。1.2 名词解释API :应用编程接口Application Programming Interface对象:即计算机抽象出来的一种事物,在面向对象的程序设计中它表示由数据和与该数据关联的操
5、作组成的类的具体实现。属性:对象所具有的属性,识别及说明对象的特性。方法:对象可以使用的对数据的操作。1.3 预备知识首先我们的读者应该有简单的VB经验。当然如果没有也可以临时抱佛脚(VB语句是直观易懂的),边看代码边学习。很好的掌握SW中宏的录制功能多阅读API帮助中的示例代码,是自学的最佳途径(虽然SW的宏录制功能相比EXCEl来说代码不是很清晰)。 其次solidworks软件应该非常熟练,读者应该有使用solidworks实际建模的经验,这是能够写出良好代码的基础。否则看到一些对象名称也不能了解它对应了软件的那个功能。 如果英文不够好,请准备及时词典,如金山词霸等。Solidworks
6、提供的API帮助是纯英文的,solidworks汉化的还不错,不明白为什么不顺便把API帮助也翻过来。 准备好,我们可以开始了. 第2章 录制、编辑、运行宏2.1 录制、编辑、运行宏基本步骤:开始solidworks编程的最快方式就是录制宏。宏可以记录用户的操作将其记录为一系列solidworksAPI的调用。在solidworks“工具”菜单“宏”中有运行、录制、新建、编辑等选项。我们选择“录制”来开始记录用户操作,选择“停止”来结束宏的录制。结束后会提示保存宏文件,其后缀名为.swp。(估计是solidworks program的意思吧)。录制到停止间对solidworks进行的操作都将记
7、录到宏文件中。但是直接录制的宏程序的可用性很差,我们需要对它进行一些合理的优化,清理多余的语句,所以在录制完成宏之后需要编辑它。编辑宏的时候,选择“工具”菜单“宏”中的“编辑”,此时提示你选择要编辑的宏文件(swp文件)。选择后进入编辑界面(其实就是VBA的编辑器,叫集成环境也行)。需要说明的是,如果之前你在excel、word等软件中录制过宏程序,那么可能solidworks录制宏中的垃圾数据要更多些。2.2 一些基本的建议:Solidworks在帮助中也有一个大体的介绍,在编辑一个新录制的宏时可以需要删除下面的多余代码(Delete extra lines of code): 1、The
8、following variables are declared automatically in a SolidWorks macro. Delete any variables not used in the macro. SolidWorks对象的声明是自动产生的,可以将没用到的删除 2、Delete all lines of code that change the view. 删除切换视图的代码 arden says:像这样的 Part.ActiveView().RotateAboutCenter 0.0662574, 0.0346621 无情的删掉吧 3、Delete all Mo
9、delDocExtension:SelectByID2 calls appearing immediately before ModelDoc2:ClearSelection2 calls. However, do not delete ModelDocExtension:SelectByID2 calls appearing immediately after ModelDoc2:ClearSelection2 calls. Delete all ModelDoc2:ClearSelection2 calls appearing immediately before ModelDocExte
10、nsion:SelectByID2. 删除所有紧挨ModelDoc2:ClearSelection2之前的ModelDocExtension:SelectByID2调用,不要删除紧挨ModelDoc2:ClearSelection2调用后的ModelDocExtension:SelectByID2。删除所有紧挨ModelDocExtension:SelectByID2之前的ModelDoc2:ClearSelection2。 下图为VBA的集成编辑环境:编辑完成后,按照程序的要求来运行宏,在VBA编辑器中点“运行”开始执行程序,需要注意,有些宏程序的运行有前提条件,比如需要事先选择好一个特征等
11、。第一次运行不一定成功,这时候就要对宏代码进行调整,反复一个编辑代码、测试运行的循环,最后得到比较满意的结果。加载宏到solidworks有很多种方法我们只介绍最简单的三种:快捷键、菜单、工具栏按钮。可以参考文档SW技术文档-2005041402-加载宏到solidworks的三种方法.doc 第3章 代码格式及帮助信息3.1 代码格式:这章中,我们给出一段完成简单功能的代码,并讨论如何从帮助中获得有用信息。 首先,打开soliworks,选择“工具”、“宏”、“新建”,给新的宏文件起名字为“openprt.swp”。清空vba编辑器中的内容,拷贝或者输入下面的代码,保存。 - Precond
12、itions: None Postconditions: Specified document is opened. - Option Explicit Dim swApp As SldWorks.SldWorks Dim fileerror As Long Dim filewarning As Long Sub main() Set swApp = Application.SldWorks swApp.Visible = True swApp.OpenDoc6 d:/samples/hotrod.sldprt, swDocPART, swOpenDocOptions_Silent, , fi
13、leerror, filewarning End Sub 上面的代码来自solidworksAPI帮助,它打开d:/samples/目录下的零件文件hotrod.sldprt。我们来分别解释一下上面代码的内容:- Preconditions: None Postconditions: Specified document is opened. - 注释:注释块说明了程序运行的上下文:前提条件(Preconditions)为:无 NONE ;运行结果为:打开指定的文件。API帮助中的示例都有这样的格式,需要大家在使用时注意其上下文约束条件。 Option Explicit Dim swApp A
14、s SldWorks.SldWorks Dim fileerror As Long Dim filewarning As Long 声明变量和对象:swapp为一个solidworks应用程序对象。其它两个为long型整数,用来保存错误和警告id。 Sub main()这是主过程,以main为名称。 Set swApp = Application.SldWorks刚才的DIM语句只是声明了对象swapp,现在使用SET定义对象 swApp.Visible = True设置应用程序可见 swApp.OpenDoc6 d:/samples/hotrod.sldprt, swDocPART, swO
15、penDocOptions_Silent, , fileerror, filewarning 打开文件d:/samples/hotrod.sldprt 。 End Sub 3.2 获得帮助:当我们想从这个示例代码中了解打开一个文件的细节时,我们需要OpenDoc6函数的参考,可以在索引或者搜索中查找OpenDoc6,得到如下信息(汉字为我的注释): Description:描述此API完成的功能 This method opens an existing document and returns a pointer to the document object. It also allows
16、control over whether or not to:此方法打开一个已经存在的文档并返回指向此文档对象的指针。它在打开文档时允许做下面控制: Suppress displaying dialog boxes 禁止对话窗口 Open the document read-only只读打开 Open the document view-only只看打开 Convert a drawing to a detached drawing将工程图转换为断开的工程图 Syntax (OLE Automation) 语法: retval = SldWorks.OpenDoc6 ( filename, t
17、ype, options, configuration, &Errors, &Warnings ) Input: (BSTR) Filename Document name or full path if not in current directory, including extension文件全路径 Input: (long) Type Document type as defined in swDocumentTypes_e 文档类型 Input: (long) Options Mode in which to open the document as defined in swOpe
18、nDocOptions_e 打开选项 Input: 输入 (BSTR) Configuration Model configuration in which to open this document 配置设置 Applies to parts and assemblies, not drawings 只在零件和装配体适用 If this argument is empty or the specified configuration is not present in the model, the model is opened in the last-used configuration.
19、 如果未指定任何配置将使用最后一次打开的配置。 Output:输出 (long) Errors Load errors as defined in swFileLoadError_e 打开错误 Output: (long) Warnings Warnings or extra information generated during the open operation as defined in swFileLoadWarning_e 打开警告 Return:返回 (LPDISPATCH) retval Pointer to a Dispatch object, the newly load
20、ed ModelDoc2, or NULL if failed to open Remarks备注: When opening a parent document (assembly, drawing, and so on): SolidWorks also opens any additional documents that are referenced in the parent document (parts, subassemblies, and so on). SolidWorks follows certain rules in trying to locate its refe
21、renced documents. If explicit Search Folders have not been set using Tools, Options, System Options, ExternalReferences, then the first place SolidWorks looks for the referenced documents is in the current working directory. If SolidWorks finds the referenced file in the current working directory, t
22、hen it is loaded from that directory. 我们应该具备的素质就是,可以按照上面的参考内容明白API的使用方法和规则。而我们常常需要注意的焦点是语法(Syntax)知道需要输入什么参数返回什么对象就基本OK了,不要被前面一片英文所迷惑。 最后我们介绍一下API帮助的目录: Solidworks 2005 API Release Notes :此文档树下为sw2005版本的新特性:新对象新函数等 Programmers Guide :此文档树目录下为sw编程向导,提供了开始编程的向导、sw对象模型总揽和实际编程中的注意事项等内容。 Examples :此文档树目录
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 使用 vba 进行 solidworks 开发 指南
限制150内