# ------------------- # Begin driveshaft.py # ------------------- # # from abaqus import * import testUtils testUtils.setBackwardCompatibility() from abaqusConstants import * session.Viewport(name='Viewport: 1', origin=(1.25, 1.17187492549419), width=184.0, height=116.249992609024) session.viewports['Viewport: 1'].makeCurrent() from driverUtils import executeOnCaeStartup executeOnCaeStartup() #: Executing "onCaeStartup()" in the site directory ... Mdb() #: A new model database has been created. #: The model "Model-1" has been created. mdb.models.changeKey(fromName='Model-1', toName='Driveshaft') session.viewports['Viewport: 1'].setValues(displayedObject=None) import part import regionToolset import displayGroupMdbToolset as dgm s = mdb.models['Driveshaft'].Sketch(name='__profile__', sheetSize=20.0) g, v, d = s.geometry, s.vertices, s.dimensions s.sketchOptions.setValues(sheetSize=20.0, gridSpacing=0.5, grid=ON, gridFrequency=2, constructionGeometry=ON, dimensionTextHeight=0.5, decimalPlaces=2) s.setPrimaryObject(option=STANDALONE) s.unsetPrimaryObject() del mdb.models['Driveshaft'].sketches['__profile__'] s0 = mdb.models['Driveshaft'].Sketch(name='__profile__', sheetSize=50.0) g, v, d = s0.geometry, s0.vertices, s0.dimensions s0.sketchOptions.setValues(sheetSize=50.0, gridSpacing=1.0, grid=ON, gridFrequency=2, constructionGeometry=ON, dimensionTextHeight=1.0, decimalPlaces=2) s0.setPrimaryObject(option=STANDALONE) s0.Line(point1=(0.0, 0.0), point2=(10.0, 0.0)) p = mdb.models['Driveshaft'].Part(name='Centershaft', dimensionality=THREE_D, type=DEFORMABLE_BODY) p = mdb.models['Driveshaft'].parts['Centershaft'] p.BaseWire(sketch=s0) s0.unsetPrimaryObject() p = mdb.models['Driveshaft'].parts['Centershaft'] session.viewports['Viewport: 1'].setValues(displayedObject=p) del mdb.models['Driveshaft'].sketches['__profile__'] s = mdb.models['Driveshaft'].Sketch(name='__profile__', sheetSize=50.0) g, v, d = s.geometry, s.vertices, s.dimensions s.sketchOptions.setValues(sheetSize=50.0, gridSpacing=1.0, grid=ON, gridFrequency=2, constructionGeometry=ON, dimensionTextHeight=1.0, decimalPlaces=2) s.setPrimaryObject(option=STANDALONE) s.Line(point1=(-6.577848, 2.394141), point2=(0.0, 0.0)) p = mdb.models['Driveshaft'].Part(name='Inputshaft', dimensionality=THREE_D, type=DEFORMABLE_BODY) p = mdb.models['Driveshaft'].parts['Inputshaft'] p.BaseWire(sketch=s) s.unsetPrimaryObject() p = mdb.models['Driveshaft'].parts['Inputshaft'] session.viewports['Viewport: 1'].setValues(displayedObject=p) del mdb.models['Driveshaft'].sketches['__profile__'] s0 = mdb.models['Driveshaft'].Sketch(name='__profile__', sheetSize=50.0) g, v, d = s0.geometry, s0.vertices, s0.dimensions s0.sketchOptions.setValues(sheetSize=50.0, gridSpacing=1.0, grid=ON, gridFrequency=2, constructionGeometry=ON, dimensionTextHeight=1.0, decimalPlaces=2) s0.setPrimaryObject(option=STANDALONE) s0.Line(point1=(0.0, 0.0), point2=(16.577848, -2.394141)) p = mdb.models['Driveshaft'].Part(name='Outputshaft', dimensionality=THREE_D, type=DEFORMABLE_BODY) p = mdb.models['Driveshaft'].parts['Outputshaft'] p.BaseWire(sketch=s0) s0.unsetPrimaryObject() p = mdb.models['Driveshaft'].parts['Outputshaft'] session.viewports['Viewport: 1'].setValues(displayedObject=p) del mdb.models['Driveshaft'].sketches['__profile__'] import assembly import regionToolset import displayGroupMdbToolset as dgm a = mdb.models['Driveshaft'].rootAssembly session.viewports['Viewport: 1'].setValues(displayedObject=a) a = mdb.models['Driveshaft'].rootAssembly a.DatumCsysByDefault(CARTESIAN) p = mdb.models['Driveshaft'].parts['Centershaft'] a.Instance(name='Centershaft-1', part=p, dependent=OFF) a = mdb.models['Driveshaft'].rootAssembly p = mdb.models['Driveshaft'].parts['Inputshaft'] a.Instance(name='Inputshaft-1', part=p, dependent=OFF) a = mdb.models['Driveshaft'].rootAssembly p = mdb.models['Driveshaft'].parts['Outputshaft'] a.Instance(name='Outputshaft-1', part=p, dependent=OFF) p = mdb.models['Driveshaft'].parts['Outputshaft'] session.viewports['Viewport: 1'].setValues(displayedObject=p) del mdb.models['Driveshaft'].parts['Outputshaft'] p = mdb.models['Driveshaft'].parts['Centershaft'] session.viewports['Viewport: 1'].setValues(displayedObject=p) s = mdb.models['Driveshaft'].Sketch(name='__profile__', sheetSize=50.0) g, v, d = s.geometry, s.vertices, s.dimensions s.sketchOptions.setValues(sheetSize=50.0, gridSpacing=1.0, grid=ON, gridFrequency=2, constructionGeometry=ON, dimensionTextHeight=1.0, decimalPlaces=2) s.setPrimaryObject(option=STANDALONE) s.Line(point1=(10.0, 0.0), point2=(16.577848, -2.394141)) p = mdb.models['Driveshaft'].Part(name='Outputshaft', dimensionality=THREE_D, type=DEFORMABLE_BODY) p = mdb.models['Driveshaft'].parts['Outputshaft'] p.BaseWire(sketch=s) s.unsetPrimaryObject() p = mdb.models['Driveshaft'].parts['Outputshaft'] session.viewports['Viewport: 1'].setValues(displayedObject=p) del mdb.models['Driveshaft'].sketches['__profile__'] a = mdb.models['Driveshaft'].rootAssembly a.regenerate() a = mdb.models['Driveshaft'].rootAssembly session.viewports['Viewport: 1'].setValues(displayedObject=a) p = mdb.models['Driveshaft'].parts['Outputshaft'] session.viewports['Viewport: 1'].setValues(displayedObject=p) a = mdb.models['Driveshaft'].rootAssembly session.viewports['Viewport: 1'].setValues(displayedObject=a) import interaction import regionToolset import displayGroupMdbToolset as dgm a = mdb.models['Driveshaft'].rootAssembly p0 = a.instances['Inputshaft-1'] p0.rotateAboutAxis(axisPoint=(0.0, 0.0, 0.0), axisDirection=(0.0, 0.0, 1.0), angle=20.0) #: The instance Inputshaft-1 was rotated by 20 degrees about the axis defined by the point 0, 0, 0 and the vector 0, 0, 0 a = mdb.models['Driveshaft'].rootAssembly p0 = a.instances['Centershaft-1'] p0.rotateAboutAxis(axisPoint=(0.0, 0.0, 0.0), axisDirection=(0.0, 0.0, 1.0), angle=20.0) #: The instance Centershaft-1 was rotated by 20 degrees about the axis defined by the point 0, 0, 0 and the vector 0, 0, 0 a = mdb.models['Driveshaft'].rootAssembly p0 = a.instances['Outputshaft-1'] p0.rotateAboutAxis(axisPoint=(0.0, 0.0, 0.0), axisDirection=(0.0, 0.0, 1.0), angle=20.0) #: The instance Outputshaft-1 was rotated by 20 degrees about the axis defined by the point 0, 0, 0 and the vector 0, 0, 0 session.viewports['Viewport: 1'].setValues(displayedObject=None) import load import regionToolset import displayGroupMdbToolset as dgm import step import regionToolset import displayGroupMdbToolset as dgm session.viewports['Viewport: 1'].assemblyDisplay.setValues(loads=OFF, bcs=OFF, predefinedFields=OFF) mdb.models['Driveshaft'].StaticStep(name='Step-1', previous='Initial', initialInc=0.01, nlgeom=ON) session.viewports['Viewport: 1'].assemblyDisplay.setValues(step='Step-1') session.viewports['Viewport: 1'].assemblyDisplay.setValues(loads=ON, bcs=ON, predefinedFields=ON) a = mdb.models['Driveshaft'].rootAssembly v1 = a.instances['Inputshaft-1'].vertices verts1 = v1.findAt( ((-7.0, 0.0, 0.0), ), ) region = regionToolset.Region(vertices=verts1) mdb.models['Driveshaft'].DisplacementBC(name='BC-1', createStepName='Step-1', region=region, u1=0.0, u2=0.0, u3=0.0, ur1=UNSET, ur2=0.0, ur3=0.0, amplitude=UNSET, fixed=OFF, distributionType=UNIFORM, localCsys=None) a = mdb.models['Driveshaft'].rootAssembly v1 = a.instances['Outputshaft-1'].vertices verts1 = v1.findAt( ((16.396926, 3.420201, 0.0), ), ) region = regionToolset.Region(vertices=verts1) mdb.models['Driveshaft'].DisplacementBC(name='BC-2', createStepName='Step-1', region=region, u1=0.0, u2=0.0, u3=0.0, ur1=6.28, ur2=0.0, ur3=0.0, amplitude=UNSET, fixed=OFF, distributionType=UNIFORM, localCsys=None) import material import section import regionToolset import displayGroupMdbToolset as dgm p = mdb.models['Driveshaft'].parts['Outputshaft'] session.viewports['Viewport: 1'].setValues(displayedObject=p) mdb.models['Driveshaft'].CircularProfile(name='Profile-1', r=0.1) mdb.models['Driveshaft'].BeamSection(name='shaft_section', profile='Profile-1', integration=BEFORE_ANALYSIS, poissonRatio=0.3, table=((200000000000.0, 76000000000.0),), density=7000.0, referenceTemperature=0.0) p1 = mdb.models['Driveshaft'].parts['Outputshaft'] e = p1.edges edges = e.findAt((( 11.644462, -0.598535, 0.0), ), ) region = regionToolset.Region(edges=edges) p0 = mdb.models['Driveshaft'].parts['Outputshaft'] p0.SectionAssignment(region=region, sectionName='shaft_section') #: The section "shaft_section" has been assigned to the selected regions. p = mdb.models['Driveshaft'].parts['Inputshaft'] session.viewports['Viewport: 1'].setValues(displayedObject=p) p1 = mdb.models['Driveshaft'].parts['Inputshaft'] e = p1.edges edges = e.findAt((( -4.933386, 1.795606, 0.0), ), ) region = regionToolset.Region(edges=edges) p0 = mdb.models['Driveshaft'].parts['Inputshaft'] p0.SectionAssignment(region=region, sectionName='shaft_section') #: The section "shaft_section" has been assigned to the selected regions. p = mdb.models['Driveshaft'].parts['Centershaft'] session.viewports['Viewport: 1'].setValues(displayedObject=p) p1 = mdb.models['Driveshaft'].parts['Centershaft'] e = p1.edges edges = e.findAt(((2.5, 0.0, 0.0), ), ) region = regionToolset.Region(edges=edges) p0 = mdb.models['Driveshaft'].parts['Centershaft'] p0.SectionAssignment(region=region, sectionName='shaft_section') #: The section "shaft_section" has been assigned to the selected regions. import step import regionToolset import displayGroupMdbToolset as dgm a = mdb.models['Driveshaft'].rootAssembly a.regenerate() session.viewports['Viewport: 1'].assemblyDisplay.setValues(loads=OFF, bcs=OFF, predefinedFields=OFF) a = mdb.models['Driveshaft'].rootAssembly session.viewports['Viewport: 1'].setValues(displayedObject=a) import load import regionToolset import displayGroupMdbToolset as dgm session.viewports['Viewport: 1'].assemblyDisplay.setValues(loads=ON, bcs=ON, predefinedFields=ON, interactions=OFF, constraints=OFF, connectors=OFF) mdb.models['Driveshaft'].boundaryConditions['BC-1'].setValues(ur1=6.28) mdb.models['Driveshaft'].boundaryConditions['BC-2'].setValues(u1=UNSET, ur1=UNSET) mdb.models['Driveshaft'].boundaryConditions['BC-2'].setValues(u1=0.0) session.viewports['Viewport: 1'].assemblyDisplay.setValues(loads=OFF, bcs=OFF, predefinedFields=OFF) p = mdb.models['Driveshaft'].parts['Centershaft'] session.viewports['Viewport: 1'].setValues(displayedObject=p) p1 = mdb.models['Driveshaft'].parts['Centershaft'] e = p1.edges edges = e.findAt(((2.5, 0.0, 0.0), ), ) region=regionToolset.Region(edges=edges) p0 = mdb.models['Driveshaft'].parts['Centershaft'] p0.assignBeamSectionOrientation(region=region, method=N1_COSINES, n1=(0.0, 0.0, -1.0)) #: Beam orientations have been assigned to the selected regions. p = mdb.models['Driveshaft'].parts['Inputshaft'] session.viewports['Viewport: 1'].setValues(displayedObject=p) p = mdb.models['Driveshaft'].parts['Centershaft'] session.viewports['Viewport: 1'].setValues(displayedObject=p) p = mdb.models['Driveshaft'].parts['Outputshaft'] session.viewports['Viewport: 1'].setValues(displayedObject=p) p1 = mdb.models['Driveshaft'].parts['Outputshaft'] e = p1.edges edges = e.findAt((( 11.644462, -0.598535, 0.0), ), ) region=regionToolset.Region(edges=edges) p0 = mdb.models['Driveshaft'].parts['Outputshaft'] p0.assignBeamSectionOrientation(region=region, method=N1_COSINES, n1=(0.0, 0.0, -1.0)) #: Beam orientations have been assigned to the selected regions. p = mdb.models['Driveshaft'].parts['Inputshaft'] session.viewports['Viewport: 1'].setValues(displayedObject=p) p1 = mdb.models['Driveshaft'].parts['Inputshaft'] e = p1.edges edges = e.findAt((( -4.933386, 1.795606, 0.0), ), ) region=regionToolset.Region(edges=edges) p0 = mdb.models['Driveshaft'].parts['Inputshaft'] p0.assignBeamSectionOrientation(region=region, method=N1_COSINES, n1=(0.0, 0.0, -1.0)) #: Beam orientations have been assigned to the selected regions. p = mdb.models['Driveshaft'].parts['Centershaft'] session.viewports['Viewport: 1'].setValues(displayedObject=p) p1 = mdb.models['Driveshaft'].parts['Centershaft'] e = p1.edges edges = e.findAt(((2.5, 0.0, 0.0), ), ) region=regionToolset.Region(edges=edges) p0 = mdb.models['Driveshaft'].parts['Centershaft'] p0.assignBeamSectionOrientation(region=region, method=N1_COSINES, n1=(0.0, 0.0, -1.0)) #: Beam orientations have been assigned to the selected regions. p = mdb.models['Driveshaft'].parts['Outputshaft'] session.viewports['Viewport: 1'].setValues(displayedObject=p) p1 = mdb.models['Driveshaft'].parts['Outputshaft'] e = p1.edges edges = e.findAt((( 11.644462, -0.598535, 0.0), ), ) region=regionToolset.Region(edges=edges) p0 = mdb.models['Driveshaft'].parts['Outputshaft'] p0.assignBeamSectionOrientation(region=region, method=N1_COSINES, n1=(0.0, 0.0, -1.0)) #: Beam orientations have been assigned to the selected regions. a1 = mdb.models['Driveshaft'].rootAssembly a1.regenerate() a = mdb.models['Driveshaft'].rootAssembly session.viewports['Viewport: 1'].setValues(displayedObject=a) mdb.models['Driveshaft'].steps['Step-1'].setValues(nlgeom=ON) import step import regionToolset import displayGroupMdbToolset as dgm session.viewports['Viewport: 1'].assemblyDisplay.meshOptions.setValues( meshTechnique=OFF) mdb.models['Driveshaft'].steps['Step-1'].setValues(initialInc=0.1, nlgeom=ON) import interaction import regionToolset import displayGroupMdbToolset as dgm a = mdb.models['Driveshaft'].rootAssembly v1 = a.instances['Inputshaft-1'].vertices a.DatumCsysByThreePoints(origin=v1.findAt( (-7.0, 0.0, 0.0), ), name='Datum csys-2', coordSysType=CARTESIAN, point1=(-7.0, 0.0, 1.0), point2=(-6.0, 0.0, 0.0)) a = mdb.models['Driveshaft'].rootAssembly v1 = a.instances['Outputshaft-1'].vertices a.DatumCsysByThreePoints(point2=v1.findAt( (9.396926, 3.420201, 0.0), ), name='Datum csys-3', coordSysType=CARTESIAN, origin=(0.0, 0.0, 0.0), point1=(0.0, 0.0, 1.0)) orient1 = mdb.models['Driveshaft'].rootAssembly.datums[10] orient2 = mdb.models['Driveshaft'].rootAssembly.datums[11] orient3 = mdb.models['Driveshaft'].rootAssembly.datums[11] orient4 = mdb.models['Driveshaft'].rootAssembly.datums[10] import mesh import regionToolset import displayGroupMdbToolset as dgm a0 = mdb.models['Driveshaft'].rootAssembly partInstances =(a0.instances['Centershaft-1'], a0.instances['Inputshaft-1'], a0.instances['Outputshaft-1'], ) a0.seedPartInstance(regions=partInstances, size=3.0) #: Global seeds have been assigned. elemType1 = mesh.ElemType(elemCode=B31, elemLibrary=STANDARD) a0 = mdb.models['Driveshaft'].rootAssembly e1 = a0.instances['Centershaft-1'].edges edges1 = e1.findAt( ((2.349232, 0.85505, 0.0), ), ) e2 = a0.instances['Inputshaft-1'].edges edges2 = e2.findAt( ((-5.25, 0.0, 0.0), ), ) e3 = a0.instances['Outputshaft-1'].edges edges3 = e3.findAt( ((11.146926, 3.420201, 0.0), ), ) regions =((edges1+edges2+edges3), ) a0.setElementType(regions=regions, elemTypes=(elemType1, )) a0 = mdb.models['Driveshaft'].rootAssembly partInstances =(a0.instances['Centershaft-1'], a0.instances['Inputshaft-1'], a0.instances['Outputshaft-1'], ) a0.generateMesh(regions=partInstances) # # ------------------------------ # Begin connectors # ------------------------------ # import interaction import regionToolset import displayGroupMdbToolset as dgm # # ------------------------------------------- # Create connector property driveshaft_ujoint # ------------------------------------------- # mdb.models['Driveshaft'].ConnectorSection(name='connector_property_driveshaft_ujoint', assembledType=UJOINT, translationalType=NONE, rotationalType=NONE) # # ----------------- # Create connectors # ----------------- # point1 = mdb.models['Driveshaft'].rootAssembly.instances['Inputshaft-1'].vertices.findAt( (0.0, 0.0, 0.0), ) point2 = mdb.models['Driveshaft'].rootAssembly.instances['Centershaft-1'].vertices.findAt( (0.0, 0.0, 0.0), ) edge = mdb.models['Driveshaft'].rootAssembly.WirePolyLine(points=((point1, point2), ), mergeWire=OFF, meshable=OFF) mdb.models['Driveshaft'].rootAssembly.Set(name='Connector_inputshaft_centershaft-CnSet', edges=mdb.models['Driveshaft'].rootAssembly.getFeatureEdges(edge.name)) csa = mdb.models['Driveshaft'].rootAssembly.SectionAssignment(region=mdb.models['Driveshaft'].rootAssembly.sets['Connector_inputshaft_centershaft-CnSet'], sectionName='connector_property_driveshaft_ujoint') mdb.models['Driveshaft'].rootAssembly.ConnectorOrientation(region=csa.getSet(), localCsys1=orient1, localCsys2=orient2) #: The connector "Connector_inputshaft_centershaft" has been created. point1 = mdb.models['Driveshaft'].rootAssembly.instances['Centershaft-1'].vertices.findAt( (9.396926, 3.420201, 0.0), ) point2 = mdb.models['Driveshaft'].rootAssembly.instances['Outputshaft-1'].vertices.findAt( (9.396926, 3.420201, 0.0), ) edge = mdb.models['Driveshaft'].rootAssembly.WirePolyLine(points=((point1, point2), ), mergeWire=OFF, meshable=OFF) mdb.models['Driveshaft'].rootAssembly.Set(name='Connector_centershaft_outputshaft-CnSet', edges=mdb.models['Driveshaft'].rootAssembly.getFeatureEdges(edge.name)) csa = mdb.models['Driveshaft'].rootAssembly.SectionAssignment(region=mdb.models['Driveshaft'].rootAssembly.sets['Connector_centershaft_outputshaft-CnSet'], sectionName='connector_property_driveshaft_ujoint') co = mdb.models['Driveshaft'].rootAssembly.ConnectorOrientation(region=csa.getSet(), localCsys1=orient3, localCsys2=orient4) #: The connector "Connector_centershaft_outputshaft" has been created. # d1 = a.datums ori = a.DatumCsysByTwoLines(CARTESIAN, line1=d1[11].axis3, line2=d1[11].axis2, name='Datum csys-4') d11 = a1.datums orient1=d11[ori.id] co.setValues(localCsys1=orient1) ori = mdb.models['Driveshaft'].rootAssembly.DatumCsysByTwoLines( CARTESIAN, line1=d1[1].axis2, line2=d1[1].axis1, name='Datum csys-5') a1 = mdb.models['Driveshaft'].rootAssembly d11 = a1.datums orient2=d11[ori.id] co.setValues(localCsys2=orient2) a = mdb.models['Driveshaft'].rootAssembly v1 = a.instances['Outputshaft-1'].vertices verts1 = v1[1:2] region = regionToolset.Region(vertices=verts1) mdb.models['Driveshaft'].Moment(name='Load-1', createStepName='Step-1', region=region, cm1=1000.0, localCsys=None) #-------------------------------------------------------------------------- # Creation of the job ##-------------------------------------------------------------------------- import job session.viewports['Viewport: 1'].view.fitView() mdb.Job(name='driveshaft', model='Driveshaft', type=ANALYSIS, explicitPrecision=SINGLE, nodalOutputPrecision=SINGLE, description='', userSubroutine='', numCpus=1, preMemory=61.0352, standardMemory=244.141, standardMemoryPolicy=MODERATE, scratch='', echoPrint=OFF, modelPrint=OFF, contactPrint=OFF, historyPrint=OFF) mdb.saveAs('driveshaft') ##********************************************************