Python Scripts For Abaqus Learn By: Example Pdf

def getFirstDialog(self): return BeamPlugin(self) toolset = getAFXApp().getAFXMainWindow().getPluginToolset() toolset.registerGuiMenuButton( buttonText='Parametric Beam', object=BeamForm(None), messageId=AFXMode.ID_ACTIVATE, icon=None, kernelInitString='execfile("beam_script.py")' )

for filename in os.listdir(odb_folder): if filename.endswith('.odb'): odb_path = os.path.join(odb_folder, filename) odb = openOdb(path=odb_path) python scripts for abaqus learn by example pdf

# cantilever_beam.py from abaqus import * from abaqusConstants import * from caeModules import * length = 100.0 height = 10.0 force = 1000.0 youngs_mod = 2.1e5 poissons_ratio = 0.3 Create model modelName = 'CantileverBeam' myModel = mdb.Model(name=modelName) if 'Model-1' in mdb.models.keys(): del mdb.models['Model-1'] Create sketch s = myModel.ConstrainedSketch(name='BeamProfile', sheetSize=200.0) s.rectangle(point1=(0.0, -height/2), point2=(length, height/2)) Create part myPart = myModel.Part(name='Beam', dimensionality=TWO_D_PLANAR, type=DEFORMABLE_BODY) myPart.BaseShell(sketch=s) Create material material = myModel.Material(name='Steel') material.Elastic(table=((youngs_mod, poissons_ratio),)) Assign section (homogeneous solid) myPart.HomogeneousSolidSection(name='BeamSection', material='Steel', thickness=1.0) region = myPart.Set(cells=myPart.cells, name='BeamSet') myPart.SectionAssignment(region=region, sectionName='BeamSection') Mesh myPart.seedPart(size=5.0) myPart.generateMesh() Create assembly myAssembly = myModel.rootAssembly myAssembly.Instance(name='BeamInstance', part=myPart, dependent=ON) Step myModel.StaticStep(name='ApplyLoad', previous='Initial', initialInc=0.1, maxInc=0.1, minInc=1e-8) Boundary condition (fixed left edge) leftEdge = myAssembly.instances['BeamInstance'].edges.findAt(((0.0, 0.0),)) myModel.DisplacementBC(name='Fixed', createStepName='Initial', region=myAssembly.Set(edges=leftEdge, name='FixedSet'), u1=0.0, u2=0.0, ur3=0.0) Load (point force at right tip) rightVertex = myAssembly.instances['BeamInstance'].vertices.findAt(((length, 0.0),)) myModel.ConcentratedForce(name='TipForce', createStepName='ApplyLoad', region=myAssembly.Set(vertices=rightVertex, name='LoadSet'), cf2=-force) Create job and submit jobName = 'BeamAnalysis' myJob = mdb.Job(name=jobName, model=modelName) myJob.submit() myJob.waitForCompletion() print("Analysis completed!") Example 3: Automating Mesh Convergence Study Goal: Refine

for E in modulus_values: modelName = f'Model_E_int(E)' mdb.Model(name=modelName) # ... (beam creation similar to Example 1, but with E variable) # Omitted for brevity – reuse Example 1 with dynamic model naming model=modelName) myJob.submit() myJob.waitForCompletion()

Scripting enables automated parametric studies without manual GUI interaction. 5. Example 3: Automating Mesh Convergence Study Goal: Refine mesh iteratively and track stress at a critical point.

# Run job jobName = f'Job_E_int(E)' myJob = mdb.Job(name=jobName, model=modelName) myJob.submit() myJob.waitForCompletion()