全程陪你编写命令脚本!零基础进阶Adams建模二次开发技能
- 作者优秀
- 优秀教师/意见领袖/博士学历/特邀专家/独家讲师
- 平台推荐
- 内容稀缺
导读:在Adams软件的使用过程中,二次开发显得尤为重要,他允许用户根据特定的工程需求,定制化软件功能,提高工作效率,解决标准软件包无法满足的特定问题。我们可以在学习二次开发的过程中,了解更多Adams建模的底层逻辑、运行规则,整个过程相当于是与Adams软件的一次深入交流,你能看得懂它的规则,它能读得懂你的思路,真正做到游刃有余。
一、问题描述
如下图所示,共搭建了从Force_1一直到Force_10这10个作用力,且力值大小均相同。现在需要统一修改十个力值大小,将数值改为20N,你会怎么操作呢?
二、思考与对策
①方案一:可以手动进行修改,依次点击这十个作用力,并将他们的数值改为20N。这是最简单的一种方式,却是最麻烦、最耗时的方法。②方案二:经过观察可知,1)每一个力的名字都有规律可循,“Froce_”是固定的,仅仅是后面的数字发生了改变,且数字也是按照顺序进行依次排列的。2)修改力值的操作顺序是“点击力值—右键修改—输入新的数值—关闭窗口”我们需要不断的重复这一操作步骤,如果可以将该操作步骤进行代码复现,让计算机帮我们进行操作,我们只需要让步骤按照规律重复10次,就可以轻而易举的实现10个,甚至更多个力值大小的修改了。三、Adams二次开发实操过程
Adams进行二次开发可以使用自带的CMD程序语言进行编写,简单来说,我们可以直接使用电脑自带的记事本来编写代码,编写完成后,将文件类型保存为cmd命令脚本格式即可。经过上述分析可知,如果我们需要进行10次重复性的工作,那么应该率先确定一个变量,让这个变量来记录我们的每次操作,也就是起到一个“计数”的功能。又因为力的名字后缀也是不断变化的,所以更需要一个动态的、随时改变的、不断累计的变量来代替名字后缀。综上可知,创建一个“计数”的“动态”变量至关重要。variable create
variable_name=model_name.var_name
real_value=real or
integer_value=integer or
string_value=string or
Object_value=existing entity
units=string
……
每一小段运行程序的首行都是整段命令的关键词,也就是用于说明接下来操作的内容。而下面的几行程序都是命令的种类,你可以在下面的程序中摘取你需要的行进行编辑并运行,可以全部摘选,也可以仅选择部分你需要的内容,且顺序没有要求。在这个案例中,我们创建一个名字为“N”的变量,变量的初始值为1,从1开始计数,Adams不区分大小写。VARIABLE CREAT VARIABLE_NAME=N INTEGER=1
在Adams中,循环语句可以使用while—end组合来执行重复多次的命令。在Adams/view中,程序会反复执行由While和End括号包围起来的命令,只要While指令关联的条件为真,那么命令会持续运行直到条件变为假。while condition=(expression)
……
end
对于本次实例,我们共需要循环10次,可以引入上一步创建好的变量,只需要使变量进行叠加,每次循环一次,变量数值就加一,直到变量的数值变为10,即可完成十次循环。WHILE CONDITION=(N<=10)
……
VARIABLE MODIFY VARIABLE_NAME=N INTEGER_VALUE=(EVAL(N+1))
END
小技巧:对于初学者来说,我们并不需要掌握太高大上的语句逻辑,只需要对操作命令进行复现即可。同时,对于想要进阶的读者来说,在我的视频课程中,还会对每一个对象命令用法做更详细、灵活的介绍。重现意味着先进行一遍命令操作,之后得到程序自动生成的命令代码,最后将代码进行简单修改即可。而代码复现的方式,可以直接在操作完成后,点击“F3”快捷键进行获取。force modify direct single_component_force&
single_component_force=(eval(”.model.Force_”//N))&
function=”20”&
action_only=”on”&
comments=””&
mdi graphic_force object=(eval(”.model.Force_”//N)) type=1
1)在所有自动复现的代码中,“adams_id=”这一句话不要加上,这是Adams对所有对象的一个特有标识,如果使用命令循环,不同对象的标识不用,不能用id来识别;2)“&”符号表示与下行为同一部分,只不过做了分段处理,故需要加连接符&,在复 制代码中不可以省略;3)“EVAL”可以理解为对括号内的东西进行计算,或者将括号内的东西翻译成Adams可以理解的语言。VARIABLE CREAT VARIABLE_NAME=N INTEGER=1
WHILE CONDITION=(N<=10)
force modify direct single_component_force&
single_component_force=(eval(”.model.Force_”//N))&
function=”20”&
action_only=”on”&
comments=””&
mdi graphic_force object=(eval(”.model.Force_”//N)) type=1
VARIABLE MODIFY VARIABLE_NAME=N INTEGER_VALUE=(EVAL(N+1))
END
VARIABLE DELETE VARIABLE_NAME=N
将改好的代码进行保存,之后在Adams/view界面空白处按下快捷键F2,若没有弹出报错窗口,证明程序可行,若弹出报错窗口,可进行报错内容提示进行脚本修改。四、效果
依次点开各个创建好的力,我们可以发现,力值大小都修改成了20。整个过程简单、快捷,省去了大量的时间,极大提高了工作效率。五、零基础小白Adams建模二次开发
以上实例仅针对力值大小的修改进行Adams二次开发,又引入循环语句达到事半功倍的效果。循环语句是Adams二次开发最重要的语法格式之一,实际使用时,我们可以借助Adams代码复现的功能,稍加修改便可以解决大多数的二次开发问题。对于初级小白来说,不需要掌握太详细的语法结构,就能实现代码的编写,轻松上手。以下是课程安排:
《零基础小白Adams建模二次开发18讲:全程陪你编写命令脚本,实战练习编程技巧》
VIP群答疑+持续加餐+模型资料+奖学金+企业内推
扫码立即试看
1、您将得到
(5)举一反三思路衍生
(6)加入VIP用户群,搭建项目平台人脉,开展仿真项目兼 职等(7)提供课程相关资料和VIP群答疑、奖学金、内推和免费加餐。
(1)Adams仿真工程师
(2)机械结构工程师
(3)理工科在校生和教师
(4)希望通过二次开发简化工作、提高效率的工程师
(5)Adams软件用户和兴趣爱好者
总之,Adams二次开发是提高建模工作效率最有用的手段,对于初级学者来说,我们可以借助Adams本身展现出来的脚本进行复现,过程比较简单,只需要看得懂简单的英文单词即可;对于进阶选手来说,除了可以利用Adams二次开发提高建模速度以外,还能随心所欲修改Adams建模的各项参数并发现Adams隐藏在程序中的小技巧,帮助我们更好的了解Adams建模逻辑,探索建模的乐趣。
获赞 10228粉丝 21737文章 3589课程 222