找回密码
 注册
Simdroid-非首页
查看: 689|回复: 17

[子程序] 请各位高手看看我这个FOR热源能不能实现多道焊

[复制链接]
发表于 2012-7-9 09:48:35 | 显示全部楼层 |阅读模式 来自 重庆沙坪坝区
本帖最后由 熊霸天 于 2012-7-9 09:54 编辑

仿照论坛上前辈的热源程序写了一个热源,目的是为了实现如下图所示的“多道焊热源的平移与延时启动



如上图所示,我希望在堆焊完第一条后,根据对应的时间步,平移热源到第二个堆焊条,然后在使热源移动。

下面是我的热源程序,我的思路是通过判定JSTEP来使热源移动,但是不知道怎么回事,走完第一条焊条后第二条焊条的热源上不去。好像没有引用成功。

      SUBROUTINE DFLUX(FLUX,SOL,JSTEP,JINC,TIME,NOEL,NPT,COORDS,JLTYP,
     1                 TEMP,PRESS,SNAME)
c     
      INCLUDE 'ABA_PARAM.INC'
DIMENSION COORDS(3),FLUX(2),TIME(2)
      CHARACTER*80 SNAME
IF(JSTEP.eq.1)THEN
CALL DFLUX1(FLUX,SOL,JSTEP,JINC,TIME,NOEL,NPT,COORDS,JLTYP,
     1                  TEMP,PRESS,SNAME )
ELSE IF(JSTEP.eq.3)THEN
CALL DFLUX2(FLUX,SOL,JSTEP,JINC,TIME,NOEL,NPT,COORDS,JLTYP,
     2                  TEMP,PRESS,SNAME )
END IF
RETURN
      END
      


      SUBROUTINE DFLUX1(FLUX,SOL,JSTEP,JINC,TIME,NOEL,NPT,COORDS,JLTYP,
     1                 TEMP,PRESS,SNAME)
C
      INCLUDE 'ABA_PARAM.INC'

      DIMENSION COORDS(3),FLUX(2),TIME(2)
      CHARACTER*80 SNAME
q=800
v=0.005
d=v*TIME(2)
x=COORDS(1)
y=COORDS(2)
z=COORDS(3)
x0=0
y0=0
z0=0.0025
a=0.0028
b=0.0034
c=0.0032
PI=3.1415
heat=6*sqrt(3.0)*q/(a*b*c*PI*sqrt(PI))
shape=exp(-3*(x-x0)**2/c**2-3*(y-y0-d)**2/a**2-3*(z-z0)**2/b**2)
C     JLTYP=1,表示为体热源
JLTYP=1
      FLUX(1)=heat*shape
      RETURN
      END


      SUBROUTINE DFLUX2(FLUX,SOL,JSTEP,JINC,TIME,NOEL,NPT,COORDS,JLTYP,
    1                TEMP,PRESS,SNAME)
C
      INCLUDE 'ABA_PARAM.INC'

      DIMENSION COORDS(3),FLUX(2),TIME(2)
      CHARACTER*80 SNAME
q=800
v=0.005
d=v*TIME(2)
x=COORDS(1)
y=COORDS(2)
z=COORDS(3)
x0=0.025
y0=0
z0=0.0025
a=0.0028
b=0.0034
c=0.0032
PI=3.1415
heat=6*sqrt(3.0)*q/(a*b*c*PI*sqrt(PI))
shape=exp(-3*(x-x0)**2/c**2-3*(y-y0-d)**2/a**2-3*(z-z0)**2/b**2)
C     JLTYP=1,表示为体热源
JLTYP=1
      FLUX(1)=heat*shape
      RETURN
      END

我想请问一下,在abaqus里面不能实现这样的多焊道热源的设定吗?还是我的这个热源程序编写错误?
请高手和前辈指正,谢谢
PS:才接触for语言,很多都不懂,我坚信是能实现的,只是我的写法有问题。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×

评分

1

查看全部评分

 楼主| 发表于 2012-7-9 09:56:20 | 显示全部楼层 来自 重庆沙坪坝区
Simdroid开发平台
烦请各位前辈看看,很渴望能解决这个问题。
回复 不支持

使用道具 举报

 楼主| 发表于 2012-7-9 18:11:03 | 显示全部楼层 来自 重庆沙坪坝区
本帖最后由 熊霸天 于 2012-7-9 18:11 编辑

已解决,是time(2)的问题,查看了手册之后,将其改为time(1)就行了,因为如果用time(2)第二个热源就已经跑出区域了。不知道的去查看abaqus 帮助文档即可

这是效果图,第二个焊道在第一个焊道走完之后才开始走。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
回复 不支持

使用道具 举报

发表于 2012-9-26 22:20:35 | 显示全部楼层 来自 四川自贡
你这个牛叉   让我想到了一个解决问题的方法  非常感谢哈!!
回复 不支持

使用道具 举报

发表于 2012-11-8 15:36:32 | 显示全部楼层 来自 江西南昌
熊霸天 发表于 2012-7-9 18:11
已解决,是time(2)的问题,查看了手册之后,将其改为time(1)就行了,因为如果用time(2)第二个热源就已经跑 ...

能留个联系方式交流下吗
回复 不支持

使用道具 举报

发表于 2013-1-27 22:05:41 | 显示全部楼层 来自 北京
lz我想问一下如果要在一个step中同时焊的话程序要怎么改?
回复 不支持

使用道具 举报

发表于 2013-3-7 18:29:58 | 显示全部楼层 来自 江苏南京
类似的问题,有希望了
回复 不支持

使用道具 举报

发表于 2013-7-17 22:59:39 | 显示全部楼层 来自 浙江杭州
lijinzhisss 发表于 2013-1-27 22:05
lz我想问一下如果要在一个step中同时焊的话程序要怎么改?

你的问题解决了吗
回复 不支持

使用道具 举报

发表于 2013-8-17 20:13:49 | 显示全部楼层 来自 大连理工大学
有用,好使,赞一个
回复 不支持

使用道具 举报

发表于 2013-8-19 09:24:47 | 显示全部楼层 来自 大连理工大学
熊霸天 发表于 2012-7-9 18:11
已解决,是time(2)的问题,查看了手册之后,将其改为time(1)就行了,因为如果用time(2)第二个热源就已经跑 ...

我想问一下,如果我想实现对接焊,焊完第一道后再在对面接着焊接第二道,子程序该怎么更改?
回复 不支持

使用道具 举报

发表于 2015-11-29 09:51:53 | 显示全部楼层 来自 湖北武汉
谢谢楼主,解决了我的大难题
回复 不支持

使用道具 举报

发表于 2016-11-25 12:49:12 | 显示全部楼层 来自 青海西宁
想问一下如果要在一个step中同时焊的话程序要怎么改?
回复 不支持

使用道具 举报

发表于 2016-11-25 12:57:02 | 显示全部楼层 来自 青海西宁
热源求指导
回复 不支持

使用道具 举报

发表于 2018-5-8 10:35:03 | 显示全部楼层 来自 重庆沙坪坝区
楼主是将所有的time(2)都改为time(1)吗
回复 不支持

使用道具 举报

发表于 2018-10-18 16:43:41 | 显示全部楼层 来自 吉林长春
abaqussss 发表于 2018-5-8 10:35
楼主是将所有的time(2)都改为time(1)吗

请问您知道这个time(1)怎么改了吗
回复 不支持

使用道具 举报

发表于 2019-10-21 21:47:17 | 显示全部楼层 来自 陕西西安
请问各位这是什么热源?
回复 不支持

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-4-24 13:00 , Processed in 0.061980 second(s), 15 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表