八哥博士为大家呈献 001 (修改版) adams 中绳索的建立 更过资料请关注 qq 空间 2444035
开始之前,简单说一下
上一次写了这个例子,论坛里大家提意见说要加接触的东西,这次加上
另外一点,关于绳子参数的设置,这个东西每个人做的东西不一样,我怎么说呢,设置的根
据肯定是你要模拟物体的性质了,这个东西还是自己查查资料吧。
第一步,打开 ADAMS 建立一个新模型,model name 为 shengzi。如下图
注意:model name 要与以后要用到的 cmd 命令文件的名称一致
第二步,创建一个圆柱,长 50,半径 10,圆柱方向如下图所示,右键 rename,将名字改
为.shegnzi.PART_1
1
八哥博士为大家呈献 001 (修改版) adams 中绳索的建立 更过资料请关注 qq 空间 2444035
第三步,将圆柱 copy 300 次,方法是点击 tools>read cmmand file F2,选择相应的命令文件(关
于命令文件的建立看文章最后的注意事项)。
这里,我的命令文件如下
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
defaults model model_name=.shengzi
variable create variable_name=ip integer_value=1
while condition=(ip<300)
!set part
part copy part=.shengzi.part_1 new_part=(unique_name("part"))
!set part
variable modify variable_name=ip integer_value=(eval(ip+1))
end!while
variable delete variable_name=ip
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
2
八哥博士为大家呈献 001 (修改版) adams 中绳索的建立 更过资料请关注 qq 空间 2444035
第 4 步,移动复制的圆柱,依然是倒入相应的命令文件
命令文件如下(c1,c2,c3 代表的是移动的方向,这里我是向 y 方向移动的,所以 y=50,50
为一节圆柱的长度)
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
defaults model part_name = .shengzi.part_1
variable create variable_name=ip integer_value=1
while condition=(ip<300)
move object part_name = (eval(".shengzi.part_"//(ip+1))) &
c1=0 c2=50 c3=0 &
cspart_name = (eval(".shengzi.part_"//(ip)))
variable modify variable_name=ip integer_value=(eval(ip+1))
end!while
variable delete variable_name=ip
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
移动完成后的图形如下
3
八哥博士为大家呈献 001 (修改版) adams 中绳索的建立 更过资料请关注 qq 空间 2444035
第 5 步,调整 working grid 方向为 global yz 如下图
第 6 步,建立一个半径为 83.30127019 的圆柱,长度随意,但是不能太短,
位置如图
4
八哥博士为大家呈献 001 (修改版) adams 中绳索的建立 更过资料请关注 qq 空间 2444035
说明一下半径的由来:我计划圆柱这条绳子绕一个圆柱(下文中称为转轮),绳子两端都朝
下,这就需要绳子旋转一定角度,但是绳子是半径为 10 长 50 的圆柱组成,所以我希望,绕
滑轮的每个圆柱都与滑轮相切。我设定每个圆柱旋转 30 度,这样 6 个就可以转 180 度。
如下图 OD=25/tan15-10=83.30127019
这个问题应该不难,自己考虑吧
而且每个人画图估计都是有确定尺寸的,估计也不会这么算,但是如果转轮尺寸确定,绳子
中圆柱旋转的角度是这么算的,自己琢磨吧
A
B
C
D
O
5
八哥博士为大家呈献 001 (修改版) adams 中绳索的建立 更过资料请关注 qq 空间 2444035
第 7 步,将转轮移动到目标位置
我的移动方向步骤如下,
首先选择视图到 xy 平面
往 x 方向移动 93.30127019,往 y 方向移动 6025=120*15+25,就是 125 号圆柱的中间
第 8 步,给绳子添加 bushing,依然是读取 cmd 命令文件
代码如下
6
八哥博士为大家呈献 001 (修改版) adams 中绳索的建立 更过资料请关注 qq 空间 2444035
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
defaults model model_name=.shengzi
variable create variable_name=ip integer_value=1
while condition=(ip<300)
marker create &
marker_name = (eval(".shengzi.part_"//ip//".MARKER_1"//ip+1000)) &
location = 0.0,(eval(ip*50)),0.0 &
orientation = 0d, 90.0d, 90.0d
marker create &
marker_name = (eval(".shengzi.part_"//ip+1//".MARKER_1"//ip+2000)) &
location = 0.0,(eval(ip*50)),0.0 &
orientation = 0d, 90.0d, 90.0d
force create element_like bushing &
bushing_name = (eval(".shengzi.bushing_"//ip)) &
adams_id = (eval(ip)) &
i_marker_name = (eval(".shengzi.part_"//ip//".MARKER_1"//ip+1000)) &
j_marker_name = (eval(".shengzi.part_"//ip+1//".MARKER_1"//ip+2000)) &
damping = 1, 1, 1 &
stiffness = 5.9346e4,5.9346e4 ,5.9346e4 &
tdamping = 1 , 1 , 1 &
tstiffness = 5,5 ,5
variable modify variable_name=ip integer_value=(eval(ip+1))
end!while
variable delete variable_name=ip
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
7
八哥博士为大家呈献 001 (修改版) adams 中绳索的建立 更过资料请关注 qq 空间 2444035
这就是建立好的 bushing,注意 cmd 文件中的 bushing 方向的改变是通过建立的两个 marker
点的方向实现的。
第 9 步,让圆柱绕转轮旋转,完成后如下图,依然通过 cmd 文件实现
命令如下
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
variable create variable_name=wh integer_value=122
while condition=(wh<=127)
variable create variable_name=ip integer_value=(eval(wh))
while condition=(ip<=300)
if cond=(!str_is_space("part_varval(wh)"))
undo begin sup=yes
variable set variable=.mdi.TmpDefOriS str="body313"
defaults unit orientation_type=body123
move rotation part = (eval(".shengzi.part_"//ip)) &
csmarker = (eval(".shengzi.part_"//wh//".MARKER_1"))&
a1=2.0 a2=30d a3=0.0 about=yes
defaults unit orientation_type = "body313"
undo end
end
variable modify variable_name=ip integer_value=(eval(ip+1))
8