# Version 1 # Draw the problem LaunchModeler "modify" Select { "*" } SelClear SetUnits "mm" 0 GlobalCS NewObjColor 0 255 0 Circle [0, 0, 0] 2 177.8 "Mirror1" 1 12 [177.8, 0, 0] FitAllViews SweepVec { "Mirror1" } <0, 0, 45> Shaded "smooth" Shaded "smooth" NewObjColor 128 128 128 Box [-177.8, -1, 0] 177.8 2 45 "gap0" Box [-177.8, -1, 0] 177.8 2 45 "gap1" Select { "+gap1" } Rotate 2 120 DeSelect { "*" } Box [-177.8, -1, 0] 177.8 2 45 "gap2" Select { "+gap2" } Rotate 2 -120 Subtract { "Mirror1" } { "gap0" "gap1" "gap2"} Assign skinw -.1 EditPline "SkinL" AddVert [-25, -1, 0] AddVert [-25, -21, 0] AddVert [-25, -21, -3] AddVert [-25, -21, -45] AddVert [-25, -1, -45] AddVert [-25, -1, 0] NewObjColor 255 255 0 EndPline 1 SweepVec { "SkinL" } <50, 0, 0> EditPline "BaseL1" AddVert [-24.9, -1.1, -.1] AddVert [-24.9, -20.9, -.1] AddVert [-24.9, -20.9, -2.95] AddVert [-24.9, -20.9, -44.9] AddVert [-24.9, -1.1, -44.9] AddVert [-24.9, -1.1, -.1] NewObjColor 0 255 0 EndPline 1 SweepVec { "BaseL1" } <49.8, 0, 0> Select {"+SkinL" "+BaseL1"} Move <0,0,-7> DeSelect { "*" } Select {"BaseL1"} DupLine <0, 0, 0> 2 Subtract { "SkinL" } { "BaseL2" } # add feet 4x4x7 Box [-2,-4,0] 4 -4 -7 "Foot1" Box [-25,-16,0] 4 -4 -7 "Foot2" Box [21,-16,0] 4 -4 -7 "Foot3" Select {"+SkinL" "+BaseL1" "+Foot1" "+Foot2" "+Foot3"} DupMirror [0, 0, 0] [0, -1, 0] ReName "SkinL" "SkinLA" ReName "SkinL1" "SkinRA" ReName "BaseL1" "BaseLA" ReName "BaseL2" "BaseRA" ReName "Mirror1" "MirrorR" ReName "Mirror2" "MirrorL" ReName "Foot1" "Foot1A" ReName "Foot2" "Foot2A" ReName "Foot3" "Foot3A" ReName "Foot4" "Foot4A" ReName "Foot5" "Foot5A" ReName "Foot6" "Foot6A" # Draw drive and sense pads and subtract from skin # Add 1mm gap to drive and sense to get masks NewObjColor 0 0 0 Box [-20, -1.1, -10] 40 0.1 -17.5 "Drive1A" Box [-21, -1.1, -9] 42 0.1 -19.5 "Drive1mask" Subtract { "SkinLA" } { "Drive1mask" } Box [-20, -1.1, -31.5] 40 0.1 -17.5 "Drive2A" Box [-21, -1.1, -30.5] 42 0.1 -19.5 "Drive2mask" Subtract { "SkinLA" } { "Drive2mask" } Box [-15, 1, -14.5] 30 0.1 -30 "SenseA" Box [-16, 1, -13.5] 32 0.1 -32 "Sensemask" Subtract { "SkinRA" } { "Sensemask" } FitRegion 2000 "n" Select { "+SenseA" "+Drive1A" "+Drive2A" "+BaseRA" "+SkinRA" "+BaseLA" "+SkinLA" "Foot1A" "Foot2A" "Foot3A" "Foot4A" "Foot5A" "Foot6A"} Move Vec3 -50 0 0 SelCopy SelPaste DeSelect { "*" } Select { "+SenseA1" "+Drive1A1" "+Drive2A1" "+BaseRA1" "+SkinRA1" "+BaseLA1" "+SkinLA1" "Foot1A1" "Foot2A1" "Foot3A1" "Foot4A1" "Foot5A1" "Foot6A1"} Rotate 2 120 DeSelect { "*" } Select { "+SenseA" "+Drive1A" "+Drive2A" "+BaseRA" "+SkinRA" "+BaseLA" "+SkinLA" "Foot1A" "Foot2A" "Foot3A" "Foot4A" "Foot5A" "Foot6A"} SelCopy SelPaste DeSelect { "*" } Select { "+SenseA2" "+Drive1A2" "+Drive2A2" "+BaseRA2" "+SkinRA2" "+BaseLA2" "+SkinLA2" "Foot1A2" "Foot2A2" "Foot3A2" "Foot4A2" "Foot5A2" "Foot6A2"} Rotate 2 240 DeSelect { "*" } Select { "+MirrorRA" "+SenseA" "+BaseRA" "+SkinRA" "Foot4A" "Foot5A" "Foot6A"} Move Vec3 deltaX deltaY deltaZ Shaded "smooth" DeSelect { "*" } Select { "+MirrorRA" "+SenseA" "+BaseRA" "+SkinRA" "Foot4A" "Foot5A" "Foot6A"} origin [0, -1, -29.5] Rotate 0 alfaX Rotate 2 alfaZ Rotate 1 alfaY DeSelect { "*" } Save3d "*" "?v" Exit