xywang52 发表于 2014-2-24 16:26:50

【原创】isight集成catia和abaqus流程详解(附部分源文件)

本帖最后由 xywang52 于 2014-2-24 16:41 编辑

CAD软件中参数化建模,导入有限元软件中计算各个工况,isight根据计算结果调整模型参数,反复迭代计算的过程是尺寸优化的典型问题~
下面将比较详解叙述菜鸟新手是如何成功用isight集成catia和abaqus流程,在此过程中,遇到不少棘手问题,翻遍了本版的帖子,浸淫在#isight优化联盟群#,得到了许多人的帮助,特别鸣谢@牛人@Alex和@潇潇,这也反哺自己将之分享给类似问题的亲们以参考。

优化思路
同做其他事情一样,我们必须思路清晰,这一点在isight流程集成上面显得尤为突出。isight有比较标准的集成流程,但又没有唯一固定的途径,像集成catia,即可以用自带的组件,又可以用通用的simcode,而关于catia的宏命令又有不同的写法,文件路径设置时又有不同的方法,诸如之类。条条大路通罗马,前提是我们知道罗马在何方,如果我们为了集成而集成,会发现照着别人的流程做,别人的没有问题自己的有问题,同样的错误解决方法适用于别人的模型,不适用于自己的。
我要处理的算例是一个L型的支架,约束条件是均布载荷下最大应低于上限值,目标函数是结构质量最小,一阶频率最大。优化思路是在catia中参数化建模,更改参数值即可实现模型的自动更新,每次更新的模型导入abaqus中分别计算模态和均布载荷作用下的应力值,isight根据计算结果,更改模型参数值,反复迭代计算优化的过程。
5.7含自带的catia和abaqus组件,自己也花了些时间尝试下的,可以集成,但有其局限性,个人推荐用simcode集成,虽然步骤繁琐点,但是灵活性更好,适用于不同的机子。

catia参数化建模和宏命令
catia建模咱都会,参数化的话即把相关尺寸用参数代替,这样我们只需要更改参数值便可实现模型的更新,而无需重复建模,具体的操作步骤请百度一下。

以上便是参数化的L支架模型,参数已在模型上象征性标出;P   
.txt文件是catia自己可以输出的参数设计列表,更改参数值,你会发现模型出现更新提醒,但是需要手动执行更新
那如何实现模型的自动更新的呢?我的做法是用宏命令记录我手动更新的过程,宏命令的具体操作步骤也请百度一下的吧。
宏录制——更改.txt参数值——打开模型——手动更新——保存模型——退出模型
这样会生成一个.catvbs宏命令文件,更改.txt中参数值,然后双击.catvbs,稍等片刻你会发现模型更新了。
{插播一下:你一定惊奇于宏命令的NB,但需要指出的是catia中宏命令并不是万能的,许多操作并不能被记录。
比如说我们迫切想提取出模型的质量或者体积作为优化设计的目标,但是很无奈宏命令无法直接记录手动测量的过程,需要二次开发。
身为二次开发小白,为之深深痛苦,直到偶然发现abaqus可以提取时,便暂时放弃了catia中提取模型的质量属性信息。
但还是迫切希望哪个二次开发大牛能帮忙解决这个技术难题{:2_36:}}

到此是不是catia的集成就结束的呢,答案是否定的。catvbs文件是isight无法直接执行的命令,如何让isight可以自动执行的呢?
批处理!建立.bat的批处理文件,一种写法如下:
"F:\Program Files\Dassault Systemes\B20\intel_a\code\bin\CNEXT.exe" -batch -macro "D:\Isight\temp\lzj.catvbs"
我用的都是绝对路径,虽然麻烦点,但不容易出错:victory:
至此,catia的参数化建模和批处理命令便完成了,成功标志是更改.txt中参数值,执行.bat模型可以自动完成模型更新。


abaqus集成过程
catia中驱动模型更新的是其宏命令,实际在abaqus中也存在这样的“宏命令”,甚至更好用。
我们在abaqus每一步的操作都记录在abaqus.rpy中(在工作目录下),用UltraEdit或者其他文本编辑器打开,你会发现随着你的操作步骤,文本内容会更新。
每次启动abaqus时,abaqus.rpy 中的内容会清空。
更神奇的是,将abaqus.rpt的后缀名改成.py,abaqus可以运行该脚本,具体的请参考论坛的abaqus版块。
好了,具体到该算例的具体操作是:
首先,同常规模态分析一样,导入catia模型到abaqus中,进行一系列的设置,提交运算,保存cae模型,退出软件。
重新启动软件,打开cae模型,删除零件,重新导入catia模型,进行一系列的设置,提交运算,保存模型,退出软件。
将abaqus.rpt文件拷贝过来,改成.py文件,便可以用RunScript运行,在窗口命令行,我们可以看到运行步骤。
打开.dat文件,惊喜的发现里面不仅有各阶固有频率还有质量属性信息,这样在catia中没有实现的,在abaqus中得到实现(经对比,catia和abaqus测量结果很接近)。


如何实现.py脚本的自动运行的呢?
批处理!建立.bat的批处理文件,一种写法如下:
"F:\SIMULIA\Abaqus\Commands\abq611pr3.bat" cae noGUI=lzj_modal.py

分布载荷作用下L支架最大应力的操作与之类似,不同的是需要加上输出设置。
重新启动软件,打开cae模型,删除零件,重新导入catia模型,进行一系列的设置,提交运算,打开.odb文件,输出.rpt,保存模型,退出软件。


批处理命令同上。
至此,abaqus集成便完成了,成功标志是双击.bat文件,可以实现新一轮的计算。

isight集成过程isight创建如下的流程图,分别设置input、command和output即可:
需要指出的是文件路径的问题,这也是自变量变计算结果不变的“罪魁祸首",这不是个案,大面积的出现这样的问题:Q
具体的文件路径设置,请看附件.zmf文件~
优化算法,选的是pointer专家算法,设置比较简单,具体各个算法含义请参见《Isight参数优化理论与实例详解》。
需要说明的是,尽管这本书某些方面讲的比较简略,但再没有其他辅助资料的情况下,这还真是不错的参考资料~
附几张计算结果图



当万事俱备,提交不报错的时候,无疑是优化人最欣喜最富成就感的时候,之前的百般尝试愁肠百结也是值得的{:2_37:}
但是,集成只是优化的第一步,最最基础的一步!下面一句话与大家共享,希望随着isight的完善和论坛的建设,我们可以把花在集成上的时间和精力做更深入的研究。


大ps:以上的集成方法只是本人一家之言,某些步骤说不定可以优化。虽说是详解,但真正叙述起来发现真的不是那么回事,截图排版啥的挺费劲的。先写这么多的,本人还是喜欢具体问题具体分析的,大家有什么疑问,我们具体讨论的吧~


wuym22 发表于 2014-6-11 14:39:31

批处理!建立.bat的批处理文件,一种写法如下:
"F:\SIMULIA\Abaqus\Commands\abq611pr3.bat" cae noGUI=lzj_modal.py

改为
"F:\SIMULIA\Abaqus\Commands\abq6111.bat" cae noGUI=lzj_modal.py

datou68 发表于 2014-2-26 09:36:44

请问下如果我用5.7自带的catia和abaqus模块也能连上。catia参数可以变化,但是abaqus的模型没有变化。应该是集成cae或者inp时文件是不变的。不知道大神如何解决的?

xywang52 发表于 2014-2-26 10:46:59

datou68 发表于 2014-2-26 09:36
请问下如果我用5.7自带的catia和abaqus模块也能连上。catia参数可以变化,但是abaqus的模型没有变化。应该 ...

abaqus更新不了,原因在于你cae或inp文件没有更新,catia更新的模型没有传递过来,可以看下具体文件时间是不是这样。可以尝试中间加一个环节,用simcode控制.catpart文件导入abaqus中,更新cae和inp的过程,具体操作过程可以参考我的做法,用py文件录制~

楠楠 发表于 2014-3-23 16:18:28

isight自带的catia模块在运行后为什么不能更新?今天自己做了下,貌似是锁定了

xywang52 发表于 2014-3-24 11:44:04

楠楠 发表于 2014-3-23 16:18
isight自带的catia模块在运行后为什么不能更新?今天自己做了下,貌似是锁定了

...

你可以把你的图贴上来,错误提示是什么的?
我之前也是遇到你这样的问题,可以解析,但是不可以更新,于是转用simcode了~~

楠楠 发表于 2014-4-3 10:40:02

后面自己弄好了,用simecode集成宏那是增加麻烦,后面模型能够根据catia组件来更新了

liangtang528 发表于 2014-4-3 13:20:25

“具体的文件路径设置,请看附件.zmf文件”,我看了看不晓得你哪里设置路径了

xywang52 发表于 2014-4-9 16:14:02

楠楠 发表于 2014-4-3 10:40
后面自己弄好了,用simecode集成宏那是增加麻烦,后面模型能够根据catia组件来更新了 ...

能分享下你之前卡克的地方在哪里的么
还有用自带的catia组建能读取体积或者质量的么

xywang52 发表于 2014-4-9 16:14:44

liangtang528 发表于 2014-4-3 13:20
“具体的文件路径设置,请看附件.zmf文件”,我看了看不晓得你哪里设置路径了 ...

file里面的哈   inpuit和output?

楠楠 发表于 2014-4-14 11:30:39

是的,能够读出体积质量惯性等

xywang52 发表于 2014-4-14 21:14:00

楠楠 发表于 2014-4-14 11:30
是的,能够读出体积质量惯性等

你之前不能成功的原因是什么呢
我当时能解析成功,但是不能更新
我catia是R20   isight是5.7
不知道你的情况是什么样的

仲健林 发表于 2014-4-28 17:24:24

:lol:lol:lol:lol:lol:lol:lol:lol:lol:lol

wuym22 发表于 2014-6-11 15:17:37

前面的我解释一下,不能用isight自带的模块,自带的模块无法实现参数的传入,所以结果都一样

xywang52 发表于 2014-6-13 12:40:03

wuym22 发表于 2014-6-11 15:17
前面的我解释一下,不能用isight自带的模块,自带的模块无法实现参数的传入,所以结果都一样 ...

群里看好像有的集成成功的,当时培训的时候说的是组件集成受版本、电脑的配置等影响比较大。

helicopterliu 发表于 2014-6-20 14:38:33

楼主好人,帮助很大

运动男儿 发表于 2014-6-24 22:07:46

学习中,求指教

wjx_abc 发表于 2014-6-26 10:11:09

感谢楼主分享

fangyongyong 发表于 2014-6-29 23:16:19

你好,想请教你个问题,Isight集成Abaqus时,abaqus.rpy修改为.py后,运行。出现Traceback (most recent call last):
File "E:\Temp\lzj.py", line 11, in <module>
    from abaqus import *
ImportError: Bad magic number in C:\python25\lib\abaqus.pyc错误,不知道你是否遇到过这种问题。

xywang52 发表于 2014-6-30 00:52:03

fangyongyong 发表于 2014-6-29 23:16
你好,想请教你个问题,Isight集成Abaqus时,abaqus.rpy修改为.py后,运行。出现Traceback (most recent ca ...

这个还真没有遇到 你在abaqus中RUNScript运行下py文件看看看能不能成功的。
页: [1] 2 3 4 5
查看完整版本: 【原创】isight集成catia和abaqus流程详解(附部分源文件)