基于Solidworks平台的二次开发技术
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
中图分类号:Th122
文献标识码:B
文章编号:1000 - 4998 ( 2003 ) 04 - 0026 - 02
在工程设计时,设计人员经常要选用标准化、系列 化的零件,如螺栓、螺钉、螺母、垫圈等,根据装配位置、 受力等因素的影响,所选的尺寸规格也不尽相同。如果 能有一个标准件的三维实体模型库,在用户选择某规 格的标准件时,能自动从库中调出供用户使用,这将大
ModeiDoc AssembiyDoc
DrawingDoc
其他对象
ParFra Baidu bibliotekmeter
EnumLoops
Entity
EnumComponents
EnumBodies EnumDrSections
EnumCoEdges EnumSketch~atches
EnumFaces EnumSketchPoints
Layer Configuration
开发,都是通过调用 Soiidworks 的对象体系结构来进 行 的 。Soiidworks 的 API 编 程 接 口 封 装 了 所 有 的 ActiveX 对象供编程使用。Soiidworks 的对象层次结构可 以描述为自上而下的树型结构模型 ( 如图l所示 ) 。最 底层的根对象是 SidWorks 对象,其它对象都是它的子 对象。其中的父对象与子对象之间的关系并不是继承 关 系 ,而 是 包 含 关 系 。也 就 是 说 如 果 VB 要 与 Soiidworks 的一个特定对象通讯,必须先从 SidWorks 对象 对 其 子 对 象 进 行 遍 历 ,直 到 找 到 该 特 定 的 对 象 。另 外 说 明 一 点 ,本 文 所 提 供 的 Soiidworks 对 象 表 是 所 有 Soiidworks ActiveX 对象的总括,其中的箭头符号表示 该 对 象 下 面 还 包 含 子 对 象 ,限 于 篇 幅 ,此 处 未 全 部 一 一列出。
研究·开发
基 于 Solidworks 平 台 的 二 次 开 发 技 术
回 李卫民 回 刘淑芬
摘 要:介绍了三维实体造型软件 Solidworks 的特点及二次开发接口;结合一程序实例详细讲述基于 ActiveX Au-
tomation 技术,采用面向对象的编程语言 Visual Basic 6. O开发 Solidworks 的原理和方法。
EnumEdges EnumSketchSegments
EnumDocuments EnumDispiayDimension
EnumModeiViews
A图l Soiidworks 对象模型
Feature
Annotation
FeatMgr View Modei View Dimension Sketch Design Tabie Attribute SeiectionMgr LayerMgr
大简化设计工作,提高设计效率。然而,在工程设计中 我们使用的软件基本上都是国外软件,都不具有国标 标准件库,所以自行设计国标标准件库很有必要。
机械制造 !" 卷 第 !#! 期
2003 / 4 !"
研究·开发
标准件库的表格化制作
回 江有永 回 曾 忠 回 范卫高 回 曹志全
摘 要:阐述应用 Excei 对 Soiidworks 进行二次开发,实现三维实体标准件库表格化制作,达到提高设计效率的目的。
关键词:标准件库 Solidworks 表格化
关键词:Solidworks ActiveX Automation 二次开发 对象
中图分类号:TP39l. 72
文献标识码:A
文章编号:l000 - 4998 ( 2003 ) 04 - 0024 - 03
Soiidworks 是 美 国 Soiidworks 公 司 基 于 Windows 平台开发的著名的全参数化三维实体造型软件,它具 有强大的零件设计、钣金设计、管理设计、绘制二维工 程 图 、支 持 异 地 协 同 工 作 等 功 能 ,它 可 以 实 现 由 三 维 实 体 造 型 向 二 维 工 程 图 的 转 化 ,能 够 使 零 件 设 计 、装 配 设 计 和 工 程 图 保 持 时 刻 的 全 相 关 和 同 步 。同 时 Soiidworks 具有良好的开放性和兼容性。它不仅可以向 下兼容二维 AutoCAD,使得以前采用 AutoCAD 软件进 行的设计得以继续使用和转化,同时还可以与许多其 它专业软件 ( 如有限元分析软件 Ansys、数据加工软件 Camworks、数据管理系统 SmarTeams、三维实体设计软 件 UG、Pro / E 等 ) 无缝集成为功能十分强大的 CAD / CAE / CAM / PDM 系统,完全能胜任大型工程与产品的 设 计 、分 析 、制 造 和 数 据 管 理 。目 前 ,各 类 用 户 不 仅 在 应用 Soiidworks 的强大功能进行各类专业设计,同时 也在不断探索 Soiidworks 的二次开发技术,从而力求 扩展 Soiidworks 的功能并使其用户化、专业化。对此, 提供一些值得借鉴的技术。
Part. EditRebuiid:基于输入的参数更新模型 Part. Save:保存更新后的零件- 文档 swApp. ExitApp:退 出 Soiidworks 应 用 程 序,释放 内
存资源
编译并执行所有代码,输入设计参数,按 OK 按 钮,即刻启动 Soiidworks 绘制出用户需要的任意尺寸 的三维档圈模型 ( 如图3 ) 。
" ActiveX Automation 技 术 与 Solidworks 的对象层次结构
当今多数软件开发商为了使自己的软件能与其
它 软 件 连 接 ,都 把 软 件 开 发 成 具 有 支 持 ActiveX Automation 的功能,Soiidworks 也不例外。Soiidworks 的二 次开发工具通过使用 ActiveX Automation 技术,使用户 快速地自定义或自动 Soiidworks 操作,使用这些工具 可以修改或增加一些标准的命令,以使 Soiidworks 能 够适应用户的要求,还可以减少很多重复性的工作,从 而节省时间,提高工作效率和设计质量。
! Solidworks 的二次开发接口
Soiidworks 的软件开发商为方便各类用户对其进 行二 次开发 ,提 供了 API ( Appiication Programming Interface ) 应用编程接口,它是一个基于 OLE Automation 的编程接口,此接口为用户提供了自由、开放、功能完 整 的 开 发 工 具 ,其 中 包 含 了 数 以 百 计 的 功 能 函 数 ,这 些函数提供了程序员直接访问 Soiidworks 的能力。API 中的函数可以被 Visuai Basic、C / C + + 、VBA ( EXcei、 Access 等 ) 或 者 是 Soiidworks 宏 文 件 以 及 其 它 支 持 OLE 的开发程序调用,从而可以扩展 Soiidworks 的功 能。本文主要介绍的是采用支持 ActiveX 技术的面向 对象的编程语言 Visuai Basic 6. 0对 Soiidworks 进行二 次开发的基本原理和方法。
System Vaiue = wjVaiue Passed: 读 入 用 户 输 入 的 设计参数
Part. Parameter“ ( nj@ Sketch2- ) . System Vaiue = njVaiue Passed
Part. Parameter“ ( hd@ Base - Extrude ) . System Vaiue = hdVaiue P-assed
型或者对象层次结构的形式互相联系。不管是用何种 编程语言对 Soiidworks 进行外部开发或在其内部进行
!" 2003 / 4
机械制造 41 卷 第 464 期
研究·开发
Sidworks Environment Frame AttributeDef Modeier SWProperty
PartDoc
( 2 ) Soiidworks 的 对 象 层 次 结 构 ActiveX Automation 的实质就是利用客户程序去控制服务程序的 对 象 、方 法 和 属 性 ,实 现 某 种 功 能 。也 就 是 说 ,Soiidworks 必须将全部 ActiveX 对象暴露给 VB 才能实现二 者的通信。这样,VB 就可以像使用自身的对象一样来 操纵 Soiidworks 暴露给它的对象。对象是服务器程序 简单而抽象的代表,对象之间一般通过被称为对象模
( hdVaiue ) ;OK 按钮的 功能是实现 用 VB 驱动 Soiidworks 参数化绘制档圈;Ouit 按钮的功能是退出程序, 停止绘制。以下是参数化绘制档圈的关键代码及主要
功能函数的注释。
Dim swApp As Object:定义对象变量 Dim Part As Object Set swApp = CreateObject“ ( SidWorks. Appiication”) : 启动一个 Soiidworks 副本并设为可见 swApp. Visibie ( True )
! 具体开发方法
下面用参数化绘制挡圈零件的简单程序实例说 明 如何 利 用 VB 对 Soiidworks 进 行 二次 开 发 ( 其 中主 要 是利 用 尺 寸驱 动 原理 ,用 VB 驱 动 Soiidworks 根据 用户输入的参数重新动态生成档圈模型 ) 。
首 先 必 须在 VB 中 引入 Soiidworks 的 对 象库 。具 体做法是:启动 VB,新建一个工程后,选择“Project ( 工 程 ) 、 References ( 引 用 ) ”菜 单 ,在“Avaiiabie References”( 在可使用的对象 ) 中选择“Sidworks 200l Type Library”,按“确定”就可以了。然后建立“我的档圈”人 机交互主控界面 ( 如图2 ) ,其中3个文本框分别用来输 入 档 圈 外 径 ( wjVaiue ) 、内 径 ( njVaiue ) 和 厚 度
Set Part = swApp. OpenDoc“ ( D: \ swkf \ 档 圈 . sidprt , swDocPART ) :打开已有的档圈零件文档并激 活使之可以编辑
Set Part = swApp. ActivateDoc“ ( 档圈. sidprt”) Part. Parameter“ ( wj@ Sketchl ) .
( l ) ActiveX Automation 技术 ActiveX Automation 是 Microsoft 公司提出的一个基于 COM ( Componet Object Modei,组件对象模型 ) 的技术标准,是以前的 OLE ( Object Linking and Embeding,对象连接与嵌入 ) 技术 的更高层次的发展,其宗旨是在 Windows 系统的统一 管理下,协同不同的应用程序,准许这些应用程序之间 相互沟通、相互控制。每个应用程序可以决定自己的哪 些信息可暴露出来。这些暴露出来的信息可以被其它 应 用 程 序 操 纵 。这 个 暴 露 信 息 的 程 序 称 为 服 务 程 序 ( Server ) ,而 操纵 这 些 服务 程 序 的 程序 成 为 客 户程 序 ( Ciient ) 。ActiveX Automation 技 术 通 过 两 个 程 序 间 安 排对话,达到一个程序控制另一个程序的目的,但这种 对话不是双向的,对话双方也不是平等的。客户程序是 开始要求对话的应用程序,服务程序是响应客户程序 的应用程序。ActiveX Automation 的代码在客户程序上 运行,而这些代码所控制的动作由服务程序来执行。在 这里将 Soiidworks 理解为一个服务程序,而作为二次 开发工具的 VB 程序作为客户程序,它们之间是服务 器与客户的关系。用户只要在 VB 上进行操作,VB 就 将驱动 Soiidworks 完成相应的工作。