-1

我的问题可能听起来很简单,但我对 Abaqus 脚本的了解几乎不存在。我的目标是在同一零件中表示一组多边形,其中每个多边形代表零件的 2D 表面(在 3D 空间中)。我正在创建一个脚本来为每个多边形生成一个草图(不确定这是否是最好的方法)。然后为草图创建一个曲面。

我怎么能做到这一点?

非常感谢!

编码:

from abaqus import *
from abaqusConstants import *
import sketch
import part

MyModel=mdb.Model(name='Model-1')


#-------------FIRST POLYGON------------------------------- 
s1=MyModel.ConstrainedSketch(name='__poly0__', sheetSize=100)

g, v, d, c = s1.geometry, s1.vertices, s1.dimensions, s1.constraints

s1.Line(point1=(10.0, 10.0), point2=(10.0, 15.0))
s1.Line(point1=(10.0, 15.0), point2=(-10.0, 15.0))
s1.Line(point1=(-10.0, 15.0), point2=(-10.0, -15.0))
s1.Line(point1=(-10.0, -15.0), point2=(10.0, -15.0))
s1.Line(point1=(10.0, -15.0), point2=(10.0, -10.0))
s1.Line(point1=(10.0, -10.0), point2=(5, 0))
s1.Line(point1=(5, 0), point2=(10.0, 10.0))

#-------------SECOND POLYGON-------------------------------
s2=MyModel.ConstrainedSketch(name='__poly1__', sheetSize=100)

g, v, d, c = s2.geometry, s2.vertices, s2.dimensions, s2.constraints

s2.Line(point1=(10.0, 10.0), point2=(5, 0))
s2.Line(point1=(5, 0), point2=(10.0, -10.0))
s2.Line(point1=(10.0, -10.0), point2=(10.0, -15.0))
s2.Line(point1=(10.0, -15.0), point2=(15.0, -15.0))
s2.Line(point1=(15.0, -15.0), point2=(15.0, 0.0))
s2.Line(point1=(15.0, 0.0), point2=(10, 10))

#----------ONE PART WITH TWO PLANAR FACES (ONE PER POLYGON)-----
p = mdb.models['Model-1'].Part(name='Part-1', dimensionality=THREE_D,type=DEFORMABLE_BODY)
p = mdb.models['Model-1'].parts['Part-1']

#How can I put two planar faces here?

#First Polygon
#p.BaseShell(sketch=s1)
#del mdb.models['Model-1'].sketches['__poly0__']

#Second Polygon
#p.BaseShell(sketch=s2)
#del mdb.models['Model-1'].sketches['__poly1__']

#-------------------------------------------------------------
4

1 回答 1

1

表面可能意味着两件事。通常,在 Abaqus 术语中,SURFACE 是对零件或装配体的面或边的引用。它通常并不意味着平坦的部分。在 Abaqus 之外,创建曲面可以理解为创建平面零件。

这是一个像您一样的代码,它在 3D 空间中制作零件(2D 零件只有 Abaqus SURFACES 意义上的边缘)。然后它在两个面之一上创建一个 Abaqus SURFACE。

from abaqus import *
from abaqusConstants import *

s1 = mdb.models['Model-1'].ConstrainedSketch(name='__profile__',sheetSize=200.0)
g, v, d, c = s1.geometry, s1.vertices, s1.dimensions, s1.constraints
s1.Line(point1=(-21.25, 22.5), point2=(-33.75, -20.0))
s1.Line(point1=(-33.75, -20.0), point2=(-3.75, -32.5))
s1.Line(point1=(-3.75, -32.5), point2=(40.0, -25.0))
s1.Line(point1=(40.0, -25.0), point2=(25.0, 25.0))
s1.Line(point1=(25.0, 25.0), point2=(-21.25, 22.5))

#this creates the actual part - which is a planar surface that exists in 3D space
p = mdb.models['Model-1'].Part(name='Part-2', dimensionality=THREE_D,type=DEFORMABLE_BODY)

p = mdb.models['Model-1'].parts['Part-2']

p.BaseShell(sketch=s1)
del mdb.models['Model-1'].sketches['__profile__']


#the following finds and creates a "surface" on the part. 
f = p.faces
face=f.findAt(coordinates=(0.0,0.0,0.0))
face_ind=face.index
side1Faces=f[face_ind:face_ind+1]

p.Surface(side1Faces=side1Faces, name='Surf-1')

如果这不是您的问题,请在您的问题中解释更多。

于 2015-07-22T18:18:44.300 回答