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

上传人:风*** 文档编号:51294658 上传时间:2022-01-25 格式:DOC 页数:5 大小:34KB
收藏 版权申诉 举报 下载
Python二次开发程序详解(共5页)_第1页
第1页 / 共5页
Python二次开发程序详解(共5页)_第2页
第2页 / 共5页
Python二次开发程序详解(共5页)_第3页
第3页 / 共5页
资源描述:

《Python二次开发程序详解(共5页)》由会员分享,可在线阅读,更多相关《Python二次开发程序详解(共5页)(5页珍藏版)》请在装配图网上搜索。

1、精选优质文档-倾情为你奉上#Fundamentschwingungsstudie # , R5 , O0 G2 #nur geeignet fuer ABAQUS 6.4-1#6 8 z: F0 Q. K$ J* s+ o LN# erstellt von D.Chen in 2009 #6 P2 D2 o& |8 xe* m2 Q! _/ E5 #4 |o8 ?! U6 si9 r5 v& k+ a#开头的为注释行.6 e1 ( p$ d- l; 第一步, 建立建模环境, 这一步中py将从abaqus中导入建模所需的所有程序模块.6 O5 j8 8 ?1 Vfrom part import

2、* / K1 |7 _- m E4 R) ?接下来定义草图环境2 y: H$ ?& J1 e% % a p$ smdb.modelsModel-1.Sketch(name=_profile_, sheetSize=200.0)+ n w- u% q2 k, G9 n5 wmmdb.modelsModel-1.sketches_profile_.sketchOptions.setValues(constructionGeometry=ON, decimalPlaces=2, dimensionTextHeight=5.0, grid=ON, 5 $ , n3 Rt. 3 gridFrequenc

3、y=2, gridSpacing=5.0, sheetSize=200.0, viewStyle=AXISYM)0 V6 A9 p# Q7 xT7 k% C( - x! m上面的设定为大小200*200, 格栅间距为5, 文字标注高度为5.U/ M I$ m$ C3 S% Omdb.modelsModel-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;

4、9 Qmdb.modelsModel-1.sketches_profile_.rectangle(point1=(0.0, 0.0),point2=(40.0, -40.0)5 U! K& OV+ S0 m) B0 O/ A, e1 d该语句绘制矩形, 从点0,0 至点40,-40, z- - f6 I3 m5 . _# Ymdb.modelsModel-1.Part(dimensionality=AXISYMMETRIC, name=Boden, type=DEFORMABLE_BODY) Q6 z! q7 , O5 |- : F( W定义模型为轴对称, 名字为boden,为可变形体& b$

5、 C, G% x- )! Z z Imdb.modelsModel-1.partsBoden.BaseShell(sketch=mdb.modelsModel-1.sketches_profile_)% _# u4 A4 h9 e( P+ t: j# O7 H+ Tdel mdb.modelsModel-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

6、 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 imp

7、ort *1 N4 o! * Ufrom section import *4 D/ Q( Q$ G3 i. V/ i从ABAQUS提供的接口中导入材料库和组件库* O# g, D( u& Z3 B/ q- o4 )mdb.modelsModel-1.Material(name=Boden); + L0 Q8 u C X7 u5 Y定义材料名7 C/ l9 F4 H5 s: v. u+ zmdb.modelsModel-1.materialsBoden.Density(table=(2000.0, ), )7 K% N2 v v$ e: 7 u- o定义材料密度2 q x) o; # x0 a6

8、 Q! )9 )mdb.modelsModel-1.materialsBoden.Elastic(table=(.3, 0.3333), )2 U0 B% o, Y Q定义材料线弹性模量和泊松比, 其它的材料, 如弹塑性, 粘弹性材料均对应不同的对象函数.( G* n0 T, )8 Wmdb.modelsModel-1.HomogeneousSolidSection(material=Boden, name=boden,thickness=1.0)8 B1 n) X- A) Umdb.modelsModel-1.partsBoden.assignSection(region=Region(fa

9、ces=mdb.modelsModel-1.partsBoden.faces0:1), sectionName=boden)2 i7 KP1 O c, l设定组件为坐标无关性材料,厚度为单位厚度, 并将属性附给所用的组件第三节, 装配4 J/ r& Z& M$ Ip- jfrom assembly import *. p& V9 o s4 P8 A! k7 A首先, 导入装配所用到的对象$ ! I4 Z T5 ?& Ymdb.modelsModel-1.rootAssembly.DatumCsysByThreePoints(coordSysType=CYLINDRICAL, origin=(0

10、.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.modelsModel-1.rootAssembly.Instance(name=Boden-1, part=mdb.modelsModel-1.partsBoden)& 9 K6 W7 D X生成草图对像boden的实体, 名字叫Boden-1. 无偏移插入第四节, 定义分析步 T: , q

11、* k. _1 E( Afrom step import *( c0 Y: _) h! V_$ j# N% 象其它步一样, 先导入分析步要用到的模块8 b9 V* ?1 5 ?4 Bmdb.modelsModel-1.ImplicitDynamicsStep(initialInc=0.005, maxNumInc=1024,name=Step-1, noStop=OFF, nohaf=OFF, previous=Initial,timeIncrementationMethod=FIXED, timePeriod=5.12)# L0 i% n7 Wn4 S( t定义对动力隐式分析, 时长为0.0

12、05*1024=5.12个时间单位, 前一步为Initialj+ Z- _; : e: E) Z; mdb.modelsModel-1.fieldOutputRequestsF-Output-1.setValues(variables=(U,)- h/ k4 j2 P. P9 O& b定义输出到ODB文件的数据, 这里只定义了位移输出# r2 f i$ gY: 9 : )mdb.modelsModel-1.fieldOutputRequestsF-Output-1.setValues(frequency=1)# v( )0 y& |4 T6 l/ m: |定义位移输出的频率为每步都输出! eo

13、$ p0 I, k! # X$ h: )mdb.modelsModel-1.stepsStep-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.modelsModel-1.rootAssembly.PartitionEdgeByParam(

14、edges=(mdb.modelsModel-1.rootAssembly.instancesBoden-1.edges3, ), parameter=0.975)5 _?Z$ P2 I2 在上部即第3面的97.5%的地方设定一个点, 用于定义接触1 a1 A3 ?% s3 c |% n1 x; Vmdb.modelsModel-1.ContactProperty(IntProp-1)6 ?. L; u8 c+ U& / T t! 定义接触属性名 a# 1 $ R& l3 d. : o j M* bmdb.modelsModel-1.interactionPropertiesIntProp-1

15、.TangentialBehavior(formulation=FRICTIONLESS). ?* Q3 L$ A- |& o+ P! wmdb.modelsModel-1.interactionPropertiesIntProp-1.NormalBehavior(allowSeparation=OFF, augmentedLagrange=OFF, pressureOverclosure=HARD): H6 b& Z O$ L( W8 |4 O定义接触特性,为无摩擦硬接触不允许分开6 E+ L* i$ t/ Jmdb.modelsModel-1.SurfaceToSurfaceContact

16、Std(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.modelsModel-1.rootAssembly.instancesfun-1.edges0:1)6 q+ & H q0 S$ _ , name=Int-1, slave=Region(6 H M a- D( N+ R0 8 B4 J side1Edges=mdb.modelsModel-1.ro

17、otAssembly.instancesBoden-1.edges4:5X% 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.modelsModel-1.PeriodicAmplitude(a_0=1.0, data=(3.0, 1.1), (3.2, 1.7), frequency=2

18、.454, name=Fourier,start=0.0, timeSpan=STEP)% M% J: X6 R) G定义fourier级数表示的荷载( j4 K6 L3 F1 mdb.modelsModel-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.modelsModel-1.rootAssembly.instancesfun-1

19、.edges2:3) o& f; a3 O( 9 o9 ; K4 O r T定义压强, 设定加载的分析步,区域及放大系数i0 N6 R: ; D6 Z, L* gmdb.modelsModel-1.DisplacementBC(amplitude=UNSET, createStepName=Initial,distribution=UNIFORM, localCsys=None, name=BC-1, region=Region(8 k! l7 y v( z+ _/ H edges=mdb.modelsModel-1.rootAssembly.instancesBoden-1.edges0:1

20、+mdb.modelsModel-1.rootAssembly.instancesBoden-1.edges2:3+mdb.modelsModel-1.rootAssembly.instancesfun-1.edges3:4), u1=SET,u2=UNSET, ur3=UNSET) p: |$ n u! g- ?mdb.modelsModel-1.DisplacementBC(amplitude=UNSET, createStepName=Initial, distribution=UNIFORM, localCsys=None, name=BC-2, region=Region(! u#

21、Z$ Y/ s8 T& g edges=mdb.modelsModel-1.rootAssembly.instancesBoden-1.edges1:2), u1=UNSET, u2=SET, ur3=UNSET), SW 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

22、.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.modelsModel-1.rootAssembly1 u3 ctT& m6 U8 m9 f1 = a1.

23、instancesBoden-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(el

24、emCode=CAX4, elemLibrary=STANDARD), O) e. f X: y, zelemType2 = mesh.ElemType(elemCode=CAX3, elemLibrary=STANDARD)/ w i# |+ j: j3 F+ Ya1 = mdb.modelsModel-1.rootAssembly4 X- nBO, 5 a7 b! I Ff1 = a1.instancesfun-1.faces P! c. H+ V# + S/ | ?+ Gfaces1 = f10:1! r8 G1 h4 . 8 g L& h9 EJregions =(faces1, )+

25、 f7 . M9 f9 R R$ _a1.setElementType(regions=regions, elemTypes=(elemType1, elemType2)$ f1 ?, j |# J8 C定义其中一个物体的网格为一次4结点单元,如果其中有无法划分成四边形单元的情况, 则用三角形一次3结点单元.2 y9 + t r6 I2 mdb.modelsModel-1.rootAssembly.seedPartInstance(regions=(mdb.modelsModel-1.rootAssembly.instancesfun-1, ), size=0.5)2 a$ u. c* ?6

26、omdb.modelsModel-1.rootAssembly.seedPartInstance(regions=(mdb.modelsModel-1.rootAssembly.instancesBoden-1, ), size=1)1 M+ Z# C3 u9 b( V; A6 w4 D, W定义网格划分全局单元大小.8 d, y0 z+ O! y7 f umdb.modelsModel-1.rootAssembly.generateMesh(regions=(mdb.modelsModel-1.rootAssembly.instancesBoden-1,mdb.modelsModel-1.r

27、ootAssembly.instancesfun-1)- j; V( )- i+ G )2 m1 R按照定义划分单元第八节, 任务提交及杂项功能- y& n5 ; ?7 b+ m3 sZ8 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.modelsFall-Muster)* _ m7 b9 a. # a; l拷贝模型N* M3 E V* / X 4

28、 a+ B! y+ mdb.modelsFall-015.materialsBoden.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

29、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,

30、 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; sv& O0 nmdb.jobsJob-015.submit() , o9 V% j; X3 f, ?( ( 2 Z提交任务关于如何在python中提交多个任务的问题:)

31、?2 , ( i: & Q如果您使用下面这样的命令做的提交 s+ A0 c6 u: Z9 v. G5 V! c; _mdb.jobsJob-01.submit()/ p n/ z# 0 U8 D0 9 Pmdb.jobsJob-02.submit()7 MA! 0 q4 u$ F; mdb.jobsJob-03.submit()+ M+ e?! Z1 N+ Y+ t你就会看到, 所有的任务是一次性提交的, 多个任务在一起运行, 这肯定不是你想看到的结果, 如何完成一个接着一个的提交呢, 其实很简单, 在每个任务后面加上一句; q j- u% R* Z o3 ( p( Xmdb.jobsJob-

32、01.waitForCompletion() k0 ?9 i) C: W就可以了.: b8 k8 E0 F2 O; M那么上面的语句就改为7 Q$ |: X: a, c q5 Z; U8 mdb.jobsJob-01.submit(). |7 O; d% T+ K. qmdb.jobsJob-01.waitForCompletion()V3 m/ q+ q5 f7 _mdb.jobsJob-02.submit()8 k% y0 F0 b: s, imdb.jobsJob-02.waitForCompletion()7 K8 u, - h0 u& H8 amdb.jobsJob-03.submit()+ t% d3 q+ 3 B# H& U& p M4 Emdb.jobsJob-03.waitForCompletion(), y, W6 l+ C% a$ w X# a专心-专注-专业

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

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

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


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