[38ba34]: / Body / AAUHuman / Arm / ForearmSoftTissues.any

Download this file

133 lines (117 with data), 8.4 kB

// This file introduces ligaments of the forearm. All ligament attachments are selected according to available anatomy drawings.

Seg.Ulna = {
  AnyMatrix UlnaLigPoints = {
    {0.01027256, 0.03053437, 0.02646607},  // proximal oblique cord
    {0.006864461, 0.05870442, 0.01586979}, // dorsal oblique accessory cord
    {0.009631072, 0.1128575, 0.005968544}, // accessory band proximal 0
    {0.01082234, 0.1189339, 0.006503247},  // accessory band proximal 1
    {0.01223949, 0.1269595, 0.006456108},  // accessory band proximal 2
    {0.01812999, 0.1877319, 0.0004640078}, // central band
    {0.01834608, 0.1922168, 0.0003194993}, // accessory band distal 0 
    {0.01852999, 0.197458, -0.0005442755}, // accessory band distal 1 
    {0.01869039, 0.2049211, -0.0005149381},// accessory band distal 2 
    {0.01841907, 0.216593, 0.0002533193},  // distal oblique bundle 
    //{0.001087829, 0.02615658, 0.007038541},// quadrate ligament
    {0.001295929, 0.02336322, -0.001982712}, {0.0005675815, 0.02301031, 0.006880792}, // quadrate ligament
    //{0.0315614, 0.2646999, -0.003707551},   // anterior radioulnar ligament
    {0.02775658, 0.2693356, 0.00204358}     // anterior radioulnar ligament, 49min
  };
  
  AnyRefNode IO_ProximalObliqueCord_I = {sRel=.Scale(.UlnaLigPoints[0])*.Mirror;};
  AnyRefNode IO_DorsalObliqueAccCord_I= {sRel=.Scale(.UlnaLigPoints[1])*.Mirror;};
  AnyRefNode IO_AccBandProximal_0_I   = {sRel=.Scale(.UlnaLigPoints[2])*.Mirror;};
  AnyRefNode IO_AccBandProximal_1_I   = {sRel=.Scale(.UlnaLigPoints[3])*.Mirror;};
  AnyRefNode IO_AccBandProximal_2_I   = {sRel=.Scale(.UlnaLigPoints[4])*.Mirror;};
  AnyRefNode IO_CentralBand_I         = {sRel=.Scale(.UlnaLigPoints[5])*.Mirror;};
  AnyRefNode IO_AccBandDistal_0_I     = {sRel=.Scale(.UlnaLigPoints[6])*.Mirror;};
  AnyRefNode IO_AccBandDistal_1_I     = {sRel=.Scale(.UlnaLigPoints[7])*.Mirror;};
  AnyRefNode IO_AccBandDistal_2_I     = {sRel=.Scale(.UlnaLigPoints[8])*.Mirror;};
  AnyRefNode IO_DistalObliqueBundle_I = {sRel=.Scale(.UlnaLigPoints[9])*.Mirror;};
  AnyRefNode QuadrateLig0_I            = {sRel=.Scale(.UlnaLigPoints[10])*.Mirror;};  
  AnyRefNode QuadrateLig1_I            = {sRel=.Scale(.UlnaLigPoints[11])*.Mirror;};  
  AnyRefNode AnteriorPalmarRULig_I    = {sRel=.Scale(.UlnaLigPoints[12])*.Mirror;};  
  
  
  AnyMatrix DistalCyl = {
    {-0.01282776, 0.02179041, 0.000504263}, 
    {0.02257921, 0.2679321, -0.001825629}
  };    
  
  AnyRefNode PalmarCylNode1           = {
    sRel=.Scale(.DistalCyl[1])*.Mirror;
    AnyDrawRefFrame rf={ScaleXYZ={1,1,1}*0.1;RGB={1,1,0};};
    AnyRefNode cylNode = {
      ARel = RotMat(..Mirror[1][1]*pi/2,x);
      AnySurfCylinder PalmarLigWrapping = {
        Radius = 0.008;
        Length = 0.05;
        AnyDrawParamSurf srf = {RGB={0,1,0};};
      };
    };
  };  
  
};

Seg.Radius = {
  AnyMatrix RadLigPoints = {
    {-0.005243996, 0.006595548, 0.005220886}, // proximal oblique cord
    {-0.07546981, -0.01007519, 0.003868241} , // dorsal oblique accessory cord
    {-0.07104317, -0.00911907, 0.003925403} , // accessory band proximal 0
    {-0.08044681, -0.01109175, 0.003798664} , // accessory band proximal 1
    {-0.08849236, -0.01277326, 0.003921999} , // accessory band proximal 2
    {-0.09975465, -0.01431068, 0.003828944} , // central band
    {-0.1099578, -0.01490942, 0.004024862}  , // accessory band distal 0 
    {-0.12291, -0.0166468, 0.005292012}     , // accessory band distal 1 
    {-0.1281647, -0.01762517, 0.006072823}  , // accessory band distal 2 
    {-0.2001862, -0.01125255, 0.009823908}  , // distal oblique bundle 
    {0.01185857, 0.001999571, -0.005426232}, // quadrate ligament  
    {0.010682, 0.005532369, -0.002935296},   // quadrate ligament  
    {-0.2227529, -0.006527175, 0.0003172417}
  };
  
  AnyRefNode IO_ProximalObliqueCord_O = {sRel=.Scale(.RadLigPoints[0])*.Mirror;};
  AnyRefNode IO_DorsalObliqueAccCord_O= {sRel=.Scale(.RadLigPoints[1])*.Mirror;};
  AnyRefNode IO_AccBandProximal_0_O   = {sRel=.Scale(.RadLigPoints[2])*.Mirror;};
  AnyRefNode IO_AccBandProximal_1_O   = {sRel=.Scale(.RadLigPoints[3])*.Mirror;};
  AnyRefNode IO_AccBandProximal_2_O   = {sRel=.Scale(.RadLigPoints[4])*.Mirror;};
  AnyRefNode IO_CentralBand_O         = {sRel=.Scale(.RadLigPoints[5])*.Mirror;};
  AnyRefNode IO_AccBandDistal_0_O     = {sRel=.Scale(.RadLigPoints[6])*.Mirror;};
  AnyRefNode IO_AccBandDistal_1_O     = {sRel=.Scale(.RadLigPoints[7])*.Mirror;};
  AnyRefNode IO_AccBandDistal_2_O     = {sRel=.Scale(.RadLigPoints[8])*.Mirror;};
  AnyRefNode IO_DistalObliqueBundle_O = {sRel=.Scale(.RadLigPoints[9])*.Mirror;};
  AnyRefNode QuadrateLig0_O            = {sRel=.Scale(.RadLigPoints[10])*.Mirror;};  
  AnyRefNode QuadrateLig1_O            = {sRel=.Scale(.RadLigPoints[11])*.Mirror;};  
  AnyRefNode AnteriorPalmarRULig_O    = {sRel=.Scale(.RadLigPoints[12])*.Mirror;};  
  
  
  PointPS2.latCondCenter = {
    AnyRefNode cylNode = {
      ARel = RotMat(-pi/2, y);
      AnySurfCylinder QuadLigWrapping = {
        AnyDrawParamSurf srf = {RGB={0,0,1};};
        Length = 0.1;
        Radius = 0.0056;
      };
    };
  };
};
Jnt = {
  AnyFolder ForearmLigaments = {
    
    AnyKinPLine IO_ProximalObliqueCord = {AnyRefFrame &rf0 = ...Seg.Radius.IO_ProximalObliqueCord_O ; AnyRefFrame &rf1 = ...Seg.Ulna.IO_ProximalObliqueCord_I ; AnyDrawPLine drwLig = {Thickness=0.0025;RGB={1,1,0};};}; 
    AnyKinPLine IO_DorsalObliqueAccCord= {AnyRefFrame &rf0 = ...Seg.Radius.IO_DorsalObliqueAccCord_O; AnyRefFrame &rf1 = ...Seg.Ulna.IO_DorsalObliqueAccCord_I; AnyDrawPLine drwLig = {Thickness=0.0025;RGB={1,1,0};};}; 
    AnyKinPLine IO_AccBandProximal_0   = {AnyRefFrame &rf0 = ...Seg.Radius.IO_AccBandProximal_0_O   ; AnyRefFrame &rf1 = ...Seg.Ulna.IO_AccBandProximal_0_I   ; AnyDrawPLine drwLig = {Thickness=0.0025;RGB={1,1,0};};}; 
    AnyKinPLine IO_AccBandProximal_1   = {AnyRefFrame &rf0 = ...Seg.Radius.IO_AccBandProximal_1_O   ; AnyRefFrame &rf1 = ...Seg.Ulna.IO_AccBandProximal_1_I   ; AnyDrawPLine drwLig = {Thickness=0.0025;RGB={1,1,0};};}; 
    AnyKinPLine IO_AccBandProximal_2   = {AnyRefFrame &rf0 = ...Seg.Radius.IO_AccBandProximal_2_O   ; AnyRefFrame &rf1 = ...Seg.Ulna.IO_AccBandProximal_2_I   ; AnyDrawPLine drwLig = {Thickness=0.0025;RGB={1,1,0};};}; 
    AnyKinPLine IO_CentralBand         = {AnyRefFrame &rf0 = ...Seg.Radius.IO_CentralBand_O         ; AnyRefFrame &rf1 = ...Seg.Ulna.IO_CentralBand_I         ; AnyDrawPLine drwLig = {Thickness=0.0025;RGB={1,1,0};};}; 
    AnyKinPLine IO_AccBandDistal_0     = {AnyRefFrame &rf0 = ...Seg.Radius.IO_AccBandDistal_0_O     ; AnyRefFrame &rf1 = ...Seg.Ulna.IO_AccBandDistal_0_I     ; AnyDrawPLine drwLig = {Thickness=0.0025;RGB={1,1,0};};}; 
    AnyKinPLine IO_AccBandDistal_1     = {AnyRefFrame &rf0 = ...Seg.Radius.IO_AccBandDistal_1_O     ; AnyRefFrame &rf1 = ...Seg.Ulna.IO_AccBandDistal_1_I     ; AnyDrawPLine drwLig = {Thickness=0.0025;RGB={1,1,0};};}; 
    AnyKinPLine IO_AccBandDistal_2     = {AnyRefFrame &rf0 = ...Seg.Radius.IO_AccBandDistal_2_O     ; AnyRefFrame &rf1 = ...Seg.Ulna.IO_AccBandDistal_2_I     ; AnyDrawPLine drwLig = {Thickness=0.0025;RGB={1,1,0};};}; 
    AnyKinPLine IO_DistalObliqueBundle = {AnyRefFrame &rf0 = ...Seg.Radius.IO_DistalObliqueBundle_O ; AnyRefFrame &rf1 = ...Seg.Ulna.IO_DistalObliqueBundle_I ; AnyDrawPLine drwLig = {Thickness=0.0025;RGB={1,1,0};};}; 
    
    AnyKinSPLine QuadrateLig0           = {
      AnyRefFrame &rf0 = ...Seg.Radius.QuadrateLig0_O            ; 
      AnyRefFrame &rf1 = ...Seg.Ulna.QuadrateLig0_I            ; 
      AnyDrawPLine drwLig = {Thickness=0.0025;RGB={1,1,0};};
      StringMesh = 10;
      AnySurface &srf = ...Seg.Radius.PointPS2.latCondCenter.cylNode.QuadLigWrapping;
    };      
    AnyKinSPLine QuadrateLig1           = {
      AnyRefFrame &rf0 = ...Seg.Radius.QuadrateLig1_O            ; 
      AnyRefFrame &rf1 = ...Seg.Ulna.QuadrateLig1_I            ; 
      AnyDrawPLine drwLig = {Thickness=0.0025;RGB={1,1,0};};
      StringMesh = 10;
      AnySurface &srf = ...Seg.Radius.PointPS2.latCondCenter.cylNode.QuadLigWrapping;
    };      
    
    AnyKinPLine AnteriorPalmarRULig    = {AnyRefFrame &rf0 = ...Seg.Radius.AnteriorPalmarRULig_O    ; AnyRefFrame &rf1 = ...Seg.Ulna.AnteriorPalmarRULig_I ; AnyDrawPLine drwLig = {Thickness=0.0025;RGB={1,1,0};};}; 
  };
};