--- a +++ b/Application/Examples/LegPressMachine/Model/SolidModelingOperations.any @@ -0,0 +1,528 @@ +AnyFolder SolidModelingOperations = +{ + CreateBox Back_Rest( + InputName = Back_Rest, + InputPlacement = Main.Model.EnvironmentModel.Segs, + InputLengthX = Main.Parameters.DesignParameters.Back_Rest_Height, + InputLengthY = Main.Parameters.DesignParameters.Back_Rest_Thick, + InputLengthZ = Main.Parameters.DesignParameters.Back_Rest_Width, + InputDensity = Main.Parameters.DesignParameters.Back_Rest_Density) = + { + Pos0 = {Main.Parameters.DesignParameters.Back_Rest_Height/2 + *cos(pi/180*(Main.Parameters.DesignParameters.Back_Rest_Tilt_Angle)), + Main.Parameters.DesignParameters.Back_Rest_Height/2 + *sin(pi/180*(Main.Parameters.DesignParameters.Back_Rest_Tilt_Angle)), + 0}; + RotAnglesInDegree0 = {0, 0, Main.Parameters.DesignParameters.Back_Rest_Tilt_Angle}; + Color = Main.DrawSettings.Colors.AnyBodyGreen; + Opacity = 0.3; + OpacityForLocalFrame = 0; + OpacityForLocalRefNodes = 0; + }; + + CreateBox Hip_Rest( + InputName = Hip_Rest, + InputPlacement = Main.Model.EnvironmentModel.Segs, + InputLengthX = Main.Parameters.DesignParameters.Hip_Rest_Height, + InputLengthY = Main.Parameters.DesignParameters.Hip_Rest_Thick, + InputLengthZ = Main.Parameters.DesignParameters.Hip_Rest_Width, + InputDensity = Main.Parameters.DesignParameters.Hip_Rest_Density) = + { + Pos0 = {Main.Parameters.DesignParameters.Hip_Rest_Height/2 + *cos(pi/180*(Main.Parameters.DesignParameters.Hip_Rest_Tilt_Angle)), + Main.Parameters.DesignParameters.Hip_Rest_Height/2 + *sin(pi/180*(Main.Parameters.DesignParameters.Hip_Rest_Tilt_Angle)), + 0}; + RotAnglesInDegree0 = {0, 0, Main.Parameters.DesignParameters.Hip_Rest_Tilt_Angle}; + Color = Main.DrawSettings.Colors.AnyBodyGrey; + Opacity = 0.3; + OpacityForLocalFrame = 0; + OpacityForLocalRefNodes = 0; + }; + + CreateBox Foot_Rest( + InputName = Foot_Rest, + InputPlacement = Main.Model.EnvironmentModel.Segs, + InputLengthX = Main.Parameters.DesignParameters.Foot_Rest_Height, + InputLengthY = Main.Parameters.DesignParameters.Foot_Rest_Thick, + InputLengthZ = Main.Parameters.DesignParameters.Foot_Rest_Width, + InputDensity = Main.Parameters.DesignParameters.Foot_Rest_Density) = + { + Pos0 = {Main.Parameters.DesignParameters.Foot_Rest_Height/2 + *cos(pi/180*(Main.Parameters.DesignParameters.Foot_Rest_Tilt_Angle)), + Main.Parameters.DesignParameters.Foot_Rest_Height/2 + *sin(pi/180*(Main.Parameters.DesignParameters.Foot_Rest_Tilt_Angle)), + 0} + + Main.Parameters.DesignParameters.Foot_Rest_Initial_Distance * + {cos(pi/180*(Main.Parameters.DesignParameters.Foot_Rest_Tilt_Angle-90)), + sin(pi/180*(Main.Parameters.DesignParameters.Foot_Rest_Tilt_Angle-90)), + 0}; + RotAnglesInDegree0 = {0, 0, Main.Parameters.DesignParameters.Foot_Rest_Tilt_Angle}; + Color = Main.DrawSettings.Colors.AnyBodyRed; + Opacity = 0.2; + OpacityForLocalFrame = 0; + OpacityForLocalRefNodes = 0; + }; + + CreateCylinder Barbell_Right( + InputName = Barbell_Right, + InputPlacement = Main.Model.EnvironmentModel.Segs, + InputRadius = Main.Parameters.DesignParameters.Barbell_Radius, + InputLength = Main.Parameters.DesignParameters.Barbell_Thick, + InputDensity = Main.Parameters.DesignParameters.Barbell_Density) = + { + Pos0 = {Main.Parameters.DesignParameters.Foot_Rest_Height/2 + *cos(pi/180*(Main.Parameters.DesignParameters.Foot_Rest_Tilt_Angle)), + Main.Parameters.DesignParameters.Foot_Rest_Height/2 + *sin(pi/180*(Main.Parameters.DesignParameters.Foot_Rest_Tilt_Angle)), + 0} + + Main.Parameters.DesignParameters.Foot_Rest_Initial_Distance * + {cos(pi/180*(Main.Parameters.DesignParameters.Foot_Rest_Tilt_Angle-90)), + sin(pi/180*(Main.Parameters.DesignParameters.Foot_Rest_Tilt_Angle-90)), + 0} + + {0, 0, Main.Parameters.DesignParameters.Foot_Rest_Width/2 } + + {0, 0, Main.Parameters.DesignParameters.Barbell_Thick }; + RotAnglesInDegree0 = { 0, 0, 0}; + Color = Main.DrawSettings.Colors.AnyBodyBlue; + Opacity = 0.1; + OpacityForLocalFrame = 0; + OpacityForLocalRefNodes = 0; + ScaleFactorForLocalRefNodes = 0.1; + }; + + CreateCylinder Barbell_Left( + InputName = Barbell_Left, + InputPlacement = Main.Model.EnvironmentModel.Segs, + InputRadius = Main.Parameters.DesignParameters.Barbell_Radius, + InputLength = Main.Parameters.DesignParameters.Barbell_Thick, + InputDensity = Main.Parameters.DesignParameters.Barbell_Density) = + { + Pos0 = {Main.Parameters.DesignParameters.Foot_Rest_Height/2 + *cos(pi/180*(Main.Parameters.DesignParameters.Foot_Rest_Tilt_Angle)), + Main.Parameters.DesignParameters.Foot_Rest_Height/2 + *sin(pi/180*(Main.Parameters.DesignParameters.Foot_Rest_Tilt_Angle)), + 0} + + Main.Parameters.DesignParameters.Foot_Rest_Initial_Distance * + {cos(pi/180*(Main.Parameters.DesignParameters.Foot_Rest_Tilt_Angle-90)), + sin(pi/180*(Main.Parameters.DesignParameters.Foot_Rest_Tilt_Angle-90)), + 0} + + {0, 0, -Main.Parameters.DesignParameters.Foot_Rest_Width/2 } + + {0, 0, -Main.Parameters.DesignParameters.Barbell_Thick }; + RotAnglesInDegree0 = { 0, 0, 0}; + Color = Main.DrawSettings.Colors.AnyBodyBlue; + Opacity = 1; + OpacityForLocalFrame = 0; + OpacityForLocalRefNodes = 0; + ScaleFactorForLocalRefNodes = 0.1; + }; + + CreateCylinder Handle_Right( + InputName = Handle_Right, + InputPlacement = Main.Model.EnvironmentModel.Segs, + InputRadius = Main.Parameters.DesignParameters.Handle_Radius, + InputLength = Main.Parameters.DesignParameters.Handle_Length, + InputDensity = Main.Parameters.DesignParameters.Handle_Density) = + { + Pos0 = {0, 0, Main.Parameters.DesignParameters.Back_Rest_Width/2} + + {0, 0, Main.Parameters.DesignParameters.Handle_Dis_Offset}; + RotAnglesInDegree0 = { -90, Main.Parameters.DesignParameters.Back_Rest_Tilt_Angle-90, 0}; + Color = Main.DrawSettings.Colors.AnyBodyYellow; + Opacity = 0.2; + OpacityForLocalFrame = 1; + OpacityForLocalRefNodes = 0; + ScaleFactorForLocalRefNodes = 0.0; + }; + + CreateCylinder Handle_Left( + InputName = Handle_Left, + InputPlacement = Main.Model.EnvironmentModel.Segs, + InputRadius = Main.Parameters.DesignParameters.Handle_Radius, + InputLength = Main.Parameters.DesignParameters.Handle_Length, + InputDensity = Main.Parameters.DesignParameters.Handle_Density) = + { + Pos0 = {0, 0, -Main.Parameters.DesignParameters.Back_Rest_Width/2} + + {0, 0, -Main.Parameters.DesignParameters.Handle_Dis_Offset}; + RotAnglesInDegree0 = { -90, Main.Parameters.DesignParameters.Back_Rest_Tilt_Angle-90, 0}; + Color = Main.DrawSettings.Colors.AnyBodyYellow; + Opacity = 1; + OpacityForLocalFrame = 1; + OpacityForLocalRefNodes = 0; + ScaleFactorForLocalRefNodes = 0.0; + }; +}; + +Main.Model.EnvironmentModel.Segs.Back_Rest= +{ + AnyRefNode FixToGlobal = + { + sRel = {-Main.Parameters.DesignParameters.Back_Rest_Height/2,0,0}; +// AnyDrawRefFrame drw = +// { +// RGB = {1,1,0}; +// ScaleXYZ = 0.5*{1,1,1}; +// }; + }; + AnyRefNode cc_base_node = + { + sRel = {0, -Main.Parameters.DesignParameters.Back_Rest_Thick/2, 0}; + ARel = RotMat(180*pi/180, z); + AnyDrawRefFrame drw = + { + RGB = {1,1,1}; + ScaleXYZ = 0.05*{1,1,1}; + }; + }; + + AnyRefNode Pelvis_node = + { + sRel = {-Main.Parameters.DesignParameters.Back_Rest_Height/2 + 0.2, + -Main.Parameters.DesignParameters.Back_Rest_Thick/2, 0}; + ARel = RotMat(180*pi/180, z); + AnyDrawRefFrame drw = + { + RGB = {1,0,1}; + ScaleXYZ = 0.05*{1,1,1}; + }; + }; + AnyRefNode FillCylNode = + { + sRel = {-Main.Parameters.DesignParameters.Back_Rest_Height/2, + 0, + -Main.Parameters.DesignParameters.Back_Rest_Width/2}; + AnySurfCylinder cyl_surf = + { + Radius = Main.Parameters.DesignParameters.Back_Rest_Thick/2; + Length = Main.Parameters.DesignParameters.Back_Rest_Width; + AnyDrawParamSurf drw = + { + RGB = Main.DrawSettings.Colors.AnyBodyGreen; + Opacity = 0.3; + WireFrameOnOff = On; + }; + }; + + }; +}; + +Main.Model.EnvironmentModel.Segs.Hip_Rest = +{ + AnyRefNode FixToGlobal = + { + sRel = {-Main.Parameters.DesignParameters.Hip_Rest_Height/2,0,0}; +// AnyDrawRefFrame drw = +// { +// RGB = {1,1,0}; +// ScaleXYZ = 0.5*{1,1,1}; +// }; + }; + AnyRefNode cc_base_node = + { + sRel = {0, Main.Parameters.DesignParameters.Hip_Rest_Thick/2, 0}; + //ARel = RotMat(180*pi/180, z); + AnyDrawRefFrame drw = + { + RGB = {1,1,1}; + ScaleXYZ = 0.05*{1,1,1}; + }; + }; + AnyRefNode Slider_node = + { + sRel = {-Main.Parameters.DesignParameters.Hip_Rest_Height/2, 0, 0}; + AnyDrawRefFrame drw = + { + RGB = {1,0,0}; + ScaleXYZ = 0.05*{1,1,1}; + }; + }; +}; + +Main.Model.EnvironmentModel.Segs.Handle_Right = +{ + AnyRefNode connect_node = + { + sRel = {0, 0, -Main.Parameters.DesignParameters.Handle_Length/2}; + ARel = RotMat(-90*pi/180, x)*RotMat(180*pi/180, y); +// AnyDrawRefFrame drw = +// { +// RGB = {1,0,0}; +// ScaleXYZ = 0.05*{1,1,1}; +// }; + }; + AnyRefNode Hand_Node = + { + sRel = {0, -Main.Parameters.DesignParameters.Handle_Radius, 0}; + ARel = RotMat(180*pi/180, x)*RotMat(180*pi/180, y); + AnyDrawRefFrame drw = + { + RGB = {1,0,0}; + ScaleXYZ = 0.05*{1,1,1}; + }; + }; +}; + +Main.Model.EnvironmentModel.Segs.Handle_Left = +{ + AnyRefNode connect_node = + { + sRel = {0, 0, -Main.Parameters.DesignParameters.Handle_Length/2}; + ARel = RotMat(-90*pi/180, x)*RotMat(180*pi/180, y); +// AnyDrawRefFrame drw = +// { +// RGB = {1,0,0}; +// ScaleXYZ = 0.05*{1,1,1}; +// }; + }; + AnyRefNode Hand_Node = + { + sRel = {0, Main.Parameters.DesignParameters.Handle_Radius, 0}; + //ARel = RotMat(180*pi/180, x)*RotMat(180*pi/180, y); + AnyDrawRefFrame drw = + { + RGB = {1,0,0}; + ScaleXYZ = 0.05*{1,1,1}; + }; + }; +}; + +Main.Model.EnvironmentModel.Segs.Foot_Rest = +{ + AnyRefNode Slider_node = + { + sRel = {-Main.Parameters.DesignParameters.Foot_Rest_Height/2, 0, 0}; + ARel = RotMat(-90*pi/180, z); +// AnyDrawRefFrame drw = +// { +// RGB = {1,0,0}; +// ScaleXYZ = 0.05*{1,1,1}; +// }; + }; + AnyRefNode cc_base_node = + { + sRel = {0, Main.Parameters.DesignParameters.Foot_Rest_Thick/2, 0}; + //ARel = RotMat(180*pi/180, z); +// AnyDrawRefFrame drw = +// { +// RGB = {1,1,1}; +// ScaleXYZ = 0.05*{1,1,1}; +// }; + }; + AnyRefNode right_toe_node = + { + sRel = {Main.Parameters.DesignParameters.Foot_Rest_ToeNode_V_Offset, + Main.Parameters.DesignParameters.Foot_Rest_Thick/2, + Main.Parameters.DesignParameters.Foot_Rest_ToeNode_H_Offset}; + ARel = RotMat(Main.Parameters.DesignParameters.Foot_Rest_ToeNode_Rotation*pi/180, y); + AnyDrawRefFrame drw = + { + RGB = {1,0,0}; + ScaleXYZ = 0.05*{1,1,1}; + }; + }; + AnyRefNode left_toe_node = + { + sRel = {Main.Parameters.DesignParameters.Foot_Rest_ToeNode_V_Offset, + Main.Parameters.DesignParameters.Foot_Rest_Thick/2, + -Main.Parameters.DesignParameters.Foot_Rest_ToeNode_H_Offset}; + ARel = RotMat(-Main.Parameters.DesignParameters.Foot_Rest_ToeNode_Rotation*pi/180, y); + AnyDrawRefFrame drw = + { + RGB = {1,0,0}; + ScaleXYZ = 0.05*{1,1,1}; + }; + }; + AnyRefNode right_barbell_node = + { + sRel = {0, 0, Main.Parameters.DesignParameters.Foot_Rest_Width/2}; + //ARel = RotMat(Main.Parameters.DesignParameters.Foot_Rest_ToeNode_Rotation*pi/180, y); +// AnyDrawRefFrame drw = +// { +// RGB = {1,0,0}; +// ScaleXYZ = 0.05*{1,1,1}; +// }; + }; + AnyRefNode left_barbell_node = + { + sRel = {0, 0, -Main.Parameters.DesignParameters.Foot_Rest_Width/2}; + //ARel = RotMat(-Main.Parameters.DesignParameters.Foot_Rest_ToeNode_Rotation*pi/180, y); +// AnyDrawRefFrame drw = +// { +// RGB = {1,0,0}; +// ScaleXYZ = 0.05*{1,1,1}; +// }; + }; +}; + +Main.Model.EnvironmentModel.Segs.Barbell_Right = +{ + AnyRefNode Logo= + { + sRel={0,0,Main.Parameters.DesignParameters.Barbell_Thick/2}; + AnyDrawSTL Body = + { + FileName = ANYBODY_PATH_MODELUTILS +"DrawObjects/Body-grey.stl"; + RGB = Main.DrawSettings.Colors.AnyBodyGrey; + + Opacity = 1; + ScaleXYZ=Main.Parameters.DesignParameters.Barbell_Radius*0.04*{1,1,1}; + AnyStyleDrawMaterial1 style = + { + EnableCreasing = On; + CreasingAngle = 0.524; + SpecularRGB = 0.05*{1,1,1}; + }; + }; + + AnyDrawSTL AnyTechnology = + { + FileName = ANYBODY_PATH_MODELUTILS +"DrawObjects/AnyTechnology-red.stl"; + RGB = Main.DrawSettings.Colors.AnyBodyRed; + + Opacity = 1; + ScaleXYZ=Main.Parameters.DesignParameters.Barbell_Radius*0.04*{1,1,1}; + AnyStyleDrawMaterial1 style = + { + EnableCreasing = On; + CreasingAngle = 0.524; + SpecularRGB = 0.05*{1,1,1}; + }; + }; + + }; + +}; + +Main.Model.EnvironmentModel.Segs.Barbell_Left = +{ + AnyRefNode Logo= + { + sRel={0,0,-Main.Parameters.DesignParameters.Barbell_Thick/2}; + ARel=RotMat(180*pi/180, y); + AnyDrawSTL Body = + { + FileName = ANYBODY_PATH_MODELUTILS +"DrawObjects/Body-grey.stl"; + RGB = Main.DrawSettings.Colors.AnyBodyGrey; + + Opacity = 1; + ScaleXYZ=Main.Parameters.DesignParameters.Barbell_Radius*0.04*{1,1,1}; + }; + + AnyDrawSTL AnyTechnology = + { + FileName = ANYBODY_PATH_MODELUTILS +"DrawObjects/AnyTechnology-red.stl"; + RGB = Main.DrawSettings.Colors.AnyBodyRed; + + Opacity = 1; + ScaleXYZ=Main.Parameters.DesignParameters.Barbell_Radius*0.04*{1,1,1}; + }; + + }; + +}; + +Main.Model.EnvironmentModel.Joints = +{ + AnyRevoluteJoint Back_Rest_Fix_Jnt = + { + AnyRefFrame& base = Main.Model.EnvironmentModel.GlobalRef; + AnyRefFrame& target = Main.Model.EnvironmentModel.Segs.Back_Rest.FixToGlobal; + Axis = z; + Ref = 0; + }; + + AnyRevoluteJoint Hip_Rest_Fix_Jnt = + { + AnyRefFrame& base = Main.Model.EnvironmentModel.GlobalRef; + AnyRefFrame& target = Main.Model.EnvironmentModel.Segs.Hip_Rest.FixToGlobal; + Axis = z; + Ref = 0; + }; + + AnyKinEqSimpleDriver Back_Rest_Fix_Drv = + { + AnyRevoluteJoint& jnt = .Back_Rest_Fix_Jnt; + DriverPos = pi/180*{Main.Parameters.DesignParameters.Back_Rest_Tilt_Angle}; + DriverVel = {0}; + }; + + AnyKinEqSimpleDriver Hip_Rest_Fix_Drv = + { + AnyRevoluteJoint& jnt = .Hip_Rest_Fix_Jnt; + DriverPos = pi/180*{Main.Parameters.DesignParameters.Hip_Rest_Tilt_Angle}; + DriverVel = {0}; + }; + + AnyRevoluteJoint Barbell_Left_Fix_Jnt = + { + AnyRefFrame& base = Main.Model.EnvironmentModel.Segs.Foot_Rest.left_barbell_node; + AnyRefFrame& target = Main.Model.EnvironmentModel.Segs.Barbell_Left.Node_Top; + Axis = z; + }; + + AnyRevoluteJoint Barbell_Right_Fix_Jnt = + { + AnyRefFrame& base = Main.Model.EnvironmentModel.Segs.Foot_Rest.right_barbell_node; + AnyRefFrame& target = Main.Model.EnvironmentModel.Segs.Barbell_Right.Node_Bottom; + Axis = z; + }; + + AnyKinEqSimpleDriver Barbell_Left_Fix_Drv = + { + AnyRevoluteJoint& jnt = .Barbell_Left_Fix_Jnt ; + DriverPos = pi/180*{-Main.Parameters.DesignParameters.Foot_Rest_Tilt_Angle}; + DriverVel = {0}; + }; + + AnyKinEqSimpleDriver Barbell_Right_Fix_Drv = + { + AnyRevoluteJoint& jnt = .Barbell_Right_Fix_Jnt ; + DriverPos = pi/180*{-Main.Parameters.DesignParameters.Foot_Rest_Tilt_Angle}; + DriverVel = {0}; + }; + + AnyPrismaticJoint Foot_Rest_Slider_Jnt = + { + AnyRefFrame& base = Main.Model.EnvironmentModel.Segs.Hip_Rest.Slider_node; + AnyRefFrame& target = Main.Model.EnvironmentModel.Segs.Foot_Rest.Slider_node; + Axis = x; + }; + + AnyKinPLine Foot_Rest_Slider_Jnt_Line = + { + AnyRefFrame& base = Main.Model.EnvironmentModel.Segs.Hip_Rest.Slider_node; + AnyRefFrame& target = Main.Model.EnvironmentModel.Segs.Foot_Rest.Slider_node; + AnyDrawPLine drw = + { + Thickness = 0.01; + RGB = {0,0,0}; + }; + }; + + AnyPrismaticJoint Handle_Right_Fix_Jnt = + { + AnyRefFrame& base = Main.Model.EnvironmentModel.Segs.Back_Rest.FixToGlobal; + AnyRefFrame& target = Main.Model.EnvironmentModel.Segs.Handle_Right.connect_node; + Axis = z; + Ref = 0; + }; + AnyKinEqSimpleDriver Handle_Right_Fix_Drv = + { + AnyPrismaticJoint & jnt = .Handle_Right_Fix_Jnt ; + DriverPos = {Main.Parameters.DesignParameters.Back_Rest_Width/2+ + Main.Parameters.DesignParameters.Handle_Dis_Offset}; + DriverVel = {0}; + }; + AnyPrismaticJoint Handle_Left_Fix_Jnt = + { + AnyRefFrame& base = Main.Model.EnvironmentModel.Segs.Back_Rest.FixToGlobal; + AnyRefFrame& target = Main.Model.EnvironmentModel.Segs.Handle_Left.connect_node; + Axis = z; + Ref = 0; + }; + AnyKinEqSimpleDriver Handle_Left_Fix_Drv = + { + AnyPrismaticJoint & jnt = .Handle_Left_Fix_Jnt ; + DriverPos = {-Main.Parameters.DesignParameters.Back_Rest_Width/2- + Main.Parameters.DesignParameters.Handle_Dis_Offset}; + DriverVel = {0}; + }; +}; \ No newline at end of file