ADAMS宏的使用

仿真效果

仿真一个绳子绕着滚筒缠绕 

 

1、前期准备

在SW等建模软件中画一个圆筒,圆筒旁边画100段小圆柱体,用来模拟绳子

adams中设置单位为:MMKS

adams写宏的地方 

工具->宏->编辑->新建     (白色方框里宏的名称随便写)

adams运行宏的地方

工具->宏->调试

点击 调试 里面的 导入自己写的宏程序,然后点击 运行 ,即可运行宏,可以批量创建接触或者运动副

2、使用宏添加99个球面副

使用球副将相邻两个小段连接起来,100个小段需要99个球面副,即需要循环99次

//将这个宏命名为:   MODEL_2    (这个名字必须和下面的名字一样)

Defaults model model_name=.MODEL_2

//创建变量:ip  设置初始值为: 2

variable create variable_name=ip integer_value=2

//使用while循环  当number<=100的时候执行循环里的操作

while condition=(number<=100)

//创建 spherical(球副)运动副     将运动服命名为 joint_ip   (ip=2,3,4..........101)

constraint create joint spherical joint_name=(eval("joint_"//ip))&

// i 实体的名称为  .rope.PARTip   (ip=2,3,4..........100)

i_part_name = (eval(".rope.PART"//ip))&

// j 实体的名称为  .rope.PARTip   (ip=3,4,5..........101)

j_part_name = (eval(".rope.PART"//ip+1))&

//每个球面副位置为  .rope.PART"//ipr//".cm       (cm表示质心)

location = (eval(".rope.PART"//ip//".cm"))

//  变量值加 1 进行下周期循环

variable modify variable_name = ip integer_value=(eval(ip+1))

// 结束循环

end

//删除变量及名称

variable delete variable_name = number

代码总结

Defaults model model_name=.MODEL_2
variable create variable_name=ip integer_value=2
while condition=(ip<=100)
constraint create joint spherical joint_name = (eval("joint_"//ip))&
i_part_name = (eval(".MODEL_2.PART"//ip)) &
j_part_name = (eval(".MODEL_2.PART"//ip+1)) &
location = (eval(".MODEL_2.PART"//ip//".cm"))
variable modify variable_name = ip integer_value = (eval(ip+1))
end
variable delete variable_name = ip

3、使用宏添加100个接触力

每个小段和圆筒之间添加接触力

接触的添加需要精确到 part 下面的 solid

Defaults model model_name=.MODEL_2
variable create variable_name=ip integer_value=1
while condition=(ip<=100)
contact creat contact_name = (eval('CONTACT_'//ip))&
i_geometry_name = .MODEL_2.PART102.solid101 &
j_geometry_name = (eval('.MODEL_2.PART'//ip+1//'.SOLID'//ip)) &
stiffness = 1.e+005 &
damping = 50 &
exponent = 1.5 &
dmax = 0.1 &
mu_static = 0.25 &
mu_dynamic = 0.2 &
stiction_transition_velocity = 0.1&
friction_transition_velocity = 10
variable modify variable_name=ip integer_value=(eval(ip+1))
end!while
variable delete variable_name=ip

4、其余连接和驱动

将最靠近圆筒的那个小段与圆筒进行 固定 连接

给圆筒添加 转动副  ,转动副的位置放在圆筒质心

给圆筒添加 旋转驱动  ,注意旋转的方向,速度设置为 10d*time

5、仿真

仿真时间50s ,步长 0.1   

运行查看效果

 

  • 6
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值