基于python的abaqus二次开发(基础入门)_第1页
基于python的abaqus二次开发(基础入门)_第2页
基于python的abaqus二次开发(基础入门)_第3页
基于python的abaqus二次开发(基础入门)_第4页
基于python的abaqus二次开发(基础入门)_第5页
已阅读5页,还剩4页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第第页基于python的abaqus二次开发(基础入门)基于python的abaqus⼆次开发(基础⼊门)致命诡计

关键点在于:三种输⼊到Python解释器,然后abaqus处理变为inp⽂件,继⽽交给求解器,求解器计算并产出。

1.三种输⼊本质都是python脚本:GUI是⾃动⽣成脚本,命令⾏(提⽰区下⽅)是输⼊脚本

2.abaqus内嵌了封装好的python解释器。封装了abaqus模块。

3.abaqus与求解器的关系类似于pycharm与python的关系。核⼼是求解器,abaqus只是⽤来输送求解器可以理解的⽂件(inp)和分析求解器产出的⽂件(odb)

4.很多的⼯作是为了⽣成inp⽂件。⽽不引⽤模块等标准化的操作,不会⽣成也不会影响之前⽣成的inp,所以可⽤命令⾏当计算器等(因为命令⾏会输⼊到python)

5.有些时候不是为了⽣成inp,只是为了操作abaqus界⾯。(前处理的最后⼀步)

3个根对象;container代表可以存放多个

不同的命名空间完全独⽴,命名空分为脚本命名空间和⽇志命名空间。其中仅GUI脚本在⽇志空间执⾏(换句话说,GUI操作⾃动⽣成rpy⽂件)

补充:⽇志空间⽣成的rpy⽂件⽆法直接被脚本空间识别,需要引⼊模块并修改变量名

创建脚本的⽅法:

1.宏程序

file-macromanager宏程序,优点只截取想要的操作。

⽤runscript调⽤时,宏程序代码中def是⽅法下的操作,应删除此⾏,并其他⾏顶格对齐

import__main__

defMacro1():

importction

czechimportregionToolt

importdisplayGroupMdbTooltasdgm

importpart

importmaterial

importasmbly

outragedimportstep

importinteraction

2.借助abaqus.rpy⽂件

使⽤notepad+修改成脚本命名空间的语句

读取脚本

(很多没写)

file-runscript读取脚本

写脚本的逻辑

怎么样快速美白补充:在命令⾏⾥写脚本不能回车换⾏,否则直接执⾏

fromabaqusimport*

#导⼊所有的abaqus模块,具体⽤到哪个在具体导⼊

fromabaqusConstantsimport*

#导⼊常量模块,⽐如

1.关于调⽤、创建等

⼀般调⽤⽤⼩写且有s,创建⽤⼤写

<dels['Model-1'].Part(name='Part-1',dimensionality=THREE_D,type=DEFORMABLE_BODY)

#此处的THREE_D属于常量

#Part为利⽤构造函数创建了对象Part-1

#通过赋予给变量创造函数,可以⽤变量名直接调⽤。python⾥调⽤类的意思

<dels['Model-1'].parts['Part-1']

#⽤命令⾏操作时,会在单个创建完后在命令⾏中上⾯这个,代表调⽤进了部件库中

#此处part为调⽤⾄部件库中

#当然也可以作为路径,做在这个part中的其他操作。如果不加[]则所有

问:如何理解['Model-1]这种结构呢?

答:可以当成是python中的字典,如‘Model-1’代表key,其value包含part等字典,接着调⽤其中的‘Part-1’的value,可以证明这⼀点的是改名操作。如

<dels['Model-1'].Part(name='Part-1')

<dels['Model-1'].parts['Part-1].changeKey(fromName='Part-1',toName='22')

#更改key名

**关于抽象对象

firstaid问:何为抽象对象

答:pressure、concentratedforce都属于load,load是抽象对象

昆山英语培训

step也是抽象对象。创建时应该⽤具体对象,⽽不是抽象对象

吊古战场文原文及翻译myModel.StaticStep(name='beamLoad',previous='Initial',timePeriod=1.0,

initialInc=0.1,description='Loadthetopofthebeam.')

2.⼀些特别的点

1.tValues代表改变只读的属性

shellSection=dels['Model-1'].HomogeneousShellSection(name='SteelShell',thickness=1,material='Steel')shellSection.tValues(thickness=2)

#改变了thickness

2.输⼊和修改数据

addNodes#添加节点

addElements#添加单元

3.增加场变量的输出数据

addData

4.复制功能

first=dels['Model-1'].Part(name='Part-1')

cond=dels['Model-1'].Part(name='Part-2',objectToCopy=first)

可结合抽象对象,⽐如被复制的对象使⽤HomogeneousSolidSection,复制对象可直接⽤Section构造

#objectToCopy为复制

5.删除

delmypart

6.tab键(在命令⾏中)

调⽤时tab键可以⾃动补全没写内容

7.视窗⾥指定显⽰对象

ssion.viewport['Viewport-1'].tValue(displayedObject=object1)

#在视窗Viewport-1中显⽰object1

#显⽰对象可以为part、asmbly、sketch、odb、xyplot或者None

☆☆创建需要按顺序,Model→Sketch→Part→拉伸→部件实例→⽹格

3.查询功能

vp=ssion.viewport['Viewport-1']

vp.__members__#查询对象

vp.__methods__#查询⽅法

4.关于region区域

1.区域region可以定义集合t、表⾯对象surfaceobject等

2.可以⽤在Load、Mesh、Set等命令中

3.⽤findAt查找顶点vertex、边edge、⾯face、体cell是不错的⽅法

#前⾯sketch部分没写

door=myModel.Part(name='Door',

dimensionality=THREE_D,type=DEFORMABLE_BODY)

hujiangdoor.BaSolidExtrude(sketch=mySketch,depth=20)#创造三维部件

myAsmbly=Asmbly#装配

doorInstance=myAsmbly.Instance(name='Door-1',part=door,

dependent=OFF)#⽣成部件实例

Vertices=doorINstance.vertices.findAt(((-40,30,0),),((40,0,0),))#选择两个顶点。((-40,30,0),)固定格式

myLoad=myModel.ConcentrateForce(

name='Force',createStepName='impact',

region=(Vertices,),cf1=12.50E4)

#对顶点施加集中⼒,region=((Vertices,⾯1+⾯2,边1+边2),)同⼀实例的相同属性部分可以以+相加

hei5.草图根据点绘制直线

mysketch=mymodel.ConstrainedSketch(name='SketchA',sheetSize=200.)#创建图纸

#分为内外点

xyCoordsInner=((-5,20),(5,20),(15,0),(-15,0),(-5,20))#点,按可连接顺序写出,且⾸尾回环xyCoordsOuter=((-10,30),(10,30),(40,-30),(30,-30),(20,-10),(-20,-10),(-30,-30),(-40,-30),(-10,30))#利⽤循环连接起点

forirange(len(xyCoordsInner)-1):

mysketch.Line(point1=xyCoordsInner[i],point2=xyCoordsInner[i+1])

turbulenceforirange(len(xyCoordsOuter)-1):

mysketch.Line(point1=xyCoordsOuter[i],point2=xyCoordsOuter[i+1])

6.草图⾥的裁剪

按绘图顺序标号,每条线为⼀个,也就是说矩形是四个,从左边线顺时针。

标号从2开始。线经过剪切后就是新的线。标号也就是新的。

如图:先画了矩形框,再画圆,再画直径线

线4被剪切后则为新线8

实例

#创建⾓点矩形框

mySketch.CircleByCenterPerimeter(center=(0.0,0.0),point1=(15.0,0.0))#创建圆⼼-半径的圆

mySketch.Line(point1=(0.0,15.0),point2=(0.0,-15.0))

#直线

g=ry

#声明g

#起始标号到7,裁剪⽽未消失的线依次产⽣新标号

mySketch.autoTrimCurve(curve1=g[2],point1=(0,0))

mySketch.autoTrimCurve(curve1=g[4],point1=(10,0))

mySketch.autoTrimCurve(curve1=g[6],point1=(-15,0))

mySketch.autoTri

温馨提示

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

最新文档

评论

0/150

提交评论