介绍了在标准件参数化设计中,以AutoCAD为平台,对ADS_ARX绘图程序的模块化处理、AutoCAD下的界面设计以及用Visual C++实现对标准件设计资料库和方法库的参数化查询,为AutoCAD下的二次开发提供了一种全新的方法。
引言
?CAD技术在机械工业中的一个重要应用就是参数化设计,即对一些具有相似结构但尺寸经常改动的标准零件, 采用参数化设计的方法建立图形库,调出一组参数就能生成一个标准件图形。 本系统中包含一个常用机械设计标准资料库,使设计人员不必翻阅设计手册就可以在计算机上查到所需的信息, 除此之外本系统还提供了机械常用各种设计计算方法(包括校核和优化), 并将零件的设计计算和辅助绘图集成于统一的环境中,从而真正实现了设计与绘图一体化,明显提高了产品的设计效率。
1 标准件参数化设计系统的建模
?参数化CAD所面对的产品绝大多数为定型产品,这些产品的系列化、通用化、标准化程度高。机械标准件具有上述特点, 所以本系统建模根据参数化的建模思想来进行。系统的基本思路为:首先由用户选择所要设计的零件类型,然后选择设计行为(如对于圆柱齿轮设计有结构、校核或优化设计), 并由用户输入原始设计参数,这时零部件CAD子系统根据控制子系统传输过来的原始设计参数和所选设计行为进行相应设计活动, 最后由参数化绘图子系统接收设计结果, 在本系统中绘出相应的零件工作图,机械标准件设计系统软件的逻辑框图见图1。
2 软件设计中的关键技术
2.1绘图公用模块的建立
?基于程序设计模块化思想,为标准件绘图程序作了一个公用模块Common.arx,该模块对标准件图形环境做了统一规定,并对一些相同功能的程序模块(如参数输入、图形旋转等)进行了统一编制。另外对某类标准件来说,不同标准号对应的标准件结构基本是相同的,只是局部结构的改变, 因此对这些具有相同图形的部分也进行了模块化处理。这样既节省内存又使程序代码易于管理。以下对Common.arx中的初始化实体模式与作图环境子模块进行说明。
图1 机械标准件设计标准软件的逻辑框图
公用模块在AutoCAD下建立了三个层stand1(线型continuous,颜色white),stand2(线型center,颜色red), stand3(线型hidden,颜色white)分别放置标准件图形的粗细实线、中心线和虚线。另外在标准件插入图形以前,调用公用模块中的init()初始化作图环境,完成后再调用rest()恢复以前的作图环境。以下是init()程序的代码:
init(){structresbufrBc,rBb,rBu; xQm!
ads_getvar(″BLIPMODE″,&rBb); *'QD!Tc
ads_getvar(″CMDECHO″,&rBc); !HY+6!hk
rBu.restype=PTSHORT;rBu?resval=0; Qi w "x,
ads_setvar(″CMDECHO″,&rBu); o D*h@yL
ads_setvar(″BLIPMODE″,&rBu); kRTT
~
ads_command(RTSTR,″linetype″,RTSTR,″s″, O6YYOmt3
RTSTR,″bylayer″,RTSTR,″″,RTNONE); tegLGp@_
ads_command(RTSTR,″color″,RTSTR,″bylayer″,RTNONE);}
本系统的参数化绘图子系统程序框架采用的是ARX的基本结构及消息机制,而机械零件的参数化绘图部分采用ADS库函数 (如实体数据库函数、选择集操作函数和选择集构造函数等)来完成。以下介绍ARX的基本结构及消息机制:
AcRx::AppRetCode kZ[E493bV
AcrxEntryPoint(AcRx::AppMsgCodemsg,void*ptr) H--(zxK
{if(ptr!=NULL){switch(msg){ @L=xY[&{
caseAcRx::kInitAppMsg://加载应用程序 cmZ39pjBJ
acrxDynamicLinker?〉Un1ockApplication(ptr) =eDVgOZ)
break; %_(e{Mf)
caseAcRx::kLoadDwgMsg;//登记ads_defun()定义的函数 R8W{[@
funcload(); ?r'rvu'/
break; 0%cbno@1V
caseAcRx::kInvkSubrMsg://执行ads_defun()定义的函数 H8mmmt6g
dofun(); mKvk6OC
break; 3*/y<Z'H
caseAcRX::kUnloadDwgMsg://撤消应用程序所做的初始化工作 $eCxpb..
funcUnload(); u1~H1
]Ii
ads_printf(″Unloading\n″); : ,fs'!
break; ,&G