koalabear 发表于 2007-7-13 10:19

面倒圆命令流问题

各位,在用命令流进行面倒圆时,格式如下:
AFILLT, NA1, NA2, RAD

但是我现在na1,和na2,不是固定的,
我分别用cm命令定义了两个面,分别ar1,ar2,
为什么我用AFILLT, ar1, ar2, RAD这个命令不行?
应该如何才能运行?

也就是说我如何通过命令流获取面号,点号等。
谢谢。

venture 发表于 2007-7-13 10:42

也就是说我如何通过命令流获取面号,点号等。
可以用*get命令取得,点可以用坐标获取;面可以先用asel选取,然后用*get获取面号。

koalabear 发表于 2007-7-13 10:46

谢谢楼上的。楼上没有明白我的意思。
!
finish
/pmacro
/CLEAR
/FILNAME,kkbq
!/VIEW,1,-0.50,-0.83,0.25 !调整模型显示方位和角度
!/ANG,1,66


multipro,'start',6   
*cset,1,3,D1,'shell diameter',800
*cset,4,6,D2,'pipe diameter',150
*cset,7,9,T1,'shell thickness',20
*cset,10,12,t2,'pipe thickness',15
*cset,13,15,l1,'shell length',800
*cset,16,18,l2,'pipe length',600

multipro,'end'
*IF,_BUTTON,EQ,1,THEN         !如果选择取消按钮终止运行宏
   /EOF
*ENDIF
multipro,'start',2   
*cset,1,3,r1,'inside fillet radius',10
*cset,4,6,r2,'outside fillet radius',15

multipro,'end'
*IF,_BUTTON,EQ,1,THEN         !如果选择取消按钮终止运行宏
   /EOF
*ENDIF







/prep7

et,2,solid185            !进行结构分析的体单元类型
!et,1,shell57            !定义辅助建模的壳单元类型
!et,2,solid70            !进行热分析的体单元类型

mp,ex,1,2e5                      !定义材料的弹性模量
mp,nuxy,1,0.3                      !定义材料的泊松比


*afun,deg               !转换成角度制


cylind,D1/2+T1,D1/2,0,-L1,90,270,
!wpoff,0,0,-L1/2                      !将工作面沿-Z向移动L1/2
wprot,0,-90,                       !将工作面沿yz旋转90o
cylind,D2/2+T2,D2/2,0,L2,90,180,      !生成接管

VDEL,1,2,,0,
wpcsys,1,0
APLOT
/REPLOT

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!    内面相overlap    !!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
lsel,s,radius,,d2/2   
ASLL,,,,
ASEL,U,LOC,Y,L2
ASEL,U,LOC,Y,0
lsel,A,radius,,d1/2   
ASLL,,,,
ASEL,U,LOC,Z,-L1
ASEL,U,LOC,Z,0
AOVLAP,ALL
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!    外面相overlap    !!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
ALLSEL
lsel,s,radius,,d2/2+T2   
ASLL,,,,
ASEL,U,LOC,Y,L2
ASEL,U,LOC,Y,0
lsel,A,radius,,d1/2+T1   
ASLL,,,,
ASEL,U,LOC,Z,-L1
ASEL,U,LOC,Z,0
AOVLAP,ALL



!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!    删除多余面和线   !!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

ALLSEL
lsel,s,radius,,d2/2,d2/2+T2
lsel,R,LOC,Y,0
ASLL,,,,
/REPLOT
LSLA,,,,
ASLL,,1,
APLOT   

ADELE,ALL,,,1
Asel,S,LOC,Z,0
ADELE,ALL,,,1
ALLSEL
Asel,S,LOC,X,0
Asel,U,LOC,Y,-D1/2,-D1/2-T1
ADELE,ALL,,,1

ALLSEL
!Ksel,s,LOC,Y,d1/2,d1/2+T1,
Ksel,s,LOC,Y,d1/2-0.001,d1/2+0.001,
Ksel,A,LOC,Y,d1/2+T1-0.001,d1/2+T1+0.001
Ksel,U,LOC,Z,-L1
LSLK,,1,1,
asll,,,,
ADELE,ALL,,,1

allsel
nummrg,all                                 !所有重合的点、线、面信息合并
numcmp,all                                 !所有点、线、面信息依次重排序







lsel,s,radius,,d2/2-0.001,d2/2+0.001,   
ASLL,,,,
ASEL,U,LOC,Y,L2-0.001,L2+0.001
!a1=_return
!cm,ar1,area
!ASEL,U,LOC,Y,0

lsel,A,radius,,d1/2-0.001,d1/2+0.001   
ASLL,,,,
ASEL,U,LOC,Y,L2-0.001,L2+0.001
ASEL,U,LOC,Z,-L1

ASEL,U,LOC,y,d1/2,l2
!cm,ar2,area
allsel

AFILLT,4,5,R1,
a1=_return
AFILLT,6,7,R2,
a2=_return
上面是我的命令流,但是我需要选择出面及点,选出的面进行倒圆,选择关键点则是为了连接成线后生成面和体。
在上面的命令中由于无法获取面号,只能把实际的面号查出来,在命令中直接输上了。AFILLT,4,5,R1,
AFILLT,6,7,R2,
我想通过命令获取出4,5,6,7的面号,及中间关键点的点号。

venture 发表于 2007-7-13 11:01

在上面的命令中由于无法获取面号,只能把实际的面号查出来,在命令中直接输上了。AFILLT,4,5,R1,
AFILLT,6,7,R2,
我想通过命令获取出4,5,6,7的面号,及中间关键点的点号。

我知道你说的什么意思,你是想让程序自动获取面号,然后把参数传到afillt中进行倒角。
想让命令自动获取面号,首先要知道面的一些特殊属性,然后用这些属性通过asel选取面(这时不知道面号,用asel中面号选取是不可能的),最后在选择的面中用*get获取面号,整个过程中是不涉及面号的,最后获取的是面号。如果你要选取的面没有较特殊的属性,这个方法较难实现。
ps:命令流中也不一定强求全部参数化,如果实现起来很困难就不要在这上面浪费一些时间了。:@)

koalabear 发表于 2007-7-13 11:09

venture 你好,不好意思。我翻了书,也没有找到get可以获取面体号的命令格式,get命令好像是获取指定体或面的其他属性的函数。
能否示范一下。非常感谢。

venture 发表于 2007-7-13 11:28

asel,,loc,x,0
*get,n,area,0,num,max
上面的命令是:
选择hot spot x=0的面,然后再从你选择的面中提取最大的面号赋值给n。如果你选择的面只有1个,那n就是你选择的面号。当然asel还可以用其他属性来选择,如果选中多个面,尽量用asel,u,使得选中的面只有1个。

koalabear 发表于 2007-7-13 11:31

刚才知道思路了。谢谢了venture。
应该是把单独的面选择出来,然后获取面的最大或者最小号就可以了。

koalabear 发表于 2007-7-13 11:33

AFILLT,4,5,R1,
a1=_return
AFILLT,6,7,R2,
a2=_return
我定义的这两个面a1和a2,在教程上应该是倒圆后产生的面,为什么却是接管上的两个面?是教材错误还是我命令错误?

venture 发表于 2007-7-13 11:33

原帖由 koalabear 于 2007-7-13 11:31 发表 http://www.chinavib.com/forum/images/common/back.gif
刚才知道思路了。谢谢了venture。
应该是把单独的面选择出来,然后获取面的最大或者最小号就可以了。
恩,基本思路是这样,不过方法有点笨,如果你找到好的方法一起来交流。:@)

venture 发表于 2007-7-13 11:39

原帖由 koalabear 于 2007-7-13 11:33 发表 http://www.chinavib.com/forum/images/common/back.gif
AFILLT,4,5,R1,
a1=_return
AFILLT,6,7,R2,
a2=_return
我定义的这两个面a1和a2,在教程上应该是倒圆后产生的面,为什么却是接管上的两个面?是教材错误还是我命令错误?
那你自己找找看是什么原因,现在看到长长的命令流就:@L 。

salutsun 发表于 2009-4-23 13:01

嗯 我也想这个问题来着
我觉得应该有这么一个命令选择一点所有包含这个点的面都被选中 。。。这样就方便多了
不知道有人知道是否有这个命令根据line, attached to area , 来选中area 的??
页: [1]
查看完整版本: 面倒圆命令流问题