solidworks二次开发

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2.3 Solidworks 二次开发

Solidworks 是在windows 环境下实现的三维机械CAD 软件。它采用了windows 用户界面,拥有强大、动态激活的属性管理器,以灵活的草图绘制为基础, 辅助以特征建立能力以及装配控制功能, 并提供了自由、开放、功能完整的API 开发工具接口。这些功能使solidworks 实现了三维CAD 软件所提倡的易操作性、高效性以及功能完全性。Solidworks 软件进行参数化建模的主要技术特点是:

(1)基于特征。将某些具有代表性的平面几何形状定义为特征,并将其所有尺寸存为可调参数,进而形成实体,以此为基础来进行更为复杂的几何形体的构

造。

(2)全尺寸约束。将形状和尺寸联系起来考虑,通过尺寸约束来实现对几何形状的控制。

(3)尺寸驱动设计通过编辑尺寸数值来驱动几何形状的改变,尺寸参数的修改将导致其他相关模块中的相关尺寸的全盘更新。采用这种技术的理由在于它能够彻底地克服了自由建模的无约束状态,几何形状均以尺寸的形式而被牢牢

地控制住。

Solidworks通过OLE (对象的嵌入与链接)或者COM为用户提供了自由开放、功能完整的二次开发接口(API )。因此,凡支持OLE 和COM 编程的开发工具,诸如Visual Basic、Visual C++等均可用于Solidworks的二次开发,以创建

出使用人员所需的、专门化的Solidworks 应用模块。Solidworks 支撑Activex Automation 技术,在VB 环境下建立客户程序可以直接访问Solidworks 中的对象,在这里,为求方便,我们可将solidworks 理解为一个服务程序,把二次开发工具的VB 程序作为客户程序,它们之间只是服务器与客户的关系。用户主要在VB 上进行操作,VB就可以驱动Solidworks完成相应的工作。通过调用API对象属性的设置和方法,就可以在开发的程序中实现与solidworks 相同的功能。对于一般零件我们可采用人机交互的形式建立模型,设定合理的设计变量,再通过VB 程序驱动设计变量实现模型的更新方法,系统开发流程如图2-5 示:

建立零件三维模型

设定尺寸变量

图2-5

二次开发几乎是所有应用CAD软件企业的共同需求,商品化软件开发机构为了开拓市场、扩大市场份额、保持产品的市场地位,也非常重视企业在应用CAD软件时的这个共性需求。本设计阐述了利用SolidWorks API接口开发嵌入

式功能模块以扩充原SolidWorks功能的关键技术,已在企业SolidWorks二次开发中得以广泛运用,并且形成了客户化定制的SolidWorks软件系统,具有明显

的实用价值。其中SolidWorks API (SolidWorks Applicatio n Programmi ng In terface) 提供了支持二次开发的应用编程接口,通过该接口可以开发嵌入式功能模块以扩充原SolidWorks的功能,形成客户化定制的SolidWorks软件系统。本节对SolidWorks二次开发接口API对象、DLL动态连接库三种SolidWorks二次开发关键技术分别进行分析和简要论述。

2.3.1SolidWorks二次开发接口API 对象

SolidWorks API ( Applicati on Programmi ng In terface)是SolidWorks 基于ActiveX Automation的应用编程接口,利用SolidWorksAPI可以方便高效地设计具有Windows风格的、与SolidWorks无缝集成的应用程序。Solidworks API的调用是指调用Solidworks的事件、方法、属性及相关功能,Solidworks是一个自

上而下的树形网络结构,调用下层对象时,一定要先调用上层对象。Solidworks应用

程序对象是所有调用SolidworksAPI 功能的最顶层,也是调用其他对象的入口。在其之下是Solidworks 活动文档对象, 它包括“零件环境”、“装配环境”、“工程图环境”及“非工作环境”四个状态。得到的Solidworks 活动文档对象主要是当前活动的工作环境,一旦上述两个对象调用之后,就可以调用户提供的其他功能。在进行二次开发的过程中,只有调用正确的对象,才可以调用对象相应的事件、属性、方法及相关函数。所以,API 的层次调用对二次开发有着重要的意义。

Solidworks 的OLE 对象总共可以分为十个大类,数百个对象,涵盖从Solidworks 基本操作如打开、保存等到建模、修改等各个功能。但是需要注意并不是所有的对象都可以被VB 所调用。

Solidworks 对象,可以实现应用程序的最基本的操作.如创建、打开、关闭和退出Solidworks 文档,设置当前的活动文档,并可以对Solidworks 的系统环境进行设置。ModelDoc 对象属于模型层,是sldworks 的子对象。用ModelDoc 对象可以实现视图设置、轮廓线修改、参数控制、对象选择打开和保存文档、创建编辑特征参量、创建框架等与实体模型相关的各类操作,ModelDoc 对象包括PartDoc、AssemblyDoc 和DrawingDoc 等三个常用的对象。

不管是用何种编程语言对Solidworks 进行外部开发或在其内部进行开发,都是通过调用Solidworks 的对象体系结构来进行的。Solidworks 的API 编程接口封装了所有的ActiveX 对象供编程所用。Solidworks 的对象层次结构可以描述为自上而下的树型结构模型如图所示。最低层的根对象是Sldworks 对象,其他对象都是他的子对象。其中父对象与子对象之间的关系并不是继承关系,而是包含关系。也就是说如果VB 要与Solidworks 的一个特定对象通信,必须先从Sldworks 对象对其子对象进行遍历,直到找到该特定的对象。另外,本节所提供的Solidworks 对象表是所有SolidworksActive 对象的总括,其中的箭头符号表示该对象下面还包含子对象。

SolidWorks API 是一个自上而下的多层次的树形网络(层次结构见图)。SldWorks 是根目录对象类,位于应用程序的底层,是访问SolidWorks API 所有对象的入口程序。接口对SolidWorks API 的调用实行逐级寻访,即先调用能实现所需功能的对象的父对象,然后调用与父对象相关的子对象,如果子对象所封装的属性和方法不能实现所需要的功能,则继续调用该子对象的下级子对象,如此逐级遍历,直到结束。对SolidWorks API 对象的调用不能跨级,因为父对象与子对象是包含关系,而不是继承关系,父对象包含子对象的属性和方法,子对象自身不带有该属性和方法,跨级调用程序将会出错。

SolidWorks API 的常量SolidWorks 提供了一个BASIC 模块——swconst.bas该模块包含了预先定义的许多SolidWorks常数值,swconst.bas在SolidWorks 安装目录下的samples\appComm 文件夹内。编制应用程序时,添加

VB模块,将swconst.bas包含在VB工程中,否则API函数调用将会出错

相关文档
最新文档