A complete example
of a property generation script is provided in the blog post “Property
generation scripts for assembled fasteners in
Abaqus/CAE”
in the
https://www.3ds.com/products-services/simulia/simulia-academic-program/learning-community/.
The script uses a method named getSurfaceSections that is
useful for assembled fastener property scripts. This method accepts a surface
name and returns a list of all section names found on the geometry underlying
the named surface region; see
Assembly object.
The getSurfaceSections method can be used to obtain
section information such as the material name and thickness, as shown in the
code fragment below.
def __init__(self, scriptName, modelName, fastenerName):
self.scriptName = scriptName
self.modelName = modelName
self.fastenerName = fastenerName
print 'Running script "%s" for "%s"' % (scriptName,
fastenerName)
assy = mdb.models[modelName].rootAssembly
eo = assy.engineeringFeatures.fasteners[fastenerName]
print eo.assignedSurfaces
diameter = getInput('Enter %s bolt diameter:' % scriptName)
print ' Bolt diameter: %s' % diameter
for aSurf in eo.assignedSurfaces:
sectNames = assy.getSurfaceSections(aSurf)
print ' %s: %s' % (aSurf, sectNames)
# No section assigned
if (len(sectNames) > 0 and sectNames[0] == ''):
continue
for section in sectNames:
sectObj = mdb.models[modelName].sections[section]
if (type(sectObj) == HomogeneousShellSectionType):
print ' %s: mat=%s, thk=%s' % \
(section, sectObj.material, sectObj.thickness)