You are on page 1of 3

· 70 · 计算机应用研究 2004 年

基于 ObjectARX 的专用件参数化设计研究 *
刘  梅 , 丁淑辉 , 钟佩思 , 孙兆洋
(山东科技大学 先进制造技术研究中心 , 山东 泰安 271019)

摘  要 :在分析产品专用件设计特点的基础上 ,提出专用件参数化设计的思想 。分析 ObjectARX 开发工具的特


点及其原理 , 并论述 AutoCAD 软件的二次开发过程 。 建立 AutoCAD 开发平台上应用 ObjectARX 进行专用件参
数化设计的系统原型 , 并结合摩托车刹车轮毂论述了系统开发的过程 。
关键词 :ObjectARX ;专用件 ;参数化设计
中图法分类号 :TP391.72    文献标识码 :A    文章编号 :1001 -3695(
2004)12 -0070 -03

ObjectA RX-based Parametric Design for Special Purpose Component


LI U M ei, DIN G Shu-hui, ZHO NG Pei-si, SU N Zhao-yang
(Advanced Manuf act uri ng Tech nology Center , Shan dong Uni versi ty of S cience & Technology , Taian S ha ndong 271019 , Chi na)

Abstract :O n the basis of the analysis of special purpose component' s desig n , the method of parametric desig n for special pur-
pose component is broug ht forward .T he characteristic and theo ry of O bjectA RX are analyzed and the customized development
process of AutoCAD is narrated . A sy stem prototype , which is used to desig n parametric special purpose component with the
help of ObjectA RX in AutoCAD ,is built . Also there is an example of mo torcycle' s braking w heel hub ,w hich explicates the pro-
cedure of development .
Key words :ObjectA RX ;Special Purpose Component ;Parametric Desig n

  在当今三维设计软件蒸蒸日上的情况下 , 二维软件仍在一 使之更适应某一设计领域 , 可大大减少设计人员的 工作量 。


些领域占有重要地位 , 尤其 是在一 些中小 企业 , 这些 企业的普 1.
1  ObjectARX 的优点
遍特点就是资金 、设备较少 , 技术人员不多 , 所设计产品 结构简
A utoCA D 的开发经历了以下三个阶段 :
单 、复杂程度不高 。 因此 , 这些企业若采用大型三维设计软件 ,
(1)以 Auto Lisp 为代表的解释 型语言 , 它 可完成参 数化程
一来资金上不允许 , 二 来对于 简单的 设计也 没有必 要 。 所以 ,
序设计及重复性工作 、客户化开发 、编制菜单及命令注册 。
二维软 件 仍然 在 这些 企 业 中占 主 导地 位 。 A utoDesk 公 司的
(2)C 环境下的 ADS(AutoCAD Development Sy stem)方法 ,
A utoCA D 系列产品为目前在微 机上应 用最广泛 的 CAD 软件 ,
用户所 写的程序 与 ADS 库 、标准 C 库连接 即可生成 可执行文
其中以低档二维软件为主 , 能够满足大部分的 设计需求 。
件。
但这种软件只是通用软 件 , 即 仅是一 个支撑 系统 , 只提供
(3)现阶段 , 出现了 Visual Lisp , O bjectA RX 等多种 新型开
了一个初步设计和绘图的环 境 。 利用 它完成 具体项 目开发时
发语言 。其 中 ObjectA RX 为面 向 对象 的 AutoCAD 运 行 时扩
还要查阅手册 、标准等 , 较为烦琐 。 另外 , 在设计完成后生成图
展 , 在 V C++环境下开发 , 是在 A DS 基础上发展起来 的 , 它包
纸时 , 还需要将所有的图形 元素和 非图形 元素画 出来 , 这也是
含一组 动态链接库 , 可直接访问 AutoCA D 核心数据结 构 、图形
一个非常复杂的过程 。 所以有必要对现有软件进行二次开发 ,
系统 、CA D 几何造型等 , 在运行时可扩展新命令 。
以使软件更好地满足设计 、生产的需要 。
用 AutoLisp 开 发的 程序 被加 载后 , 它 作为 一个 单独 的进
专用件是各企业产品中 不同于 其他企 业的零 部件 。 不同
程 , 通过进程间通信 与 A utoCA D 交 互 。 这 种方法 简单 但速度
于标准件 , 它 必须 被单 独设 计 。 对于 其参 数化 设计 方法 的研
较慢 , 难以开发大型程 序 。 而 A DS 也 存在 当软件 规模 较大时
究 , 不但可以加快产品的设计过程 , 还可继承前面的设计经验 ,
速度慢的特点 。 而 ObjectARX 程序为 编译型 , 速度快 , 尤其是
提高产品的设计质量 。 所以 , 对于专用件参数化设计方 法的研
在程序规模较大时更占优势 。
究具有极其重要的意义 。
在性能方面 , ObjectA RX 实 时扩展 AutoCAD , 共享 其内存
1  ObjectARX 开发工具 地址 , 可 随意调用其 核心数据 库 , 功 能强大 。 而其 他方法仅限
于使用 AutoCAD 命令或 系统定 义的 函数 , 功 能有限 [ 1] 。 鉴于
A utoDesk 采用 了 开 放 的 软件 设 计 风 格 , 留有 了 包 括 C/ O bjectA RX 的以上优点 , 本文采用它作为本系统的开发语言 。
C ++在内的多种二次 开发接 口 , 允许用 户定制 、开 发此 软件 ,
1.
2  ObjectARX 工作原理及程序组成
当前 O bjectA RX 的 版本 为 3.0 , 与 AutoCAD2000 相 配套
收稿日期 :2004-01-14;修返日期 :2004-03-15
使用 。 应用 ObjectARX 所开 发的应用 程序称 为 ObjectA RX 应
基金项目 :国家自 然科学 基金资 助项 目(50275090);山东 省优
用程序 , 为 Windows DL L 程序 。 而 AutoCA D 本身 为 Windows
秀中青年科学家科研奖励基金资助项目(02BS071)
程序 。 Windows 程序与 DL L 之间 采用 Window s 消息传递机制
第 12 期   刘  梅等 :
基于 ObjectARX 的专用件参数化设计研究  
· 71 ·

通信 , 所图 1 所示 。 作为软件开发的对象 。
在 O bjectA RX 应 用 程 序 加 载 时 , AutoCAD 传 递 消 息 (2)选一个需进行开发的零部件 , 在明确了其形状特征后 ,
A cRx :
:kInitA ppM sg 给应用程序 , 这时通 过 acedRegCmds 宏的 确定需进行参 数化设计 的尺寸特征 。 另外 , 在设计过程 中 , 有
addCo mmand 命令注册 命令 , 同时 指定 命令 所要 调用 的函 数 , 些尺寸可以认为 是不变的 , 如一些 工艺性 尺寸 , 这些尺 寸可由
然后定义此函数 。 卸载时 , 传 递 AcRx :: kUnloadAppM sg , 同样 软件设计过程中直接给出 , 而不用用户干预 。
调用 acedRegCmd 宏 的 removeG roup 函 数 , 完 成 应 用 程 序 卸 (3)根据前面确定的形状和尺寸特征 , 计算未知尺寸特征 ,
载[ 2] 。 使此零部件满足全约束 。
O bjectA RX 应用程序主要包含 四部分 : (4)根据各尺寸 , 调用绘图系统自动生成工程图 。
(1)头文件 。 它主要 用于 ObjectA RX 应 用程序 定义 、C 访 系统总的流程为 :
通过 人机界 面输入 设计的 初始参 数 , 然
问 AutoCAD 特定编辑器服务及一些实用函 数的定义 。 后系统经过初步运算 , 根据得到的结果和知识库中 的记录进行
(2)函数声明 。 对应用程序中用到的函数进行说明 。 推理 , 得出设计结果 , 最后调用绘图系统 , 生成工程图纸 。
(3)接 口 函 数 。 主 要 使 用 三 个关 键 函 数 , 即 加载 Objec-
tA RX 程序的初始化函数 initApp( )、卸 载 ObjectARX 程序的函 3  应用实例
数 un-loadApp( )与 AutoCAD 调用 ObjectARX 应用的 入口函数 随着个性化的发展 , 人 们对产 品的款 式 、花 样等需 求越来
arcx EntryPoint()。 越多 、变化也越来越快 。 能否在最短的时间内 , 以最少的费用 、
(4)用户程 序的 主 体函 数 。 依据 用户 需要 完成 的任 务而 最好的质量和性能开发出新产品 , 就成了企业生存 和发展的关
定 , 实现用户设计的功能 。 这部分是程序设计的主体 。 键 。摩 托车企业是我国现阶段竞争最残酷的行业之一 , 其开 发
1.
3  ObjectARX 程序的开发过程 过程中除了借用其他车型的零部件和标准件之外 , 每种车型都
有很 多专用件 需要开发 , 如刹车 轮毂 、刹车盘 、发动机 吊架等 。
(1)定制开发环境 。 此应用 程序在 VC ++6.0 中开 发 , 所
本文就以刹车轮毂为例来说明专用件的参数化设计 。
以需要 ObjectARX 的开发工具包资源 目录设 置于开 发环境配
摩托车刹车轮毂为复杂铸铝件 , 它的内部与刹 车蹄块相配
置中 。 每个项目在建立后 , 还应设置 A RX 程序的编译开关 , 使
合 , 完成刹 车的动作 ;
外部安 装轮辐 , 承受整 车的重量 , 而且受
程序能够按预定的编译方案进行编译 。
力情况复杂 , 所以 , 对刹车 轮毂的设 计要求较高 。 但对不同排
(2)编辑应 用程序 。 O bjectA RX 应用 程序包 含头 文件 、源
气量的摩托车来说 , 因其受力状况相近 , 只是数值大小不同 , 所
文件和模块定义文件 , 一般需对其中的模块定 义文件和源文件
以许多关键尺寸便 可根 据其 排气 量 、最大 载荷 等参 数计 算得
进行编辑 。
出 , 而大量的工艺性尺寸便可从已经过试车的车型 中借鉴或直
(3)编译 、连接 、生成 ARX 文件 及应用程 序加载 。 编辑无
接套用 , 而无须再进行计算 、测试 。
误后 , 进行编译 、连接便可生成以 A RX 为扩展名的动态链接库
文件 。将其 加载到 AutoCAD 2000 的设计 平台上 , 便 可执行在 3.
1  菜单设计

源程序中定义的命令了 。 为方便外 部命 令的 调用 , AutoCAD 提 供了 菜单 定制 的途


径 , 用户可通过菜单来调用自定义的外部命令 。 自定义下拉 菜
2  专用件参数化设计 单如图 3 所示 。
2.
1  特点
参数化设计(也 叫尺 寸驱 动 Dimension-Driven)是 CA D 技
术在实际应 用中提出的 课题 , 它不仅 可使 CAD 系统具 有交互
式绘图功能 , 还具有 自动绘图 的功能 。 目前它 是 CAD 技术应
用领域内的一个重要的 、有待进一步研究的课 题 。利用 参数化
设计手段开发的专用产品设计系统 , 可使设计 人员从大量繁重
而琐碎的绘 图工作中解脱出 来 , 并 可大大 提高设 计速度 , 减少
信息存储量 。 在产品开发过程中 , 有些零部件可以直接 利用标
准件 , 而有些零部件则无标准可循 , 只能由设计人员单独设计 ,
这也就是我们所说的专用件 。 新产品 开发的 很大一 部分就是
专用件的开发 。 因此 , 缩短专用件的设计时间是缩短产 品开发
周期的关键之一 。 多数企业的产品都是系列化产品 , 即 产品功
能相同或相近 , 它们之 间不同 的只是 外形或 部分参 数 。 因此 ,
其源程序如下 :
所用的专用 件也有一定的特 点 : 形 状特征 基本相 同 , 尺寸特征 ***POP
按功能参数的 不同 而改 变 , 这正 符合 参数 化设 计的 特点 。 所 **M O TO CYC LE
ID_M EN U_M O TOC YCLE      [ 专用件(&S)]
以 , 可以利用参数 化设 计的 方法 对专 用件 进行 计算 机辅 助设 ID_S U BM EN U_50 [ ※50 系列(&1)]
计 。 图 2 为 专用件参数化设计过程 。 …
ID_S U BM EN U_125 [ ※125 系列(&3)]
2.
2  系统设计的基本思路 ID_M O TO CYC LE_3LU N G U [ 刹车轮毂(&L)]
ID_M O TO CYC LE_3SHACHEPAN [ 刹车盘(&P)]
根据上面分析的专用件设计的特点 , 可以 针对某一系列产 ID_M O TO CYC LE_3TIK U A I [ 蹄块(&T)]
品的某些零部件进行二次开发 。 ID_M O TO CYC LE_3SID EBRA CK ET [ 侧支架(&B)]
ID_M O TO CYC LE_3HAN G [ 发动机吊架(&H)]
(1)将系列产品中形状 、功能特征相似的零部件提取出来 , …
· 72 · 计算机应用研究 2004 年

ID_S U BM EN U_150 [ ※150 系列(&4)] 命令 :


ARX , 也可在启动目录下 建立 acad.
rx 文件 , 包含 要执行

的命令 名 , 系统在启动 时便可 自动加 载该程 序 。 程序加 载后 ,
菜单文 件的定义方法为 : 编辑模 板菜单 文件(其 扩展名为
便可通过菜单或命令行命令 来调用 相应的 设计程 序 。 通过对
mnu), 在 经过 加 载 后 , 系 统 会 生成 编 译 后 的文 件(扩 展 名为
话框输 入载荷 、加速度以及 外部尺 寸等主 参数 , 系统计 算出零
mnc)、菜单资源文件(扩展名 为 mnr)等文 件 , 然后调 用菜单命
部件的所有次约束 。 调用绘图系统 , 生成所需要的工程图纸 。
令: 工具 自定义菜单 , 选择要加载的文件即可 。
3.
2  系统的创建过程 4  小结
(1)建立项目文件 。单击 File New , 选择 Projects 属性页, 在对
本文论述 了 A utoCA D 2000 环 境下 应 用 ObjectA RX 方法
话框中选中 MFC Application(dll)。确定适当的路径和名称(假设
开发专 用件参数化设计系 统的方 法 。 利用 ObjectARX 提供的
为 Mymfc), 确认 。 在下 一页中 , 选择 MFC Ex tension DLL(Using
类和函数深入到 A utoCA D 的 系统 内部 , 扩 充了绘 图系 统的功
shared MFC DLL)。 这时 , 程序 自动建立 Mymfc. def ,
cpp, Mymfc.
能 , 并将专用件的设计过程嵌入到 AutoCA D 中 , 使 其更适合某
StdAfx .
h, Resource .
h, StdAfx .
cpp 等六个文件 。
领域产品的开 发 。 通过命令 调用 、输入主参 数 , 用 参数化计算
(2)按照前面所述 , 设定项目在 Link 属性页的库模块列表中 ,
机辅助设计方法完成专用件的设计和绘图工作 , 可 大大减少工
添加 acge15. lib , acad. lib, acedapi.lib, acrx15 . lib, acutil15 .
lib, acdb 15.
作量 , 提高设 计质 量 。 本系 统经 试用 能有 效缩 短产 品设 计周
lib, rxapi.
lib, acui15. lib, adui15. lib 等 ObjectARX 的 库文 件 , 使 VC
期 , 增加企业的竞争力 。
++编译环境支持 ObjectARX 编程。
(3)修改基 本文 件 。 在 创建 工程 时自 动生 成的 基本 文件 参考文献 :
StdA fx .
h, StdA fx .
cpp, M y mfc .
cpp , M ymfc .
def 并不能完全满足 [ 1] 王福军 , 张志民 , 张师伟 .A utoCAD 2000 环境下 C/ V isual C ++应
程序需要 , 还要作进一步修改 , 以增加与 ObjectA RX 的接口 。 用程序开发教程[ M] .
北京 :
北京希望电子出版社 , 2000.4 -9.
(4)创建对话框 , 完成用户对基本参数的输入 ; 创建类和控 [ 2] 刘良华 , 朱东海 .A utoCAD 2000 ARX 开发 技术[ M ] .北 京 :
清华
件 , 添加处 理模块 , 通过对 输入参数的 分析 、计算 , 得到刹车轮 大学出版社 , 2000.62 -63.
毂的尺寸约束 ;
调用绘图命令 , 完成工程图的绘制 。 作者简介 :
3.
3  编译 、连接及运行 刘梅(1969 -), 女 , 讲师 , 主 要研究方 向为 CAD/ CAM 、并行工 程 ;
丁淑
辉(1977 -), 男 , 硕士研究生 , 主要研究方向为过程管理 、基于知识的工
将各文件编辑好后 , 编译 、连接便可生成以 ARX 为扩展名
程 、CA D/ CAM ;
钟佩思(1966-‥), 男 , 教 授 , 博士生 导师 , 博士 , 主要研
的动态链接库文件 。
究方 向为 CA D/ CAM 、并行 工程 、虚 拟制造 、基于 知识的 工程 ;孙兆洋
应用程序的加载 :菜单命令 T ools Load Application 或利用
(1980 -), 女 , 硕士研究生 , 主要研究方向为过程管理、CA D/ CAM 等 。

(上接第 69 页) 参考文献 :

3  原型系统的例子 [ 1] 蔡宗琰, 王宁生 , 包 振强 .基于 生命科学 原理的虚 拟企业 协同工


作研究[ J] . 计算机工程与应用 , 2004 , 40(7): 206 -208 , 232.
在某航天制造企业 CIM S 工程的实施中 , 我们 按照可重构 [ 2] M ESA International.M ES Explained:A High Level V ision[ R] .
M ES 的思 想 , 在 可重构 M ES 软件 体系结 构的框架 下 , 开发了 Whit e Paper 6 , Pi tt sbu rgh :M anuf act uri ng Execution Syst ems As-
该企业的车间生产管理信息系 统(图略)。 在 山东山 推欧亚陀 soc., 1997.
机械有限公司生产线管理控制系统的开发中 , 我们根据欧亚陀 [ 3] M ESA Int ernat ional.M ES Functionalit ies & M RP to M ES Data
Flow Possibilities[ R] .W hite Paper 2 , Pit tsburgh :M anuf act uri ng
机械有限公司生产线管理控制的需求 , 重构某 航天制造企业生
Execution System s A ssoc., 1997.
产管理信息系统 , 得到欧亚陀机械有限公司生 产线管理控制系
[ 4] M ES A International .W hy Did M ESA Change t he M eaning of Its
统(图略)。 又如某航天 制造企 业生产 管理信 息系统 的车间周 Name? [ EB/O L] .ht tp :// w w w .mesa.org/ about/ faqs .
asp , 2003-
计划的界面(图略)。 经 重构后 得到欧 亚陀机 械有限 公司生产 11-16/ 2004 -01 -16.
线管理控制系统的主生产计划 的界面(图略)。 从这 个原型系 [ 5] 蔡宗琰, 严新民 .可重构制造系统的可重构控制 器[ J] .计算机工
统的重构过程及其重构后的结果看 , 根据新的 制造执行系统的 程与应用 , 2003 , 39(5):
148-150.
需求 , 基于可重构制造执行 系统的 软件体 系结构 , 通 过重构原 [ 6] 蔡宗琰, 严新民 .计算机辅助可重构制造系统设 计[ J] .计算机辅
助设计与图形学学报 , 2002 , 14(2):125-129.
有的制造执行系统 , 可以方便地得到新的制造 执行系统 。
[ 7] 蔡宗琰 , 王宁生 , 任守纲 .
面向可重构制造 系统的设备建模[ J] .

京航空航天大学学报 , 2004 , 36(2):
59 -63.
4  结论
[ 8] M G M ehrabi , et al .Trends and Perspectives in Flexible and Recon
目前 , M ES 软件的重 用水平 、智 能水平 和产 业化 水平 低 , Figurable M anufacturing S ystems :K ey to Fut ure M anuf act uri ng
[ J] .Journal of Int elligent M anufacturing , 2002 , 13(2):
135-146.
可扩展性差 , 因此 M ES 软 件开发效率 低 、周 期长 , 处于跟随用
作者简介 :
户需求改变而不断更改的被动状态 。 为克服 M ES 软件开发所
蔡宗琰(1964 -), 男 , 教授 , 博 士 , 主要 研究方 向为计 算机 集成 制造系
面临的这些困难 , 本文提出基于软件构件的可 重构制造执行系
统 、计算机辅助设计与产品数据管理 、企 业资源计 划 、制造执 行系统和
统的软件体 系结构及其实现 方法 , 并使其 在两个 大型 M ES 软
可重构制造系统等 ;
王宁生(1937 -), 男 , 教授 , 博 士生导师 , 主要研究
件开发实 践 中得 到 验证 。 M ES 的开 发过 程 及其 运行 实 践表 方向为计算机集成制造 、计算机辅助设 计与产品 数据管理 、敏捷制造 、
明 , 可重构制造执行系统的软件开发效率高 、周期短 、可 扩展性 智能制造和制造执行系统等 ;
郝文育(1978 -), 男 , 博士研究生 , 主要从
好 , 能快速适应市场的变化和满足用户的需求 。 事计算机集成制造系统和制造执行系统等研究 。

You might also like