galeblow 发表于 2009-9-27 09:20:45

【求救】关于ADAMS里基于宏命令批量复制、旋转轴的问题

我在做PART批量“复制、旋转、平移”时,遇到这样一个问题:
1、在全局坐标系下是合适的。参图1和图2:

http://home.simwe.com/attachment/200909/27/202857_1254013820k62O.jpg

图1

http://home.simwe.com/attachment/200909/27/202857_1254013821KfnH.jpg
图2

2、但,我是想其旋转轴并不是全局坐标的坐标轴,比如下图情况下,如何实现上述效

果?(参图3)

http://home.simwe.com/attachment/200909/27/202857_1254013822BQIq.jpg
附上述简单宏命令:

variable set variable_name=$_self.num integer=2
for variable_name=aaa start=1 end=30
!interface dialog execute dialog=.gui.par_cop undisplay=yes
part copy&
   part_name = .model_1.(eval("PART_"//$_self.num))&
   new_part_name = .model_1.(eval("PART_"//$_self.num+1))&
   &
   &
   &
   &
   &
   &
   
!interface dialog undisplay dialog=.gui.par_cop
!interface dialog execute dialog=.gui.mov_rot undisplay=yes
move rotation&
   part_name = .model_1.(eval("PART_"//$_self.num+1))   &
   &
   &
   &
   &
   &
   &
   &
   &
   about = yes&
   a1 = 0&
   a2 = 0&
   a3 = 12&
   &
   &
   &
   &
   
!interface dialog undisplay dialog=.gui.mov_rot
!interface dialog execute dialog=.gui.mov_tra undisplay=yes
move translation&
   part_name = .model_1.(eval("PART_"//$_self.num+1))   &
   &
   &
   &
   &
   &
   &
   &
   &
   c1 = 0&
   c2 = 0&
   c3 = 2&
   &
   &
   &
   &
   
!interface dialog undisplay dialog=.gui.mov_tra
variable set variable_name=$_self.num integer=(eval($_self.num+1))
end
variable delete variable_name=$_self.num

galeblow 发表于 2009-9-27 09:29:47

或者,能不能在执行“Tools/Command Navigator/move/rotation时”,能设置旋转轴吗?About的yes和no分别代表什么?
我觉得是不是能修改全局坐标系原点,使全局坐标系原点移动到指定的位置,比如图3所示“局部坐标系原点”位置?
拜托了!!

luckyli 发表于 2009-9-27 10:57:59

marker create marker=.model_1.ground.CS__1 &
       location=100.0, 100.0, 0.0 &
       orientation=0.0, 0.0, 0.0
marker attributes marker=.model_1.ground.CS__1 visibility=off
move rotation group_name=SELECT_LIST a1=45.0 a2=0.0 a3=0.0 about=yes &
    csmarker_name=.model_1.ground.CS__1
marker delete marker =.model_1.ground.CS__1

galeblow 发表于 2009-9-27 12:38:05

luckyli你好!感谢你的回复。
你是指建立一个参考点对吧?我试了一下,是可以通过移动对象,用"precision move”将图2用Macro做好的N个part(把N个part先作为一个GROUP)移动到指定点的位置,可以实现我的想法。
谢谢你!
我还在试验通过修改Macro的方法,就是在Rotation时,直接指定一个局部坐标轴的方法,达到这种效果,好像能成功,一会儿试验成功的话,再与大家分享。

galeblow 发表于 2009-9-27 13:32:00

试验成功!
就是调整了Rotation部分的宏,加了一个参考。具体的看Macro。

http://home.simwe.com/attachment/200909/27/202857_12540294521kgw.jpg

galeblow 发表于 2009-9-27 13:34:25

variable set variable_name=$_self.num integer=3
for variable_name=aaa start=1 end=30
!interface dialog execute dialog=.gui.par_cop undisplay=yes
part copy&
   part_name = .model_1.(eval("PART_"//$_self.num))&
   new_part_name = .model_1.(eval("PART_"//$_self.num+1))&
   
!interface dialog undisplay dialog=.gui.par_cop

!interface dialog execute dialog=.gui.mov_rot undisplay=yes
!下述为增加了旋转轴,即相对于part_2的ENTITY,也就是"PART_2.CYLINDER_1"
   move rotation part = .model_1.(eval("PART_"//$_self.num+1))   &
   csentity = .model_1.PART_2.CYLINDER_1 &
   a1=0.0 a2=0.0 a3=12 about=yes
   
!interface dialog undisplay dialog=.gui.mov_rot

!interface dialog execute dialog=.gui.mov_tra undisplay=yes
   move translation&
   part_name = .model_1.(eval("PART_"//$_self.num+1))   &
   c1 = 0&
   c2 = 0&
   c3 = 2&
!interface dialog undisplay dialog=.gui.mov_tra

variable set variable_name=$_self.num integer=(eval($_self.num+1))
end
variable delete variable_name=$_self.num

hnzjch 发表于 2014-5-25 12:30:26

嗯,学习了,谢谢分享

zhanting 发表于 2014-5-29 20:47:44

TLAB神经网络超级学习手册2本
页: [1]
查看完整版本: 【求救】关于ADAMS里基于宏命令批量复制、旋转轴的问题