- 积分
- 10
- 注册时间
- 2007-1-4
- 仿真币
-
- 最后登录
- 1970-1-1
|
本帖最后由 mlj0016 于 2010-7-9 15:24 编辑
先请大家帮个忙。本人在“建设家园”版申请MARC版的版主,希望大家能去捧个场,谢啦。
言归正传,介绍一下今天的子程序forcem。
其实《二次开发》上最初的例子,介绍的就是这个子程序。我写的和这个例子几乎相同,区别就是路径不同。子程序如下:
subroutine forcem(press,th1,th2,nn,n)
implicit real*8 (a-h, o-z)
dimension th1(3), th2(3), n(7)
include 'C:\MSC.Software\Marc\2010\marc2010\common\creeps'
if (th1(1).le.30.and.th1(1).ge.20.and.th1(2).le.(4*(time_beg_inc
$ +1)).and.th1(2).ge.(4*time_beg_inc)) then
press=0.002
end if
th2(1)=0.0d0
th2(2)=0.0d0
th2(3)=-1.0d0
return
end
说明一下,载荷沿着y轴移动,速度为4mm/s,载荷范围x方向10mm,y方向4mm。
需要指出的是,在marc2005中,使用cptim作为增量步开始时间,timinc作为时间增量,
而在marc2010中,使用这两个变量时出了些问题。可能与声明有关。因此改用time_beg_inc作为增量步开始时间。
这个子程序非常简单,需要注意的是,必须在job的analysis options中选择follower force,才能实现我们希望的载荷的移动。大家可以分别选择follower force和no follower force计算一下,结果的区别显而易见。
另外,如果大家注意的话,我在已经介绍的这四个子程序中,三次都用到了“移动”。相信大家能够很好的掌握这种方式了。
对于这样的一个简单子程序,通过一些变化,如坐标变换,就可以实现圆形、环状、正弦分布等力的范围、力的大小的变化。过些日子将专门发帖介绍一下坐标变换的应用。
模拟结果如图。
模型与子程序见附件。
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?注册
×
评分
-
2
查看全部评分
-
|