ImageVerifierCode 换一换
格式:DOCX , 页数:49 ,大小:43.09KB ,
资源ID:3342486      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/3342486.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(使用VBA进行solidworks开发指南.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

使用VBA进行solidworks开发指南.docx

1、使用VBA进行solidworks开发指南第1章 概述 内容简介Solidworks在提供了强大的三维建模功能的同时,也为使用者提供了开放的应用程序编程接口API,通过调用这些API,我们可以将solidworks中一些重复单调或者规那么明确的操作使用程序语言描述,通过简单的人机交互,让计算机自己来完成此类工作。掌握了此类本领,可以在以后的工作中,开阔自己的视野,更加深入的了解软件本身工作的原理,并且,改善自己的工作,提高工作效率和质量。本文旨在总结作者工作中获得的经验,专注于solidworks软件本身特点,文章中例如的代码根本上使用了vb语言描述,选择vb语言是因为其语法简单易懂,并且和应

2、用程序间有很明朗的接口不需要再学习其它技术如果使用c+,可能需要读者拥有COM知识。Solidworks提供了极其丰富的API,并且有很完善的帮助系统。我们可以使用 Microsoft VBA编写SolidWorks Macros或者使用其他编程环境编写Standalone and Add-in Applications。使用visual studio到.NET都可以在SW的API帮助中我们可以很明了的查看API调用语法及相关的例如代码。本文不可能对每一个API进行细致的解释,在后面章节主要指导大家如何使用软件提供的帮助来在需要时得到有用信息的手段。本文所有API和代码都以solidworks

3、2005 sp0.0 版本为准。 名词解释API :应用编程接口Application Programming Interface对象:即计算机抽象出来的一种事物,在面向对象的程序设计中它表示由数据和与该数据关联的操作组成的类的具体实现。属性:对象所具有的属性,识别及说明对象的特性。方法:对象可以使用的对数据的操作。 预备知识首先我们的读者应该有简单的VB经验。当然如果没有也可以临时抱佛脚VB语句是直观易懂的,边看代码边学习。很好的掌握SW中宏的录制功能多阅读API帮助中的例如代码,是自学的最正确途径虽然SW的宏录制功能相比EXCEl来说代码不是很清晰。 其次solidworks软件应该非常熟

4、练,读者应该有使用solidworks实际建模的经验,这是能够写出良好代码的根底。否那么看到一些对象名称也不能了解它对应了软件的那个功能。 如果英文不够好,请准备及时词典,如金山词霸等。Solidworks提供的API帮助是纯英文的,solidworks汉化的还不错,不明白为什么不顺便把API帮助也翻过来。 准备好,我们可以开始了. 第2章 录制、编辑、运行宏 录制、编辑、运行宏根本步骤:开始solidworks编程的最快方式就是录制宏。宏可以记录用户的操作将其记录为一系列solidworksAPI的调用。在solidworks“工具菜单“宏中有运行、录制、新建、编辑等选项。我们选择“录制来开

5、始记录用户操作,选择“停止来结束宏的录制。结束后会提示保存宏文件,其后缀名为.swp。估计是solidworks program的意思吧。录制到停止间对solidworks进行的操作都将记录到宏文件中。但是直接录制的宏程序的可用性很差,我们需要对它进行一些合理的优化,清理多余的语句,所以在录制完成宏之后需要编辑它。编辑宏的时候,选择“工具菜单“宏中的“编辑,此时提示你选择要编辑的宏文件swp文件。选择后进入编辑界面其实就是VBA的编辑器,叫集成环境也行。需要说明的是,如果之前你在excel、word等软件中录制过宏程序,那么可能solidworks录制宏中的垃圾数据要更多些。 一些根本的建议:

6、Solidworks在帮助中也有一个大体的介绍,在编辑一个新录制的宏时可以需要删除下面的多余代码Delete extra lines of code: 1、The 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:像这

7、样的 Part.ActiveView().RotateAboutCenter 0.0662574, 0.0346621 无情的删掉吧 3、Delete all ModelDocExtension:SelectByID2 calls appearing immediately before ModelDoc2:ClearSelection2 calls. However, do not delete ModelDocExtension:SelectByID2 calls appearing immediately after ModelDoc2:ClearSelection2 calls. De

8、lete all ModelDoc2:ClearSelection2 calls appearing immediately before ModelDocExtension:SelectByID2. 删除所有紧挨ModelDoc2:ClearSelection2之前的ModelDocExtension:SelectByID2调用,不要删除紧挨ModelDoc2:ClearSelection2调用后的ModelDocExtension:SelectByID2。删除所有紧挨ModelDocExtension:SelectByID2之前的ModelDoc2:ClearSelection2。 下列图

9、为VBA的集成编辑环境: 编辑完成后,按照程序的要求来运行宏,在VBA编辑器中点“运行开始执行程序,需要注意,有些宏程序的运行有前提条件,比方需要事先选择好一个特征等。第一次运行不一定成功,这时候就要对宏代码进行调整,反复一个编辑代码、测试运行的循环,最后得到比拟满意的结果。加载宏到solidworks有很多种方法我们只介绍最简单的三种:快捷键、菜单、工具栏按钮。可以参考文档?SW技术文档-2005041402-加载宏到solidworks的三种方法.doc? 第3章 代码格式及帮助信息 代码格式:这章中,我们给出一段完成简单功能的代码,并讨论如何从帮助中获得有用信息。 首先,翻开soliwo

10、rks,选择“工具、“宏、“新建,给新的宏文件起名字为“。清空vba编辑器中的内容,拷贝或者输入下面的代码,保存。 - Preconditions: 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

11、 d:/samples/hotrod.sldprt, swDocPART, swOpenDocOptions_Silent, , fileerror, filewarning End Sub 上面的代码来自solidworksAPI帮助,它翻开d:/samples/目录下的零件文件。我们来分别解释一下上面代码的内容:- Preconditions: None Postconditions: Specified document is opened. - 注释:注释块说明了程序运行的上下文:前提条件Preconditions为:无 NONE ;运行结果为:翻开指定的文件。API帮助中的例如都有这

12、样的格式,需要大家在使用时注意其上下文约束条件。 Option Explicit Dim swApp As SldWorks.SldWorks Dim fileerror As Long Dim filewarning As Long 声明变量和对象:swapp为一个solidworks应用程序对象。其它两个为long型整数,用来保存错误和警告id。 Sub main() 这是主过程,以main为名称。 刚刚的DIM语句只是声明了对象swapp,现在使用SET定义对象 swApp.Visible = True 设置应用程序可见 swApp.OpenDoc6 d:/samples/hotrod.

13、sldprt, swDocPART, swOpenDocOptions_Silent, , fileerror, filewarning 翻开文件d:/samples/hotrod.sldprt 。 End Sub 获得帮助:当我们想从这个例如代码中了解翻开一个文件的细节时,我们需要OpenDoc6函数的参考,可以在索引或者搜索中查找OpenDoc6,得到如下信息汉字为我的注释: Description:描述此API完成的功能 This method opens an existing document and returns a pointer to the document object.

14、 It also allows 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.Ope

15、nDoc6 ( filename, type, 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

16、as defined in swOpenDocOptions_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-

17、used configuration. 如果未指定任何配置将使用最后一次翻开的配置。 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 obj

18、ect, the newly loaded 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

19、 to locate its referenced 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 w

20、orking directory, then it is loaded from that directory. 我们应该具备的素质就是,可以按照上面的参考内容明白API的使用方法和规那么。而我们常常需要注意的焦点是语法Syntax知道需要输入什么参数返回什么对象就根本OK了,不要被前面一片英文所迷惑。 最后我们介绍一下API帮助的目录: Solidworks 2005 API Release Notes :此文档树下为sw2005版本的新特性:新对象新函数等 Programmers Guide :此文档树目录下为sw编程向导,提供了开始编程的向导、sw对象模型总揽和实际编程中的考前须知等内容

21、。 Examples :此文档树目录下为sw所有例如工程,分为c+和VB两中语言大类。我们经常需要访问的地方。 APIs :sw提供的所有API定义及参考。 Obsolete APIs :sw已过时的API。 第4章 常用对象模型 综述:学会录制宏代码,并从帮助中得到代码中API使用方法后,我们介绍一些常用的对象模型,并给出一些使用方法。这些对象是sw最根本的对象,几乎所有程序都会使用其中的几种,也是我们可以很直观想象到的对象模型: SldWorks.SldWorks : 此对象代表solidworks应用程序。我们可以使用此对象进行应用程序层面的操作:翻开、保存、关闭文档;设置用户界面的状态

22、等等。一般来说我们的sw程序总是首先定义此对象才能进行其他的操作: 声明和定义例如: Dim swApp As SldWorks.SldWorks 或者 Dim swApp As SldWorks.SldWorks Set swApp = CreateObject(SldWorks.Application) 调用属性或方法例如: swApp.Visible = True swApp.OpenDoc6 d:/samples/hotrod.sldprt, swDocPART, swOpenDocOptions_Silent, , fileerror, filewarning :此对象代表solid

23、works的文档。Solidworks有三种最根本的文件格式:零件、装配体、工程图。它们各自都有自己特定的对象来表示,但是solidworks设定了一些通用的方法和属性来操作这些对象。ModelDoc2对象可以直接对这三类文件进行操作。 声明和定义例如: Dim swmodel As SldWorks.modeldoc2 Set swmodel = swapp.OpenDoc6 d:/samples/hotrod.sldprt, swDocPART, swOpenDocOptions_Silent, , fileerror, filewarning 翻开文档 或者 Dim swmodel As

24、 SldWorks.modeldoc2 Set swmodel = swapp.activedoc 得到当前文档 调用属性或方法例如: 得到模型的路径 、: 上面三个对象分别代表solidworks三种文件格式。使用它们来操作相应类型的文件。 声明和定义例如: Dim swpart As SldWorks.PartDoc Dim swasm As SldWorks.AssemblyDoc Dim swdraw As SldWorks.DrawingDoc Set swpart=swmodel Set swasm = swapp.OpenDoc6 d:/samples/hotrod.sldasm

25、, swDocPART, swOpenDocOptions_Silent, , fileerror, filewarning Set swdraw =swapp.activedoc 调用属性或方法例如: swpart.MirrorFeature 镜像特征 swasm.AddMate2 添加配合 swdraw.NewSheet3 插入新图纸 、SldWorks.Sketch : 代表solidworks中的特征和草图对象。 还有很多对象在此就不再介绍,下面的三章将针对零件、装配体和工程图分别讨论。 第5章 零件 PartDoc 综述:零件是sw根本文件类型之一,我们可以通过此对象创立新零件、得到

26、零件的各种、信息控制零件中的特征属性等等。下面是PartDoc的对象模型: 我们知道特征是组成一个零件的根本对象。但是从上图我们可以看出来,特征对象并不是在零件对象下层的。观察API帮助我们知道,特征是在Modeldoc对象下。在Partdoc下只能对实体对象Body2进行操作。所以很多对零件进行的操作,我们需要使用Modeldoc对象。 选择对象的话题: 首先来学习两个API,这两个API完成选择对象和得到所选择对象的功能: SelectByID2和GetSelectedObject5这两个函数,第一个通过给出对象的name选择对象。第二个通过启用程序前已经选择的索引得到对象。其中的Sele

27、ctByID2根本上在sw录制宏时所作的选择操作都是用了这个API,但它的局限性在于,程序需要知道所要选择对象的名称、类型在swSelectType_e中定义并且函数并不返回所选择对象而是一个执行状态。如果想得到我们刚刚选择的对象,那么需要用到另一个函数GetSelectedObject5。 使用GetSelectedObject5之前需要介绍一下SelectionMgr对象:此对象允许你得到所选择对象的信息,对其进行一些操作。GetSelectedObject5就是SelectionMgr对象的一个方法。可以使用来得到一个SelectionMgr对象。并且需要注意的是sw将所选择的对象进行了

28、索引,我们可能同时选中了多个对象,通过GetSelectedObject5(index)中得index值来得到不同的选择对象。 看下面程序,它使用SelectByID2将当前翻开的模型文件中的特征“拉伸1选中,如果选择成功的话再使用GetSelectedObject5得到此特征: + Filename Selefeat.swp : Select feature拉伸1 + Option Explicit Dim swApp As SldWorks.SldWorks Dim Model As ModelDoc2 Dim feature As feature 定义一个特征对象 Dim boolsta

29、tus As Variant 定义api返回值 Sub main() Set swApp = Application.SldWorks Set Model = swApp.ActiveDoc 前面已经介绍,上面两句话根本上是固定模式 选择叫拉伸1的特征 boolstatus = Model.Extension.SelectByID2(拉伸1, BODYFEATURE, 0, 0, 0, False, 0, Nothing, swSelectOptionDefault) 主要就是这一句话,在写Option Explicit后函数的最后一个参数swSelectOptionDefault可以使用0来

30、代替 If boolstatus = True Then 如果有“拉伸1这个特征下面的代码将其选中 Dim SelMgr As SelectionMgr 声明一个selectionmgr 对象 Set SelMgr = Model.SelectionManager 得到当前模型的选择对象 Set feature = SelMgr.GetSelectedObject5(1) 此处使用一个索引来得到特征 Debug.Print feature.Name 在立即窗口 打印 特征的name属性 Else Debug.Print Error End If End Sub 两个函数的VB语法表述如下,具体请参考API帮助: ModelDocExtension:SelectByID2 Syntax (OLE Automation) retval = ModelDocExtension.SelectByID2 ( Name, Type, X, Y, Z, Append, Mark, Callout. SelectOption ) SelectionMgr:GetSelecte

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1