找回密码
 注册
Simdroid-非首页
查看: 198|回复: 6

[用户自编子程序] 学习子程序过程中遇到的一些问题,请前辈指教

[复制链接]
发表于 2013-12-24 20:35:30 | 显示全部楼层 |阅读模式 来自 上海
悬赏20仿真币未解决
本帖最后由 comet1983 于 2013-12-24 21:59 编辑

接触adams不久,最近在学习子程序过程中,看帮助文件看的太多啦,经常看后面忘前面,有几处地方很是有疑问,请前辈务必给小弟解惑,感谢!        
问题1:  c_sysary("VEL", ipar, 3, vel, &nstates, &errflg);    c_errmes(errflg,"Error calling SYSARY for VEL", gfo->ID, "STOP")。
像以上c_sysary()和c_errmes()等C语言子函数在帮助文件里哪有解释说明呢,我怎么找不到?

问题2:variable create variable=.MDI.cvj_dir string=(eval("d:"//"\\"//"cvj"))    !摘自《机械动力学分析及adams应用教程》第11章
以上命令中的eval()函数在帮助中没有单独详细说明(和c_sysary()和c_errmes()函数一样,有具体介绍吗?),不知道在以上语句中起什么作用?还有前双斜杠“//"在上命令中是起连接(concatenated)作用,文件路径表达方式为什么这样表示,改成:variable create variable=.MDI.cvj_dir string=(eval("d:\cvj")) 是否OK?
因为帮助文件中有以下这么一段话:
Note also for path names on Windows, you can use backslashes as the separators, but you are not required to do so.
You can write portable path names by using the forward slash so Adams/View interprets the following as the same path:
"d:/users/efhl/some.file"
"d:\users\efhl\some.file"
If the file name is to be stored in a string variable, the backslashes would need to be doubled to preserve the file path:
"d:\\users\\efhl\\some.file"

问题3:interface dialog_box display &
dialog_box_name = .gui.db_beam_size &
'parameters="$f_beam_name"'

经常看到单引号,双引号的,具体起什么作用呢?以上语句中单引号是为避免parameters不赋值,导致程序出错?双引号因为parameters的是字符串string的缘故?
语句 force modify element_like beam beam_name = $f_beam_name 中$f_beam_name 不加双引号是因参数beam_name 赋值类型不是string?

请前辈、高手帮忙,感谢!






 楼主| 发表于 2013-12-26 22:24:52 | 显示全部楼层 来自 上海
Simdroid开发平台
有朋友指点下吗?
回复

使用道具 举报

发表于 2014-2-19 11:13:36 | 显示全部楼层 来自 上海闸北区
问题1的回复:c_sysary()和c_errmes()这两个函数ADAMS帮助是有的,只是以fortran的形式给出,分别对应SYSFNC 和ERRMES。因为ADAMS支持fortran和c,所以使用时只要参照fortran形式的帮助即可。

安装路径\MSC.Software\MSC.ADAMS\2005\help\solver\subroutines\utility\下,对应名字的html就是。
回复

使用道具 举报

发表于 2014-2-19 11:32:53 | 显示全部楼层 来自 上海闸北区
问题2的回复:这应该跟c语言里特殊符号显示的处理类似,如
要显示\,写为\\;
要显示",写为\";

variable create variable=.MDI.cvj_dir string=(eval("d:"//"\\"//"cvj"))  
个人认为,写成variable create variable=.MDI.cvj_dir string=(eval("d:\\cvj"))  ,请尝试。
  
回复

使用道具 举报

 楼主| 发表于 2014-2-20 20:43:33 | 显示全部楼层 来自 上海
usaedward 发表于 2014-2-19 11:32
问题2的回复:这应该跟c语言里特殊符号显示的处理类似,如
要显示\,写为\\;
要显示",写为\";

非常感谢
回复

使用道具 举报

 楼主| 发表于 2014-2-20 20:45:55 | 显示全部楼层 来自 上海

积分怎么给你啊,悬赏怎么改为已经解决呢?
回复

使用道具 举报

发表于 2015-1-29 20:04:42 | 显示全部楼层 来自 浙江杭州
usaedward 发表于 2014-2-19 11:13
问题1的回复:c_sysary()和c_errmes()这两个函数ADAMS帮助是有的,只是以fortran的形式给出,分别对应SY ...

请问,能把您2005版下的solver文件夹打包发给我吗?我使用的是2013版,头文件和2005中的不同。邮箱是1318393238@qq.com,再次感谢
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Simapps系列直播

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-11-2 05:40 , Processed in 0.031564 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表