• 沒有找到結果。

!"#/$二次开发的机械零件参数化设计卫大为,李健康

N/A
N/A
Protected

Academic year: 2022

Share "!"#/$二次开发的机械零件参数化设计卫大为,李健康"

Copied!
4
0
0

加載中.... (立即查看全文)

全文

(1)

! " # /$二次开发的机械零件参数化设计

卫大为,李健康

(东南大学电光源研究中心,江苏 南京 %&’’())

摘 要:介绍了利用 *+,,)-’开发环境和 !"#/$自带的!"#/.//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

%&

(2)

!"#!$%“&”’%#()!$ ’%’#’*+’,!(’%#*$-.,./*$!*$-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($%*+>%!#>.%《机械制造与自动化》

(3)

栏、菜单、按钮、单选按钮或复选按钮并规定执行函 数,包括两个函数,一个是设置激活 !"#/$菜单项 时执行的动作函数,实质是设置菜单项与动作相关 联;另 一 个 函 数 用 来 舔 加 所 需 菜 单 项。例 如:向

!"#/$菜单添加新的菜单按钮将用到 !"#%&’()*

+,#-.’’()函数设置点击该按钮时所执行的动作函 数,然后利用 !"#&/-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

(4)

序提供了友好的菜单和对话框界面,使转位盘的设 计非常快捷。

程序设计步骤如下:

!)在 "#$$%&’开发环境下建立一个 ()#

*++,-.!/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/?/@二次开发的机械零件参数化设计

SW

・ 万方数据

3;;+://22TC&>3-5!^?4/5!1&56;&>5 @<=!-1:22TC!>3-5!^?4/5!1&56;&>5《机械制造与自动化》

參考文獻

相關文件

者即可免費獲得 PET580ML 黑松 FIN 健康補給飲料,第二名者即可獲得免費鋁罐 240ML. 黑松 FIN 健康補給飲料

美國自二零零二年第四季經濟明顯放緩,二零零三年第一季經濟增長只錄得 1.9% a 的增

教育統籌局 第 15頁 二零零三年二月. 諮詢文件內的建議

二零一七年七月十日會議

卫生署指出,由童年开始至成年阶段,恒常参与体能活动

(Buckle, Marsh &amp; Smale, 2001 : Assessing Resilience and vulnerability – Principles, Strategies &amp;

課題五 身體力行 — 健康推廣、保健與社會關懷 5C 理解精神健康屬個人狀態及其與社會情境的關連 內容. 5C5

3、 輸入文字(Input Text):所產生的文字框具固定寬度,可以讓