循环、条件命令在ADAMSVIEW下的工程应用实例

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

美国MDI(MechanicalDynamicsInc)公司2001年中国用户年会论文集-279-循环、条件命令在ADAMS/VIEW下的工程应用实例邢俊文于魁龙北京装甲兵工程学院装甲车辆室100072摘要:循环(for)、条件(if)命令在ADAMS的应用与开发中非常重要。本文通过在ADAMS/VIEW下建立普通带传动和履带模型应用实例,详细介绍了for、if命令语句的用法和在macro、dialog-box中编程的应用技巧和方法。对掌握ADAMS/view的命令语言和开发有一定帮助.关键词:循环条件ADAMS/VIEW应用1.引言循环命令和条件命令在ADAMS/VIEW的编程及开发中非常有用,特别是在macros和diolog-box编制中,它可以有效实现模型建立或参数化分析的逻辑循环与判断功能。同时,它的应用与ADAMS的命令和函数语言密不可分;是ADAMS深层次应用开发的必备知识。图1皮带传动图2履带传动如上图所示,在ADAMS/VIEW环境下建立皮带或履带模型时,皮带或履带不但形状不同且有上百块连接,同时,每一块同时与各个传动轮、托带轮、负重轮以及地面有力的作用;如果用通常方式一块一块地、一个力一个力地去建模,既不准确也是不可能实现的。而用FOR语句就可有效地实现建模和模型的参数化。以下用履带建模实例来说明FOR和IF的用法。2.基本格式FOR语句是以XXX为循环变量,从start开始,每执行一次循环体语句自动加1,并与end比较,直到等于end就停止执行循环体语句。当start=1end=10时,格式如下:forvariable=xxxstart=1end=10循环体endIF语句是依据IF函数的状态来选择所执行的命令,如果cond=()括号内条件的逻辑值为1,则执行命令1;如果cond=()括号内条件的逻辑值0,则执行else后的命令2;美国MDI(MechanicalDynamicsInc)公司2001年中国用户年会论文集-280-同时,IF语句也可进行多级嵌套(用elseif)。其基本格式如下:Ifcond=()命令1else命令2end3.履带模型对话框在ADAMS/VIEW下为建立履带模型,利用FOR语句特编制了如下对话框。图3履带块建立对话框图4履带块碰撞力建立对话框4履带模型建立过程第一步建立单块履带,并生成macros语句;第二步建立履带块模型的对话框(如图3);第三步定义变量,将生成的macros语句作为循环体并修改,编制带FOR语句的macros语句,同时建立履带块间的REVOLUTEJOINT,并将其拷贝在履带块建立对话框的execution语句中;如下:!$number:t=integer:c=0:ge=1!$ld_object:t=part!$dx:t=real:c=0:ge=0!$dy:t=real:c=0:ge=0!$dz:t=real:c=0:ge=0!$join_name:t=jointforvariable=xxxstart=1end=$number!MOVEOBJECTSgroupmodifygroup=SELECT_LISTobject=$ld_object美国MDI(MechanicalDynamicsInc)公司2001年中国用户年会论文集-281-groupobjectcopygroup=SELECT_LISTnew_group=NEW_SEL_LISTgroupmodifygroup=SELECT_LISTobject=(eval(NEW_SEL_LIST.objects))groupdeletegroup=NEW_SEL_LISTmovetranslationgroup_name=SELECT_LISTc1=(xxx*$dx)c2=$dyc3=$dzend!CREATEREVOLUTEJOINTconstraintcreatejointRevolute&joint_name=.model_1.$join_name&i_marker_name=$ld_object.MAR_5&j_marker_name=$'ld_object'_2.MAR_4&friction_enabled=no&delta_v=0.01&maximum_deformation=0.01&mu_dyn_rot=0.3&mu_stat_rot=0.4&max_fric_rot=0.0&preload_radial=0.0&preload_axial=0.0&inner_radius=1.0&outer_radius=1.1constraintattributeconstraint_name=.model_1.$join_namename_vis=offgroupmodifygroup=SELECT_LISTobject=.model_1.$join_namevarcrevar=.model_1.tempstrstring=(eval($ld_object))varcrevar=.model_1.tempstr1string=(eval(tempstr))varcrevar=.model_1.tempstr2string=(eval(tempstr))varcrevar=.model_1.tempstr3string=$join_namevarcrevar=.model_1.tempstr31string=(eval(tempstr3))varcrevar=.model_1.tempintint=0varcrevar=.model_1.tempint1int=(eval(tempint+1))forvariable=xxxxstart=2end=(eval($number))varmodvar=tempintint=(eval(int(xxxx)))varmodvar=tempint1int=(eval(tempint+1))varmodvar=tempstr1string=(eval(str_substr(tempstr,10,12))//_//tempint//.MAR_5)varmodvar=tempstr2string=(eval(str_substr(tempstr,10,12))//_//tempint1//.MAR_4)varmodvar=tempstr31string=(eval((tempstr3)//_//tempint))varcrevar=.model_1.obj1&obj=(eval(stoo(.model_1.//(eval(tempstr1)))))varcrevar=.model_1.obj2&obj=(eval(stoo(.model_1.//(eval(tempstr2)))))美国MDI(MechanicalDynamicsInc)公司2001年中国用户年会论文集-282-!CREATEREVOLUTEJOINTconstraintcreatejointRevolute&joint_name=(eval(tempstr3)//_//(eval(tempint)))&i_marker_name=(eval(obj1))&j_marker_name=(eval(obj2))&friction_enabled=no&delta_v=0.01&maximum_deformation=0.01&mu_dyn_rot=0.3&mu_stat_rot=0.4&max_fric_rot=0.0&preload_radial=0.0&preload_axial=0.0&inner_radius=1.0&outer_radius=1.1constraintattributeconstraint_name=(eval(tempstr31))name_vis=offgroupmodifygroup=SELECT_LISTobject=(eval(tempstr31))vardelvar=.model_1.obj1vardelvar=.model_1.obj2endvardelvar=.model_1.tempstrvardelvar=.model_1.tempstr2vardelvar=.model_1.tempstr3vardelvar=.model_1.tempstr1vardelvar=.model_1.tempintvardelvar=.model_1.tempint1该步是使用FOR语句的关键,其中包括变量的创建、使用和删除,part、约束和力名字的取法,循环体中循环量名字的变化用法,与对话框中变量的沟通等。第四步完成履带块模型建立的对话框(主要进行调试、修改);第五步复制施加碰撞力的对话框,更名修改建立图4的对话框;图4的对话框中初始化命令:(start语句)!$_1:Nameoftheentitytoedit;blankforcreate!$_2:Nameofafieldtoupdatewiththenewentity'sname;blankforignore.!---Createmodeifcond=(str_is_space($_1))!Settherighttitleinterfacedialog_boxmodifydialog_box=$_selftitle=CreateLd_ContactForce!Initializethenamefieldinterfacefieldmodifyfield=$_self.f_contact_nameobject_type=newinterfacefieldsetfield=$_self.f_contact_name&美国MDI(MechanicalDynamicsInc)公司2001年中国用户年会论文集-283-string=(eval(db_default(.system_defaults,model)//.ld_frwd_1))interfacefieldsetfield=$_self.f_first_geomstr=interfacefieldsetfield=$_self.f_second_geomstr=interfaceoptionsetoption=$_self.force_displayvalue=0interfacepush_buttonmodifypush_button=$_self.measuresenabled=noelse!---Modifymode!Settherighttitleinterfacedialog_boxmodifydialog_box=$_selftitle=ModifyLd_ContactForce!Initializethenamefieldinterfacefieldmodifyfield=$_self.f_contact_nameobject_type=oldinterfacefieldsetfield=$_self.f_contact_namestring=$_1interfacefieldsetfield=$_self.f_first_geomstring=(eval($f_contact_name.i_geom))interfacefieldsetfield=$_self.f_second_geomstring=(eval($f_contact_name.j_geom))ifcond=(eval(db_type($f_first_geom)==ellipsoid))interfaceoptionsetoption=$_self.option_first_geomvalue=ellipsoidexecute=noelseinterfaceoptionsetoption=$_self.option_first_geomvalue=circleexecute=noendinterfacefieldmodifyfield=$_self.f_first_geom

1 / 9
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功