版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、2.3 Solidworks 二次开发 作性、 是: Solidworks 是在 windows 环境下实现的三维机械 CAD 软件。它采用了 windows 用户界面 ,拥有强大、动态激活的属性管理器 ,以灵活的草图绘制为基 础 , 辅助以特征建立能力以及装配控制功能 , 并提供了自由、开放、功能完整的 API 开发工具接口 。这些功能使 solidworks 实现了三维 CAD 软件所提倡的易操 高效性以及功能完全性。 Solidworks 软件进行参数化建模的主要技术特点 基于特征。 将某些具有代表性的平面几何形状定义为特征,并将其所有尺 寸存为可调参数 ,进而形成实体 ,以此为基础来进
2、行更为复杂的几何形体 的构造。 ,尺寸参数的修 采用这种技术的理由在 ,几何形状均以尺寸的形式 全尺寸约束。将形状和尺寸联系起来考虑 ,通过尺寸约束来实现对几何形 状的控制。 3) COM 为用户提供了自由开 OLE 和 COM 编程的开发 尺寸驱动设计 通过编辑尺寸数值来驱动几何形状的改变 改将导致其他相关模块中的相关尺寸的全盘更新。 于它能够彻底地克服了自由建模的无约束状态 而被牢牢地控制住。 VB 对象属 对于一 VB Solidworks通过OLE (对象的嵌入与链接)或者 放、功能完整的二次开发接口( API)。因此,凡支持 工具,诸如Visual Basic、Visual C+等均
3、可用于Solidworks的二次开发,以创建 出使用人员所需的、专门化的 Solidworks 应用模块。 Solidworks 支撑 Activex Automation技术,在VB环境下建立客户程序可以直接访问 Solidworks中的对象, 在这里,为求方便,我们可将 solidworks 理解为一个服务程序,把二次开发工具 的 VB 程序作为客户程序,它们之间只是服务器与客户的关系。用户主要在 上进行操作, VB 就可以驱动 Solidworks 完成相应的工作。通过调用 API 性的设置和方法,就可以在开发的程序中实现与 solidworks相同的功能。 般零件我们可采用人机交互的形
4、式建立模型,设定合理的设计变量,再通过 程序驱动设计变量实现模型的更新方法,系统开发流程如图 2-5 示: 精选文库 图2-5 二次开发几乎是所有应用 CAD软件企业的共同需求,商品化软件开发机构 为了开拓市场、扩大市场份额、 保持产品的市场地位,也非常重视企业在应用 8 CAD软件时的这个共性需求。 本设计阐述了利用SolidWorks API接口开发嵌入 式功能模块以扩充原SolidWorks功能的关键技术,已在企业SolidWorks二次开 发中得以广泛运用,并且形成了客户化定制的SolidWorks软件系统,具有明显 的实用价值。其中 SolidWorks AP l(SolidWork
5、s App licatio n P rogrammi ng In terface) 提供了支持二次开发的应用编程接口,通过该接口可以开发嵌入式功能模块以扩 充原SolidWorks的功能,形成客户化定制的 SolidWorks软件系统。本节对 SolidWorks 二次开发 SolidWorks二次开发接口 API对象、DLL动态连接库三种 关键技术分别进行分析和简要论述。 231SolidWorks二次开发接口 API对象 是 SolidWorks 基于 可以方便高效地设计 SolidWorks API (App licati onP rogrammi ng In terface) Acti
6、veX Automation 的应用编程接口,利用 SolidWorksAPI 具有 Windows风格的、与SolidWorks无缝集成的应用程序。Solidworks API的 调用是指调用Solidworks的事件、方法、属性及相关功能,Solidworks是一个自 上而下的树形网络结构,调用下层对象时,一定要先调用上层对象。Solidworks应 用程序对象是所有调用 SolidworksAPI功能的最顶层,也是调用其他对象的入 口。在其之下是Solidworks活动文档对象,它包括“零件环境”、“装配环境” “工程图环境”及“非工作环境”四个状态。得到的 Solidworks活动文档
7、对象 主要是当前活动的工作环境,一旦上述两个对象调用之后,就可以调用户提供的 其他功能。在进行二次开发的过程中,只有调用正确的对象,才可以调用对象相应 的事件、属性、方法及相关函数。所以,API的层次调用对二次开发有着重要的 意义。 Solidworks的OLE对象总共可以分为十个大类,数百个对象,涵盖从 Solidworks基本操作如打开、保存等到建模、修改等各个功能。但是需要注意 并不是所有的对象都可以被 VB所调用。 Solidworks的系统环境 Solidworks对象,可以实现应用程序的最基本的操作.如创建、打开、关闭和 退出Solidworks文档,设置当前的活动文档,并可以对
8、进行设置。ModelDoc对象属于模型层,是sldworks的子对象。用ModelDoc对 象可以实现视图设置、轮廓线修改、参数控制、对象选择打开和保存文档、创 建编辑特征参量、创建框架等与实体模型相关的各类操作,ModelDoc对象包括 PartDoc、AssemblyDoc和 DrawingDoc 等三个常用的对象。 不管是用何种编程语言对 Solidworks进行外部开发或在其内部进行开发,都 是通过调用Solidworks的对象体系结构来进行的。Solidworks的API编程接口圭寸 装了所有的ActiveX对象供编程所用。Solidworks的对象层次结构可以描述为 自上而下的树型
9、结构模型如图所示。最低层的根对象是Sldworks对象,其他对 象都是他的子对象。其中父对象与子对象之间的关系并不是继承关系,而是包含 关系。也就是说如果 VB要与Solidworks的一个特定对象通信,必须先从 Sldworks对象对其子对象进行遍历,直到找到该特定的对象。另外,本节所提 供的Solidworks对象表是所有SolidworksActive对象的总括,其中的箭头符号表 示该对象下面还包含子对象。 SolidWorks API是一个自上而下的多层次的树形网络(层次结构见图)。 则继续调用该子对象的下级子对象,如 API对象的调用不能跨级,因为父对象 父对象包含子对象的属性和方法
10、,子对 SldWorks是根目录对象类,位于应用程序的底层,是访问 SolidWorks API所有 对象的入口程序。接口对SolidWorks API的调用实行逐级寻访,即先调用能实 现所需功能的对象的父对象,然后调用与父对象相关的子对象,如果子对象所封 装的属性和方法不能实现所需要的功能, 此逐级遍历,直到结束。对SolidWorks 与子对象是包含关系,而不是继承关系, 象自身不带有该属性和方法,跨级调用程序将会出错。 SolidWorks API 的常量 SolidWorks 提供 了一个 BASIC 模块 swconst.bas该模块包含了预先定义的许多 SolidWorks常数值,
11、swconst.bas在 SolidWorks安装目录下的samplesappComm文件夹内。编制应用程序时,添加 VB模块,将SWCOnst.bas包含在VB工程中,否则API函数调用将会出错。 Solidworks API中的各对象关系 图2-6对象模型 Other Object: EnumLpops2 Enu mCo mponent Enu mDrSectio n Enu mSketchHatches Enu mSketch Points Enu mSketchSegme n t EnumDis pl aydimentions Enum Model views 图2-7 solidwo
12、rks对象模型 在调用solidworks的过程中,我们只有对各个函数之间的关系和层次分的明 了清楚,才能保证正确调用。如上图表所示,在编程中可以用作对象参考。要调 用solidworks的API其他功能,必须先调用接口对象。一般的在程序里写作: Dim swA pp As Object Set swA pp = CreateObject(SldWorks.A pp licatio n) 2.3.2 DLL动态连接库 Solidworks本身自带有程序编辑器VBA,通过宏录制可以实现对 SolidWorks的驱动,应用程序在SolidWorks环境下直接执行,编程时不需要考 虑SolidWor
13、ks的库文件,而直接调用 SolidWorks API所有函数及对象,随时编 辑应用程序,环境支持如单步调试、逐过程调试等多种调试手段,调试的同时可 进行修改。但VBA的功能较弱,所提供的控件数目较少,对象的属性、事件以 及方法等不完全,用VBA二次开发SolidWorks将颇费周折,选用DLL动态连 接库技术从外部操作SolidWorks非常方便。 DLL动态连接库(Dynamic LinkLibrabry )是运行时连接的可执行代码和数 据模块,用它能节省内存、方便地进行应用程序中的参数传递和通信、实现代码 共享、升级方便、且独立于编程语言。SolidWorks允许用户建立独立的可执行 文
14、件(Standalone EXE )、应用型动态链接库文件(UserDLL )及扩展型动态链 接库文件(Extension DLL) DLL是基于 Windows程序设计的一个非常重要的 组成部分。在建立应用程序的可执行文件时,不必将DLL链接到程序中,而是 在运行时动态装载DLL,装载时DLL被映射到进程的地址空间中。在每次运行 SolidWorks时,DLL文件自动装载,操作方便。 Solidworks API的调用是指调用Solidworks的事件、方法、属性及相关功能, Solidworks是一个自上而下的树形网络结构,调用下层对象时,一定要先调用上 层对象。Solidworks应用程序对象是所有调用 SolidworksAPI功能的最顶层,也 是调用其他对象的入口。在其之下是Solidworks
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论