首页/文章/ 详情

Abaqus-Python系列第二课-创建部件

1年前浏览2653

今天为Abaqus-Python系列第二课,主要讲解如何编写脚本实现创建一个部件,主要包含以下要点:

  • 创建新模型数据库;

  • 创建新2D草图;

  • 创建3D可变形实体部件;

  • 创建新视图;

  • 在新视图窗口显示新部件(如下图)。

                           

 

       该示例的脚本文件可通过输入以下命令拷贝到工作目录:

abaqus fetch job=modelAExample关于运行脚本的方式,上一课已经详细讲述,请点击回看。完整脚本代码如下:

modelAExample.py

 

#Asimple example: Creating a part.

from abaqus import *

from abaqusConstants import *

backwardCompatibility.setValues(includeDeprecated=True,reportDeprecated=False)

 

import sketch

import part

 

myModel= mdb.Model(name='Model A')

mySketch= myModel.ConstrainedSketch(name='Sketch A', sheetSize=200.0)

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))

 

fori in range(len(xyCoordsInner)-1):

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

 

fori in range(len(xyCoordsOuter)-1):

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

 

myPart= myModel.Part(name='Part A', dimensionality=THREE_D, type=DEFORMABLE_BODY)

myPart.BaseSolidExtrude(sketch=mySketch,depth=20.0)

myViewport= session.Viewport(name='Viewport for Model A', origin=(10, 10), width=150,height=100)

myViewport.setValues(displayedObject=myPart)

myViewport.partDisplay.setValues(renderStyle=SHADED)

接下来,我们看看这个脚本是如何创建出这个部件的。

 

代码详解:

fromabaqus import *       #导入Abaqus中的所有对象

fromabaqusConstants import *     

#导入Abaqus中的字符型常数,如True,THREE_D

importsketch             #导入Abaqus草图模块

importpart                 #导入Abaqus部件模块

以上几句代码主要是导入Abaqus的对象及模块。

myModel=mdb.Model(name='Model A')    

#建一个Abaqus模型,命名为Model A;并存入一个变量myModel

mySketch=myModel.ConstrainedSketch(name='SketchA', sheetSize=200.0)

#在模型ModelA内新建一个名为”SketchA”的草图,并将其赋给变量mySketch

  • 这里用到创建器,即大写字母开头的命令,ConstructedSketch(),用于创建对象;

  • 调用变量名myModel,变量名赋值后是有意义的,这样可以大大缩短代码长度,易懂易读。

 

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))

#创建内外线条顶点的坐标,每个点有XY坐标,因此每个点是包含二个元素的元组.

fori in range(len(xyCoordsInner)-1):

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

#通过for循环将多个点通过Line命令依次连起来

fori in range(len(xyCoordsOuter)-1):

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

#通过for循环将外部多个点通过Line命令依次连起来

Range()索引从0开始,len(xyCoordsInner)即为点的个数。如5个点,range(4)索引为0123,那么依次生成点1-22-33-44-5四条线,注意到点1和点5的坐标是一样的,所以生成的就是封闭的“口”字形。第二个循环类似。

 

myPart= myModel.Part(name='Part A', dimensionality=THREE_D, type=DEFORMABLE_BODY)

#创建一个名为“PartA”的3D可变形体部件,并将其存入变量myPart

myPart.BaseSolidExtrude(sketch=mySketch,depth=20.0)

#通过拉伸草图“mySketch20长度来生成3D实体部件

myViewport= session.Viewport(name='Viewport for Model A', origin=(10, 10), width=150,height=100)

#创建一个空视图,指定名称’Viewportfor Model A’,尺寸宽150x100,并存入变量myViewport

myViewport.partDisplay.setValues(renderStyle=SHADED)

#设置’myViewport’渲染方式为’SHADED’,并显示在myViewport窗口。

这就是整段创建part的代码,现在再看是不是也没那么难呢~

【1】参考《Abaqus Scripting User's Guide


来源:ABAQUS仿真世界
Abaqus渲染
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2023-08-17
最近编辑:1年前
yunduan082
硕士 | 仿真主任工程... Abaqus仿真世界
获赞 152粉丝 216文章 309课程 0
点赞
收藏
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈