! " # /$二次开发的机械零件参数化设计
卫大为,李健康
(东南大学电光源研究中心,江苏 南京 %&’’())
摘 要:介绍了利用 *+,,)-’开发环境和 !"#/$自带的!"#/.//012.二次开发工具进行
!"#/$二次开发的方法,介绍了开发过程的几个关键步骤和所要用到的几个关键技术,并以蜗 型凸轮机构的转位盘零件为例,阐述了基于 !"#/.//012.的 !"#/$二次开发的机械零件参 数化设计的实现过程。
关键词:*+,,)-’;!"#/.//012.;!"#/$;二次开发
中图分类号:.3&4;!.4&( 文献标识码:5 文章编号:&)6&78%6)(%’’9)’)7’’%&7’9
!" # "$% & # ’ ()% * ’ + ,- ./% ( 0 " , ’ ( " 1!" # &2" * % 3- ,4 % ( - , 3 " # 5)% 6 % 1 - 7$% , &- .! # - /8
:$2;<7=>?,02@?<A7B<AC(D#EFG><HFIA?J>"H?FK,@DL<AM?AC%&’’(),+G?A<)
9:*&#"(&:.G?HN<N>"?AF"#OEP>HFG>=<K#Q!"#/$H>P#AO<"KO>J>R#NS>AFEH?AC*+,,)-’O>J>R#NS>AFP?"7 PESHF<AP><AO!"#/.//012.H>P#AO<"KO>J>R#NS>AFF##R?A!"#/$,>TNR<?AHH>J>"<RB>KHF>NH<AOH>J>"<R B>KF>PGA#R#C?>H?AO>J>R#NS>AFN"#P>HH,FG>AF<B?AC<FE"A?AC7NR<F>?A=#"SP<S<H>T<SNR>,O>HP"?U>HFG>
"><R?V<F?#AN"#P>HH#Q!"#/$H>P#AO<"KO>J>R#NS>AFQ#"N<"<S>F"?PO>H?CA#QS>PG<A?P<RN<"FU<H>O#A!"#/
.//012.-
;%5<-#3*:*+,,)-’;!"#/!.//012.;!"#/$;H>P#AO<"KO>J>R#NS>AF
= 引言
!"#/$ 软 件 是 美 国 !.+ 公 司 开 发 的 +5;/
+5W 系统软件,具有参数化尺寸驱动、基于特征和 单一数据库等优点,并成为国际上参数化设计软件 的标准。
虽然!"#/$有着强大的造型功能,但由于它是 通用性的设计软件,没有对特定的产品设计提供专 用的开发模块,不能有效利用以前的设计资源,要 充分发 挥 !"#/$ 的作用,提高设计效率,必须对
!"#/$进行功能拓展,加入特定产品设计的专用模 块,因此二次开发势在必 行。!"#/$ 自带的 !"#/
.//012.提供了强大的二次开发功能,为用户程 序提供了与!"#/$的连接,它封装了许多!"#/$底 层的库函数与头文件,可以利用开发软件 *+,, )-’ 对其进行开发。
> ! " # /.//012. 二次开发的几 个关键步骤
>- > 创建! " # /.//012.应用程序
创建!"#/.//012.应用程序有两种方法:一
是利用 W<B>文件创建,二是利用 *+ 向导创建。
由于采用 W<B>文件方法创建 !"#/.//012. 应 用程序必须手工修改 W<B>文件,而且程序设计及 调试均不方便,而采用 *+向导则可以利用 *+提 供的各种便捷的资源,所以这里利用第二种方法创 建!"#/.//012.应用程序。
从总体上来说,!"#/.//012. 应用程序包括 三个部分的结构:头文件包括部分、用户初始化函 数部分EH>" ?A?F?<R?V>()和用户结束终止函数部分 EH>" F>"S?A<F>()。
<)头文件部分,即应用程序包括文件部分,指 定!"#/.//012.应用程序所使用对象函数的原 型文件,如果使用了 !"#/.//012. 对象函数,则 应包含该函数原型的头文件(-G文件),否则编译 文件时,会出现编译器不能对函数进行检查的错 误。每个 !"#/.//012. 应用程序都必须包括的 头文件是“!"#.##RB?F-G”。
U)用户初始化函数部分EH>" ?A?F?<R?V>(),主 要对同步模式下的 !"#/.//012. 应用程序进行 初始化,在该函数中设置用户的交互接口,如设置 菜单、调用对话框或直接调用所需的函数等,一般 结构为:
・机械制造与研究・ 卫大为,等・!"#/$二次开发的机械零件参数化设计
!"#$%&’()%*
万方数据
+%&,- .)/01"/%0&,2’#3445,66(7):38!35・
%&・
!"#!$%“&”’%#()!$ ’%’#’*+’,!(’%#*$-.,./*$!*$-0[],./*$!
0!$)’1%,./*$!2(’+3,4./*$ #!$$2(5[])
{ 6$17$$1$)#*#();
//用户添加的接口程序部分
………
$!#($%)#*#();
}
.)用户结束终止函数部分()!$ #!$8’%*#!(),
()!$ #!$8’%*#!( )函 数 用 于 结 束 6$1/9::;<=9 应用程序的执行,一般结构为:
!"#!$%“&”01’3()!$ #!$8’%*#!()
{
//用户添加的终止代码
………
}
!> " 程序的编译和连接
在进行编译和连接之前,需要做三方面设置:
*)设置包含头文件路径:在 ?&@@A>B集成 开发 环 境 中 选 择“911+)/:C#’1%)”菜 单,在 弹 出 的
“:C#’1%”对 话 框 中 选 择“D’$!.#1$’!)”选 项 卡,在
“E/14 3’$!.#1$’!)51$:”下 拉 列 表 框 中 选 择“=%F .+(3!)”,加入“(6$1/7安装目录)"6G:9::;<=9
"=H&;ID7E”一项,设置 6$1/9::;<=9 头文件 所在文件夹。
2)设置库文件路径:在“E/143’$!.#1$’!)51$:” 下拉列表框中选择“;’2$*$J5’+!)”,加入“(6$1/7安 装目录)"6G:9::;<=9 "=KLA H9 ":MN”一 项,设置6$1/9::;<=9库文件所在文件夹。
.)设置连接所需库文件:选择 6$1O!.#/E!##’%-)
…菜单,选择“;’%P”选项卡,在“&*#!-1$J:”下拉列表 中选择 Q!%!$*+,在“:2O!.#/;’2$*$J813(+!)”下加入两 个库文件,一个是 ?&系统的库文件 8C$>+’2,一个是 6$1/9::;<=9所需的库文件C$1#P 3++>+’2。
由于 没 有 采 用 6$1/9::;<=9 提供的 R*P!
文件生成程序,在 ?&环境直接连接时会出现连接 错误,不能生成 3++文件,因此,须在菜单 6$1O!.#/ E!##’%-)的“;’%P”选 项 页 里 选 中“S1$.!5’+!1(#F C(#”,设定强制文件输出,这样由 C$1#PT3++>+’2 和
;=M&>+’2产生的(%$!)1+0!3!"#!$%*+)J821+连接错 误均可忽略,并可产生在6$1/7系统里正常运行的 6$1/9::;<=9应用程序。
!> # 应用程序的注册和运行
编译连接成功生成可执行程序后,要在 6$1/7 中运行6$1/9::;<=9应用程序,必须首先进行注 册。先创建一个注册文件,文件的内容主要包括可 执行文件的位置、菜单资源及信息资源文件位置、
6$1/9::;<=9的版本号,注册文件名取为!!!>
3*#,主要格式如下:
HUR7 #应用程序名称$
7V7& S=;7 #可执行文件位置$
97V9 D=G #菜单文件和资源文件位置$
E9UG9I6 #程序运行方式$
U;;:W E9:6 #是否允许终止运行程序$
D7;UX E9UG9#是否允许自动启动$
G7?=E=:H #版本号$
7HD #结束$
注册 文 件 编 好 后,就 可 以 利 用 它 进 行 6$1/
9::;<=9应用程序的注册。有两种注册方式:一 是自动注册方式,二是手动注册方式。
*)自 动 注 册 方 式:必 须 将 注 册 文 件 名 取 为 6$1#P>3*#,并保存在6$1/7安装目录的"#!"#目录 或 6$1/7 起始位置设定的目录下,将注册文件的 D7;UX E9UG9 设置为 9GI7。当 6$1/7启动 时会 自 动 读 取 此 注 册 文 件 并 运 行 相 应 的 6$1/
9::;<=9应用程序。
2)手动注册方式:选择 6$1/7界面菜单上的 I#’+’#’!)/U("’+’*$JUCC+’.*#’1%)项,选 择“注 册”按 钮注册应用程序,注册成功后选择“启动”按钮运行 程序。
" 6 $ 1 /9::;<=9 二次开发的几 个关键技术
"> ! 菜单设计技术
6$1/7系统的菜单主要包括两种类型的菜单:
菜单栏菜单和模式菜单。
*)菜单栏菜单设计技术:菜单栏菜单包括菜 单栏、菜单、按钮、单选按钮和复选按钮等项目,设 计要做两方面工作,首先编写信息文件!!!>#"#,
格式如下:
第一行:6$1/7 可以识别的关键字,它必须与 使用该信息文件函数中的相关字符串相同;
第二行:在菜单项或菜单项提示上显示的英语 文本;
第三行:另一种语言的译文或为空;
第四行:当前的6$1/7版本为空。
编写信息文件!!!>#"#后,必须将它保存在
##!"# C*#/$ 或 ##!"# C*#/$ "#!"#" #+*%F -(*-!$文件夹里(##!"# C*#/$为注册文件中规
定的路径,#+*%-(*-!$为./’%!)! .%时表示信息 为中文,为 ()*).’’时表示信息为英文。然后开始 编写源程序,根据需要向菜单栏里添加所需的菜单
・机械制造与研究・ 卫大为,等・6$1/7二次开发的机械零件参数化设计
・
YY・ 万方数据
/##C://ZZ[D>./’%*O1($%*+>%!#>.% 7F8*’+:ZZ[D!./’%*O1($%*+>%!#>.%《机械制造与自动化》栏、菜单、按钮、单选按钮或复选按钮并规定执行函 数,包括两个函数,一个是设置激活 !"#/$菜单项 时执行的动作函数,实质是设置菜单项与动作相关 联;另 一 个 函 数 用 来 舔 加 所 需 菜 单 项。例 如:向
!"#/$菜单添加新的菜单按钮将用到 !"#%&’()*
+,#-.’’()函数设置点击该按钮时所执行的动作函 数,然后利用 !"#&/-01("&/-0!02310++#-.’’()函 数添加菜单按钮。
1)模式菜单设计技术:模式菜单用菜单文件 的方式定义。创建模式菜单有两种形式:一种是新 建一个模式菜单,它被称为完整菜单,菜单文件扩 展名为“&-0”;另一种是向现有的!"#/$已有模式 菜单中添加新的菜单项,它被称为辅助菜单,菜单 文件扩展名为“(04”。这两种菜单文件的格式都是 一样的,格式如下:
!菜单标题"
!空行"
!空行"
!菜单命令的名称"
!鼠标落在菜单命令上显示的提示信息"
!空行或提示信息的替换行"
………
菜单文件编好后,开始创建模式菜单,完整菜 单和辅助菜单的创建步骤不一样,完整菜单创建步 骤为:调用!"#5/-06,7/8/9,2+/"()函数注册完整菜 单文件;调用 !"#&/-010++#-.)+,#-:/+()函数设置 菜单按钮的动作函数;调用 !"#5/-0%"/(+/()创建 菜单;调用 !"#5/-0!"#)/22()激活菜单;最后调用
!"#&/-0;/7/+/()或 !"#5/-0;/7/+/<,+3:+(+02()函 数退 出 模 式 菜 单。 创 建 辅 助 菜 单 步 骤 为:调 用
!"#5/-0.04=,7/8/9,2+/"( )函 数 注 册 菜 单;调 用
!"#5/-010++#-.)+,#-:/+()函数设置按钮的动作函 数,菜单的创建和激活由!"#/$系统的菜单机制控 制。
!> ! 对话框设计技术
对话框设计包括用户界面对话框(简称 ?@对 话框)设计和 56%可视话对话框设计。
() ?@ 对 话 框 设 计:?@ 对 话 框 是 !"#/ ABBCD@A提供的一种交互界面,程序员可以利用
?@对话框技术,在 !"#/ABBCD@D 程序中设计出 风格与!"#/$系统本身具有的对话框相似的人机 交互界面。?@对话框设计涉及两方面,一是按界 面的布局编写资源文件,它是用来定义和描述 ?@
对话框外观及属性的文本文件,主要内容包括 ?@
对话框的组成部分元件或称控件,各元件的属性定
义和元件的布局形式;二是 ?@对话框控制程序设 计,资源文件仅仅是对 ?@对话框的描述,必须通 过 ?@对话框控制程序来装入、显示和控制对话 框,创建过程如下:E)调用 !"#?@;,(7#9%"/(+/()函 数将资源文件装入内存;F)调用对话框的动作设 置函数指定元件的动作函数;G)调用 !"#?@;,(7#* 9.)+,H(+/( )函 数 显 示 和 激 活 对 话 框;I)调 用
!"#?@;,(7#9;/2+"#J( )函 数 从 内 存 消 除 对 话 框 资 源。?@对话框的具体执行情况要靠各个元件的动 作函数进行定义。
1)56% 对话框设计:56% 对话框充分利用 了 K%LL开发环境提供的可视化界面设计技术,
可以方便地对界面进行布局、修改和调试。创建对 话框的一般过程为:E)用应用程序向导 .MM<,N* ("’创建!"#/ABBCD@A应用程序基本框架;F)在
由 .MM<,N("’创建的且与工程文件名同名的 %!!
文件中添加02/" ,-,+,(7,N/()和02/" +/"&,-(+/()
函数,如果需要通过 !"#/$的菜单项启动对话框,
则可以在02/" ,-,+,(7,N/()中添加菜单定义和菜单 动作函数设置;G)创建对话框,在 K% 集成开发环 境选择“@-2/"+”菜单中的“8/2#0)/”菜单项,显示出
“@-2/"+8/2#0")/”对话框,选择资源类型为 ;,(7#9,
单击“O/P”按钮生成新的对话框;I)用 %7(22<,N* ("’创建对话框类,自动生成%’,(7#9派生类定义的
头文件和相应的实现文件;Q)创建和显示对话框,
该程序代码在菜单动作函数中设计;R)生成 !"#/ ABBCD@A应用程序。
" 基于 ! " # /ABBCD@A 的!"#/$
二次开发技术的实现过程
以 蜗 型 凸 轮 机 构 转 位 盘 为 例,阐 述 了 基 于
!"#/ABBCD@A的!"#/$ 二次开发技术的实现过 程。
先用交互方式创建转位盘的参数化模型,模型 建立要将一些设计参数体现出来,使之能直接驱动 设计结果。模型建好后,挑选尺寸参数,由于零件 尺寸参数太多,所以将尺寸分为关键尺寸和辅助尺 寸,关键尺寸为影响到设计结果的主要几个尺寸,
在这里选择直径、高度、中心孔径、分布孔中心距、
分布孔直径、分布孔数量和厚度等七个尺寸参数作 为关键尺寸,而其他辅助尺寸通过设置尺寸关系受 关键尺寸驱动。利用 !"#/ABBCD@A 应用程序检 索出模型的关键尺寸参数,对参数进行修改,然后 模型再生以获得符合设计要求的新模型。应用程
・机械制造与研究・ 卫大为,等・!"#/$二次开发的机械零件参数化设计
!"#$%&’()%*
万方数据
+%&,- .)/01"/%0&,2’#3445,66(7):38!35・
FG・
序提供了友好的菜单和对话框界面,使转位盘的设 计非常快捷。
程序设计步骤如下:
!)在 "#$$%&’开发环境下建立一个 ()#
*++,-.!/0(011)工程234!5,6-7!5;
8)在工程主文件里面加入并编写496/:-5-;-!1<
-.6()和496/:;6/=-5!;6()函数;
>)菜单设计和对话框设计,在 7/?/@ 菜单栏 的 A;-1-;-69菜单项最下面新加入一项按纽“234!5<
,6-7!5”并设计该按钮的动作函数,以使单击该按 钮时能打开对话框,由7/?#=0*>;-?5*00()函数和 7/?(6548!/=654749384;;?5*00()函数实现,代码
为:
7/?#=0*>;-?5*00(“*>;-B!;6C-!1?D”,
(4-#=0#=0*>;)5)*>;-B!;6C-!1?D,
4-#=07/-?C6E!41;,*>>699C6E!41;,7FG H IFA@,7FG H IFA@,J>=0);
7/?(6548!/=654749384;;?5*00(“A;-1-;-69”,“234!5,6-7!5”,
“234!5,6-7!5C69-D5”,KALL,7FG H IFA@,>=0);
动作函数 *>;-B!;6C-!1?D( )用来产生对话框,
里面包括创建非模式对话框的函数 #/6!;6()和显 示非模 式 对 话 框 的 函 数 M3?N,-50?N(),其代码 为:
#234!5,6-7!5C1D01D; //声 明对 话 框对象,#234!5,6-7!5<
C1D为转位盘对话框类
*)O (*K*P@ MI*I@(*EQP6;M;!;->(?0416M;!;6( ));
//指明 ()#对话框使用 CLL本身资源
01D&#/6!;6(RCC CR*LGPS,KALL); //创建无模式对话 框,RCC CR*LGPS为对话框资源RC号
01D&M3?N,-50?N(M, MTG,); //显示无模式对话框
对话框在7/?/@里运行外观如图U所示:
图U 转位盘参数输入对话框
0)转位盘主要参数对象的获取和修改,步骤 如下:U)利用 7/?(01#4//65;( )函 数 获 得 模 型 句 柄,然后利用7/?(01I?(?061-;6=()函数将其转为
模型项句柄;S)利用 7/?7!/!=6;6/R5-;()函数根据 指定参数名获得参数对象指针;V)利用 7/?7!/!=<
6;6/"!146P6;()获得参数值,然后利用 7/?7!/!=6<
;6/"!14696;( )函 数 设 置 新 的 参 数 值;W)利 用 7/?M?1-0F6D656/!;6()函数进行模型再生,然后利用 7/?,-50?NF6+!-5;(),A+0!;6C!;!()两个函数对图
形重新显示;
6)编译连接生成可执行文件;
E)注册;
D)程序运行,运行程序之前先打开转位盘模 型文 件 .34!5N6-+!5&+/;,然后点击 A;-1-;-69菜 单 条,选择最下面新加的“ 234!5,6-7!5”按钮,则产 生转位盘设计对话框,输入各个参数,按“确定”按 钮则自动生成所需的模型。结果如图S所示:
图S 根据对话框输入参数生成的转位盘模型
! 结论
本文详细阐述了利用 7/?/IGGLXRI 对 7/?/
@进行二次开发的关键步骤和关键技术,通过本文 的理 论 阐 述 和 实 例 展 示,可 以 看 出,利 用 7/?/
IGGLXRI对7/?/@进行二次开发,在7/?/@里面 加入零件参数化设计专用模块,可以大大提高设计 效率。
参考文献:
[U]张世国&7/?/IGGLXRI 程序设计[(]&北京:机械工业出版 社,S’’VY
[S]7I#&7/?/IGGLXRI496/’9D4-06[(]&AM*:7I#公司出版 社,UZZ[Y
[W]施志辉,王 丹,葛研军&7/?/@5D-566/开发工具7/?/IGGLX<
RI编程技术[\]&机械制造与自动化,S’’V,(])Y
[]]王栋彦,史明华,肖 放,温淑鸿,傅 强&基于 7/?/@的常用 件参数化 #*C系统[\]&制造业自动化,S’’W,(W)Y
收稿日期:S’’W<’%<U’
・机械制造与研究・ 卫大为,等・7/?/@二次开发的机械零件参数化设计