Skip to content

StiffSpringForceField

Stiff springs for implicit integration Supports GPU-side computations using CUDA

Templates:

  • Rigid3d
  • Vec1d
  • Vec2d
  • Vec3d
  • Vec6d

Target: Sofa.Component.SolidMechanics.Spring

namespace: sofa::component::solidmechanics::spring

parents:

  • SpringForceField

Data:

Name Description Default value
name object name unnamed
printLog if true, emits extra messages at runtime. 0
tags list of the subsets the objet belongs to
bbox this object bounding box
componentState The state of the component among (Dirty, Valid, Undefined, Loading, Invalid). Undefined
listening if true, handle the events, otherwise ignore the events 0
isCompliance Consider the component as a compliance, else as a stiffness 0
rayleighStiffness Rayleigh damping - stiffness matrix coefficient 0
stiffness uniform stiffness for the all springs 100
damping uniform damping for the all springs 5
spring pairs of indices, stiffness, damping, rest length
springsIndices1 List of indices in springs from the first mstate
springsIndices2 List of indices in springs from the second mstate
indices1 Indices of the source points on the first model
indices2 Indices of the fixed points on the second model
lengths List of lengths to create the springs. Must have the same than indices1 & indices2, or if only one element, it will be applied to all springs. If empty, 0 will be applied everywhere
Visualization
showArrowSize size of the axis 0.01
drawMode The way springs will be drawn: - 0: Line - 1:Cylinder - 2: Arrow 0

Links:

Name Description
context Graph Node containing this object (or BaseContext::getDefault() if no graph is used)
slaves Sub-objects used internally by this object
master nullptr for regular objects, or master object for which this object is one sub-objects
mechanicalStates List of mechanical states to which this component is associated
object1 First object associated to this component
object2 Second object associated to this component

Examples

Component/SolidMechanics/Spring/StiffSpringForceField_simple.scn

<?xml version="1.0"?>
<Node name="root" dt="0.005">
    <RequiredPlugin name="Sofa.Component.Collision.Geometry"/> <!-- Needed to use components [SphereCollisionModel] -->
    <RequiredPlugin name="Sofa.Component.Constraint.Projective"/> <!-- Needed to use components [FixedProjectiveConstraint] -->
    <RequiredPlugin name="Sofa.Component.LinearSolver.Direct"/> <!-- Needed to use components [SparseLDLSolver] -->
    <RequiredPlugin name="Sofa.Component.Mass"/> <!-- Needed to use components [UniformMass] -->
    <RequiredPlugin name="Sofa.Component.ODESolver.Backward"/> <!-- Needed to use components [EulerImplicitSolver] -->
    <RequiredPlugin name="Sofa.Component.SolidMechanics.Spring"/> <!-- Needed to use components [StiffSpringForceField] -->
    <RequiredPlugin name="Sofa.Component.StateContainer"/> <!-- Needed to use components [MechanicalObject] -->
    <RequiredPlugin name="Sofa.Component.Visual"/> <!-- Needed to use components [VisualStyle] -->

    <VisualStyle displayFlags="showCollision showInteractionForceFields showForceFields" />

    <DefaultAnimationLoop/>
    <DefaultVisualManagerLoop/>

    <EulerImplicitSolver name="odesolver" rayleighStiffness="0.1" rayleighMass="0.1" />
    <SparseLDLSolver template="CompressedRowSparseMatrixMat3x3"/>

    <Node name="fix">
        <MechanicalObject template="Vec3" name="dofs" position="0 0 0" showObject="true"/>
        <FixedProjectiveConstraint indices="0"/>
    </Node>

    <Node name="sphere1">
        <MechanicalObject template="Vec3" name="dofs" position="1 0 0" showObject="true"/>
        <UniformMass/>
        <SphereCollisionModel listRadius="0.25"/>
    </Node>

    <Node name="sphere2">
        <MechanicalObject template="Vec3" name="dofs" position="2 0 0" showObject="true"/>
        <UniformMass/>
        <SphereCollisionModel listRadius="0.25"/>
    </Node>

    <Node name="sphere3-4">
        <MechanicalObject template="Vec3" name="dofs" position="3 0 0 4 0 0" showObject="true"/>
        <UniformMass/>
        <SphereCollisionModel listRadius="0.25 0.25"/>
    </Node>

    <Node name="sphere5-6">
        <MechanicalObject template="Vec3" name="dofs" position="5 0 0 6 0 0" showObject="true"/>
        <UniformMass/>
        <SphereCollisionModel listRadius="0.25 0.25"/>
        <StiffSpringForceField template="Vec3" name="spring" spring="0 1 50 1 1" showArrowSize="0.05" drawMode="2"/>
    </Node>

    <StiffSpringForceField template="Vec3" name="spring1" object1="@fix/dofs"       object2="@sphere1/dofs"   spring="0 0 50 1 1"             showArrowSize="0.05" drawMode="2"/>
    <StiffSpringForceField template="Vec3" name="spring2" object1="@sphere1/dofs"   object2="@sphere2/dofs"   spring="0 0 50 1 1"             showArrowSize="0.05" drawMode="2"/>
    <StiffSpringForceField template="Vec3" name="spring3" object1="@sphere2/dofs"   object2="@sphere3-4/dofs" spring="0 0 50 1 1  0 1 50 1 1" showArrowSize="0.05" drawMode="2"/>
    <StiffSpringForceField template="Vec3" name="spring5" object1="@sphere3-4/dofs" object2="@sphere3-4/dofs" spring="0 1 50 1 1"             showArrowSize="0.05" drawMode="2"/>
    <StiffSpringForceField template="Vec3" name="spring6" object1="@sphere3-4/dofs" object2="@sphere5-6/dofs" spring="0 0 50 1 1  1 1 50 1 1" showArrowSize="0.05" drawMode="2"/>
</Node>
def createScene(rootNode):

    root = rootNode.addChild('root', dt="0.005")
    root.addObject('RequiredPlugin', name="Sofa.Component.Collision.Geometry")
    root.addObject('RequiredPlugin', name="Sofa.Component.Constraint.Projective")
    root.addObject('RequiredPlugin', name="Sofa.Component.LinearSolver.Direct")
    root.addObject('RequiredPlugin', name="Sofa.Component.Mass")
    root.addObject('RequiredPlugin', name="Sofa.Component.ODESolver.Backward")
    root.addObject('RequiredPlugin', name="Sofa.Component.SolidMechanics.Spring")
    root.addObject('RequiredPlugin', name="Sofa.Component.StateContainer")
    root.addObject('RequiredPlugin', name="Sofa.Component.Visual")
    root.addObject('VisualStyle', displayFlags="showCollision showInteractionForceFields showForceFields")
    root.addObject('DefaultAnimationLoop')
    root.addObject('DefaultVisualManagerLoop')
    root.addObject('EulerImplicitSolver', name="odesolver", rayleighStiffness="0.1", rayleighMass="0.1")
    root.addObject('SparseLDLSolver', template="CompressedRowSparseMatrixMat3x3")

    fix = root.addChild('fix')
    fix.addObject('MechanicalObject', template="Vec3", name="dofs", position="0 0 0", showObject="true")
    fix.addObject('FixedProjectiveConstraint', indices="0")

    sphere1 = root.addChild('sphere1')
    sphere1.addObject('MechanicalObject', template="Vec3", name="dofs", position="1 0 0", showObject="true")
    sphere1.addObject('UniformMass')
    sphere1.addObject('SphereCollisionModel', listRadius="0.25")

    sphere2 = root.addChild('sphere2')
    sphere2.addObject('MechanicalObject', template="Vec3", name="dofs", position="2 0 0", showObject="true")
    sphere2.addObject('UniformMass')
    sphere2.addObject('SphereCollisionModel', listRadius="0.25")

    sphere3-4 = root.addChild('sphere3-4')
    sphere3-4.addObject('MechanicalObject', template="Vec3", name="dofs", position="3 0 0 4 0 0", showObject="true")
    sphere3-4.addObject('UniformMass')
    sphere3-4.addObject('SphereCollisionModel', listRadius="0.25 0.25")

    sphere5-6 = root.addChild('sphere5-6')
    sphere5-6.addObject('MechanicalObject', template="Vec3", name="dofs", position="5 0 0 6 0 0", showObject="true")
    sphere5-6.addObject('UniformMass')
    sphere5-6.addObject('SphereCollisionModel', listRadius="0.25 0.25")
    sphere5-6.addObject('StiffSpringForceField', template="Vec3", name="spring", spring="0 1 50 1 1", showArrowSize="0.05", drawMode="2")
    root.addObject('StiffSpringForceField', template="Vec3", name="spring1", object1="@fix/dofs", object2="@sphere1/dofs", spring="0 0 50 1 1", showArrowSize="0.05", drawMode="2")
    root.addObject('StiffSpringForceField', template="Vec3", name="spring2", object1="@sphere1/dofs", object2="@sphere2/dofs", spring="0 0 50 1 1", showArrowSize="0.05", drawMode="2")
    root.addObject('StiffSpringForceField', template="Vec3", name="spring3", object1="@sphere2/dofs", object2="@sphere3-4/dofs", spring="0 0 50 1 1  0 1 50 1 1", showArrowSize="0.05", drawMode="2")
    root.addObject('StiffSpringForceField', template="Vec3", name="spring5", object1="@sphere3-4/dofs", object2="@sphere3-4/dofs", spring="0 1 50 1 1", showArrowSize="0.05", drawMode="2")
    root.addObject('StiffSpringForceField', template="Vec3", name="spring6", object1="@sphere3-4/dofs", object2="@sphere5-6/dofs", spring="0 0 50 1 1  1 1 50 1 1", showArrowSize="0.05", drawMode="2")

Component/SolidMechanics/Spring/StiffSpringForceField.scn

<?xml version="1.0"?>
<Node    name="root"  dt="0.005"  >
    <RequiredPlugin name="Sofa.Component.Constraint.Projective"/> <!-- Needed to use components [FixedProjectiveConstraint] -->
    <RequiredPlugin name="Sofa.Component.IO.Mesh"/> <!-- Needed to use components [MeshGmshLoader] -->
    <RequiredPlugin name="Sofa.Component.LinearSolver.Iterative"/> <!-- Needed to use components [CGLinearSolver] -->
    <RequiredPlugin name="Sofa.Component.Mass"/> <!-- Needed to use components [UniformMass] -->
    <RequiredPlugin name="Sofa.Component.ODESolver.Backward"/> <!-- Needed to use components [EulerImplicitSolver] -->
    <RequiredPlugin name="Sofa.Component.SolidMechanics.Spring"/> <!-- Needed to use components [StiffSpringForceField] -->
    <RequiredPlugin name="Sofa.Component.StateContainer"/> <!-- Needed to use components [MechanicalObject] -->
    <RequiredPlugin name="Sofa.Component.Visual"/> <!-- Needed to use components [VisualStyle] -->

    <DefaultAnimationLoop/>
    <VisualStyle name="visualStyle1"  displayFlags="showBehaviorModels showForceFields showCollisionModels showMappings" />
    <Node    name="Poutre1"  >
        <EulerImplicitSolver name="cg_odesolver"  printLog="0"  rayleighStiffness="0.1" rayleighMass="0.1" />
        <CGLinearSolver template="GraphScattered" name="linear solver"  iterations="25"  tolerance="1e-09"  threshold="1e-09" />
        <Node    name="M1"  >
            <MeshGmshLoader name="loader"  filename="mesh/smCube27.msh" />
            <MechanicalObject template="Vec3" showObject="1" name="mObject1"  position="@loader.position"  velocity="0 0 0"  force="0 0 0"  externalForce="0 0 0"  derivX="0 0 0"  restScale="1" />
            <UniformMass name="uniformMass1"  vertexMass="0.1" />
            <FixedProjectiveConstraint template="Vec3" name="fixedProjectiveConstraint1"  indices="0 3 6 9 12 15 18 21 24" />
            <StiffSpringForceField template="Vec3" name="InternalSprings1"  spring="0 9 100 5 3.5
 1 10 500 5 3.5
 2 11 500 5 3.5
 3 12 500 5 3.5
 4 13 500 5 3.5
 5 14 500 5 3.5
 6 15 500 5 3.5
 7 16 500 5 3.5
 8 17 500 5 3.5
 9 18 500 5 3.5
 10 19 500 5 3.5
 11 20 500 5 3.5
 12 21 500 5 3.5
 13 22 500 5 3.5
 14 23 500 5 3.5
 15 24 500 5 3.5
 16 25 500 5 3.5
 17 26 500 5 3.5
 0 3 500 5 3.5
 1 4 500 5 3.5
 2 5 500 5 3.5
 3 6 500 5 3.5
 4 7 500 5 3.5
 5 8 500 5 3.5
 9 12 500 5 3.5
 10 13 500 5 3.5
 11 14 500 5 3.5
 12 15 500 5 3.5
 13 16 500 5 3.5
 14 17 500 5 3.5
 18 21 500 5 3.5
 19 22 500 5 3.5
 20 23 500 5 3.5
 21 24 500 5 3.5
 22 25 500 5 3.5
 23 26 500 5 3.5
 0 1 500 5 3.5
 1 2 500 5 3.5
 3 4 500 5 3.5
 4 5 500 5 3.5
 6 7 500 5 3.5
 7 8 500 5 3.5
 9 10 500 5 3.5
 10 11 500 5 3.5
 12 13 500 5 3.5
 13 14 500 5 3.5
 15 16 500 5 3.5
 16 17 500 5 3.5
 18 19 500 5 3.5
 19 20 500 5 3.5
 21 22 500 5 3.5
 22 23 500 5 3.5
 24 25 500 5 3.5
 25 26 100 5 3.5
 0 13 500 5 6.06218
 1 14 500 5 6.06218
 3 16 500 5 6.06218
 4 17 500 5 6.06218
 9 22 500 5 6.06218
 10 23 500 5 6.06218
 12 25 500 5 6.06218
 13 26 500 5 6.06218
 9 4 500 5 6.06218
 10 5 500 5 6.06218
 12 7 500 5 6.06218
 13 8 500 5 6.06218
 18 13 500 5 6.06218
 19 14 500 5 6.06218
 21 16 500 5 6.06218
 22 17 500 5 6.06218
 3 10 500 5 6.06218
 4 11 500 5 6.06218
 6 13 500 5 6.06218
 7 14 500 5 6.06218
 12 19 500 5 6.06218
 13 20 500 5 6.06218
 15 22 500 5 6.06218
 16 23 500 5 6.06218
 12 1 500 5 6.06218
 13 2 500 5 6.06218
 15 4 500 5 6.06218
 16 5 500 5 6.06218
 21 10 500 5 6.06218
 22 11 500 5 6.06218
 24 13 500 5 6.06218
 25 14 500 5 6.06218
 0 12 500 5 4.94975
 1 13 500 5 4.94975
 2 14 500 5 4.94975
 3 15 500 5 4.94975
 4 16 500 5 4.94975
 5 17 500 5 4.94975
 9 21 500 5 4.94975
 10 22 500 5 4.94975
 11 23 500 5 4.94975
 12 24 500 5 4.94975
 13 25 500 5 4.94975
 14 26 500 5 4.94975
 3 9 500 5 4.94975
 4 10 500 5 4.94975
 5 11 500 5 4.94975
 6 12 500 5 4.94975
 7 13 500 5 4.94975
 8 14 500 5 4.94975
 12 18 500 5 4.94975
 13 19 500 5 4.94975
 14 20 500 5 4.94975
 15 21 500 5 4.94975
 16 22 500 5 4.94975
 17 23 500 5 4.94975
 0 10 500 5 4.94975
 1 11 500 5 4.94975
 3 13 500 5 4.94975
 4 14 500 5 4.94975
 6 16 500 5 4.94975
 7 17 500 5 4.94975
 9 19 500 5 4.94975
 10 20 500 5 4.94975
 12 22 500 5 4.94975
 13 23 500 5 4.94975
 15 25 500 5 4.94975
 16 26 500 5 4.94975
 9 1 500 5 4.94975
 10 2 500 5 4.94975
 12 4 500 5 4.94975
 13 5 500 5 4.94975
 15 7 500 5 4.94975
 16 8 500 5 4.94975
 18 10 500 5 4.94975
 19 11 500 5 4.94975
 21 13 500 5 4.94975
 22 14 500 5 4.94975
 24 16 500 5 4.94975
 25 17 500 5 4.94975
 0 4 500 5 4.94975
 1 5 500 5 4.94975
 3 7 500 5 4.94975
 4 8 500 5 4.94975
 9 13 500 5 4.94975
 10 14 500 5 4.94975
 12 16 500 5 4.94975
 13 17 500 5 4.94975
 18 22 500 5 4.94975
 19 23 500 5 4.94975
 21 25 500 5 4.94975
 22 26 500 5 4.94975
 3 1 500 5 4.94975
 4 2 500 5 4.94975
 6 4 500 5 4.94975
 7 5 500 5 4.94975
 12 10 500 5 4.94975
 13 11 500 5 4.94975
 15 13 500 5 4.94975
 16 14 500 5 4.94975
 21 19 500 5 4.94975
 22 20 500 5 4.94975
 24 22 500 5 4.94975
 25 23 500 5 4.94975
"  />
        </Node>
        <Node    name="M5"  >
            <MeshGmshLoader name="loader"  filename="mesh/smCube27.msh" />
            <MechanicalObject template="Vec3" name="mObject5" showObject="1" position="@loader.position"  velocity="0 0 0"  force="0 0 0"  externalForce="0 0 0"  derivX="0 0 0"  restScale="1"  translation="0 0 42" />
            <UniformMass name="uniformMass5"  vertexMass="0.1" />
            <StiffSpringForceField template="Vec3" name="InternalSprings5"  spring="0 9 100 5 3.5
 1 10 500 5 3.5
 2 11 500 5 3.5
 3 12 500 5 3.5
 4 13 500 5 3.5
 5 14 500 5 3.5
 6 15 500 5 3.5
 7 16 500 5 3.5
 8 17 500 5 3.5
 9 18 500 5 3.5
 10 19 500 5 3.5
 11 20 500 5 3.5
 12 21 500 5 3.5
 13 22 500 5 3.5
 14 23 500 5 3.5
 15 24 500 5 3.5
 16 25 500 5 3.5
 17 26 500 5 3.5
 0 3 500 5 3.5
 1 4 500 5 3.5
 2 5 500 5 3.5
 3 6 500 5 3.5
 4 7 500 5 3.5
 5 8 500 5 3.5
 9 12 500 5 3.5
 10 13 500 5 3.5
 11 14 500 5 3.5
 12 15 500 5 3.5
 13 16 500 5 3.5
 14 17 500 5 3.5
 18 21 500 5 3.5
 19 22 500 5 3.5
 20 23 500 5 3.5
 21 24 500 5 3.5
 22 25 500 5 3.5
 23 26 500 5 3.5
 0 1 500 5 3.5
 1 2 500 5 3.5
 3 4 500 5 3.5
 4 5 500 5 3.5
 6 7 500 5 3.5
 7 8 500 5 3.5
 9 10 500 5 3.5
 10 11 500 5 3.5
 12 13 500 5 3.5
 13 14 500 5 3.5
 15 16 500 5 3.5
 16 17 500 5 3.5
 18 19 500 5 3.5
 19 20 500 5 3.5
 21 22 500 5 3.5
 22 23 500 5 3.5
 24 25 500 5 3.5
 25 26 100 5 3.5
 0 13 500 5 6.06218
 1 14 500 5 6.06218
 3 16 500 5 6.06218
 4 17 500 5 6.06218
 9 22 500 5 6.06218
 10 23 500 5 6.06218
 12 25 500 5 6.06218
 13 26 500 5 6.06218
 9 4 500 5 6.06218
 10 5 500 5 6.06218
 12 7 500 5 6.06218
 13 8 500 5 6.06218
 18 13 500 5 6.06218
 19 14 500 5 6.06218
 21 16 500 5 6.06218
 22 17 500 5 6.06218
 3 10 500 5 6.06218
 4 11 500 5 6.06218
 6 13 500 5 6.06218
 7 14 500 5 6.06218
 12 19 500 5 6.06218
 13 20 500 5 6.06218
 15 22 500 5 6.06218
 16 23 500 5 6.06218
 12 1 500 5 6.06218
 13 2 500 5 6.06218
 15 4 500 5 6.06218
 16 5 500 5 6.06218
 21 10 500 5 6.06218
 22 11 500 5 6.06218
 24 13 500 5 6.06218
 25 14 500 5 6.06218
 0 12 500 5 4.94975
 1 13 500 5 4.94975
 2 14 500 5 4.94975
 3 15 500 5 4.94975
 4 16 500 5 4.94975
 5 17 500 5 4.94975
 9 21 500 5 4.94975
 10 22 500 5 4.94975
 11 23 500 5 4.94975
 12 24 500 5 4.94975
 13 25 500 5 4.94975
 14 26 500 5 4.94975
 3 9 500 5 4.94975
 4 10 500 5 4.94975
 5 11 500 5 4.94975
 6 12 500 5 4.94975
 7 13 500 5 4.94975
 8 14 500 5 4.94975
 12 18 500 5 4.94975
 13 19 500 5 4.94975
 14 20 500 5 4.94975
 15 21 500 5 4.94975
 16 22 500 5 4.94975
 17 23 500 5 4.94975
 0 10 500 5 4.94975
 1 11 500 5 4.94975
 3 13 500 5 4.94975
 4 14 500 5 4.94975
 6 16 500 5 4.94975
 7 17 500 5 4.94975
 9 19 500 5 4.94975
 10 20 500 5 4.94975
 12 22 500 5 4.94975
 13 23 500 5 4.94975
 15 25 500 5 4.94975
 16 26 500 5 4.94975
 9 1 500 5 4.94975
 10 2 500 5 4.94975
 12 4 500 5 4.94975
 13 5 500 5 4.94975
 15 7 500 5 4.94975
 16 8 500 5 4.94975
 18 10 500 5 4.94975
 19 11 500 5 4.94975
 21 13 500 5 4.94975
 22 14 500 5 4.94975
 24 16 500 5 4.94975
 25 17 500 5 4.94975
 0 4 500 5 4.94975
 1 5 500 5 4.94975
 3 7 500 5 4.94975
 4 8 500 5 4.94975
 9 13 500 5 4.94975
 10 14 500 5 4.94975
 12 16 500 5 4.94975
 13 17 500 5 4.94975
 18 22 500 5 4.94975
 19 23 500 5 4.94975
 21 25 500 5 4.94975
 22 26 500 5 4.94975
 3 1 500 5 4.94975
 4 2 500 5 4.94975
 6 4 500 5 4.94975
 7 5 500 5 4.94975
 12 10 500 5 4.94975
 13 11 500 5 4.94975
 15 13 500 5 4.94975
 16 14 500 5 4.94975
 21 19 500 5 4.94975
 22 20 500 5 4.94975
 24 22 500 5 4.94975
 25 23 500 5 4.94975
"   />
        </Node>
        <Node    name="M4"  >
            <MeshGmshLoader name="loader"  filename="mesh/smCube27.msh" />
            <MechanicalObject template="Vec3" name="mObject4" showObject="1" position="@loader.position"  velocity="0 0 0"  force="0 0 0"  externalForce="0 0 0"  derivX="0 0 0"  restScale="1"  translation="0 0 31.5" />
            <UniformMass name="uniformMass4"  vertexMass="0.1" />
            <StiffSpringForceField template="Vec3" name="InternalSprings4"  spring="0 9 100 5 3.5
 1 10 500 5 3.5
 2 11 500 5 3.5
 3 12 500 5 3.5
 4 13 500 5 3.5
 5 14 500 5 3.5
 6 15 500 5 3.5
 7 16 500 5 3.5
 8 17 500 5 3.5
 9 18 500 5 3.5
 10 19 500 5 3.5
 11 20 500 5 3.5
 12 21 500 5 3.5
 13 22 500 5 3.5
 14 23 500 5 3.5
 15 24 500 5 3.5
 16 25 500 5 3.5
 17 26 500 5 3.5
 0 3 500 5 3.5
 1 4 500 5 3.5
 2 5 500 5 3.5
 3 6 500 5 3.5
 4 7 500 5 3.5
 5 8 500 5 3.5
 9 12 500 5 3.5
 10 13 500 5 3.5
 11 14 500 5 3.5
 12 15 500 5 3.5
 13 16 500 5 3.5
 14 17 500 5 3.5
 18 21 500 5 3.5
 19 22 500 5 3.5
 20 23 500 5 3.5
 21 24 500 5 3.5
 22 25 500 5 3.5
 23 26 500 5 3.5
 0 1 500 5 3.5
 1 2 500 5 3.5
 3 4 500 5 3.5
 4 5 500 5 3.5
 6 7 500 5 3.5
 7 8 500 5 3.5
 9 10 500 5 3.5
 10 11 500 5 3.5
 12 13 500 5 3.5
 13 14 500 5 3.5
 15 16 500 5 3.5
 16 17 500 5 3.5
 18 19 500 5 3.5
 19 20 500 5 3.5
 21 22 500 5 3.5
 22 23 500 5 3.5
 24 25 500 5 3.5
 25 26 100 5 3.5
 0 13 500 5 6.06218
 1 14 500 5 6.06218
 3 16 500 5 6.06218
 4 17 500 5 6.06218
 9 22 500 5 6.06218
 10 23 500 5 6.06218
 12 25 500 5 6.06218
 13 26 500 5 6.06218
 9 4 500 5 6.06218
 10 5 500 5 6.06218
 12 7 500 5 6.06218
 13 8 500 5 6.06218
 18 13 500 5 6.06218
 19 14 500 5 6.06218
 21 16 500 5 6.06218
 22 17 500 5 6.06218
 3 10 500 5 6.06218
 4 11 500 5 6.06218
 6 13 500 5 6.06218
 7 14 500 5 6.06218
 12 19 500 5 6.06218
 13 20 500 5 6.06218
 15 22 500 5 6.06218
 16 23 500 5 6.06218
 12 1 500 5 6.06218
 13 2 500 5 6.06218
 15 4 500 5 6.06218
 16 5 500 5 6.06218
 21 10 500 5 6.06218
 22 11 500 5 6.06218
 24 13 500 5 6.06218
 25 14 500 5 6.06218
 0 12 500 5 4.94975
 1 13 500 5 4.94975
 2 14 500 5 4.94975
 3 15 500 5 4.94975
 4 16 500 5 4.94975
 5 17 500 5 4.94975
 9 21 500 5 4.94975
 10 22 500 5 4.94975
 11 23 500 5 4.94975
 12 24 500 5 4.94975
 13 25 500 5 4.94975
 14 26 500 5 4.94975
 3 9 500 5 4.94975
 4 10 500 5 4.94975
 5 11 500 5 4.94975
 6 12 500 5 4.94975
 7 13 500 5 4.94975
 8 14 500 5 4.94975
 12 18 500 5 4.94975
 13 19 500 5 4.94975
 14 20 500 5 4.94975
 15 21 500 5 4.94975
 16 22 500 5 4.94975
 17 23 500 5 4.94975
 0 10 500 5 4.94975
 1 11 500 5 4.94975
 3 13 500 5 4.94975
 4 14 500 5 4.94975
 6 16 500 5 4.94975
 7 17 500 5 4.94975
 9 19 500 5 4.94975
 10 20 500 5 4.94975
 12 22 500 5 4.94975
 13 23 500 5 4.94975
 15 25 500 5 4.94975
 16 26 500 5 4.94975
 9 1 500 5 4.94975
 10 2 500 5 4.94975
 12 4 500 5 4.94975
 13 5 500 5 4.94975
 15 7 500 5 4.94975
 16 8 500 5 4.94975
 18 10 500 5 4.94975
 19 11 500 5 4.94975
 21 13 500 5 4.94975
 22 14 500 5 4.94975
 24 16 500 5 4.94975
 25 17 500 5 4.94975
 0 4 500 5 4.94975
 1 5 500 5 4.94975
 3 7 500 5 4.94975
 4 8 500 5 4.94975
 9 13 500 5 4.94975
 10 14 500 5 4.94975
 12 16 500 5 4.94975
 13 17 500 5 4.94975
 18 22 500 5 4.94975
 19 23 500 5 4.94975
 21 25 500 5 4.94975
 22 26 500 5 4.94975
 3 1 500 5 4.94975
 4 2 500 5 4.94975
 6 4 500 5 4.94975
 7 5 500 5 4.94975
 12 10 500 5 4.94975
 13 11 500 5 4.94975
 15 13 500 5 4.94975
 16 14 500 5 4.94975
 21 19 500 5 4.94975
 22 20 500 5 4.94975
 24 22 500 5 4.94975
 25 23 500 5 4.94975
"   />
        </Node>
        <Node    name="M3"  >
            <MeshGmshLoader name="loader"  filename="mesh/smCube27.msh" />
            <MechanicalObject template="Vec3" showObject="1" name="mObject3"  position="@loader.position"  velocity="0 0 0"  force="0 0 0"  externalForce="0 0 0"  derivX="0 0 0"  restScale="1"  translation="0 0 21" />
            <UniformMass name="uniformMass3"  vertexMass="0.1" />
            <StiffSpringForceField template="Vec3" name="InternalSprings3"  spring="0 9 100 5 3.5
 1 10 500 5 3.5
 2 11 500 5 3.5
 3 12 500 5 3.5
 4 13 500 5 3.5
 5 14 500 5 3.5
 6 15 500 5 3.5
 7 16 500 5 3.5
 8 17 500 5 3.5
 9 18 500 5 3.5
 10 19 500 5 3.5
 11 20 500 5 3.5
 12 21 500 5 3.5
 13 22 500 5 3.5
 14 23 500 5 3.5
 15 24 500 5 3.5
 16 25 500 5 3.5
 17 26 500 5 3.5
 0 3 500 5 3.5
 1 4 500 5 3.5
 2 5 500 5 3.5
 3 6 500 5 3.5
 4 7 500 5 3.5
 5 8 500 5 3.5
 9 12 500 5 3.5
 10 13 500 5 3.5
 11 14 500 5 3.5
 12 15 500 5 3.5
 13 16 500 5 3.5
 14 17 500 5 3.5
 18 21 500 5 3.5
 19 22 500 5 3.5
 20 23 500 5 3.5
 21 24 500 5 3.5
 22 25 500 5 3.5
 23 26 500 5 3.5
 0 1 500 5 3.5
 1 2 500 5 3.5
 3 4 500 5 3.5
 4 5 500 5 3.5
 6 7 500 5 3.5
 7 8 500 5 3.5
 9 10 500 5 3.5
 10 11 500 5 3.5
 12 13 500 5 3.5
 13 14 500 5 3.5
 15 16 500 5 3.5
 16 17 500 5 3.5
 18 19 500 5 3.5
 19 20 500 5 3.5
 21 22 500 5 3.5
 22 23 500 5 3.5
 24 25 500 5 3.5
 25 26 100 5 3.5
 0 13 500 5 6.06218
 1 14 500 5 6.06218
 3 16 500 5 6.06218
 4 17 500 5 6.06218
 9 22 500 5 6.06218
 10 23 500 5 6.06218
 12 25 500 5 6.06218
 13 26 500 5 6.06218
 9 4 500 5 6.06218
 10 5 500 5 6.06218
 12 7 500 5 6.06218
 13 8 500 5 6.06218
 18 13 500 5 6.06218
 19 14 500 5 6.06218
 21 16 500 5 6.06218
 22 17 500 5 6.06218
 3 10 500 5 6.06218
 4 11 500 5 6.06218
 6 13 500 5 6.06218
 7 14 500 5 6.06218
 12 19 500 5 6.06218
 13 20 500 5 6.06218
 15 22 500 5 6.06218
 16 23 500 5 6.06218
 12 1 500 5 6.06218
 13 2 500 5 6.06218
 15 4 500 5 6.06218
 16 5 500 5 6.06218
 21 10 500 5 6.06218
 22 11 500 5 6.06218
 24 13 500 5 6.06218
 25 14 500 5 6.06218
 0 12 500 5 4.94975
 1 13 500 5 4.94975
 2 14 500 5 4.94975
 3 15 500 5 4.94975
 4 16 500 5 4.94975
 5 17 500 5 4.94975
 9 21 500 5 4.94975
 10 22 500 5 4.94975
 11 23 500 5 4.94975
 12 24 500 5 4.94975
 13 25 500 5 4.94975
 14 26 500 5 4.94975
 3 9 500 5 4.94975
 4 10 500 5 4.94975
 5 11 500 5 4.94975
 6 12 500 5 4.94975
 7 13 500 5 4.94975
 8 14 500 5 4.94975
 12 18 500 5 4.94975
 13 19 500 5 4.94975
 14 20 500 5 4.94975
 15 21 500 5 4.94975
 16 22 500 5 4.94975
 17 23 500 5 4.94975
 0 10 500 5 4.94975
 1 11 500 5 4.94975
 3 13 500 5 4.94975
 4 14 500 5 4.94975
 6 16 500 5 4.94975
 7 17 500 5 4.94975
 9 19 500 5 4.94975
 10 20 500 5 4.94975
 12 22 500 5 4.94975
 13 23 500 5 4.94975
 15 25 500 5 4.94975
 16 26 500 5 4.94975
 9 1 500 5 4.94975
 10 2 500 5 4.94975
 12 4 500 5 4.94975
 13 5 500 5 4.94975
 15 7 500 5 4.94975
 16 8 500 5 4.94975
 18 10 500 5 4.94975
 19 11 500 5 4.94975
 21 13 500 5 4.94975
 22 14 500 5 4.94975
 24 16 500 5 4.94975
 25 17 500 5 4.94975
 0 4 500 5 4.94975
 1 5 500 5 4.94975
 3 7 500 5 4.94975
 4 8 500 5 4.94975
 9 13 500 5 4.94975
 10 14 500 5 4.94975
 12 16 500 5 4.94975
 13 17 500 5 4.94975
 18 22 500 5 4.94975
 19 23 500 5 4.94975
 21 25 500 5 4.94975
 22 26 500 5 4.94975
 3 1 500 5 4.94975
 4 2 500 5 4.94975
 6 4 500 5 4.94975
 7 5 500 5 4.94975
 12 10 500 5 4.94975
 13 11 500 5 4.94975
 15 13 500 5 4.94975
 16 14 500 5 4.94975
 21 19 500 5 4.94975
 22 20 500 5 4.94975
 24 22 500 5 4.94975
 25 23 500 5 4.94975
"  />
        </Node>
        <Node    name="M2"  >
            <MeshGmshLoader name="loader"  filename="mesh/smCube27.msh" />
            <MechanicalObject template="Vec3" showObject="1" name="mObject2"  position="@loader.position"  velocity="0 0 0"  force="0 0 0"  externalForce="0 0 0"  derivX="0 0 0"  restScale="1"  translation="0 0 10.5" />
            <UniformMass name="uniformMass2"  vertexMass="0.1" />
            <StiffSpringForceField template="Vec3" name="InternalSprings2"  spring="0 9 100 5 3.5
 1 10 500 5 3.5
 2 11 500 5 3.5
 3 12 500 5 3.5
 4 13 500 5 3.5
 5 14 500 5 3.5
 6 15 500 5 3.5
 7 16 500 5 3.5
 8 17 500 5 3.5
 9 18 500 5 3.5
 10 19 500 5 3.5
 11 20 500 5 3.5
 12 21 500 5 3.5
 13 22 500 5 3.5
 14 23 500 5 3.5
 15 24 500 5 3.5
 16 25 500 5 3.5
 17 26 500 5 3.5
 0 3 500 5 3.5
 1 4 500 5 3.5
 2 5 500 5 3.5
 3 6 500 5 3.5
 4 7 500 5 3.5
 5 8 500 5 3.5
 9 12 500 5 3.5
 10 13 500 5 3.5
 11 14 500 5 3.5
 12 15 500 5 3.5
 13 16 500 5 3.5
 14 17 500 5 3.5
 18 21 500 5 3.5
 19 22 500 5 3.5
 20 23 500 5 3.5
 21 24 500 5 3.5
 22 25 500 5 3.5
 23 26 500 5 3.5
 0 1 500 5 3.5
 1 2 500 5 3.5
 3 4 500 5 3.5
 4 5 500 5 3.5
 6 7 500 5 3.5
 7 8 500 5 3.5
 9 10 500 5 3.5
 10 11 500 5 3.5
 12 13 500 5 3.5
 13 14 500 5 3.5
 15 16 500 5 3.5
 16 17 500 5 3.5
 18 19 500 5 3.5
 19 20 500 5 3.5
 21 22 500 5 3.5
 22 23 500 5 3.5
 24 25 500 5 3.5
 25 26 100 5 3.5
 0 13 500 5 6.06218
 1 14 500 5 6.06218
 3 16 500 5 6.06218
 4 17 500 5 6.06218
 9 22 500 5 6.06218
 10 23 500 5 6.06218
 12 25 500 5 6.06218
 13 26 500 5 6.06218
 9 4 500 5 6.06218
 10 5 500 5 6.06218
 12 7 500 5 6.06218
 13 8 500 5 6.06218
 18 13 500 5 6.06218
 19 14 500 5 6.06218
 21 16 500 5 6.06218
 22 17 500 5 6.06218
 3 10 500 5 6.06218
 4 11 500 5 6.06218
 6 13 500 5 6.06218
 7 14 500 5 6.06218
 12 19 500 5 6.06218
 13 20 500 5 6.06218
 15 22 500 5 6.06218
 16 23 500 5 6.06218
 12 1 500 5 6.06218
 13 2 500 5 6.06218
 15 4 500 5 6.06218
 16 5 500 5 6.06218
 21 10 500 5 6.06218
 22 11 500 5 6.06218
 24 13 500 5 6.06218
 25 14 500 5 6.06218
 0 12 500 5 4.94975
 1 13 500 5 4.94975
 2 14 500 5 4.94975
 3 15 500 5 4.94975
 4 16 500 5 4.94975
 5 17 500 5 4.94975
 9 21 500 5 4.94975
 10 22 500 5 4.94975
 11 23 500 5 4.94975
 12 24 500 5 4.94975
 13 25 500 5 4.94975
 14 26 500 5 4.94975
 3 9 500 5 4.94975
 4 10 500 5 4.94975
 5 11 500 5 4.94975
 6 12 500 5 4.94975
 7 13 500 5 4.94975
 8 14 500 5 4.94975
 12 18 500 5 4.94975
 13 19 500 5 4.94975
 14 20 500 5 4.94975
 15 21 500 5 4.94975
 16 22 500 5 4.94975
 17 23 500 5 4.94975
 0 10 500 5 4.94975
 1 11 500 5 4.94975
 3 13 500 5 4.94975
 4 14 500 5 4.94975
 6 16 500 5 4.94975
 7 17 500 5 4.94975
 9 19 500 5 4.94975
 10 20 500 5 4.94975
 12 22 500 5 4.94975
 13 23 500 5 4.94975
 15 25 500 5 4.94975
 16 26 500 5 4.94975
 9 1 500 5 4.94975
 10 2 500 5 4.94975
 12 4 500 5 4.94975
 13 5 500 5 4.94975
 15 7 500 5 4.94975
 16 8 500 5 4.94975
 18 10 500 5 4.94975
 19 11 500 5 4.94975
 21 13 500 5 4.94975
 22 14 500 5 4.94975
 24 16 500 5 4.94975
 25 17 500 5 4.94975
 0 4 500 5 4.94975
 1 5 500 5 4.94975
 3 7 500 5 4.94975
 4 8 500 5 4.94975
 9 13 500 5 4.94975
 10 14 500 5 4.94975
 12 16 500 5 4.94975
 13 17 500 5 4.94975
 18 22 500 5 4.94975
 19 23 500 5 4.94975
 21 25 500 5 4.94975
 22 26 500 5 4.94975
 3 1 500 5 4.94975
 4 2 500 5 4.94975
 6 4 500 5 4.94975
 7 5 500 5 4.94975
 12 10 500 5 4.94975
 13 11 500 5 4.94975
 15 13 500 5 4.94975
 16 14 500 5 4.94975
 21 19 500 5 4.94975
 22 20 500 5 4.94975
 24 22 500 5 4.94975
 25 23 500 5 4.94975
"  />
        </Node>
        <StiffSpringForceField template="Vec3" name="ExternalSprings1"  spring="2 0 500 5 3.5
 5 3 500 5 3.5
 8 6 500 5 3.5
 11 9 500 5 3.5
 14 12 500 5 3.5
 17 15 500 5 3.5
 20 18 500 5 3.5
 23 21 500 5 3.5
 26 24 500 5 3.5
 14 0 500 5 6.06218
 17 3 500 5 6.06218
 23 9 500 5 6.06218
 26 12 500 5 6.06218
 5 9 500 5 6.06218
 8 12 500 5 6.06218
 14 18 500 5 6.06218
 17 21 500 5 6.06218
 11 3 500 5 6.06218
 14 6 500 5 6.06218
 20 12 500 5 6.06218
 23 15 500 5 6.06218
 2 12 500 5 6.06218
 5 15 500 5 6.06218
 11 21 500 5 6.06218
 14 24 500 5 6.06218
 11 0 500 5 4.94975
 14 3 500 5 4.94975
 17 6 500 5 4.94975
 20 9 500 5 4.94975
 23 12 500 5 4.94975
 26 15 500 5 4.94975
 2 9 500 5 4.94975
 5 12 500 5 4.94975
 8 15 500 5 4.94975
 11 18 500 5 4.94975
 14 21 500 5 4.94975
 17 24 500 5 4.94975
 5 0 500 5 4.94975
 8 3 500 5 4.94975
 14 9 500 5 4.94975
 17 12 500 5 4.94975
 23 18 500 5 4.94975
 26 21 500 5 4.94975
 2 3 500 5 4.94975
 5 6 500 5 4.94975
 11 12 500 5 4.94975
 14 15 500 5 4.94975
 20 21 500 5 4.94975
 23 24 500 5 4.94975
"  object1="@M1/mObject1"  object2="@M2/mObject2" />
        <StiffSpringForceField template="Vec3" name="ExternalSprings2"  spring="2 0 500 5 3.5
 5 3 500 5 3.5
 8 6 500 5 3.5
 11 9 500 5 3.5
 14 12 500 5 3.5
 17 15 500 5 3.5
 20 18 500 5 3.5
 23 21 500 5 3.5
 26 24 500 5 3.5
 14 0 500 5 6.06218
 17 3 500 5 6.06218
 23 9 500 5 6.06218
 26 12 500 5 6.06218
 5 9 500 5 6.06218
 8 12 500 5 6.06218
 14 18 500 5 6.06218
 17 21 500 5 6.06218
 11 3 500 5 6.06218
 14 6 500 5 6.06218
 20 12 500 5 6.06218
 23 15 500 5 6.06218
 2 12 500 5 6.06218
 5 15 500 5 6.06218
 11 21 500 5 6.06218
 14 24 500 5 6.06218
 11 0 500 5 4.94975
 14 3 500 5 4.94975
 17 6 500 5 4.94975
 20 9 500 5 4.94975
 23 12 500 5 4.94975
 26 15 500 5 4.94975
 2 9 500 5 4.94975
 5 12 500 5 4.94975
 8 15 500 5 4.94975
 11 18 500 5 4.94975
 14 21 500 5 4.94975
 17 24 500 5 4.94975
 5 0 500 5 4.94975
 8 3 500 5 4.94975
 14 9 500 5 4.94975
 17 12 500 5 4.94975
 23 18 500 5 4.94975
 26 21 500 5 4.94975
 2 3 500 5 4.94975
 5 6 500 5 4.94975
 11 12 500 5 4.94975
 14 15 500 5 4.94975
 20 21 500 5 4.94975
 23 24 500 5 4.94975
"  object1="@M2/mObject2"  object2="@M3/mObject3" />
        <StiffSpringForceField template="Vec3" name="ExternalSprings3"  spring="2 0 500 5 3.5
 5 3 500 5 3.5
 8 6 500 5 3.5
 11 9 500 5 3.5
 14 12 500 5 3.5
 17 15 500 5 3.5
 20 18 500 5 3.5
 23 21 500 5 3.5
 26 24 500 5 3.5
 14 0 500 5 6.06218
 17 3 500 5 6.06218
 23 9 500 5 6.06218
 26 12 500 5 6.06218
 5 9 500 5 6.06218
 8 12 500 5 6.06218
 14 18 500 5 6.06218
 17 21 500 5 6.06218
 11 3 500 5 6.06218
 14 6 500 5 6.06218
 20 12 500 5 6.06218
 23 15 500 5 6.06218
 2 12 500 5 6.06218
 5 15 500 5 6.06218
 11 21 500 5 6.06218
 14 24 500 5 6.06218
 11 0 500 5 4.94975
 14 3 500 5 4.94975
 17 6 500 5 4.94975
 20 9 500 5 4.94975
 23 12 500 5 4.94975
 26 15 500 5 4.94975
 2 9 500 5 4.94975
 5 12 500 5 4.94975
 8 15 500 5 4.94975
 11 18 500 5 4.94975
 14 21 500 5 4.94975
 17 24 500 5 4.94975
 5 0 500 5 4.94975
 8 3 500 5 4.94975
 14 9 500 5 4.94975
 17 12 500 5 4.94975
 23 18 500 5 4.94975
 26 21 500 5 4.94975
 2 3 500 5 4.94975
 5 6 500 5 4.94975
 11 12 500 5 4.94975
 14 15 500 5 4.94975
 20 21 500 5 4.94975
 23 24 500 5 4.94975
"  object1="@M3/mObject3"  object2="@M4/mObject4" />
        <StiffSpringForceField template="Vec3" name="ExternalSprings4"  spring="2 0 500 5 3.5
 5 3 500 5 3.5
 8 6 500 5 3.5
 11 9 500 5 3.5
 14 12 500 5 3.5
 17 15 500 5 3.5
 20 18 500 5 3.5
 23 21 500 5 3.5
 26 24 500 5 3.5
 14 0 500 5 6.06218
 17 3 500 5 6.06218
 23 9 500 5 6.06218
 26 12 500 5 6.06218
 5 9 500 5 6.06218
 8 12 500 5 6.06218
 14 18 500 5 6.06218
 17 21 500 5 6.06218
 11 3 500 5 6.06218
 14 6 500 5 6.06218
 20 12 500 5 6.06218
 23 15 500 5 6.06218
 2 12 500 5 6.06218
 5 15 500 5 6.06218
 11 21 500 5 6.06218
 14 24 500 5 6.06218
 11 0 500 5 4.94975
 14 3 500 5 4.94975
 17 6 500 5 4.94975
 20 9 500 5 4.94975
 23 12 500 5 4.94975
 26 15 500 5 4.94975
 2 9 500 5 4.94975
 5 12 500 5 4.94975
 8 15 500 5 4.94975
 11 18 500 5 4.94975
 14 21 500 5 4.94975
 17 24 500 5 4.94975
 5 0 500 5 4.94975
 8 3 500 5 4.94975
 14 9 500 5 4.94975
 17 12 500 5 4.94975
 23 18 500 5 4.94975
 26 21 500 5 4.94975
 2 3 500 5 4.94975
 5 6 500 5 4.94975
 11 12 500 5 4.94975
 14 15 500 5 4.94975
 20 21 500 5 4.94975
 23 24 500 5 4.94975
"  object1="@M4/mObject4"  object2="@M5/mObject5" />
    </Node>
</Node>

```python def createScene(rootNode):

root = rootNode.addChild('root', dt="0.005")
root.addObject('RequiredPlugin', name="Sofa.Component.Constraint.Projective")
root.addObject('RequiredPlugin', name="Sofa.Component.IO.Mesh")
root.addObject('RequiredPlugin', name="Sofa.Component.LinearSolver.Iterative")
root.addObject('RequiredPlugin', name="Sofa.Component.Mass")
root.addObject('RequiredPlugin', name="Sofa.Component.ODESolver.Backward")
root.addObject('RequiredPlugin', name="Sofa.Component.SolidMechanics.Spring")
root.addObject('RequiredPlugin', name="Sofa.Component.StateContainer")
root.addObject('RequiredPlugin', name="Sofa.Component.Visual")
root.addObject('DefaultAnimationLoop')
root.addObject('VisualStyle', name="visualStyle1", displayFlags="showBehaviorModels showForceFields showCollisionModels showMappings")

Poutre1 = root.addChild('Poutre1')
Poutre1.addObject('EulerImplicitSolver', name="cg_odesolver", printLog="0", rayleighStiffness="0.1", rayleighMass="0.1")
Poutre1.addObject('CGLinearSolver', template="GraphScattered", name="linear solver", iterations="25", tolerance="1e-09", threshold="1e-09")

M1 = Poutre1.addChild('M1')
M1.addObject('MeshGmshLoader', name="loader", filename="mesh/smCube27.msh")
M1.addObject('MechanicalObject', template="Vec3", showObject="1", name="mObject1", position="@loader.position", velocity="0 0 0", force="0 0 0", externalForce="0 0 0", derivX="0 0 0", restScale="1")
M1.addObject('UniformMass', name="uniformMass1", vertexMass="0.1")
M1.addObject('FixedProjectiveConstraint', template="Vec3", name="fixedProjectiveConstraint1", indices="0 3 6 9 12 15 18 21 24")
M1.addObject('StiffSpringForceField', template="Vec3", name="InternalSprings1", spring="0 9 100 5 3.5

1 10 500 5 3.5 2 11 500 5 3.5 3 12 500 5 3.5 4 13 500 5 3.5 5 14 500 5 3.5 6 15 500 5 3.5 7 16 500 5 3.5 8 17 500 5 3.5 9 18 500 5 3.5 10 19 500 5 3.5 11 20 500 5 3.5 12 21 500 5 3.5 13 22 500 5 3.5 14 23 500 5 3.5 15 24 500 5 3.5 16 25 500 5 3.5 17 26 500 5 3.5 0 3 500 5 3.5 1 4 500 5 3.5 2 5 500 5 3.5 3 6 500 5 3.5 4 7 500 5 3.5 5 8 500 5 3.5 9 12 500 5 3.5 10 13 500 5 3.5 11 14 500 5 3.5 12 15 500 5 3.5 13 16 500 5 3.5 14 17 500 5 3.5 18 21 500 5 3.5 19 22 500 5 3.5 20 23 500 5 3.5 21 24 500 5 3.5 22 25 500 5 3.5 23 26 500 5 3.5 0 1 500 5 3.5 1 2 500 5 3.5 3 4 500 5 3.5 4 5 500 5 3.5 6 7 500 5 3.5 7 8 500 5 3.5 9 10 500 5 3.5 10 11 500 5 3.5 12 13 500 5 3.5 13 14 500 5 3.5 15 16 500 5 3.5 16 17 500 5 3.5 18 19 500 5 3.5 19 20 500 5 3.5 21 22 500 5 3.5 22 23 500 5 3.5 24 25 500 5 3.5 25 26 100 5 3.5 0 13 500 5 6.06218 1 14 500 5 6.06218 3 16 500 5 6.06218 4 17 500 5 6.06218 9 22 500 5 6.06218 10 23 500 5 6.06218 12 25 500 5 6.06218 13 26 500 5 6.06218 9 4 500 5 6.06218 10 5 500 5 6.06218 12 7 500 5 6.06218 13 8 500 5 6.06218 18 13 500 5 6.06218 19 14 500 5 6.06218 21 16 500 5 6.06218 22 17 500 5 6.06218 3 10 500 5 6.06218 4 11 500 5 6.06218 6 13 500 5 6.06218 7 14 500 5 6.06218 12 19 500 5 6.06218 13 20 500 5 6.06218 15 22 500 5 6.06218 16 23 500 5 6.06218 12 1 500 5 6.06218 13 2 500 5 6.06218 15 4 500 5 6.06218 16 5 500 5 6.06218 21 10 500 5 6.06218 22 11 500 5 6.06218 24 13 500 5 6.06218 25 14 500 5 6.06218 0 12 500 5 4.94975 1 13 500 5 4.94975 2 14 500 5 4.94975 3 15 500 5 4.94975 4 16 500 5 4.94975 5 17 500 5 4.94975 9 21 500 5 4.94975 10 22 500 5 4.94975 11 23 500 5 4.94975 12 24 500 5 4.94975 13 25 500 5 4.94975 14 26 500 5 4.94975 3 9 500 5 4.94975 4 10 500 5 4.94975 5 11 500 5 4.94975 6 12 500 5 4.94975 7 13 500 5 4.94975 8 14 500 5 4.94975 12 18 500 5 4.94975 13 19 500 5 4.94975 14 20 500 5 4.94975 15 21 500 5 4.94975 16 22 500 5 4.94975 17 23 500 5 4.94975 0 10 500 5 4.94975 1 11 500 5 4.94975 3 13 500 5 4.94975 4 14 500 5 4.94975 6 16 500 5 4.94975 7 17 500 5 4.94975 9 19 500 5 4.94975 10 20 500 5 4.94975 12 22 500 5 4.94975 13 23 500 5 4.94975 15 25 500 5 4.94975 16 26 500 5 4.94975 9 1 500 5 4.94975 10 2 500 5 4.94975 12 4 500 5 4.94975 13 5 500 5 4.94975 15 7 500 5 4.94975 16 8 500 5 4.94975 18 10 500 5 4.94975 19 11 500 5 4.94975 21 13 500 5 4.94975 22 14 500 5 4.94975 24 16 500 5 4.94975 25 17 500 5 4.94975 0 4 500 5 4.94975 1 5 500 5 4.94975 3 7 500 5 4.94975 4 8 500 5 4.94975 9 13 500 5 4.94975 10 14 500 5 4.94975 12 16 500 5 4.94975 13 17 500 5 4.94975 18 22 500 5 4.94975 19 23 500 5 4.94975 21 25 500 5 4.94975 22 26 500 5 4.94975 3 1 500 5 4.94975 4 2 500 5 4.94975 6 4 500 5 4.94975 7 5 500 5 4.94975 12 10 500 5 4.94975 13 11 500 5 4.94975 15 13 500 5 4.94975 16 14 500 5 4.94975 21 19 500 5 4.94975 22 20 500 5 4.94975 24 22 500 5 4.94975 25 23 500 5 4.94975 ")

    M5 = Poutre1.addChild('M5')
    M5.addObject('MeshGmshLoader', name="loader", filename="mesh/smCube27.msh")
    M5.addObject('MechanicalObject', template="Vec3", name="mObject5", showObject="1", position="@loader.position", velocity="0 0 0", force="0 0 0", externalForce="0 0 0", derivX="0 0 0", restScale="1", translation="0 0 42")
    M5.addObject('UniformMass', name="uniformMass5", vertexMass="0.1")
    M5.addObject('StiffSpringForceField', template="Vec3", name="InternalSprings5", spring="0 9 100 5 3.5

1 10 500 5 3.5 2 11 500 5 3.5 3 12 500 5 3.5 4 13 500 5 3.5 5 14 500 5 3.5 6 15 500 5 3.5 7 16 500 5 3.5 8 17 500 5 3.5 9 18 500 5 3.5 10 19 500 5 3.5 11 20 500 5 3.5 12 21 500 5 3.5 13 22 500 5 3.5 14 23 500 5 3.5 15 24 500 5 3.5 16 25 500 5 3.5 17 26 500 5 3.5 0 3 500 5 3.5 1 4 500 5 3.5 2 5 500 5 3.5 3 6 500 5 3.5 4 7 500 5 3.5 5 8 500 5 3.5 9 12 500 5 3.5 10 13 500 5 3.5 11 14 500 5 3.5 12 15 500 5 3.5 13 16 500 5 3.5 14 17 500 5 3.5 18 21 500 5 3.5 19 22 500 5 3.5 20 23 500 5 3.5 21 24 500 5 3.5 22 25 500 5 3.5 23 26 500 5 3.5 0 1 500 5 3.5 1 2 500 5 3.5 3 4 500 5 3.5 4 5 500 5 3.5 6 7 500 5 3.5 7 8 500 5 3.5 9 10 500 5 3.5 10 11 500 5 3.5 12 13 500 5 3.5 13 14 500 5 3.5 15 16 500 5 3.5 16 17 500 5 3.5 18 19 500 5 3.5 19 20 500 5 3.5 21 22 500 5 3.5 22 23 500 5 3.5 24 25 500 5 3.5 25 26 100 5 3.5 0 13 500 5 6.06218 1 14 500 5 6.06218 3 16 500 5 6.06218 4 17 500 5 6.06218 9 22 500 5 6.06218 10 23 500 5 6.06218 12 25 500 5 6.06218 13 26 500 5 6.06218 9 4 500 5 6.06218 10 5 500 5 6.06218 12 7 500 5 6.06218 13 8 500 5 6.06218 18 13 500 5 6.06218 19 14 500 5 6.06218 21 16 500 5 6.06218 22 17 500 5 6.06218 3 10 500 5 6.06218 4 11 500 5 6.06218 6 13 500 5 6.06218 7 14 500 5 6.06218 12 19 500 5 6.06218 13 20 500 5 6.06218 15 22 500 5 6.06218 16 23 500 5 6.06218 12 1 500 5 6.06218 13 2 500 5 6.06218 15 4 500 5 6.06218 16 5 500 5 6.06218 21 10 500 5 6.06218 22 11 500 5 6.06218 24 13 500 5 6.06218 25 14 500 5 6.06218 0 12 500 5 4.94975 1 13 500 5 4.94975 2 14 500 5 4.94975 3 15 500 5 4.94975 4 16 500 5 4.94975 5 17 500 5 4.94975 9 21 500 5 4.94975 10 22 500 5 4.94975 11 23 500 5 4.94975 12 24 500 5 4.94975 13 25 500 5 4.94975 14 26 500 5 4.94975 3 9 500 5 4.94975 4 10 500 5 4.94975 5 11 500 5 4.94975 6 12 500 5 4.94975 7 13 500 5 4.94975 8 14 500 5 4.94975 12 18 500 5 4.94975 13 19 500 5 4.94975 14 20 500 5 4.94975 15 21 500 5 4.94975 16 22 500 5 4.94975 17 23 500 5 4.94975 0 10 500 5 4.94975 1 11 500 5 4.94975 3 13 500 5 4.94975 4 14 500 5 4.94975 6 16 500 5 4.94975 7 17 500 5 4.94975 9 19 500 5 4.94975 10 20 500 5 4.94975 12 22 500 5 4.94975 13 23 500 5 4.94975 15 25 500 5 4.94975 16 26 500 5 4.94975 9 1 500 5 4.94975 10 2 500 5 4.94975 12 4 500 5 4.94975 13 5 500 5 4.94975 15 7 500 5 4.94975 16 8 500 5 4.94975 18 10 500 5 4.94975 19 11 500 5 4.94975 21 13 500 5 4.94975 22 14 500 5 4.94975 24 16 500 5 4.94975 25 17 500 5 4.94975 0 4 500 5 4.94975 1 5 500 5 4.94975 3 7 500 5 4.94975 4 8 500 5 4.94975 9 13 500 5 4.94975 10 14 500 5 4.94975 12 16 500 5 4.94975 13 17 500 5 4.94975 18 22 500 5 4.94975 19 23 500 5 4.94975 21 25 500 5 4.94975 22 26 500 5 4.94975 3 1 500 5 4.94975 4 2 500 5 4.94975 6 4 500 5 4.94975 7 5 500 5 4.94975 12 10 500 5 4.94975 13 11 500 5 4.94975 15 13 500 5 4.94975 16 14 500 5 4.94975 21 19 500 5 4.94975 22 20 500 5 4.94975 24 22 500 5 4.94975 25 23 500 5 4.94975 ")

    M4 = Poutre1.addChild('M4')
    M4.addObject('MeshGmshLoader', name="loader", filename="mesh/smCube27.msh")
    M4.addObject('MechanicalObject', template="Vec3", name="mObject4", showObject="1", position="@loader.position", velocity="0 0 0", force="0 0 0", externalForce="0 0 0", derivX="0 0 0", restScale="1", translation="0 0 31.5")
    M4.addObject('UniformMass', name="uniformMass4", vertexMass="0.1")
    M4.addObject('StiffSpringForceField', template="Vec3", name="InternalSprings4", spring="0 9 100 5 3.5

1 10 500 5 3.5 2 11 500 5 3.5 3 12 500 5 3.5 4 13 500 5 3.5 5 14 500 5 3.5 6 15 500 5 3.5 7 16 500 5 3.5 8 17 500 5 3.5 9 18 500 5 3.5 10 19 500 5 3.5 11 20 500 5 3.5 12 21 500 5 3.5 13 22 500 5 3.5 14 23 500 5 3.5 15 24 500 5 3.5 16 25 500 5 3.5 17 26 500 5 3.5 0 3 500 5 3.5 1 4 500 5 3.5 2 5 500 5 3.5 3 6 500 5 3.5 4 7 500 5 3.5 5 8 500 5 3.5 9 12 500 5 3.5 10 13 500 5 3.5 11 14 500 5 3.5 12 15 500 5 3.5 13 16 500 5 3.5 14 17 500 5 3.5 18 21 500 5 3.5 19 22 500 5 3.5 20 23 500 5 3.5 21 24 500 5 3.5 22 25 500 5 3.5 23 26 500 5 3.5 0 1 500 5 3.5 1 2 500 5 3.5 3 4 500 5 3.5 4 5 500 5 3.5 6 7 500 5 3.5 7 8 500 5 3.5 9 10 500 5 3.5 10 11 500 5 3.5 12 13 500 5 3.5 13 14 500 5 3.5 15 16 500 5 3.5 16 17 500 5 3.5 18 19 500 5 3.5 19 20 500 5 3.5 21 22 500 5 3.5 22 23 500 5 3.5 24 25 500 5 3.5 25 26 100 5 3.5 0 13 500 5 6.06218 1 14 500 5 6.06218 3 16 500 5 6.06218 4 17 500 5 6.06218 9 22 500 5 6.06218 10 23 500 5 6.06218 12 25 500 5 6.06218 13 26 500 5 6.06218 9 4 500 5 6.06218 10 5 500 5 6.06218 12 7 500 5 6.06218 13 8 500 5 6.06218 18 13 500 5 6.06218 19 14 500 5 6.06218 21 16 500 5 6.06218 22 17 500 5 6.06218 3 10 500 5 6.06218 4 11 500 5 6.06218 6 13 500 5 6.06218 7 14 500 5 6.06218 12 19 500 5 6.06218 13 20 500 5 6.06218 15 22 500 5 6.06218 16 23 500 5 6.06218 12 1 500 5 6.06218 13 2 500 5 6.06218 15 4 500 5 6.06218 16 5 500 5 6.06218 21 10 500 5 6.06218 22 11 500 5 6.06218 24 13 500 5 6.06218 25 14 500 5 6.06218 0 12 500 5 4.94975 1 13 500 5 4.94975 2 14 500 5 4.94975 3 15 500 5 4.94975 4 16 500 5 4.94975 5 17 500 5 4.94975 9 21 500 5 4.94975 10 22 500 5 4.94975 11 23 500 5 4.94975 12 24 500 5 4.94975 13 25 500 5 4.94975 14 26 500 5 4.94975 3 9 500 5 4.94975 4 10 500 5 4.94975 5 11 500 5 4.94975 6 12 500 5 4.94975 7 13 500 5 4.94975 8 14 500 5 4.94975 12 18 500 5 4.94975 13 19 500 5 4.94975 14 20 500 5 4.94975 15 21 500 5 4.94975 16 22 500 5 4.94975 17 23 500 5 4.94975 0 10 500 5 4.94975 1 11 500 5 4.94975 3 13 500 5 4.94975 4 14 500 5 4.94975 6 16 500 5 4.94975 7 17 500 5 4.94975 9 19 500 5 4.94975 10 20 500 5 4.94975 12 22 500 5 4.94975 13 23 500 5 4.94975 15 25 500 5 4.94975 16 26 500 5 4.94975 9 1 500 5 4.94975 10 2 500 5 4.94975 12 4 500 5 4.94975 13 5 500 5 4.94975 15 7 500 5 4.94975 16 8 500 5 4.94975 18 10 500 5 4.94975 19 11 500 5 4.94975 21 13 500 5 4.94975 22 14 500 5 4.94975 24 16 500 5 4.94975 25 17 500 5 4.94975 0 4 500 5 4.94975 1 5 500 5 4.94975 3 7 500 5 4.94975 4 8 500 5 4.94975 9 13 500 5 4.94975 10 14 500 5 4.94975 12 16 500 5 4.94975 13 17 500 5 4.94975 18 22 500 5 4.94975 19 23 500 5 4.94975 21 25 500 5 4.94975 22 26 500 5 4.94975 3 1 500 5 4.94975 4 2 500 5 4.94975 6 4 500 5 4.94975 7 5 500 5 4.94975 12 10 500 5 4.94975 13 11 500 5 4.94975 15 13 500 5 4.94975 16 14 500 5 4.94975 21 19 500 5 4.94975 22 20 500 5 4.94975 24 22 500 5 4.94975 25 23 500 5 4.94975 ")

    M3 = Poutre1.addChild('M3')
    M3.addObject('MeshGmshLoader', name="loader", filename="mesh/smCube27.msh")
    M3.addObject('MechanicalObject', template="Vec3", showObject="1", name="mObject3", position="@loader.position", velocity="0 0 0", force="0 0 0", externalForce="0 0 0", derivX="0 0 0", restScale="1", translation="0 0 21")
    M3.addObject('UniformMass', name="uniformMass3", vertexMass="0.1")
    M3.addObject('StiffSpringForceField', template="Vec3", name="InternalSprings3", spring="0 9 100 5 3.5

1 10 500 5 3.5 2 11 500 5 3.5 3 12 500 5 3.5 4 13 500 5 3.5 5 14 500 5 3.5 6 15 500 5 3.5 7 16 500 5 3.5 8 17 500 5 3.5 9 18 500 5 3.5 10 19 500 5 3.5 11 20 500 5 3.5 12 21 500 5 3.5 13 22 500 5 3.5 14 23 500 5 3.5 15 24 500 5 3.5 16 25 500 5 3.5 17 26 500 5 3.5 0 3 500 5 3.5 1 4 500 5 3.5 2 5 500 5 3.5 3 6 500 5 3.5 4 7 500 5 3.5 5 8 500 5 3.5 9 12 500 5 3.5 10 13 500 5 3.5 11 14 500 5 3.5 12 15 500 5 3.5 13 16 500 5 3.5 14 17 500 5 3.5 18 21 500 5 3.5 19 22 500 5 3.5 20 23 500 5 3.5 21 24 500 5 3.5 22 25 500 5 3.5 23 26 500 5 3.5 0 1 500 5 3.5 1 2 500 5 3.5 3 4 500 5 3.5 4 5 500 5 3.5 6 7 500 5 3.5 7 8 500 5 3.5 9 10 500 5 3.5 10 11 500 5 3.5 12 13 500 5 3.5 13 14 500 5 3.5 15 16 500 5 3.5 16 17 500 5 3.5 18 19 500 5 3.5 19 20 500 5 3.5 21 22 500 5 3.5 22 23 500 5 3.5 24 25 500 5 3.5 25 26 100 5 3.5 0 13 500 5 6.06218 1 14 500 5 6.06218 3 16 500 5 6.06218 4 17 500 5 6.06218 9 22 500 5 6.06218 10 23 500 5 6.06218 12 25 500 5 6.06218 13 26 500 5 6.06218 9 4 500 5 6.06218 10 5 500 5 6.06218 12 7 500 5 6.06218 13 8 500 5 6.06218 18 13 500 5 6.06218 19 14 500 5 6.06218 21 16 500 5 6.06218 22 17 500 5 6.06218 3 10 500 5 6.06218 4 11 500 5 6.06218 6 13 500 5 6.06218 7 14 500 5 6.06218 12 19 500 5 6.06218 13 20 500 5 6.06218 15 22 500 5 6.06218 16 23 500 5 6.06218 12 1 500 5 6.06218 13 2 500 5 6.06218 15 4 500 5 6.06218 16 5 500 5 6.06218 21 10 500 5 6.06218 22 11 500 5 6.06218 24 13 500 5 6.06218 25 14 500 5 6.06218 0 12 500 5 4.94975 1 13 500 5 4.94975 2 14 500 5 4.94975 3 15 500 5 4.94975 4 16 500 5 4.94975 5 17 500 5 4.94975 9 21 500 5 4.94975 10 22 500 5 4.94975 11 23 500 5 4.94975 12 24 500 5 4.94975 13 25 500 5 4.94975 14 26 500 5 4.94975 3 9 500 5 4.94975 4 10 500 5 4.94975 5 11 500 5 4.94975 6 12 500 5 4.94975 7 13 500 5 4.94975 8 14 500 5 4.94975 12 18 500 5 4.94975 13 19 500 5 4.94975 14 20 500 5 4.94975 15 21 500 5 4.94975 16 22 500 5 4.94975 17 23 500 5 4.94975 0 10 500 5 4.94975 1 11 500 5 4.94975 3 13 500 5 4.94975 4 14 500 5 4.94975 6 16 500 5 4.94975 7 17 500 5 4.94975 9 19 500 5 4.94975 10 20 500 5 4.94975 12 22 500 5 4.94975 13 23 500 5 4.94975 15 25 500 5 4.94975 16 26 500 5 4.94975 9 1 500 5 4.94975 10 2 500 5 4.94975 12 4 500 5 4.94975 13 5 500 5 4.94975 15 7 500 5 4.94975 16 8 500 5 4.94975 18 10 500 5 4.94975 19 11 500 5 4.94975 21 13 500 5 4.94975 22 14 500 5 4.94975 24 16 500 5 4.94975 25 17 500 5 4.94975 0 4 500 5 4.94975 1 5 500 5 4.94975 3 7 500 5 4.94975 4 8 500 5 4.94975 9 13 500 5 4.94975 10 14 500 5 4.94975 12 16 500 5 4.94975 13 17 500 5 4.94975 18 22 500 5 4.94975 19 23 500 5 4.94975 21 25 500 5 4.94975 22 26 500 5 4.94975 3 1 500 5 4.94975 4 2 500 5 4.94975 6 4 500 5 4.94975 7 5 500 5 4.94975 12 10 500 5 4.94975 13 11 500 5 4.94975 15 13 500 5 4.94975 16 14 500 5 4.94975 21 19 500 5 4.94975 22 20 500 5 4.94975 24 22 500 5 4.94975 25 23 500 5 4.94975 ")

    M2 = Poutre1.addChild('M2')
    M2.addObject('MeshGmshLoader', name="loader", filename="mesh/smCube27.msh")
    M2.addObject('MechanicalObject', template="Vec3", showObject="1", name="mObject2", position="@loader.position", velocity="0 0 0", force="0 0 0", externalForce="0 0 0", derivX="0 0 0", restScale="1", translation="0 0 10.5")
    M2.addObject('UniformMass', name="uniformMass2", vertexMass="0.1")
    M2.addObject('StiffSpringForceField', template="Vec3", name="InternalSprings2", spring="0 9 100 5 3.5

1 10 500 5 3.5 2 11 500 5 3.5 3 12 500 5 3.5 4 13 500 5 3.5 5 14 500 5 3.5 6 15 500 5 3.5 7 16 500 5 3.5 8 17 500 5 3.5 9 18 500 5 3.5 10 19 500 5 3.5 11 20 500 5 3.5 12 21 500 5 3.5 13 22 500 5 3.5 14 23 500 5 3.5 15 24 500 5 3.5 16 25 500 5 3.5 17 26 500 5 3.5 0 3 500 5 3.5 1 4 500 5 3.5 2 5 500 5 3.5 3 6 500 5 3.5 4 7 500 5 3.5 5 8 500 5 3.5 9 12 500 5 3.5 10 13 500 5 3.5 11 14 500 5 3.5 12 15 500 5 3.5 13 16 500 5 3.5 14 17 500 5 3.5 18 21 500 5 3.5 19 22 500 5 3.5 20 23 500 5 3.5 21 24 500 5 3.5 22 25 500 5 3.5 23 26 500 5 3.5 0 1 500 5 3.5 1 2 500 5 3.5 3 4 500 5 3.5 4 5 500 5 3.5 6 7 500 5 3.5 7 8 500 5 3.5 9 10 500 5 3.5 10 11 500 5 3.5 12 13 500 5 3.5 13 14 500 5 3.5 15 16 500 5 3.5 16 17 500 5 3.5 18 19 500 5 3.5 19 20 500 5 3.5 21 22 500 5 3.5 22 23 500 5 3.5 24 25 500 5 3.5 25 26 100 5 3.5 0 13 500 5 6.06218 1 14 500 5 6.06218 3 16 500 5 6.06218 4 17 500 5 6.06218 9 22 500 5 6.06218 10 23 500 5 6.06218 12 25 500 5 6.06218 13 26 500 5 6.06218 9 4 500 5 6.06218 10 5 500 5 6.06218 12 7 500 5 6.06218 13 8 500 5 6.06218 18 13 500 5 6.06218 19 14 500 5 6.06218 21 16 500 5 6.06218 22 17 500 5 6.06218 3 10 500 5 6.06218 4 11 500 5 6.06218 6 13 500 5 6.06218 7 14 500 5 6.06218 12 19 500 5 6.06218 13 20 500 5 6.06218 15 22 500 5 6.06218 16 23 500 5 6.06218 12 1 500 5 6.06218 13 2 500 5 6.06218 15 4 500 5 6.06218 16 5 500 5 6.06218 21 10 500 5 6.06218 22 11 500 5 6.06218 24 13 500 5 6.06218 25 14 500 5 6.06218 0 12 500 5 4.94975 1 13 500 5 4.94975 2 14 500 5 4.94975 3 15 500 5 4.94975 4 16 500 5 4.94975 5 17 500 5 4.94975 9 21 500 5 4.94975 10 22 500 5 4.94975 11 23 500 5 4.94975 12 24 500 5 4.94975 13 25 500 5 4.94975 14 26 500 5 4.94975 3 9 500 5 4.94975 4 10 500 5 4.94975 5 11 500 5 4.94975 6 12 500 5 4.94975 7 13 500 5 4.94975 8 14 500 5 4.94975 12 18 500 5 4.94975 13 19 500 5 4.94975 14 20 500 5 4.94975 15 21 500 5 4.94975 16 22 500 5 4.94975 17 23 500 5 4.94975 0 10 500 5 4.94975 1 11 500 5 4.94975 3 13 500 5 4.94975 4 14 500 5 4.94975 6 16 500 5 4.94975 7 17 500 5 4.94975 9 19 500 5 4.94975 10 20 500 5 4.94975 12 22 500 5 4.94975 13 23 500 5 4.94975 15 25 500 5 4.94975 16 26 500 5 4.94975 9 1 500 5 4.94975 10 2 500 5 4.94975 12 4 500 5 4.94975 13 5 500 5 4.94975 15 7 500 5 4.94975 16 8 500 5 4.94975 18 10 500 5 4.94975 19 11 500 5 4.94975 21 13 500 5 4.94975 22 14 500 5 4.94975 24 16 500 5 4.94975 25 17 500 5 4.94975 0 4 500 5 4.94975 1 5 500 5 4.94975 3 7 500 5 4.94975 4 8 500 5 4.94975 9 13 500 5 4.94975 10 14 500 5 4.94975 12 16 500 5 4.94975 13 17 500 5 4.94975 18 22 500 5 4.94975 19 23 500 5 4.94975 21 25 500 5 4.94975 22 26 500 5 4.94975 3 1 500 5 4.94975 4 2 500 5 4.94975 6 4 500 5 4.94975 7 5 500 5 4.94975 12 10 500 5 4.94975 13 11 500 5 4.94975 15 13 500 5 4.94975 16 14 500 5 4.94975 21 19 500 5 4.94975 22 20 500 5 4.94975 24 22 500 5 4.94975 25 23 500 5 4.94975 ") Poutre1.addObject('StiffSpringForceField', template="Vec3", name="ExternalSprings1", spring="2 0 500 5 3.5 5 3 500 5 3.5 8 6 500 5 3.5 11 9 500 5 3.5 14 12 500 5 3.5 17 15 500 5 3.5 20 18 500 5 3.5 23 21 500 5 3.5 26 24 500 5 3.5 14 0 500 5 6.06218 17 3 500 5 6.06218 23 9 500 5 6.06218 26 12 500 5 6.06218 5 9 500 5 6.06218 8 12 500 5 6.06218 14 18 500 5 6.06218 17 21 500 5 6.06218 11 3 500 5 6.06218 14 6 500 5 6.06218 20 12 500 5 6.06218 23 15 500 5 6.06218 2 12 500 5 6.06218 5 15 500 5 6.06218 11 21 500 5 6.06218 14 24 500 5 6.06218 11 0 500 5 4.94975 14 3 500 5 4.94975 17 6 500 5 4.94975 20 9 500 5 4.94975 23 12 500 5 4.94975 26 15 500 5 4.94975 2 9 500 5 4.94975 5 12 500 5 4.94975 8 15 500 5 4.94975 11 18 500 5 4.94975 14 21 500 5 4.94975 17 24 500 5 4.94975 5 0 500 5 4.94975 8 3 500 5 4.94975 14 9 500 5 4.94975 17 12 500 5 4.94975 23 18 500 5 4.94975 26 21 500 5 4.94975 2 3 500 5 4.94975 5 6 500 5 4.94975 11 12 500 5 4.94975 14 15 500 5 4.94975 20 21 500 5 4.94975 23 24 500 5 4.94975 ", object1="@M1/mObject1", object2="@M2/mObject2") Poutre1.addObject('StiffSpringForceField', template="Vec3", name="ExternalSprings2", spring="2 0 500 5 3.5 5 3 500 5 3.5 8 6 500 5 3.5 11 9 500 5 3.5 14 12 500 5 3.5 17 15 500 5 3.5 20 18 500 5 3.5 23 21 500 5 3.5 26 24 500 5 3.5 14 0 500 5 6.06218 17 3 500 5 6.06218 23 9 500 5 6.06218 26 12 500 5 6.06218 5 9 500 5 6.06218 8 12 500 5 6.06218 14 18 500 5 6.06218 17 21 500 5 6.06218 11 3 500 5 6.06218 14 6 500 5 6.06218 20 12 500 5 6.06218 23 15 500 5 6.06218 2 12 500 5 6.06218 5 15 500 5 6.06218 11 21 500 5 6.06218 14 24 500 5 6.06218 11 0 500 5 4.94975 14 3 500 5 4.94975 17 6 500 5 4.94975 20 9 500 5 4.94975 23 12 500 5 4.94975 26 15 500 5 4.94975 2 9 500 5 4.94975 5 12 500 5 4.94975 8 15 500 5 4.94975 11 18 500 5 4.94975 14 21 500 5 4.94975 17 24 500 5 4.94975 5 0 500 5 4.94975 8 3 500 5 4.94975 14 9 500 5 4.94975 17 12 500 5 4.94975 23 18 500 5 4.94975 26 21 500 5 4.94975 2 3 500 5 4.94975 5 6 500 5 4.94975 11 12 500 5 4.94975 14 15 500 5 4.94975 20 21 500 5 4.94975 23 24 500 5 4.94975 ", object1="@M2/mObject2", object2="@M3/mObject3") Poutre1.addObject('StiffSpringForceField', template="Vec3", name="ExternalSprings3", spring="2 0 500 5 3.5 5 3 500 5 3.5 8 6 500 5 3.5 11 9 500 5 3.5 14 12 500 5 3.5 17 15 500 5 3.5 20 18 500 5 3.5 23 21 500 5 3.5 26 24 500 5 3.5 14 0 500 5 6.06218 17 3 500 5 6.06218 23 9 500 5 6.06218 26 12 500 5 6.06218 5 9 500 5 6.06218 8 12 500 5 6.06218 14 18 500 5 6.06218 17 21 500 5 6.06218 11 3 500 5 6.06218 14 6 500 5 6.06218 20 12 500 5 6.06218 23 15 500 5 6.06218 2 12 500 5 6.06218 5 15 500 5 6.06218 11 21 500 5 6.06218 14 24 500 5 6.06218 11 0 500 5 4.94975 14 3 500 5 4.94975 17 6 500 5 4.94975 20 9 500 5 4.94975 23 12 500 5 4.94975 26 15 500 5 4.94975 2 9 500 5 4.94975 5 12 500 5 4.94975 8 15 500 5 4.94975 11 18 500 5 4.94975 14 21 500 5 4.94975 17 24 500 5 4.94975 5 0 500 5 4.94975 8 3 500 5 4.94975 14 9 500 5 4.94975 17 12 500 5 4.94975 23 18 500 5 4.94975 26 21 500 5 4.94975 2 3 500 5 4.94975 5 6 500 5 4.94975 11 12 500 5 4.94975 14 15 500 5 4.94975 20 21 500 5 4.94975 23 24 500 5 4.94975 ", object1="@M3/mObject3", object2="@M4/mObject4") Poutre1.addObject('StiffSpringForceField', template="Vec3", name="ExternalSprings4", spring="2 0 500 5 3.5 5 3 500 5 3.5 8 6 500 5 3.5 11 9 500 5 3.5 14 12 500 5 3.5 17 15 500 5 3.5 20 18 500 5 3.5 23 21 500 5 3.5 26 24 500 5 3.5 14 0 500 5 6.06218 17 3 500 5 6.06218 23 9 500 5 6.06218 26 12 500 5 6.06218 5 9 500 5 6.06218 8 12 500 5 6.06218 14 18 500 5 6.06218 17 21 500 5 6.06218 11 3 500 5 6.06218 14 6 500 5 6.06218 20 12 500 5 6.06218 23 15 500 5 6.06218 2 12 500 5 6.06218 5 15 500 5 6.06218 11 21 500 5 6.06218 14 24 500 5 6.06218 11 0 500 5 4.94975 14 3 500 5 4.94975 17 6 500 5 4.94975 20 9 500 5 4.94975 23 12 500 5 4.94975 26 15 500 5 4.94975 2 9 500 5 4.94975 5 12 500 5 4.94975 8 15 500 5 4.94975 11 18 500 5 4.94975 14 21 500 5 4.94975 17 24 500 5 4.94975 5 0 500 5 4.94975 8 3 500 5 4.94975 14 9 500 5 4.94975 17 12 500 5 4.94975 23 18 500 5 4.94975 26 21 500 5 4.94975 2 3 500 5 4.94975 5 6 500 5 4.94975 11 12 500 5 4.94975 14 15 500 5 4.94975 20 21 500 5 4.94975 23 24 500 5 4.94975 ", object1="@M4/mObject4", object2="@M5/mObject5") ```