许可优化
许可优化
产品
产品
解决方案
解决方案
服务支持
服务支持
关于
关于
软件库
当前位置:服务支持 >  软件文章 >  Adams Car启动自运行命令配置,自动化小技巧

Adams Car启动自运行命令配置,自动化小技巧

阅读数 5
点赞 0
article_banner


在C盘-用户路径下,创建acar.cmd 文件, 并写入命令,即可实现启动自运行命令

示例

每次从开始菜单点Adams Car图标,加载完插件和数据库要等半分钟,跑完一个工况关了再开下一个,一天下来光在启动画面上耗的时间就够泡好几杯咖啡了。后来在论坛上看到有人用批处理跑整车工况,才发现启动这一步能省。


命令行启动Adams Car用的是mdi.bat这个批处理入口,在安装目录的common下面,比如C:/Program Files/MSC.Software/Adams/2023_3/common/mdi.bat,后面跟的参数决定进哪个模块、哪个界面、跑什么文件。acar是进Car模块,ru-st是run standard interface,b是batch批处理模式,跟默认的i是interactive交互模式相对,b模式下不弹界面,跑完自动退,这是批处理的关键。完整的命令长这样:mdi.bat acar ru-st b example.cmd exit,最后的exit让Adams跑完脚本之后直接关掉进程,不留在后台等用户操作。


命令行启动的时候.acar.cfg加载的是哪个是个容易翻车的地方。从Python或者MATLAB里用subprocess调mdi.bat,如果环境变量HOME指向的不是C:\Users\用户名,而是别的路径,比如Python自己的settings目录,Adams就去那个目录下面找.acar.cfg,找到的是默认配置,自建的数据库和自定义的启动设置全都不加载。解决方法要么在Python脚本里显式设置HOME=C:\Users\用户名,要么把.acar.cfg拷到HOME指向的那个目录里,两个地方都放一份最保险。


C盘用户目录下面建一个acar.cmd文件,里面写入启动命令,以后双击就能自运行,省得每次开cmd敲路径。acar.cmd里放的不是mdi.bat那一长串,而是直接写需要自动执行的CMD命令,Adams启动的时候读这个文件,按顺序执行里面的内容。文件里的命令跟正常在Adams命令行里敲的一模一样,比如file command read把模型文件读进来,simulate static提交静力学分析,file command write把结果写出去,最后exit退出。acar.cmd的执行顺序在acarBS.cmd和acarAS.cmd之间,是Car启动脚本链里的一环,不放心的可以看看安装目录下的这几个cmd文件了解完整流程。


.acar.cfg文件里DATABASE和DATABASE_ORDER这两段决定了启动时加载哪些数据库。DATABASE private后面跟用户数据库的完整路径,D:\private.cdb这种,如果装的时候没改过,默认在C:\Users\用户名\private.cdb。DATABASE_ORDER控制搜索顺序,private排最前面的话自己建的模板和子系统优先被加载,不用动共享库里的文件。DEFAULT_WRITE_DB指定默认写入数据库,设成private新建的模型就存到用户库里,不会把共享库写乱。CAR的启动命令里如果用了ru-st但没加载到自定义数据库,多半就是.acar.cfg没被读到,acar.log里搜一下acar.cfg关键字看看加载的是哪个路径的配置文件。


命令行启动的另一种场景是跟MATLAB或者Python联合跑优化。MATLAB用system()调mdi.bat的时候,MATLAB自己的进程环境变量不会自动传给子进程,HOME可能指向别的地方,Adam读不到正确的.acar.cfg。最稳的办法是在MATLAB脚本里先setenv('HOME','C:\Users\用户名')再调mdi.bat,或者在mdi.bat前面加一个set HOME=C:\Users\用户名。Python里用subprocess.run()也一样,env参数里显式把HOME设对。


如果不想每次启动都重新加载模型,可以用command_server做远程控制。在Adams Car会话里先正常打开模型,然后在命令行里敲command_server start,Adams进入监听模式,外部程序通过TCP/IP连到localhost的5002端口发命令。发过去的命令就是普通的CMD字符串,比如cmd marker modify marker_name=mar_13333 vx=0,Adams执行完返回结果。这样一轮优化里Adams只启动一次,后面几十上百次迭代全通过socket通信完成,省下来的启动时间很可观。不过这个功能在Linux上有个报错说command_server不是合法关键字,Windows上正常,Linux用户得注意。



免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

相关文章
技术文档
QR Code
微信扫一扫,欢迎咨询~
customer

online

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 board-phone 155-2731-8020
close1
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

姓名不为空

姓名不为空
手机不正确

手机不正确

手机不正确
公司不为空

公司不为空

公司不为空