--- a +++ b/Application/Examples/PedalDemoConditional/PedalDemoConditional.Main.any @@ -0,0 +1,81 @@ +#include "../libdef.any" + +//class template for conditional contact +#include "<ANYBODY_PATH_MODELUTILS>\FrictionContactMuscles\ConditionalContactClass.any" + + +/** This model is for design of a pedal that is comfortable to use +for a seated operator depending on the stiffness of the embedded +spring and the distance of the seat from the pedal. The model is +a copy of the PedalDemo example with the exception that this model +has conditional contact between the foot and the pedal, such that +the contact becomes active when the two elements are in proximity +with each other. */ +Main = { + // ---------------------------------------------------------- + // Path to draw settings + // ---------------------------------------------------------- + #include "Model/DrawSettings.any" + + // ---------------------------------------------------------- + // Body Model Configuration + // ---------------------------------------------------------- + #include "Model/BodyModelConfiguration.any" + + // The Mannequin file specifies load-time positions for all the segments + // in the HumanModel. This is important for the model's ablity to resolve + // all the kinematic constraints when the model is analyzed. + // The mannequin file also drives those degrees of freedom of the human + // model that are not governed by problem-specific drivers at run time. + #include "Model/Mannequin.any" + + // Model of the human body to be used for the analysis + #include "<ANYBODY_PATH_BODY>/HumanModel.any" + + /// The actual model where all components are assembled + AnyFolder Model ={ + /// Body model without default drivers + AnyFolder &BodyModel=.HumanModel.BodyModel; + /// Reference to the mannequin folder (used by drivers) + AnyFolder &Mannequin =.HumanModel.Mannequin; + + BodyModel.Left.Leg.Seg.Foot = { + AnyRefNode FootBall = { + sRel = (.ToeLateralContactNode.sRel + .ToeMedialContactNode.sRel)/2.0; + }; + }; + BodyModel.Right.Leg.Seg.Foot = { + AnyRefNode FootBall = { + sRel = (.ToeLateralContactNode.sRel + .ToeMedialContactNode.sRel)/2.0; + }; + }; + + /// This folder contains the description of the environment. The spring + /// stiffness of the pedal and the Hpoint, i.e. the position of the + /// seat, can be adjusted by the parameters in this folder. + AnyFolder MyPedal = { + AnyVar SpringStiff = 40; // Spring stiffness in Nm/rad + AnyVec3 Hpoint = {-0.8, 0.5, 0}; + #include "Model/Environment.any" + }; // MyPedal + + // Folder containing the objects that bind the human model and + // the pedal together. + AnyFolder ModelEnvironmentConnection = { + #include "Model/JointsAndDrivers.any" + }; + }; + + /// The study: Operations to be performed on the model + AnyBodyStudy Study = { + nStep = 40; + AnyFolder &Model = .Model; + Gravity = {0.0, -9.81, 0.0}; + }; + + // Include an operation sequence to run all required steps of your application (see Operations tab) + #include "<ANYBODY_PATH_MODELUTILS>\Operations\RunAppSequence.any" + +}; // Main + +