- 积分
- 10
- 注册时间
- 2006-3-2
- 仿真币
-
- 最后登录
- 1970-1-1
|
发表于 2010-2-10 15:16:25
|
显示全部楼层
来自 广东佛山
我把楼主的程序,嵌入到自己编的python里,选取cell,但是,通不过,老是显示 invalid arguments for region,不知道是什么问题啊
流程:
1.画part,再partition
2.material
3.直接赋予section,或者用程序选cell,这一步不成功
预祝大家新年好,虎年大吉!
# -*- coding: mbcs -*-
#
# ABAQUS/CAE Version 6.6-1 replay file
# Internal Version: 2006_03_22-16.31.34 69548
# Run by kongdong on Wed Feb 10 14:32:28 2010
#
# from driverUtils import executeOnCaeGraphicsStartup
# executeOnCaeGraphicsStartup()
#: Executing "onCaeGraphicsStartup()" in the site directory ...
from abaqus import *
from abaqusConstants import *
from caeModules import *
from driverUtils import executeOnCaeStartup
executeOnCaeStartup()
Mdb()
### 生成part,并partition
s = mdb.models['Model-1'].ConstrainedSketch(name='__profile__',
sheetSize=200.0)
g, v, d, c = s.geometry, s.vertices, s.dimensions, s.constraints
s.setPrimaryObject(option=STANDALONE)
s.rectangle(point1=(0.0, 0.0), point2=(10.0, 10.0))
p = mdb.models['Model-1'].Part(name='Part-1', dimensionality=THREE_D,
type=DEFORMABLE_BODY)
p = mdb.models['Model-1'].parts['Part-1']
p.BaseSolidExtrude(sketch=s, depth=10.0)
s.unsetPrimaryObject()
p = mdb.models['Model-1'].parts['Part-1']
del mdb.models['Model-1'].sketches['__profile__']
p = mdb.models['Model-1'].parts['Part-1']
c = p.cells
pickedCells = c.getSequenceFromMask(mask=('[#1 ]', ), )
e, v1, d1 = p.edges, p.vertices, p.datums
p.PartitionCellByPlanePointNormal(normal=e[7], cells=pickedCells,
point=p.InterestingPoint(edge=e[7], rule=MIDDLE))
p = mdb.models['Model-1'].parts['Part-1']
c = p.cells
pickedCells = c.getSequenceFromMask(mask=('[#3 ]', ), )
e1, v2, d2 = p.edges, p.vertices, p.datums
p.PartitionCellByPlanePointNormal(normal=e1[3], cells=pickedCells,
point=p.InterestingPoint(edge=e1[3], rule=MIDDLE))
### 材料参数
mdb.models['Model-1'].Material(name='Material-1')
mdb.models['Model-1'].materials['Material-1'].Elastic(table=((100.0, 0.3), ))
mdb.models['Model-1'].HomogeneousSolidSection(name='Section-1',
material='Material-1', thickness=1.0)
p = mdb.models['Model-1'].parts['Part-1']
c = p.cells
##### 选择cells,并赋予截面性质(1)
##cells = c.getSequenceFromMask(mask=('[#f ]', ), )
##region = regionToolset.Region(cells=cells)
##p = mdb.models['Model-1'].parts['Part-1']
##p.SectionAssignment(region=region, sectionName='Section-1', offset=0.0)
########### 以上没有问题!在使用以下python程序自动选取,就不行了
### 用程序来实现选择cells,并赋予截面性质(2)
p = mdb.models['Model-1'].parts['Part-1']
c = p.cells
xyzRange=[(-1,1000),(-1,1000),(-1,1000)]
myObjects = []
for cell in p.cells:
ptsList = []
flag = 1
ptsList.append(cell.pointOn[0])
#Get the vertices on the face
for index in cell.getVertices():
ptsList.append(p.vertices[index].pointOn[0])
for ptCoords in ptsList:
if (ptCoords[0] < xyzRange[0][0] or ptCoords[0] > xyzRange[0][1]):
flag = 0
break
if (ptCoords[1] < xyzRange[1][0] or ptCoords[1] > xyzRange[1][1]):
flag = 0
break
if (ptCoords[2] < xyzRange[2][0] or ptCoords[2] > xyzRange[2][1]):
flag = 0
break
if flag == 1:
myObjects.append(cell)
p = mdb.models['Model-1'].parts['Part-1']
p.SectionAssignment(region=myObjects, sectionName='Section-1', offset=0.0) |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?注册
×
|