文档库 最新最全的文档下载
当前位置:文档库 › UG软件的二次开发

UG软件的二次开发

UG软件的二次开发
UG软件的二次开发

20021149—~…——

一——

年第期(总第期J

UG软件的二次开发

华中科技大学机械学院(430024)吴家洲吴波杨叔子

摘要本文简述了乖Ⅱ用UG二次开发语言模块UG/OPFN

GRIP和UG/OPENAPI对UG的二次开发,以及辅叻开发模块UG/Open

MenuScri

pt和UG/Open

Ui

styler的使用。同时,利用实例进行了简单的说明。

关键滴uG/oPEN

GRIP

uG/oP州APluG/openMeaoScript㈨/openUistyler=次开发

一、引言

脯着计算机技术和现代设计理论与方法的迅速发展,CAD技术从最简单的二维绘图工具发展到r集成化、网络化和智能化的三维CAD。UG软件就是一种优秀的三维设计设计软件,它不仅具有强大的实体造型,曲面造型、虚拟装配和产生工程图等设汁功能,而且在设计中可以进行有限元分析,机构运动分析、运动学分析和仿【1f模拟,提高设计的可靠性,同时,可用建立的三维模型直接生成数控代码,用于产品的加工。另外,它所提供的二次开发语言模块UG/OPENGRl

P,UG/OPENAP【和辅助开发模块UG/Open

MenuScrl

pt与UG/Open

Ui

styler及

其良好的高级语言接口,使UG的图形功能和计算功能有机的结合起来,便于用户开发专用的CAD系统。

=、UG/OpenGRlP程序

UG/OpenGRlP是uG提供的二次开发语言模块,也具有外部高级开发语言的接口。GRIP是UG的内嵌语言,能够实现强大的图形绘制、装配、工程图的生成和。定的文件管理功能,主要进行uG的功能调用。

GRlP程序+般是在I;G平台下编制的,有独特的开发工具、编译链接过程、程序语法和文件格式,具体开发过程如F:

1)在UG菜单中选择Unigraphi

CS

ToolS一>UG

Open

GRlP,弹出UG

Open

GR

JP环境界面。

2)征UG

Open

GR【P环境界面中,选择Edjt,

用记事本创建或打开‘个+grx.也就是GRIP的源文件;选择Compile对源文件进行编译,生成?gri目标文件;再选择Ljnk生成tgrx文件,这个文件就是LG可以识别的执行文件,可以在uG菜单中点

击File一>ExecuteUO/Open一>GriP渊用,也可以通过用户自定义菜单调用。通过用户自定义菜单调用时,执行文件+.grx必须存放在用户目录1:的\applicatiOil目录中a

下面是一段简单的GRIP程序,这段程度用于通过输入参数绘制一个回转件零件,基本上体现了GR】P编程的方法和风格。

NUMBER/HI,H2,D1,I)2,H3,D3,RSP¥¥变量声明

ENTITY/CYLI,CYL2.CYL3,LINGJl,1JINGJ2¥¥实体声明

Hl=5H2=5D1:16D2=8D3=4A1:

¥¥输人变量PARAM/’I

nput

values’,‘H1’,Hl,‘DI’.D1,‘}【2’,}12.

‘D2’,n2,‘D3’,D3,RSP

H3=HI+H2

JUMP/A2:,A2;,RSP

¥¥如果是back,cancel则跳过绘图【F/D3>=D1OR

D3>=1)2,MESSG/‘孔商径过火,

请最新输人。’

最新输入。

F/Da>=DI

OR

D3>=D2,.1UMP/A1:

¥¥如果孔径过大则重新输人

¥¥作第一个圆柱

CYLl=SOLCYL/ORIGIN,0,0,0,HE【GIlT,叭,I)IAMT

R,DI,AXIS,0,0,l

¥¥作第二个圆柱

CYI。2=S01,CYL/ORjGIN,0,0,lit,IIEIGIIT,112,DlA

MTR,1)2,AXjS,0,O,l

S¥作中心孔的被减囫柱

CYL3=SOI.CYL/ORIGlN,0,0,0,肌lGIlT,113,DlAMI

R,D3,AXIS,0,0,I

LlNJGl=UNll、E/CYLI.w1Tit.CYL2

¥S合jF

LINJG2=SUBTRA/LINJGl。wlTH,CYL3

s¥相减

A2:

HAl,T

¥¥结束

程序经过编译链缓后,生成-个.grx文件。从uG菜单中选择fi1e一>executeug/open->griP,再选中该.grx文件就可以执行。生成的零件如图l所示:

l硐lH{U[;/Open(-RIP生成nq零件盛例

注意,如果程序中有建摸部分,一定要先打开或新建‘个prt文件。

三、UG/OpenAPI程序

UG/Op6nAPl是uG提供的另外一个二次开发语言模块,也具有与外部高级开发语言接口。UG/OpenAPI程序所能实现的uG功能与UG/OpenGRJP程序大致相同,1i同的是,UG/OpenAPI程序是用C语占编制的,因此,它除r能够在UG的环境F对uG进行功能涮用外,还能在程序中使用C语言支持的全部功能,并且支持对UG/OpenGR】P程序的调用,有很火的灵活性。UG/OpenAP】提供的uG功能全郜以标准C语言头文件(+.h文件)的形式保存在uG安装目录F的ugopen\Ii:f录中,0i同的头文件包含了I;同的I+G功能。如ufh文件包含了IG接口,任何UG/OpenAPI程序都必须包含这个头文件;uf—Ui.h文件包含了简单的对话榧功能;其它功能如■维建模、二维图绘制、图层管理、装配功能等都有相应的头文件。由于与各种c语言编辑环境(如Turboc、VC等j有良好的兼容性,UG/OpenAPl程序的使用范围最为广泛。

编¥IJUG/OpenAPI程序牵涉到I’G提供的头文件(;.h文件)、库文件(+.1ib文件)和C语育编程环境,因此需要进行一定的设置干¨步骤。下面以Vc++60为例,说明UG/OpenAPl程序的编制方法:1)打开vc,新建?个w{n32dYnamiC一1{nk1{brarypr0。ject,选中allemptyd11pro。iect,这样就建立了一个空的动态链接库工程。

2)在Vc菜单中选择1:661s一>optiOns,在d{recterieS选项中选中includOriles条日,然后添加g:\ugsl60\ugopen,这样设置的目的就是让Vc识别11G头文件的位置。

3)在vc菜单中选中Pro。ject,选中addtopro。ject,将g:\ugsl60\ugopen口录下的所有1ib文件加人到工程中,这些义件是在程序的编译过程中所需的函数库文件。

以上步骤完成后,就完成rvc中的环境设置,可以进行程序的编制r。

F而用一个简单的例子来说11月具体编程方法。

在如上建立的动态链接库工程中建立-个c语言源文件,编写源程序如r:

#includ6<uf.h>//用户接n,

包含uF_initialfZe0和UF—terminate0函数的原型//#include<uf—uih>//用户界面头文件,包含IJCI601()函数的原型//

v0{dUfUsrfchar4Param.{ilt+retC0d.jntparm一1

e11)/lug的d11文件的人几函数//

/va,.{able(1eelaratiOIlS。所柯变量

必须在UFjilltiaiize0函教之前定义//

[IF~initialjzc0;//使用胛【的许可函数//

ticl601(“hel10”,I)://对话框,1表示显示在中受{}

UF~terminate0l7f释设评nlf?

一~—!!丝生蔓!塑!塾蔓!塑塑2

这个程序用来生成一个“hel10”对话框,编译、链接后生成.d11文件,可以用File一>ExecuteUG/Open一>UserFunctiOil来调用,也可以用用户自定义菜单调用。用用户自定义菜单调用时,这个d11文件必须存放在用户目录F的applicatiOil目录下。

四、UG/OpenMenuScrlDt和UG/OpenUistyIer程序

除了上面提到的两个二次开发模块外,UG/

OpenMenuScr{pt模块和UG/OpenUistyler模块对于uG的二次开发有重要辅助作用。

UG/OpenMenuScript模块是uG提供的专用模块,主要用于制作用户菜单。用户菜单的生成有两种方式,第一种是重新生成,并替换uG标准菜单,第二种是对标准uG菜单进行编辑,从而生成自己的菜单。其中对标准uG菜单进行编辑的方式手段灵活,语句简洁,可以满足大部分的用,1要求。

uG菜单是基于uG平台开发的,都是以.men为后缀的ASCIJ义件,可以用记事本打开和编辑。在,men文件中指明了菜单的形式、菜单项目的名称以及所调用的程序的路径及名称,如F面文件片段所示:

MENUmyfunl

BUTTON参数输人和计算

LABEL参数输人和计算

AC'IIONSchi1UFI

END—OF—MENU

UG/OpenMenuScript开发工具可以通过对+men文件的编辑,实现所需要的功能a但是用户定义的菜单及其调用的程序要被uG所识别,必须进行环境变量的修改和用户目录的建立。这里的环境变景指的是uG的环境变量而不是操作系统的环境变量。【I(;的常用环境变量都记录在uG安装目录F的ugii\ugii_env.dat文件中,uG启动时会先载人这个文件,再调用用户定义的和标准的uG菜单文件,这个文件也是ASCI|义件,用记事本打开,可以查找到这样一行:#UOlI_USER_Dlg=S{UOME}。这个环境变量将告诉UG到那里去寻找用户定义的菜单和菜单中指定的用户程序。去掉#号和S{rIOME},在=号后输人用户目录,如c:\user,保存,就完成了环境变量的设置。uG在启动时,会自动在用户目录F的\startup目录I、-寻找菜单文件,任\applicatiOn目录下寻找用户程序文件。

uG软件在开始运行时,自动调用标准菜cI!L文件和用户生成的+men文件,形成【jG菜单。调用时,如果标准uG菜单与用户自定义菜单有冲突,以用户自定义菜单为准。

图2是利用上面所讲的第i种方法制作的一个

瑚2轿^j零部件c^1)系统肇fll抖l『ii

轿车零部件CAD系统的菜单。

UG/OpenUistyler也是∽提供的专用模块,主要用于对话框的制作,实现U(i的参数化绘I刘。Uistyler程序是枉uG环境1i开发的。在uG菜单中点击applicatiOH一>u1stylel?就可以进人对话框编辑界面a使用u{styleF的编辑工具,可以生成包含数据输入、文字输入、选择框、按钮、图片等要素的对话框,可以实现这些要素的任意组台,完全符合uG风格,完全支持uG操作。编辑完成后,生成一个c语言源文件(*.c文件),一个c语占头义件(t.h文件),一个uG的对话框文件(td1g文件)。其中,C语言源文件和头文件需要与UG/OpenAPI程序相结合,编制成动态链按库文件(一d11义件)。在使用用户自定义的对话榧时,所牛成的动态链接库文件和uG对话框文件都必须存放任用户目录下的appl{cation目录r。

四、结论

总之,对于uG软件的_二次丌发,}4用了I](;/OpenGRIP模块的曲面造型功能,实现_『零部件的实体造型和虚拟装配;UG/OpenAPI膜块_c{;外界良好的接口,可以有效的实施对程序的控制和文件的管理;UO/OpenMenuScript和UG/OperluistyleF模块的辅助功能,使得7F发出来的系统使用方便;既充分利用了uG提供的开发模块深人到uG系统内部,实现系统功能要求,又利用系统资源,从1iii大大的提高r开发效率。

参考文献

【I】黼利1㈣7年㈨s|【c;中l埘Ⅲ户年仝论卫蜓I¨¨7

【2)I;lectroIIt:icuaLnSy8L咖IC.rporaliⅢlII(;/OpcnGRII’Relcfell…v…ImcI_VOjumc3I¨。m

(3】I!lectronmicDaleSystemc吖l,urati…1tlG/Oi)en^r1Rclcrc¨ccv¨lum041996

—3l一

相关文档