玉林 发表于 2012-11-23 16:07

*do 循环调用宏文件的问题

首先是一个子函数宏文件
submodal2
velo=arg1
parsav,all,mypara
/clear,start
/batch
parres,new,mypara
v=velo*1000/3.6 !velocity
/prep7
...
.!这一段是建立模型,求解..
...
solve
/output,'%velo%','txt'    !输出结果到'%velo%.txt' 中
SELIST,FILE,3,1
/output
finish
/CLEAR,NOSTART! Clear model since no SAVE found   
/input,start140,ans,'D:\Program Files\ANSYS Inc\v140\ANSYS\apdl\',,,,,,,,,,,,,,,,1
/eof
把上面一段APDL保存在submodal2.mlib 中,供主函数调用。
下面一段是主函数。
*ulib,submodal2,mlib
*do,veloc,10,30,10
*use,submodal2,veloc
*enddo
将主函数保存为submodal3.mac .我的本意是主函数调用3次 子函数,输出3个文件,10.txt ,20.txt,30.txt.每个文件里含有每次计算的刚度矩阵和质量矩阵。但是实际结果是只有第一个文件10.txt里面含有结果,而后两个文件里是空白的。
如果我使用下面的APDL作为主函数,那么三个文件都有结果。
*ulib,submodal2,mlib
*use,submodal2,10
*use,submodal2,20
*use,submodal2,30
这两段主程序的差别只在于一个使用了*do循环,而另一个则没有使用。但是输出结果却不一样。这是为什么呢?有没有什么好办法呢?

mkhatebm 发表于 2013-1-8 00:00

你这个问题,我以前见到过,你得注意循环过程中变量在重新导入模型过程中的丢失问题!! 很高兴遇到一个APDL高手
页: [1]
查看完整版本: *do 循环调用宏文件的问题