You are here
ABAQUS, partitioning an edge
Hello Everyone,
Does anyone knows how it is possible to partition an edge in one step with multiple points (like multiple datum points or multiple parameter values)? I know how to partition one edge one by one. The problem of doing it one by one is the amount of time that it takes to do that. For example if I want to put 50 points on one edge I have to pick that edge 50 times and partition it, which takes a lot of time.
I am doing the whole process by scripting with Python so I would be glad if the solutions are in scripting format (I am using ABAQUS 2016).
Thanks,
Navid
- Navid Moheb's blog
- Log in or register to post comments
- 5437 reads
Comments
Can be done using Macromanager
If you know the coordinates of every point of the structure and the line two point make, then it is possible to use macromanager to draw the required sketch and then mesh it.
ABAQUS, partitioning an edge by iteration in Python
You can run this example script to see how partitioning of an edge can be done iteratively in Python:
from abaqus import *
from abaqusConstants import *
Mdb()
myModel = mdb.Model(name='myModel')
import part
s = myModel.ConstrainedSketch(name='__profile__',sheetSize=200.0)
s.rectangle(point1=(-100,10), point2=(100,-10))
p = myModel.Part(name='Part1', dimensionality=THREE_D, type=DEFORMABLE_BODY)
p.BaseSolidExtrude(sketch=s, depth=25.0)
del myModel.sketches['__profile__']
e = p.edges
pickedEdge = e.findAt(((50.,10.,25.), ))
EdgeIndex=pickedEdge[0].index
EdgeIndex=4
# parameters for edge partition by 50 points
param=range(0,50)
param=param[::-1]
param = [(i+1)/((i+2)* 1.0) for i in param]
# perform partition of edge
for i in param:
p.PartitionEdgeByParam(edges=pickedEdge, parameter=i)
c=p.cells[0]
for i in range(8,len(p.vertices)):
print(p.vertices[i].pointOn)
I hope this helps
George