449 lines (389 with data), 14.8 kB
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Segments
AnyFolder Segs = {
AnyVar Halflength_dis = 0.627;
AnyVar Halflength_mid = 0.5*(.O23+.O34);//normative model
AnyVar Halflength_pro = 0.5*(.O45+.O56);//normative model
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
AnySeg Distal_Phalanx = {
r0 = {0.085,0,0};
// Axes0 = {{1,0,0},{0,1,0},{0,0,1}};
// total section length = 8.6 mm
Mass = ..m1;
Jii = {..i1xx, ..i1yy, ..i1zz};
AnyVar DIPNode = ..DLength*.Halflength_dis;
AnyVar FNode = -DIPNode + ..LoadPosition;
AnyRefNode ForceNode= {
sRel = {.FNode,0,0};
};
//DIP Joint: DISTAL
AnyRefNode DIP_JT_Node = {
sRel = {-.DIPNode,0,0};
};
AnyVar TENode_x2 = ..DLength*(-.Halflength_dis-0.004+..O12);
AnyVar TENode_y2 = ..DLength*(0.199);
AnyVar TENode_z2 = ..DLength*(-0.010);
AnyVar FPNode_x2 = ..DLength*(-.Halflength_dis-0.004+..O12);
AnyVar FPNode_y2 = ..DLength*(-0.184);
AnyVar FPNode_z2 = ..DLength*(0.026);
AnyRefNode FPNode = {
sRel = {.FPNode_x2,.FPNode_y2,.FPNode_z2};
};
AnyRefNode TENode = {
sRel = {.TENode_x2,.TENode_y2,.TENode_z2};
};
AnyRefNode DisNode = {
AnyVar T = (40/180)*pi;
// S = SIN (T) = 0.642
// C = COS (T) = 0.766
AnyVar S = 0.642;
AnyVar C = 0.766;
sRel = {-0.008,0.0,-0.006};
ARel = {{1, 0, 0}, {0, -S, C}, {0, -C, -S}};
AnyDrawSTL DrwSurf = {
FileName = "../Input/I1_shifted.stl";
ScaleXYZ = {0.95, 1, 1}/1400;
Opacity = 1;
RGB = {0.95, 0.75, 0.35};
};
AnyDrawNodes Color =
{
RGB = {0.0, 1.0, 0.0};
ScaleXYZ = {0.0002, 0.0002, 0.0002};
};
};
AnyRefNode Dis_DIPO = {
sRel = {-0.0073,-0.0005,0};
ARel = RotMat(0*pi/180, y);
AnySurfEllipsoid Dis_DIP =
{
Radius = {0.004, 0.0035, 0.005};
AnyDrawParamSurf distal =
{
RGB = {0.8, 0.5, 0.5};
ScaleXYZ = {1, 1, 1};
Opacity = 0.3;
Face = 100;
WireFrameOnOff = Off;
};
};
};
AnyDrawNodes Color =
{
RGB = {1.0, 0.0, 0.0};
ScaleXYZ = {0.001, 0.001, 0.001};
Opacity = 0.5;
};
AnyDrawSeg DrwSeg = {
RGB={0,0.7,0};
// InertiaScale=0.2;
Opacity=0.0;
};
}; // Distal_Phlanx
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
AnySeg Middle_Phalanx = {
r0 = {0.060,0,0};
Mass = ..m2;
// total section length = 14.1 mm
Jii = {..i2xx, ..i2yy, ..i2zz};
AnyVar DIPNode = ..MLength*.Halflength_mid;
//DIP Joint: PROXIMAL
AnyRefNode DIP_JT_Node = {
sRel = {.DIPNode,0.0,0};
};
AnyVar TENode_x1 = ..MLength*(.Halflength_mid-0.000);
AnyVar TENode_y1 = ..MLength*(0.100);
AnyVar TENode_z1 = ..MLength*(-0.009);
AnyVar FPNode_x1 = ..MLength*(.Halflength_mid-0.300);
AnyVar FPNode_y1 = ..MLength*(-0.245);
AnyVar FPNode_z1 = ..MLength*(0.054);
AnyRefNode FP_DIP_Node = {
sRel = {.FPNode_x1,.FPNode_y1,.FPNode_z1};
};
AnyRefNode TE_DIP_Node = {
sRel = {.TENode_x1,.TENode_y1,.TENode_z1};
};
//PIP Joint: DISTAL
AnyRefNode PIP_JT_Node = {
sRel = {-.DIPNode,0,0};
};
AnyVar FPNode_x2 = ..MLength*(-.Halflength_mid+0.212+..O34);
AnyVar FPNode_y2 = ..MLength*(-0.308);
AnyVar FPNode_z2 = ..MLength*(0.009);
AnyVar RBNode_x2 = ..MLength*(-.Halflength_mid+0.112+..O34);
AnyVar RBNode_y2 = ..MLength*(0.186);
AnyVar RBNode_z2 = ..MLength*(0.223);
AnyVar UBNode_x2 = ..MLength*(-.Halflength_mid+0.112+..O34);
AnyVar UBNode_y2 = ..MLength*(0.151);
AnyVar UBNode_z2 = ..MLength*(-0.290);
AnyVar FSNode_x2 = ..MLength*(-.Halflength_mid+0.212+..O34);
AnyVar FSNode_y2 = ..MLength*(-0.249);
AnyVar FSNode_z2 = ..MLength*(0.015);
AnyVar ESNode_x2 = ..MLength*(-.Halflength_mid+0.038+..O34);
AnyVar ESNode_y2 = ..MLength*(0.278);
AnyVar ESNode_z2 = ..MLength*(-0.027);
AnyRefNode FP_PIP_Node = {
sRel = {.FPNode_x2,.FPNode_y2,.FPNode_z2};
};
AnyRefNode RB_PIP_Node = {
sRel = {.RBNode_x2,.RBNode_y2,.RBNode_z2};
};
AnyRefNode UB_PIP_Node = {
sRel = {.UBNode_x2,.UBNode_y2,.UBNode_z2};
};
AnyRefNode FS_PIP_Node = {
sRel = {.FSNode_x2,.FSNode_y2,.FSNode_z2};
};
AnyRefNode ES_PIP_Node = {
sRel = {.ESNode_x2,.ESNode_y2,.ESNode_z2};
};
AnyRefNode A4_Node = {
sRel = {0.5*(.FPNode_x2+.FPNode_x1),0.5*(.FPNode_y2+.FPNode_y1),0.5*(.FPNode_z2+.FPNode_z1)};
};
AnyRefNode MidNode = {
AnyVar T = (10/180)*pi;
// AnyVar S = SIN (T)
// AnyVar C = COS (T)
AnyVar S = 0.174;
AnyVar C = 0.985;
sRel = {-0.010,-0.002,-0.001};
ARel = {{1, 0, 0}, {0, -S, C}, {0, -C, -S}};
AnyDrawSTL DrwSurf = {
FileName = "../Input/I2_shifted.stl";
ScaleXYZ = {0.9, 1, 1}/1400;
Opacity = 1;
RGB = {0.95, 0.75, 0.35};
};
AnyDrawNodes Color =
{
RGB = {0.0, 1.0, 0.0};
ScaleXYZ = {0.0002, 0.0002, 0.0002};
};
};
AnySurfEllipsoid middle =
{
Radius = {...MLength*0.8, 0.005, 0.005};
AnyDrawParamSurf distal =
{
RGB = {0.7, 0.65, 0.35};
ScaleXYZ = {0.9, 1, 1};
Opacity = 0.3;
Face = 50;
WireFrameOnOff = Off;
};
};
AnyRefNode Mid_DIPO = {
sRel = {.DIPNode-0.005,-0.0006,-0.000};
AnySurfEllipsoid Mid_DIP =
{
Radius = {0.007, 0.004, 0.0065};
AnyDrawParamSurf mid_dip =
{
RGB = {0.8, 0.5, 0.5};
ScaleXYZ = {1, 1, 1};
Opacity = 0.3;
Face = 100;
WireFrameOnOff = Off;
};
};
};
AnyRefNode Mid_PIPO = {
sRel = {-.DIPNode+0.005,-0.00005,-0.000};
AnySurfEllipsoid Mid_PIP =
{
Radius = {0.007, 0.005, 0.0075};
AnyDrawParamSurf mid_pip =
{
RGB = {0.8, 0.5, 0.5};
ScaleXYZ = {1, 1, 1};
Opacity = 0.3;
Face = 100;
WireFrameOnOff = Off;
};
};
};
AnyDrawNodes Color =
{
RGB = {0.5, 0.5, 0.0};
ScaleXYZ = {0.001, 0.001, 0.001};
Opacity = 0.5;
};
AnyDrawSeg DrwSeg = {
RGB={0,0.5,0};
InertiaScale=0.2;
Opacity=0.0;
};
}; // Middle_Phalanx
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
AnySeg Proximal_Phalanx = {
r0 = {0.022,0.0,0};
// total section length = 21.8 mm
Mass = ..m3;
Jii = {..i3xx, ..i3yy, ..i3zz};
AnyVar PIPNode = ..PLength*.Halflength_pro;
// AnyVar P_56 = 0.37
//PIP Joint: PROXIMAL
AnyRefNode PIP_JT_Node = {
sRel = {.PIPNode,0.0,0};
};
AnyVar FPNode_x1= ..PLength*(.Halflength_pro-0.400);
AnyVar FPNode_y1 = ..PLength*(-0.409);
AnyVar FPNode_z1 = ..PLength*( 0.027);
AnyVar RBNode_x1 = ..PLength*(.Halflength_pro-0.100);
AnyVar RBNode_y1 = ..PLength*(0.181);
AnyVar RBNode_z1 = ..PLength*(0.268);
AnyVar UBNode_x1 = ..PLength*(.Halflength_pro-0.100);
AnyVar UBNode_y1 = ..PLength*(0.131);
AnyVar UBNode_z1 = ..PLength*(-0.312);
AnyVar FSNode_x1 = ..PLength*(.Halflength_pro-0.400);
AnyVar FSNode_y1 = ..PLength*(-0.311);
AnyVar FSNode_z1 = ..PLength*(0.028);
AnyVar ESNode_x1 = ..PLength*(.Halflength_pro+0.000);
AnyVar ESNode_y1 = ..PLength*(0.266);
AnyVar ESNode_z1 = ..PLength*(-0.026);
AnyRefNode FP_PIP_Node = {
sRel = {.FPNode_x1,.FPNode_y1,.FPNode_z1};
};
AnyRefNode RB_PIP_Node = {
sRel = {.RBNode_x1,.RBNode_y1,.RBNode_z1};
};
AnyRefNode UB_PIP_Node = {
sRel = {.UBNode_x1,.UBNode_y1,.UBNode_z1};
};
AnyRefNode FS_PIP_Node = {
sRel = {.FSNode_x1,.FSNode_y1,.FSNode_z1};
};
AnyRefNode ES_PIP_Node = {
sRel = {.ESNode_x1,.ESNode_y1,.ESNode_z1};
};
//MP Joint: DISTAL
AnyRefNode MCP_JT_Node = {
sRel = {-.PIPNode,0,0};
};
AnyVar FPNode_x2 = ..PLength*(-.Halflength_pro + 0.118+..O56);
AnyVar FPNode_y2 = ..PLength*(-0.386);
AnyVar FPNode_z2 = ..PLength*(0.031);
AnyVar FSNode_x2 = ..PLength*(-.Halflength_pro + 0.118+..O56);
AnyVar FSNode_y2 = ..PLength*(-0.477);
AnyVar FSNode_z2 = ..PLength*(-0.074);
AnyVar RINode_x2 = ..PLength*(-.Halflength_pro + 0.318+..O56);
AnyVar RINode_y2 = ..PLength*(-0.033);
AnyVar RINode_z2 = ..PLength*(0.443);
AnyVar LUNode_x2 = ..PLength*(-.Halflength_pro + 0.318+..O56);
AnyVar LUNode_y2 = ..PLength*(-0.148);
AnyVar LUNode_z2 = ..PLength*(0.370);
AnyVar UINode_x2 = ..PLength*(-.Halflength_pro + 0.318+..O56);
AnyVar UINode_y2 = ..PLength*(-0.039);
AnyVar UINode_z2 = ..PLength*(-0.461);
AnyVar LENode_x2 = ..PLength*(-.Halflength_pro + 0.018+..O56);
AnyVar LENode_y2 = ..PLength*(0.421);
AnyVar LENode_z2 = ..PLength*(-0.033);
AnyVar LERNode_x2 = ..PLength*(-.Halflength_pro + 0.018+..O56);
AnyVar LERNode_y2 = ..PLength*(0.421);
AnyVar LERNode_z2 = ..PLength*(0.036);
AnyVar LEUNode_x2 = ..PLength*(-.Halflength_pro + 0.018+..O56);
AnyVar LEUNode_y2 = ..PLength*(0.421);
AnyVar LEUNode_z2 = ..PLength*(-0.030);
AnyRefNode FP_MP_Node = {
sRel = {.FPNode_x2,.FPNode_y2,.FPNode_z2};
};
AnyRefNode FS_MP_Node = {
sRel = {.FSNode_x2,.FSNode_y2,.FSNode_z2};
};
AnyRefNode RI_MP_Node = {
sRel = {.RINode_x2,.RINode_y2,.RINode_z2};
};
AnyRefNode LU_MP_Node = {
sRel = {.LUNode_x2,.LUNode_y2,.LUNode_z2};
};
AnyRefNode UI_MP_Node = {
sRel = {.UINode_x2,.UINode_y2,.UINode_z2};
};
AnyRefNode LE_MP_Node = {
sRel = {.LENode_x2,.LENode_y2,.LENode_z2};
};
AnyRefNode LER_MP_Node = {
sRel = {.LERNode_x2,.LERNode_y2,.LERNode_z2};
};
AnyRefNode LEU_MP_Node = {
sRel = {.LEUNode_x2,.LEUNode_y2,.LEUNode_z2};
};
AnyRefNode A2_Node = {
sRel = {0.5*(.FPNode_x1+.FPNode_x2),0.25*(.FSNode_y1+.FPNode_y1+.FSNode_y2+.FPNode_y2),0.5*(.FSNode_z1+.FPNode_z1)};
};
AnyRefNode ProNode = {
AnyVar T = (5/180)*pi;
// AnyVar S = SIN (T)
// AnyVar C = COS (T)
AnyVar S = 0.087;
AnyVar C = 0.996;
sRel = {-0.020,-0.001,0.001};
ARel = {{1, 0, 0}, {0, -S, C}, {0, -C, -S}};
AnyDrawSTL DrwSurf = {
FileName = "../Input/I3_shifted.stl";
ScaleXYZ = {0.90, 1, 1}/1400;
Opacity = 1.0;
RGB = {0.95, 0.75, 0.35};
};
AnyDrawNodes Color =
{
RGB = {0.0, 1.0, 0.0};
ScaleXYZ = {0.0002, 0.0002, 0.0002};
};
};
AnySurfEllipsoid proximal =
{
Radius = {...PLength, 0.005, 0.0075};
AnyDrawParamSurf distal =
{
RGB = {0.95, 0.65, 0.35};
ScaleXYZ = {1, 1, 1};
Opacity = 0.3;
Face = 50;
WireFrameOnOff = Off;
};
};
AnyRefNode Pro_MCPO = {
sRel = {-.PIPNode+0.009,-0.002,-0.00};
AnySurfEllipsoid Pro_MCP =
{
Radius = {0.010, 0.007, 0.009};
AnyDrawParamSurf pro_mcp =
{
RGB = {0.8, 0.5, 0.5};
ScaleXYZ = {1, 1, 1};
Opacity = 0.3;
Face = 100;
WireFrameOnOff = Off;
};
};
};
AnyRefNode Pro_PIPO = {
sRel = {.PIPNode-0.006,-0.001,-0.001};
AnySurfEllipsoid Pro_PIP =
{
Radius = {0.008, 0.005, 0.008};
AnyDrawParamSurf pro_pip =
{
RGB = {0.8, 0.5, 0.5};
ScaleXYZ = {1, 1, 1};
Opacity = 0.3;
Face = 100;
WireFrameOnOff = Off;
};
};
};
AnyDrawNodes Color =
{
RGB = {0.7, 0.1, 0.0};
ScaleXYZ = {0.001, 0.001, 0.001};
Opacity = 0.5;
};
AnyDrawSeg DrwSeg = {
RGB={0.3,0.3,0};
InertiaScale=0.2;
Opacity=0.0;
};
}; // Proximal_Phalanx
}; // Segs folder
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++