#  -------------------
#  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, scratch='', echoPrint=OFF, modelPrint=OFF,
    contactPrint=OFF, historyPrint=OFF)
mdb.saveAs('driveshaft')
##********************************************************
