90 lines (69 with data), 3.1 kB
/** This folder creates a contact-type of support between the saddle and the pelvis.
The saddle supports the pelvis forward/backward and laterally in both directions,
but it only offers support in the upward direction vertically. This prevents the
model from exploiting a "glued" contact with the seat when driving at high intensity.*/
AnyFolder SeatSupport = {
AnyComponentDefinition obj = {
SubGroupRegexSearch = "([_[:alnum:]]+?)\.([_[:alnum:]]+?)";
SubGroupRegexReplace = "$1";
};
AnyVar Strength=3000;
AnyVar FrictionStrength=3000;
AnyVar Scale=0.005;
AnyFolder &Pelvis =.BodyModel.Trunk.SegmentsLumbar.PelvisSeg;
Pelvis={
AnyRefNode Seat_contact1R={
sRel=.Seat_contactR.sRel+{0.085,0.01,0};
//AnyDrawRefFrame test={ScaleXYZ={.1,.1,.1};};
};
AnyRefNode Seat_contact1L={
sRel=.Seat_contactL.sRel+{0.085,0.01,0};
//AnyDrawRefFrame test={ScaleXYZ={.1,.1,.1};};
};
AnyRefNode Seat_contact2R={
sRel=.Seat_contactR.sRel+{0.065,0.005,0};
//AnyDrawRefFrame test={ScaleXYZ={.1,.1,.1};};
};
AnyRefNode Seat_contact2Mid={
sRel=0.5*(.Seat_contact2R.sRel+.Seat_contact2L.sRel);
//AnyDrawRefFrame test={ScaleXYZ={.1,.1,.1};};
};
AnyRefNode Seat_contact2L={
sRel=.Seat_contactL.sRel+{0.065,0.005,0};
//AnyDrawRefFrame test={ScaleXYZ={.1,.1,.1};};
};
AnyRefNode Seat_contact3R={
sRel=.Seat_contactR.sRel+{0.025,0,0};
//AnyDrawRefFrame test={ScaleXYZ={.1,.1,.1};};
};
AnyRefNode Seat_contact3L={
sRel=.Seat_contactL.sRel+{0.025,0,0};
//AnyDrawRefFrame test={ScaleXYZ={.1,.1,.1};};
};
AnyRefNode Seat_contact4R={
sRel=.Seat_contactR.sRel+{-0.015,0.01,0};
//AnyDrawRefFrame test={ScaleXYZ={.1,.1,.1};};
};
AnyRefNode Seat_contact4L={
sRel=.Seat_contactL.sRel+{-0.015,0.01,0};
//AnyDrawRefFrame test={ScaleXYZ={.1,.1,.1};};
};
};
AnyFolder Seat_contact2Mid={
AnyComponentDefinition obj = {
SubGroupRegexSearch = "([_[:alnum:]]+?)\.([_[:alnum:]]+?)";
SubGroupRegexReplace = "$1";
};
AnyRefNode &StartNode = Main.Model.BikeModel.BikeFrame.SaddlePos;
AnyRefFrame &EndNode =..BodyModel.Trunk.SegmentsLumbar.PelvisSeg.Seat_contact2Mid;
AnyVector StrengthOfReactionsLin = {.Strength,.FrictionStrength,.Strength,0,.Strength,.Strength}; //List of strengths for the linear muscles
AnyFolder &DrawRef=Main.DrawSettings;
AnyVar ScaleFactor =.1;
#include "<ANYBODY_PATH_MODELUTILS>/Reactions/XPush.any"
#include "<ANYBODY_PATH_MODELUTILS>/Reactions/XPull.any"
#include "<ANYBODY_PATH_MODELUTILS>/Reactions/YPush.any"
// #include "<ANYBODY_PATH_MODELUTILS>/Reactions/YPull.any"
#include "<ANYBODY_PATH_MODELUTILS>/Reactions/ZPush.any"
#include "<ANYBODY_PATH_MODELUTILS>/Reactions/ZPull.any"
};
};