欢迎来到装配图网! | 帮助中心 装配图网zhuangpeitu.com!
装配图网
ImageVerifierCode 换一换
首页 装配图网 > 资源分类 > DOC文档下载
 

Python二次开发程序详解(共5页)

  • 资源ID:51294658       资源大小:34KB        全文页数:5页
  • 资源格式: DOC        下载积分:20积分
快捷下载 游客一键下载
会员登录下载
微信登录下载
三方登录下载: 微信开放平台登录 支付宝登录   QQ登录   微博登录  
二维码
微信扫一扫登录
下载资源需要20积分
邮箱/手机:
温馨提示:
用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
支付方式: 支付宝    微信支付   
验证码:   换一换

 
账号:
密码:
验证码:   换一换
  忘记密码?
    
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

Python二次开发程序详解(共5页)

精选优质文档-倾情为你奉上#  Fundamentschwingungsstudie      #" , R5 , O0 G2 #  nur geeignet fuer ABAQUS 6.4-1  #6 8 z: F0 Q. K$ J* s+ o" L  N#    erstellt von D.Chen in 2009   #6 P2 D2 o& |8 x  e* m2 Q! _/ E5 #4 |  o8 ?! U6 s  i9 r5 v& k+ a#开头的为注释行.6 e1 ( p$ d- l; 第一步, 建立建模环境, 这一步中py将从abaqus中导入建模所需的所有程序模块.6 O5 j8 8 ?1 Vfrom part import * / K1 |7 _- m' E4 R) ?接下来定义草图环境2 y: H$ ?& J1 e% % a" p$ smdb.models'Model-1'.Sketch(name='_profile_', sheetSize=200.0)+ n" w- u% q2 k, G9 n5 w  mmdb.models'Model-1'.sketches'_profile_'.sketchOptions.setValues(constructionGeometry=ON, decimalPlaces=2, dimensionTextHeight=5.0, grid=ON, 5 $ , n3 R  t. 3     gridFrequency=2, gridSpacing=5.0, sheetSize=200.0, viewStyle=AXISYM)0 V6 A9 p# Q7 x  T7 k% C( - x! m上面的设定为大小200*200, 格栅间距为5, 文字标注高度为5.  U/ M' I$ m$ C3 S% Omdb.models'Model-1'.sketches'_profile_'.ObliqueConstructionLine(point1=(0.0, -100.0), point2=(0.0, 100.0)5 o2 ?0 s. ?. ' p& Q$ e2 j! T本句语句设定轴对称模型的对称轴线位置% n8 L$ _2 $ O; 9 Qmdb.models'Model-1'.sketches'_profile_'.rectangle(point1=(0.0, 0.0),point2=(40.0, -40.0)5 U! K& O  V+ S0 m) B0 O/ A, e1 d该语句绘制矩形, 从点0,0 至点40,-40, z- - f6 I3 m5 . _# Ymdb.models'Model-1'.Part(dimensionality=AXISYMMETRIC, name='Boden', type=DEFORMABLE_BODY)" Q6 z! ' q7 , O5 |- : F( W定义模型为轴对称, 名字为boden,为可变形体& b$ C, G% x- )! Z z Imdb.models'Model-1'.parts'Boden'.BaseShell(sketch=mdb.models'Model-1'.sketches'_profile_')% " _# u4 A4 h9 e( P+ t: j# O7 H+ Tdel mdb.models'Model-1'.sketches'_profile_'# h9 h0 P3 C7 S2 v: Z) A, T绘图完成不要忘记收回建模环境所占的内存6 X( Z% I& N, s) 7 |. U8 R& h% I0 C* . p7 f8 c6 k/ + F" U* E d第二节: 材料定义      -                 5楼6 F: Y8 P& X$ I( - H第三节: 装配             -                 6楼- x6 J9 9 V; O3 m第四节: 分析步定义   -                 8楼' m+ Y+ P1 m7 Z! e6 第五节: 接触定义      -                 12楼$ i2 e* 5 ' w. O9 C第六节: 荷载边界定义 -                   17楼( i! h. )( p8 v7 Z. )& o* _第七节: 网格划分控制 -                  18楼; J# & z1 H! l7 k Q第八节, 任务提交及杂项功能   -                  24楼  8 i! E# h$ Y3 h3 n6 O" U关于如何在python中提交多个任务的问题            29楼第二节, 材料定义' 9 G. H, V* m4 0 Wfrom material import *1 N4 ' o! * Ufrom section import *4 D/ Q( Q$ G3 i. V/ i从ABAQUS提供的接口中导入材料库和组件库* O# g, D( u& Z3 B/ q- o4 )mdb.models'Model-1'.Material(name='Boden'); + L0 Q8 u' C' X7 u5 Y定义材料名7 C/ l9 F4 H5 s: v. u+ zmdb.models'Model-1'.materials'Boden'.Density(table=(2000.0, ), )7 K% N2 v" v$ e: 7 u- o定义材料密度2 q x) o; # x0 a6 Q! )9 )mdb.models'Model-1'.materials'Boden'.Elastic(table=(.3, 0.3333), )2 U0 B% o, Y' Q定义材料线弹性模量和泊松比, 其它的材料, 如弹塑性, 粘弹性材料均对应不同的对象函数.( G* n0 T, )8 Wmdb.models'Model-1'.HomogeneousSolidSection(material='Boden', name='boden',thickness=1.0)8 B1 n) X- A  ) Umdb.models'Model-1'.parts'Boden'.assignSection(region=Region(faces=mdb.models'Model-1'.parts'Boden'.faces0:1), sectionName='boden')2 i7 K  P1 O" c, l设定组件为坐标无关性材料,厚度为单位厚度, 并将属性附给所用的组件第三节, 装配4 J/ r& Z& M$ I  p- jfrom assembly import *. p& V9 o' s4 P8 A! k7 A首先, 导入装配所用到的对象$ ! I4 Z' T5 ?& Ymdb.models'Model-1'.rootAssembly.DatumCsysByThreePoints(coordSysType=CYLINDRICAL, origin=(0.0, 0.0, 0.0), point1=(1.0, 0.0, 0.0), point2=(0.0,0.0, -1.0)( r# n8 I6 Z; 9 q& y定义坐标类型为柱坐标, 原点0,0,0,另外两个为单位向量, 确定该坐标轴的方向.* P+ K3 0 V: c( E7 k* n, X" mdb.models'Model-1'.rootAssembly.Instance(name='Boden-1', part=mdb.models'Model-1'.parts'Boden')& 9 K6 W7 D' X生成草图对像boden的实体, 名字叫Boden-1. 无偏移插入第四节, 定义分析步" T: , q* k. _1 E( Afrom step import *( c0 Y: _) h! V  _$ j# N% 象其它步一样, 先导入分析步要用到的模块8 b9 V* ?1 5 ?4 Bmdb.models'Model-1'.ImplicitDynamicsStep(initialInc=0.005, maxNumInc=1024,name='Step-1', noStop=OFF, nohaf=OFF, previous='Initial',timeIncrementationMethod=FIXED, timePeriod=5.12)# L0 i% n7 W  n4 S( t定义对动力隐式分析, 时长为0.005*1024=5.12个时间单位, 前一步为Initial  j+ Z- _; : e: E) Z; mdb.models'Model-1'.fieldOutputRequests'F-Output-1'.setValues(variables=('U',)- h/ k4 j2 P. P9 O& b定义输出到ODB文件的数据, 这里只定义了位移输出# r2 f' i$ g  Y: 9 : )mdb.models'Model-1'.fieldOutputRequests'F-Output-1'.setValues(frequency=1)# v( )0 y& |4 T6 l/ " m:   |定义位移输出的频率为每步都输出! e  o$ p0 I, k! # X$ h: )mdb.models'Model-1'.steps'Step-1'.Restart(frequency=1, overlay=ON)' b8 k+ ' U- k$ Q定义重启动析, 每一步记录, 只记录最后一次的正确状态第五节, 定义接触5 l, S, # ?6 j( 0 l7 n! Z6 Kfrom interaction import *" Q2 h& r  - s" f$ J; S. i依然是先导入所用的模块- b" J! : v3 x) M0 U* M3 E7 ! Fmdb.models'Model-1'.rootAssembly.PartitionEdgeByParam(edges=(mdb.models'Model-1'.rootAssembly.instances'Boden-1'.edges3, ), parameter=0.975)5 _  ?  Z$ P2 I2 在上部即第3面的97.5%的地方设定一个点, 用于定义接触1 a1 A3 ?% s3   c' |% n1 x; Vmdb.models'Model-1'.ContactProperty('IntProp-1')6 ?. L; u8 c+ U& / T" t! 定义接触属性名' a# 1 $ R& l3 d. : o" j' M* bmdb.models'Model-1'.interactionProperties'IntProp-1'.TangentialBehavior(formulation=FRICTIONLESS). ?* Q3 L$ ' A- |& o+ P! wmdb.models'Model-1'.interactionProperties'IntProp-1'.NormalBehavior(allowSeparation=OFF, augmentedLagrange=OFF, pressureOverclosure=HARD): H6 b& Z   O$ L( W8 |4 O定义接触特性,为无摩擦硬接触不允许分开6 E+ L* i$ t/ Jmdb.models'Model-1'.SurfaceToSurfaceContactStd(adjustMethod=NONE, 6 )2 b7 t: p' t8 ?/ a9 J    createStepName='Initial', interactionProperty='IntProp-1', master=Region(& h% P6 M2 p! J" u    side1Edges=mdb.models'Model-1'.rootAssembly.instances'fun-1'.edges0:1)6 q+ & H" q0 S$ _    , name='Int-1', slave=Region(6 H" M' a- D( N+ R0 8 B  4 J    side1Edges=mdb.models'Model-1'.rootAssembly.instances'Boden-1'.edges4:5  X% 4 T$ W4 k7 )- _/ R    , sliding=FINITE)& G; S4 n# I1 H2 a6 Y/ V这一句是建立接触对, 分别为两个面上的一条边, 这里边的定义由ABAQUS内定, 具体可以查阅参考手册.第六节, 荷载边界定义1 2 S! o6 G* i$ C4 Cfrom load import *# R1 q- T0 h4 kmdb.models'Model-1'.PeriodicAmplitude(a_0=1.0, data=(3.0, 1.1), (3.2, 1.7), frequency=2.454, name='Fourier',start=0.0, timeSpan=STEP)% M% J: X  6 R) G定义fourier级数表示的荷载( j4 K6 L3 F1 mdb.models'Model-1'.Pressure(amplitude='Fourier', createStepName='Step-1', distribution=UNIFORM, magnitude=50.0, name='Load-1', region=Region(8 x. |" c6 s2 z- m- P    side1Edges=mdb.models'Model-1'.rootAssembly.instances'fun-1'.edges2:3)" o& f; a3 O( 9 o9 ; K4 O" r T定义压强, 设定加载的分析步,区域及放大系数  i0 N6 R: ; D6 ' Z, L* gmdb.models'Model-1'.DisplacementBC(amplitude=UNSET, createStepName='Initial',distribution=UNIFORM, localCsys=None, name='BC-1', region=Region(8 k! l7 y' v( z+ _/ H    edges=mdb.models'Model-1'.rootAssembly.instances'Boden-1'.edges0:1+mdb.models'Model-1'.rootAssembly.instances'Boden-1'.edges2:3+mdb.models'Model-1'.rootAssembly.instances'fun-1'.edges3:4), u1=SET,u2=UNSET, ur3=UNSET)" p: |$ n' u! g- ?mdb.models'Model-1'.DisplacementBC(amplitude=UNSET, createStepName='Initial', distribution=UNIFORM, localCsys=None, name='BC-2', region=Region(! u# Z$ Y/ s8 T& g    edges=mdb.models'Model-1'.rootAssembly.instances'Boden-1'.edges1:2), u1=UNSET, u2=SET, ur3=UNSET), S  W" Y# )2 D4 L" V5 z# P设定边界位移为0的边界条件, 注意语法中对象相加的方法.第七节, 网格划分控制8 ( d0 w* Y" R5 t, hfrom mesh import *$ N% J! F8 : cimport mesh0 P7 w9 S% s* d) k1 m. r9 * F导入网格划分模块. r- W( . , |1 celemType1 = mesh.ElemType(elemCode=CAX8, elemLibrary=STANDARD,secondOrderAccuracy=OFF, hourglassControl=STIFFNESS, distortionControl=OFF)- c4 M) 9 O1 Q, L1 elemType2 = mesh.ElemType(elemCode=CAX6M, elemLibrary=STANDARD): e$ B: ?3 l7 |3 G& i5 M1 X' O1 G* Ya1 = mdb.models'Model-1'.rootAssembly1 u3 c  t  T& m6 U8 m9 f1 = a1.instances'Boden-1'.faces1 w! X2 n0 R# x5 T2 faces1 = f10:1# h# r6 Q% Y" ?. + nregions =(faces1, )' g4 E7 a* b1 Y0 W; F( G3 Da1.setElementType(regions=regions, elemTypes=(elemType1, elemType2)8 h6 D  _1 V: F4 h4 定义其中一个物体的网格为二次8结点单元, 如果其中有无法划分成四边形单元的情况, 则用三角形二次6结点单元." L( e) j) D' lelemType1 = mesh.ElemType(elemCode=CAX4, elemLibrary=STANDARD), O) e. f' X: y, zelemType2 = mesh.ElemType(elemCode=CAX3, elemLibrary=STANDARD)/ w" i# |+ j: j3 F+ Ya1 = mdb.models'Model-1'.rootAssembly4 X- n  B  O, 5 a7 b! I" Ff1 = a1.instances'fun-1'.faces" P! c. H+ V# + S/ |' ?+ Gfaces1 = f10:1! r8 G1 h4 . 8 g" L& h9 E  Jregions =(faces1, )+ f7 . M9 f9 R R$ _a1.setElementType(regions=regions, elemTypes=(elemType1, elemType2)$ f1 ?, j' |# J8 C定义其中一个物体的网格为一次4结点单元,如果其中有无法划分成四边形单元的情况, 则用三角形一次3结点单元.2 y9 + t r6 I2 mdb.models'Model-1'.rootAssembly.seedPartInstance(regions=(mdb.models'Model-1'.rootAssembly.instances'fun-1', ), size=0.5)2 a$ u. c* ' ?6 omdb.models'Model-1'.rootAssembly.seedPartInstance(regions=(mdb.models'Model-1'.rootAssembly.instances'Boden-1', ), size=1)1 M+ Z# C3 u9 b( V; A6 w4 D, W定义网格划分全局单元大小.8 d, y0 z+ O! y7 f" umdb.models'Model-1'.rootAssembly.generateMesh(regions=(mdb.models'Model-1'.rootAssembly.instances'Boden-1',mdb.models'Model-1'.rootAssembly.instances'fun-1')- j; V( " )- i+ G" )2 m1 R按照定义划分单元第八节, 任务提交及杂项功能- y& n5 ; ?7 b+ m3 s  Z8 p7 h" amdb.models.changeKey(fromName='Model-1', toName='Fall-Muster'), t, v8 d7 p+ T3 0 B修改模型名称& & X6 b5 ! G/ Pmdb.Model(name='Fall-015', objectToCopy=mdb.models'Fall-Muster')* _" m7 b9 a. # a; l拷贝模型  N* M3 E V* / X" 4 a+ B! y+ mdb.models'Fall-015'.materials'Boden'.elastic.setValues(table=(.3, 0.15),): Q/ F* d  . B/ N修改模型中的材料属性  . ) _7 c( K. N4 a- Jmdb.Job(contactPrint=OFF, description='', echoPrint=OFF, explicitPrecision=7 M- j: I; k3 H4 H+ F    SINGLE, historyPrint=OFF, model='Fall-015', modelPrint=OFF, 9 a7 Q" u8 P5 _! V0 H6 h3 h    multiprocessingMode=THREADS, name='Job-015', nodalOutputPrecision=SINGLE, % j* d* a) B- F& b4 _! H' s    numCpus=1, numDomains=1, parallelizationMethodExplicit=LOOP, % Z2 u% q# . A; t f# U$ Y    parallelizationMethodStandard=TREE, preMemory=1024.0, scratch='', ( t) s/ Z/ & r7 h4 L" _    standardMemory=2048.0, standardMemoryPolicy=MODERATE, type=ANALYSIS, " i6 h$ h3 G0 O    userSubroutine='')7 p9 u8 T' N8 F( Q+ o! m+ b生成任务# ' a6 V& K- B) j7 % L4 b. bmdb.saveAs(pathName='D:/temp/FundamentSchwingungStudie')* . , n4 Y+ h% 保存模型& f, i; s  v& O0 nmdb.jobs'Job-015'.submit()' , o9 V% j; X3 f, ?( ( 2 Z提交任务关于如何在python中提交多个任务的问题:) ?2 , ( i: & Q如果您使用下面这样的命令做的提交" s+ A0 c6 u: Z9 v. G5 V! c; _mdb.jobs'Job-01'.submit()/ p n/ z# 0 U8 D0 9 Pmdb.jobs'Job-02'.submit()7 M  A! 0 q4 u$ F; mdb.jobs'Job-03'.submit()+ M+ e  ?! Z1 N+ Y+ t你就会看到, 所有的任务是一次性提交的, 多个任务在一起运行, 这肯定不是你想看到的结果, 如何完成一个接着一个的提交呢, 其实很简单, 在每个任务后面加上一句; q j- u% R* Z' o3 ( p( Xmdb.jobs'Job-01'.waitForCompletion()" k0 ?9 i) C: W就可以了.: b8 k8 E0 F2 O; M那么上面的语句就改为7 Q$ |: X: a, c" q5 Z; U8 mdb.jobs'Job-01'.submit(). |7 O; d% T+ K. qmdb.jobs'Job-01'.waitForCompletion()  V3 m/ q+ q5 f7 _mdb.jobs'Job-02'.submit()8 k% y0 F0 b: s, imdb.jobs'Job-02'.waitForCompletion()7 K8 u, - h0 u& H8 amdb.jobs'Job-03'.submit()+ t% d3 q+ 3 B# H& U& p' M4 Emdb.jobs'Job-03'.waitForCompletion(), y, W6 l+ C% a$ w" X# a专心-专注-专业

注意事项

本文(Python二次开发程序详解(共5页))为本站会员(风***)主动上传,装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知装配图网(点击联系客服),我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!