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

[modeFRONTIER] MF中的timeout功能

[复制链接]
发表于 2007-12-1 02:20:07 | 显示全部楼层 |阅读模式 来自 清华大学
发现在modefrontier中,一些程序的直接接口都会有timeout的功能,就是在该脚本执行失败
的时候,就能够终止对应的进程,这个功能非常重要啊,如果能像isight一样,如果失败后能够
选择再重新来一次就更好了,star-cd有时生成网格一次不行,第二次就行了,catia有时候执行脚本文件也会有这种情况。
但是好像在非直接接口里,好像没有timeout这个功能啊,我比较习惯用dos语言来集成,
咳,问问高手们,是不是用其他的语言有可能实现上面说的类似的功能呢?
 楼主| 发表于 2007-12-3 00:44:00 | 显示全部楼层 来自 清华大学
Simdroid开发平台
咳,看来大家也没有什么好招了,我只能手动杀进程了,这样太累
不过catia的问题我想我已经解决了,在最后的脚本文件END Sub
前多加一条语句CATIA.Quit 应该就行了,今天刚发现的错误,但愿
此法可行。
回复 不支持

使用道具 举报

发表于 2007-12-3 10:48:04 | 显示全部楼层 来自 黑龙江哈尔滨
你为什么不用直接的catia接口?

如果不用直接的接口,我想你是不是可以通过 一些条件节点(conditional switch)来判断某个process是否完成,如果没有完成你再接让他返回运行。你试试吧,我感觉可以的
回复 不支持

使用道具 举报

 楼主| 发表于 2007-12-4 00:00:54 | 显示全部楼层 来自 安徽合肥
我的问题是有十来个参数,然后由程序生成一个包含大约1000个点的坐标的文件,只要有一个
参数变了,这千余个点的坐标值也就变了,感觉这样很难用直接接口吧,所以一直用
dos命令在处理了。
您说的那个condition条件感觉不错,我去试试看,谢谢了啊
回复 不支持

使用道具 举报

 楼主| 发表于 2007-12-4 00:10:00 | 显示全部楼层 来自 安徽合肥
我现在的catia的问题是这样的,一个脚本文件放到modefrontier中去集成,两个核,算
两个concurrent designs,算了若干时间后,就发现某个catia的进程占cpu是零了,这肯定
不是catia脚本文件出错的问题,如果出错的话它会报错并自动退出的,进程也就没了,
但是这种情况下,不但有个不用cpu的catia进程,modefrontier也不认为它错了,也就不
对它做任何处理,这样的话我虽然设置了两个design,但实际上只有一个在跑了。
我试了,只要让这脚本文件再跑一次,就能顺利过去了。感觉好像是被卡在那了。
再想想办法吧,没想到这个timeout功能这么重要。

评分

1

查看全部评分

回复 不支持

使用道具 举报

发表于 2007-12-4 09:54:06 | 显示全部楼层 来自 北京朝阳
这个其实应该是正版用户才有的支持,给你看看吧,下不为例了。。。

please rewrite a value of the 68 line to the value that you need.
"intSecComma = 600 "
"600" represents "600second"

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×

评分

1

查看全部评分

回复 不支持

使用道具 举报

发表于 2007-12-4 12:31:03 | 显示全部楼层 来自 黑龙江哈尔滨
谢谢ggbaby提供的资料

老大,你要是由空的话申请个版主吧。推广mF的使用啊,mF的用户会越来越多的
回复 不支持

使用道具 举报

 楼主| 发表于 2007-12-4 13:02:50 | 显示全部楼层 来自 安徽合肥
哦,太强了,这一招太致命了,非常谢谢您,应该可以弥补timeout的功能了吧,
谢谢您为推广MF做出的贡献,确实当大家都发现它的强大功能时,正版用户
会变得越来越多的。
回复 不支持

使用道具 举报

发表于 2007-12-4 13:20:39 | 显示全部楼层 来自 黑龙江哈尔滨
呵呵,如果方便的话,希望你稍微详细地把自己的解决办法给大家说说,让后来者少走点弯路,谢谢你

[ 本帖最后由 北极熊甲 于 2007-12-4 13:28 编辑 ]
回复 不支持

使用道具 举报

发表于 2007-12-4 13:31:24 | 显示全部楼层 来自 黑龙江哈尔滨
原帖由 july-zll 于 2007-12-4 00:10 发表
我现在的catia的问题是这样的,一个脚本文件放到modefrontier中去集成,两个核,算
两个concurrent designs,算了若干时间后,就发现某个catia的进程占cpu是零了,这肯定
不是catia脚本文件出错的问题,如果出 ...


你说的2个concurrent designs是mF在优化算法之前进行DOE的时候吗?

在优化运算(比如说用遗传算法时)时,我这里只能进行一个design的运行。可能是和我magnet的求解器有关吧。
回复 不支持

使用道具 举报

发表于 2007-12-4 15:55:11 | 显示全部楼层 来自 北京朝阳
一般这个concurrent designs对entry版本是4,对Advance是32.所以,如果你有那么多CPU,以及有那么多的应用软件的License,对GE算法应该是没有什么关系的。
回复 不支持

使用道具 举报

发表于 2007-12-4 15:57:17 | 显示全部楼层 来自 北京朝阳
原帖由 北极熊甲 于 2007-12-4 12:31 发表
谢谢ggbaby提供的资料

老大,你要是由空的话申请个版主吧。推广mF的使用啊,mF的用户会越来越多的


一个是不知道怎么申请斑竹,
另外,担心没有时间来管理版面。
回复 不支持

使用道具 举报

 楼主| 发表于 2007-12-4 17:36:31 | 显示全部楼层 来自 安徽合肥
在优化运算(比如说用遗传算法时)时,我这里只能进行一个design的运行。可能是和我magnet的求解器有关吧。


对,我现在就是在跑DOE,但是你说的有哪个magnet的求解器,为什么只能跑一个design呢
难道是那个软件的license问题吗?你的license不支持同时开多个进程
回复 不支持

使用道具 举报

 楼主| 发表于 2007-12-4 17:41:27 | 显示全部楼层 来自 安徽合肥
原帖由 北极熊甲 于 2007-12-4 13:20 发表
呵呵,如果方便的话,希望你稍微详细地把自己的解决办法给大家说说,让后来者少走点弯路,谢谢你







呵呵,这个东西我看了看附件里的mf文件,是用vbscript来驱动bat文件的,我觉得看了那个
文件里的信息就能知道怎么处理那个timeout功能了。

评分

1

查看全部评分

回复 不支持

使用道具 举报

发表于 2007-12-4 19:55:03 | 显示全部楼层 来自 黑龙江哈尔滨
谢谢ggbaby,july-zll的回答


应该是我lic的问题
回复 不支持

使用道具 举报

发表于 2007-12-5 11:11:24 | 显示全部楼层 来自 安徽合肥
感觉不是magnet只能运行一个,而是excel驱动只能运行一个
回复 不支持

使用道具 举报

 楼主| 发表于 2007-12-5 19:12:03 | 显示全部楼层 来自 安徽合肥
我对ggbaby提供的mf文件里的vbsript文件做下简单的解释吧。
该文件共三部分,第一部分是一个终止既定进程id的所有子进程的sub过程。
第二部分是判断你所要运行的程序有没有超过规定时间的函数。
第三部分是驱动一个bat文件,该bat文件里面写的是dos命令,启动程序,该
bat文件可以作为一个input file,也可以作为一个support file。
第一部分中,strComputer=“."     这个"."说明是在本地机器上操作,如果要远程操作
的话,还要修改Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")这一行,
我不是很确定怎么改。但是本地机器用肯定没问题的。
还有,我是在xp64下运行64位catia,所以将该文件中的Win32_Process修改成了win64_Process,
经证实,此改动可行,可以找到对应进程。
第二部分我没有动,也主要是看不懂。
第三部分的600如ggbaby所指是600秒的意思,个人可根据各自情况修改的。
还有,就是把beam.bat改成你自己的bat文件,我的没有输出文件,所以没有加>beam.out这一项。
另外,我在xp64位上装的catia64的版本,可以利用该段程序在既定时间内杀掉进程,但是
尚不能实现重新来运行一次该脚本的功能,相信在不久,只要在该程序上稍加改动,就能
实现该功能了。

评分

1

查看全部评分

回复 不支持

使用道具 举报

发表于 2007-12-5 20:51:42 | 显示全部楼层 来自 黑龙江哈尔滨
楼上做得很仔细。VB,VBS确实很有用,我也是用Excel中的VB宏来调用其他程序的,更为可贵的是,excel宏也常用来参数化solidworks等建模,然后输出给ANSYS等FEA软件。

呵呵,感谢july-zll 与大家分享经验。
回复 不支持

使用道具 举报

 楼主| 发表于 2007-12-11 17:23:35 | 显示全部楼层 来自 清华大学
更正一下,在64位xp平台下运行64位程序,原来的win32_preocess 不要
改成win64_process, 否则杀不了该进程,但是原来的那个timeout的功能
还是能实现的。win32_process即可。

评分

1

查看全部评分

回复 不支持

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-3-28 16:58 , Processed in 0.055022 second(s), 14 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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