abaqus 二次开发详解

更新时间:2023-06-17 09:08:49 阅读: 评论:0

#开头的为注释行.
' f6 i% [" v# V: r4 ^4 q第一步, 建立建模环境, 这一步中py将从abaqus中导入建模所需的所有程序模块.; R' Y: h9 l, ?& D0 E6 t# f/ b2 R' @
from part import *0 ], m7 H1 b+ b7 R  C- Y
接下来定义草图环境# d' N' T" w7 p, t+ D  L7 F
dels['Model A'].Sketch(name='__profile__', sheetSize=200.0)- b+ s! ]! N4 u- B' e0 Z. t( s
大班科学活动教案dels['Model A'].sketches['__profile__'].sketchOptions.tValues(constructionGeometry=ON, decimalPlaces=2, dimensionTextHeight=5.0, grid=ON, ' V4 I( {: I& ~& @( X' t8 k
    gridFrequency=2, gridSpacing=5.0, sheetSize=200.0, viewStyle=AXISYM)7 B/ e6 Z  h8 {2 T3 u$ u
上面的设定为大小200*200, 格栅间距为5, 文字标注高度为5.
工作培训2 z6 Y# v% Q/ i) ndels['Model A'].sketches['__profile__'].ObliqueConstructionLine(point1=(0.0, -100.0), point2=(0.0, 100.0))( U1 G. V9 x2 R6 D  T5 a! Y
热爱生活英文本句语句设定轴对称模型的对称轴线位置, o! n0 ]/ M5 |$ |
dels['Model A'].sketches['__profile__'].rectangle(point1=(0.0, 0.0),point2=(40.0, -40.0)): a8 u$ G0 r$ ]; g) c
该语句绘制矩形, 从点0,0 至点40,-40+ v* X2 h% h0 ]
鲜嫩近义词dels['Model A'].Part(dimensionality=AXISYMMETRIC, name='Boden', type=DEFORMABLE_BODY)
. h/ C' J0 f6 q/ t定义模型为轴对称, 名字为boden,为可变形体
- w" z( F5 H: d/ C2 {& p; n- W. tdels['Model A'].parts['Boden'].BaShell(dels['Model A'].sketches['__profile__'])7 z: ?0 I; T; d- }, T% n/ @
dels['Model A'].sketches['__profile__']7 n" N& {2 _0 ]8 ?& l/ n5 w2 V. t
绘图完成不要忘记收回建模环境所占的内存/ s( W- ^+ `3 `( r4 f

+ J4 g, ?# C, E' D' d* X9 I% I2 {# q1 i' ^' l# ?3 l
第二节: 材料定义      --------------------                 2楼- h. E7 |3 M( v( R
第三节: 装配            --------------------                 3楼4 q+ W! S) m8 ^9 }6 f$ B
第四节: 分析步定义   --------------------                 4楼
% I5 {; _' d& p, e! C/ Y什么东西回奶第五节: 接触定义      --------------------                 5楼6 _: X9 a- u2 N& M0 o+ x2 n% e
委屈的句子说说心情第六节: 荷载边界定义 -----------------                  6楼
8 h1 t: @5 m+ r$ l& E1 U: I, x第七节: 网格划分控制 ------------------                  7楼
) g- G& i, c; U, g# }3 {! a. o第八节, 任务提交及杂项功能   --------                  8楼
; b0 C9 w- L2 ^) C2 i8 }" K- d关于如何在python中提交多个任务的问题            9楼
第二节, 材料定义
* y9 j/ Z' |  ]& O7 A1 Pfrom material import *% m$ P, G& }; b( Y
from ction import *3 O2 r$ \* u9 Y
从ABAQUS提供的接口中导入材料库和组件库
8 |  D2 A- i' w* Rdels['Model-A'].Material(name='Boden')
; Q" A/ E4 E5 Q* u" I定义材料名6 h3 i4 a* o* o+ ~
dels['Model A'].materials['Boden'].Density(table=((2000.0, ), ))  S& u6 N2 D) w' L. H# k
定义材料密度' z! m5 d  D2 k
dels['Model A'].materials['Boden'].Elastic(table=((210546.3, 0.3333), ))
! F. f- D; R" j! G! @. s定义材料线弹性模量和泊松比, 其它的材料, 如弹塑性, 粘弹性材料均对应不同的对象函数.
" W5 m5 W4 u. L# P. fdels['Model A'].HomogeneousSolidSection(material='Boden', name='boden',thickness=1.0)# C4 a  a, F$ b1 v5 O4 G6 N
dels['Model A'].parts['Boden'].assignSection(region=Region(dels['Model A'].parts['Boden'].faces[0:1]), ctionName='boden')+ [$ q& q. Z- K0 H$ a
设定组件为坐标无关性材料,厚度为单位厚度, 并将属性附给所用的组件
第三节, 装配) s% Y2 I6 z( N/ K8 l9 C2 ]5 p8 |
from asmbly import *
; n( Q6 f3 `1 G+ ?; ^- T. |0 F首先, 导入装配所用到的对象
0 B1 W) k! c4 ?0 Qdels['Model A'].rootAsmbly.DatumCsysByThreePoints(coordSysType=CYLINDRICAL, origin=(0.0, 0.0, 0.0), point1=(1.0, 0.0, 0.0), point2=(0.0,0.0, -1.0))3 r, h' g, F7 B4 x
定义坐标类型为柱坐标, 原点0,0,0,另外两个为单位向量, 确定该坐标轴的方向.0 p; r$ G' j( `
8 a
dels['Model A'].rootAsmbly.Instance(name='Boden-1', dels['Model A'].parts['Boden'])
2 o; [  H+ B! m/ _2 X生成草图对像boden的实体, 名字叫Boden-1. 无偏移插入
第四节, 定义分析步
4 O0 h' {8 N4 s3 vfrom step import *- w: X& R. L$ ~' R
象其它步一样, 先导入分析步要用到的模块/ o2 G/ T' e, Q$ Z# k; h
dels['Model A'].ImplicitDynamicsStep(initialInc=0.005, maxNumInc=1024,name='Step-1', noStop=OFF, nohaf=OFF, previous='Initial',timeIncrementationMethod=FIXED, timePeriod=5.12)
0 h4 J! X$ v/ S: q9 U, l8 k& e定义对动力隐式分析, 时长为0.005*1024=5.12个时间单位, 前一步为Initial( ^4 @, x0 Q# U4 A
dels['Model A'].fieldOutputRequests['F-Output-1'].tValues(variables=('U',))
" n- g. A8 U7 ~9 z( M定义输出到ODB文件的数据, 这里只定义了位移输出
# X7 q1 a9 _8 E+ D& Tdels['Model A'].fieldOutputRequests['F-Output-1'].tValues(frequency=1)+ \2 k  ?
* r, o3 F3 n' [" k
定义位移输出的频率为每步都输出. _. ?0 w' H4 a2 M  n
dels['Model A'].steps['Step-1'].Restart(frequency=1, overlay=ON)2 l0 u  q( `# y/ ~
定义重启动析, 每一步记录, 只记录最后一次的正确状态
第五节, 定义接触5 X9 a9 {6 E9 ?4 v9 S
from interaction import *
8 b4 S5 P9 J! c0 \" ^依然是先导入所用的模块
4 a4 R" Z$ Y$ a8 }( u) I; w  f- ~6 O' adels['Model A'].rootAsmbly.PartitionEdgeByParam(edges=(dels['Model A'].rootAsmbly.instances['Boden-1'].edges[3], ), parameter=0.975); _" A8 j) ~* P# G  M4 l
在上部即第3面的97.5%的地方设定一个点, 用于定义接触
; O3 K) u& T" u3 `) Fdels['Model A'].ContactProperty('IntProp-1')
- F& a+ E) T/ ~定义接触属性名
0 E9 a6 C6 Q6 f: a* Qdels['Model A'].interactionProperties['IntProp-1'].TangentialBehavior(formulation=FRICTIONLESS)5 T( k! v4 {6 ^9 M1 [" ?
dels['Model A'].interactionProperties['IntProp-1'].NormalBehavior(allowSeparation=OFF, augmentedLagrange=OFF, pressureOverclosure=HARD)
9 t0 f5 S, g$ w4 a1 xfar最高级定义接触特性,为无摩擦硬接触不允许分开
8 W' _" l" Q0 q4 f; u$ ?* wdels['Model A'].SurfaceToSurfaceContactStd(adjustMethod=NONE, 5 o3 M$ U2 k1 a$ Q4 Q9 O
    createStepName='Initial', interactionProperty='IntProp-1', master=Region(* H. d( J; L7 r' i) Q" U- h8 `
    dels['Model A'].rootAsmbly.instances['fun-1'].edges[0:1])
0 Q) n& g( n/ o& I* C$ ?    , name='Int-1', slave=Region(
2 H  K+ e) A6 U7 Y; b, y    dels['Model A'].rootAsmbly.instances['Boden-1'].edges[4:5]), z! y/ W3 ?/ C* V- M
    , sliding=FINITE); p( D. i- @- ^& N% `+ _( N4 T
这一句是建立接触对, 分别为两个面上的一条边, 这里边的定义由ABAQUS内定, 具体可以查阅参考手册
第六节, 荷载边界定义7 X+ r+ l6 ^4 s5 ^; f6 t
from load import *
, W7 w; A1 r" C5 vdels['Model A'].PeriodicAmplitude(a_0=1.0, data=((3.0, 1.1), (3.2, 1.7)), frequency=2.454, name='Fourier',start=0.0, timeSpan=STEP)
# ^6 V- A3 E4 K4 w2 s定义fourier级数表示的荷载
2 `5 m/ e% \: fdels['Model A'].Pressure(amplitude='Fourier', createStepName='Step-1', distribution=UNIFORM, magnitude=50.0, name='Load-1', region=Region(
/ o4 d7 x" `/ i8 X/ v6 Z    dels['Model A'].rootAsmbly.instances['fun-1'].edges[2:3]))
工作简历模板范文- D- m7 f4 D3 P! i1 C" X' d0 N定义压强, 设定加载的分析步,区域及放大系数0 b9 e$ y1 A# N: B9 e* L0 C' [1 `) b  t
dels['Model A'].DisplacementBC(amplitude=UNSET, createStepName='Initial',distribution=UNIFORM, localCsys=None, name='BC-1', region=Region(
/ x) M3 I# V2 V. g    dels['Model A'].rootAsmbly.instances['Boden-1'].edges[0:1]+\dels['Model A'].rootAsmbly.instances['Boden-1'].edges[2:3]+\dels['Model A'].rootAsmbly.instances['fun-1'].edges[3:4]), u1=S
ET,u2=UNSET, ur3=UNSET)
& P5 B$ e2 X2 e! Zdels['Model A'].DisplacementBC(amplitude=UNSET, createStepName='Initial', distribution=UNIFORM, localCsys=None, name='BC-2', region=Region(' ]7 }% P  R; v) N) E1 v# z
    dels['Model A'].rootAsmbly.instances['Boden-1'].edges[1:2]), u1=UNSET, u2=SET, ur3=UNSET)2 F# p5 k4 z* Z! B7 m8 I" k
设定边界位移为0的边界条件, 注意语法中对象相加的方法.

本文发布于:2023-06-17 09:08:49,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/89/1042274.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:定义   材料   接触
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图