From 55963abe51fe6e32514147cfad6fbf9d2e6bba71 Mon Sep 17 00:00:00 2001 From: Aik-Siong Koh Date: Mon, 8 Apr 2024 21:54:34 -0600 Subject: [PATCH] rackPin issue. --- OndselSolver/ASMTAssembly.cpp | 31 ++ OndselSolver/ASMTAssembly.h | 1 + OndselSolver/Abs.cpp | 1 + OndselSolver/AllowZRotation.cpp | 2 + .../AllowZRotationConstraintIqctJqc.cpp | 1 + OndselSolver/RackPinConstraintIqcJqc.cpp | 1 + OndselSolver/SystemNewtonRaphson.cpp | 4 + testapp/OndselSolver.cpp | 1 + testapp/limits.asmt | 273 +++++++++++ testapp/rackPinion.asmt | 462 ++++++++++++++++++ testapp/rackPinion3.asmt | 423 ++++++++++++++++ 11 files changed, 1200 insertions(+) create mode 100644 testapp/limits.asmt create mode 100644 testapp/rackPinion.asmt create mode 100644 testapp/rackPinion3.asmt diff --git a/OndselSolver/ASMTAssembly.cpp b/OndselSolver/ASMTAssembly.cpp index c21c3e9..57429da 100644 --- a/OndselSolver/ASMTAssembly.cpp +++ b/OndselSolver/ASMTAssembly.cpp @@ -517,6 +517,37 @@ void MbD::ASMTAssembly::runDraggingTest2() assembly->runPostDrag(); //Do this after last drag } +void MbD::ASMTAssembly::runDraggingTest3() +{ + auto assembly = ASMTAssembly::assemblyFromFile("../testapp/rackPinion2.asmt"); + auto dragPart = assembly->partNamed("/OndselAssembly/rackPinion#Box"); + auto rotPart = assembly->partNamed("/OndselAssembly/rackPinion#Cylinder"); + auto dragParts = std::make_shared>>(); + dragParts->push_back(dragPart); + FColDsptr dragPos3D, rotPos3D, delta; + FMatDsptr rotMat; + assembly->runPreDrag(); //Do this before first drag + dragPos3D = dragPart->position3D; + rotPos3D = rotPart->position3D; + rotMat = rotPart->rotationMatrix; + delta = std::make_shared>(ListD{ 0.5, 0.0, 0.0 }); + dragPart->updateMbDFromPosition3D(dragPos3D->plusFullColumn(delta)); + assembly->runDragStep(dragParts); + dragPos3D = dragPart->position3D; + rotPos3D = rotPart->position3D; + rotMat = rotPart->rotationMatrix; + delta = std::make_shared>(ListD{ 0.5, 0.0, 0.0 }); + dragPart->updateMbDFromPosition3D(dragPos3D->plusFullColumn(delta)); + assembly->runDragStep(dragParts); + dragPos3D = dragPart->position3D; + rotPos3D = rotPart->position3D; + rotMat = rotPart->rotationMatrix; + assembly->runPostDrag(); //Do this after last drag + dragPos3D = dragPart->position3D; + rotPos3D = rotPart->position3D; + rotMat = rotPart->rotationMatrix; +} + void MbD::ASMTAssembly::readWriteFile(const char* fileName) { std::ifstream stream(fileName); diff --git a/OndselSolver/ASMTAssembly.h b/OndselSolver/ASMTAssembly.h index 98c750f..a4612bd 100644 --- a/OndselSolver/ASMTAssembly.h +++ b/OndselSolver/ASMTAssembly.h @@ -43,6 +43,7 @@ namespace MbD { static void runFile(const char* chars); static void runDraggingTest(); static void runDraggingTest2(); + static void runDraggingTest3(); static void readWriteFile(const char* chars); void initialize() override; ASMTAssembly* root() override; diff --git a/OndselSolver/Abs.cpp b/OndselSolver/Abs.cpp index 20681f2..2126057 100644 --- a/OndselSolver/Abs.cpp +++ b/OndselSolver/Abs.cpp @@ -12,6 +12,7 @@ using namespace MbD; MbD::Abs::Abs(Symsptr arg) : FunctionX(arg) { + //Do nothing. } double MbD::Abs::getValue() diff --git a/OndselSolver/AllowZRotation.cpp b/OndselSolver/AllowZRotation.cpp index e51739e..641fa43 100644 --- a/OndselSolver/AllowZRotation.cpp +++ b/OndselSolver/AllowZRotation.cpp @@ -19,10 +19,12 @@ using namespace MbD; MbD::AllowZRotation::AllowZRotation() { + //Do nothing. } MbD::AllowZRotation::AllowZRotation(const char* str) : PrescribedMotion(str) { + //Do nothing. } std::shared_ptr MbD::AllowZRotation::With() diff --git a/OndselSolver/AllowZRotationConstraintIqctJqc.cpp b/OndselSolver/AllowZRotationConstraintIqctJqc.cpp index fd73ed4..c87aeba 100644 --- a/OndselSolver/AllowZRotationConstraintIqctJqc.cpp +++ b/OndselSolver/AllowZRotationConstraintIqctJqc.cpp @@ -20,6 +20,7 @@ using namespace MbD; MbD::AllowZRotationConstraintIqctJqc::AllowZRotationConstraintIqctJqc(EndFrmsptr frmi, EndFrmsptr frmj, size_t axisi, size_t axisj) : DirectionCosineConstraintIqctJqc(frmi, frmj, axisi, axisj) { + //Do nothing. } std::shared_ptr MbD::AllowZRotationConstraintIqctJqc::With(EndFrmsptr frmi, EndFrmsptr frmj, size_t axisi, size_t axisj) diff --git a/OndselSolver/RackPinConstraintIqcJqc.cpp b/OndselSolver/RackPinConstraintIqcJqc.cpp index 3340794..f6d1bd1 100644 --- a/OndselSolver/RackPinConstraintIqcJqc.cpp +++ b/OndselSolver/RackPinConstraintIqcJqc.cpp @@ -35,6 +35,7 @@ void MbD::RackPinConstraintIqcJqc::initthezIeJe() void MbD::RackPinConstraintIqcJqc::calc_pGpEJ() { + pGpEJ = xIeJeIe->pvaluepEJ()->plusFullRow(thezIeJe->pvaluepEJ()->times(pitchRadius)); } void MbD::RackPinConstraintIqcJqc::calc_pGpXJ() diff --git a/OndselSolver/SystemNewtonRaphson.cpp b/OndselSolver/SystemNewtonRaphson.cpp index 43c602e..e94170e 100644 --- a/OndselSolver/SystemNewtonRaphson.cpp +++ b/OndselSolver/SystemNewtonRaphson.cpp @@ -56,6 +56,10 @@ void SystemNewtonRaphson::calcdxNorm() void SystemNewtonRaphson::basicSolveEquations() { + auto debug = false; + if (debug) { + outputSpreadsheet(); + } dx = matrixSolver->solvewithsaveOriginal(pypx, y->negated(), false); } diff --git a/testapp/OndselSolver.cpp b/testapp/OndselSolver.cpp index 32ad321..982f430 100644 --- a/testapp/OndselSolver.cpp +++ b/testapp/OndselSolver.cpp @@ -26,6 +26,7 @@ void sharedptrTest(); int main() { + ASMTAssembly::runDraggingTest3(); ASMTAssembly::runDraggingTest2(); ASMTAssembly::runDraggingTest(); //ASMTAssembly::runFile("../testapp/pistonWithLimits.asmt"); diff --git a/testapp/limits.asmt b/testapp/limits.asmt new file mode 100644 index 0000000..073c971 --- /dev/null +++ b/testapp/limits.asmt @@ -0,0 +1,273 @@ +OndselSolver +Assembly + Notes + (Text string: '' runs: (Core.RunArray runs: #() values: #())) + Name + OndselAssembly + Position3D + 0 0 0 + RotationMatrix + 1 0 0 + 0 1 0 + 0 0 1 + Velocity3D + 0 0 0 + Omega3D + 0 0 0 + RefPoints + RefPoint + Position3D + 0 0 0 + RotationMatrix + 1 0 0 + 0 1 0 + 0 0 1 + Markers + Marker + Name + marker-rackPinion#Box001 + Position3D + -1.09127140045166 0.6816802024841309 1.622356414794922 + RotationMatrix + 1 0 0 + 0 1 0 + 0 0 1 + RefCurves + RefSurfaces + Parts + Part + Name + rackPinion#Box001 + Position3D + -1.09127140045166 0.6816802024841309 1.622356414794922 + RotationMatrix + 1 0 0 + 0 1 0 + 0 0 1 + Velocity3D + 0 0 0 + Omega3D + 0 0 0 + FeatureOrder + PrincipalMassMarker + Name + MassMarker + Position3D + 0 0 0 + RotationMatrix + 1 0 0 + 0 1 0 + 0 0 1 + Mass + 1 + MomentOfInertias + 1 1 1 + Density + 1 + RefPoints + RefPoint + Position3D + 0 0 0 + RotationMatrix + 1 0 0 + 0 1 0 + 0 0 1 + Markers + Marker + Name + FixingMarker + Position3D + 0 0 0 + RotationMatrix + 1 0 0 + 0 1 0 + 0 0 1 + RefPoint + Position3D + 0 0 0 + RotationMatrix + 1 0 0 + 0 1 0 + 0 0 1 + Markers + Marker + Name + rackPinion#Revolute + Position3D + 0 12 2 + RotationMatrix + 1 0 0 + 0 1 0 + 0 0 1 + RefPoint + Position3D + 0 0 0 + RotationMatrix + 1 0 0 + 0 1 0 + 0 0 1 + Markers + Marker + Name + rackPinion#Slider + Position3D + 0 0 2 + RotationMatrix + -2.220446049250313e-16 0 1 + 0 -1 0 + 1 0 -2.220446049250313e-16 + RefCurves + RefSurfaces + Part + Name + rackPinion#Cylinder + Position3D + -1.09127140045166 12.68168020248413 3.622356414794922 + RotationMatrix + 0.9988529646154666 -0.04788272213328647 0 + 0.04788272213328647 0.9988529646154666 0 + 0 0 1 + Velocity3D + 0 0 0 + Omega3D + 0 0 0 + FeatureOrder + PrincipalMassMarker + Name + MassMarker + Position3D + 0 0 0 + RotationMatrix + 1 0 0 + 0 1 0 + 0 0 1 + Mass + 1 + MomentOfInertias + 1 1 1 + Density + 1 + RefPoints + RefPoint + Position3D + 0 0 0 + RotationMatrix + 1 0 0 + 0 1 0 + 0 0 1 + Markers + Marker + Name + rackPinion#Revolute + Position3D + 0 0 0 + RotationMatrix + 1 -1.387778780781445e-17 0 + 1.387778780781445e-17 1 0 + 0 0 1 + RefCurves + RefSurfaces + Part + Name + rackPinion#Box + Position3D + 9.366676186258584 0.6816802024841309 3.622356414794929 + RotationMatrix + 1 0 0 + 0 1 0 + 0 0 1 + Velocity3D + 0 0 0 + Omega3D + 0 0 0 + FeatureOrder + PrincipalMassMarker + Name + MassMarker + Position3D + 0 0 0 + RotationMatrix + 1 0 0 + 0 1 0 + 0 0 1 + Mass + 1 + MomentOfInertias + 1 1 1 + Density + 1 + RefPoints + RefPoint + Position3D + 0 0 0 + RotationMatrix + 1 0 0 + 0 1 0 + 0 0 1 + Markers + Marker + Name + rackPinion#Slider + Position3D + 0 0 0 + RotationMatrix + -2.220446049250313e-16 0 1 + 0 -1 0 + 1 0 -2.220446049250313e-16 + RefCurves + RefSurfaces + KinematicIJs + ConstraintSets + Joints + FixedJoint + Name + rackPinion#GroundedJoint + MarkerI + /OndselAssembly/marker-rackPinion#Box001 + MarkerJ + /OndselAssembly/rackPinion#Box001/FixingMarker + RevoluteJoint + Name + rackPinion#Revolute + MarkerI + /OndselAssembly/rackPinion#Cylinder/rackPinion#Revolute + MarkerJ + /OndselAssembly/rackPinion#Box001/rackPinion#Revolute + TranslationalJoint + Name + rackPinion#Slider + MarkerI + /OndselAssembly/rackPinion#Box/rackPinion#Slider + MarkerJ + /OndselAssembly/rackPinion#Box001/rackPinion#Slider + Motions + GeneralConstraintSets + ForceTorques + ConstantGravity + 0 0 0 + SimulationParameters + tstart + 0 + tend + 1 + hmin + 1e-09 + hmax + 1000000000 + hout + 0.1 + errorTol + 1e-06 + AnimationParameters + nframe + 1000000 + icurrent + 1 + istart + 1 + iend + 1000000 + isForward + true + framesPerSecond + 30 diff --git a/testapp/rackPinion.asmt b/testapp/rackPinion.asmt new file mode 100644 index 0000000..a1f6efc --- /dev/null +++ b/testapp/rackPinion.asmt @@ -0,0 +1,462 @@ +OndselSolver +Assembly + Notes + (Text string: '' runs: (Core.RunArray runs: #() values: #())) + Name + OndselAssembly + Position3D + 0 0 0 + RotationMatrix + 1 0 0 + 0 1 0 + 0 0 1 + Velocity3D + 0 0 0 + Omega3D + 0 0 0 + RefPoints + RefPoint + Position3D + 0 0 0 + RotationMatrix + 1 0 0 + 0 1 0 + 0 0 1 + Markers + Marker + Name + marker-rackPinion#Box001 + Position3D + -1.09127140045166 0.6816802024841309 1.622356414794922 + RotationMatrix + 1 0 0 + 0 1 0 + 0 0 1 + RefCurves + RefSurfaces + Parts + Part + Name + rackPinion#Box001 + Position3D + -1.09127140045166 0.6816802024841309 1.622356414794922 + RotationMatrix + 1 0 0 + 0 1 0 + 0 0 1 + Velocity3D + 0 0 0 + Omega3D + 0 0 0 + FeatureOrder + PrincipalMassMarker + Name + MassMarker + Position3D + 0 0 0 + RotationMatrix + 1 0 0 + 0 1 0 + 0 0 1 + Mass + 1 + MomentOfInertias + 1 1 1 + Density + 1 + RefPoints + RefPoint + Position3D + 0 0 0 + RotationMatrix + 1 0 0 + 0 1 0 + 0 0 1 + Markers + Marker + Name + FixingMarker + Position3D + 0 0 0 + RotationMatrix + 1 0 0 + 0 1 0 + 0 0 1 + RefPoint + Position3D + 0 0 0 + RotationMatrix + 1 0 0 + 0 1 0 + 0 0 1 + Markers + Marker + Name + rackPinion#Revolute + Position3D + 0 12 2 + RotationMatrix + 1 0 0 + 0 1 0 + 0 0 1 + RefPoint + Position3D + 0 0 0 + RotationMatrix + 1 0 0 + 0 1 0 + 0 0 1 + Markers + Marker + Name + rackPinion#Slider + Position3D + 0 0 2 + RotationMatrix + -2.220446049250313e-16 0 1 + 0 -1 0 + 1 0 -2.220446049250313e-16 + RefPoint + Position3D + 0 0 0 + RotationMatrix + 1 0 0 + 0 1 0 + 0 0 1 + Markers + Marker + Name + rackPinion#Revolute001 + Position3D + 37 12 2 + RotationMatrix + 1 0 0 + 0 1 0 + 0 0 1 + RefPoint + Position3D + 0 0 0 + RotationMatrix + 1 0 0 + 0 1 0 + 0 0 1 + Markers + Marker + Name + rackPinion#Revolute002 + Position3D + 37 0 2 + RotationMatrix + -2.220446049250313e-16 0 1 + 0 -1 0 + 1 0 -2.220446049250313e-16 + RefCurves + RefSurfaces + Part + Name + rackPinion#Cylinder + Position3D + -1.09127140045166 12.68168020248413 3.622356414794922 + RotationMatrix + 0.9989860693358433 0.04502036509094207 0 + -0.04502036509094207 0.9989860693358433 -0 + -0 0 1 + Velocity3D + 0 0 0 + Omega3D + 0 0 0 + FeatureOrder + PrincipalMassMarker + Name + MassMarker + Position3D + 0 0 0 + RotationMatrix + 1 0 0 + 0 1 0 + 0 0 1 + Mass + 1 + MomentOfInertias + 1 1 1 + Density + 1 + RefPoints + RefPoint + Position3D + 0 0 0 + RotationMatrix + 1 0 0 + 0 1 0 + 0 0 1 + Markers + Marker + Name + rackPinion#Revolute + Position3D + 0 0 0 + RotationMatrix + 1 6.938893903907228e-18 0 + -6.938893903907228e-18 1 -0 + -0 0 1 + RefPoint + Position3D + 0 0 0 + RotationMatrix + 1 0 0 + 0 1 0 + 0 0 1 + Markers + Marker + Name + rackPinion#RackPinion + Position3D + 0 0 2 + RotationMatrix + 1 6.938893903907228e-18 0 + -6.938893903907228e-18 1 -0 + -0 0 1 + RefCurves + RefSurfaces + Part + Name + rackPinion#Box + Position3D + 4.299936895813785 0.6816802024841309 3.622356414794925 + RotationMatrix + 1 0 0 + 0 1 0 + 0 0 1 + Velocity3D + 0 0 0 + Omega3D + 0 0 0 + FeatureOrder + PrincipalMassMarker + Name + MassMarker + Position3D + 0 0 0 + RotationMatrix + 1 0 0 + 0 1 0 + 0 0 1 + Mass + 1 + MomentOfInertias + 1 1 1 + Density + 1 + RefPoints + RefPoint + Position3D + 0 0 0 + RotationMatrix + 1 0 0 + 0 1 0 + 0 0 1 + Markers + Marker + Name + rackPinion#Slider + Position3D + 0 0 0 + RotationMatrix + -2.220446049250313e-16 0 1 + 0 -1 0 + 1 0 -2.220446049250313e-16 + RefPoint + Position3D + 0 0 0 + RotationMatrix + 1 0 0 + 0 1 0 + 0 0 1 + Markers + Marker + Name + rackPinion#RackPinion + Position3D + 0 0 3 + RotationMatrix + 1 0 0 + 0 1 0 + 0 0 1 + RefCurves + RefSurfaces + Part + Name + rackPinion#Cylinder001 + Position3D + 35.90872859954834 12.68168020248413 3.622356414794922 + RotationMatrix + -0.208877917092376 -0.9779417241079095 0 + 0.9779417241079095 -0.208877917092376 0 + 0 0 1 + Velocity3D + 0 0 0 + Omega3D + 0 0 0 + FeatureOrder + PrincipalMassMarker + Name + MassMarker + Position3D + 0 0 0 + RotationMatrix + 1 0 0 + 0 1 0 + 0 0 1 + Mass + 1 + MomentOfInertias + 1 1 1 + Density + 1 + RefPoints + RefPoint + Position3D + 0 0 0 + RotationMatrix + 1 0 0 + 0 1 0 + 0 0 1 + Markers + Marker + Name + rackPinion#Revolute001 + Position3D + 0 0 0 + RotationMatrix + 1 0 0 + 0 1 0 + 0 0 1 + RefCurves + RefSurfaces + Part + Name + rackPinion#Cylinder002 + Position3D + 37.90872859954834 0.6816802024841294 3.622356414794922 + RotationMatrix + -2.220446049250313e-16 5.551115123125783e-17 -1 + 0.9455343955120326 -0.3255222064678469 -5.551115123125783e-17 + -0.3255222064678468 -0.9455343955120326 -2.220446049250313e-16 + Velocity3D + 0 0 0 + Omega3D + 0 0 0 + FeatureOrder + PrincipalMassMarker + Name + MassMarker + Position3D + 0 0 0 + RotationMatrix + 1 0 0 + 0 1 0 + 0 0 1 + Mass + 1 + MomentOfInertias + 1 1 1 + Density + 1 + RefPoints + RefPoint + Position3D + 0 0 0 + RotationMatrix + 1 0 0 + 0 1 0 + 0 0 1 + Markers + Marker + Name + rackPinion#Revolute002 + Position3D + -3.33066907387547e-16 0 2 + RotationMatrix + 1 -2.77333911991762e-32 -3.33066907387547e-16 + -2.77333911991762e-32 1 -1.665334536937735e-16 + 3.33066907387547e-16 1.665334536937735e-16 1 + RefCurves + RefSurfaces + KinematicIJs + ConstraintSets + Joints + FixedJoint + Name + rackPinion#GroundedJoint + MarkerI + /OndselAssembly/marker-rackPinion#Box001 + MarkerJ + /OndselAssembly/rackPinion#Box001/FixingMarker + RevoluteJoint + Name + rackPinion#Revolute + MarkerI + /OndselAssembly/rackPinion#Cylinder/rackPinion#Revolute + MarkerJ + /OndselAssembly/rackPinion#Box001/rackPinion#Revolute + TranslationalJoint + Name + rackPinion#Slider + MarkerI + /OndselAssembly/rackPinion#Box/rackPinion#Slider + MarkerJ + /OndselAssembly/rackPinion#Box001/rackPinion#Slider + RevoluteJoint + Name + rackPinion#Revolute001 + MarkerI + /OndselAssembly/rackPinion#Cylinder001/rackPinion#Revolute001 + MarkerJ + /OndselAssembly/rackPinion#Box001/rackPinion#Revolute001 + RevoluteJoint + Name + rackPinion#Revolute002 + MarkerI + /OndselAssembly/rackPinion#Cylinder002/rackPinion#Revolute002 + MarkerJ + /OndselAssembly/rackPinion#Box001/rackPinion#Revolute002 + RackPinionJoint + Name + rackPinion#RackPinion + MarkerI + /OndselAssembly/rackPinion#Cylinder/rackPinion#RackPinion + MarkerJ + /OndselAssembly/rackPinion#Box/rackPinion#RackPinion + pitchRadius + 1 + Motions + GeneralConstraintSets + ForceTorques + ConstantGravity + 0 0 0 + SimulationParameters + tstart + 0 + tend + 1 + hmin + 1e-09 + hmax + 1000000000 + hout + 0.1 + errorTol + 1e-06 + AnimationParameters + nframe + 1000000 + icurrent + 1 + istart + 1 + iend + 1000000 + isForward + true + framesPerSecond + 30 diff --git a/testapp/rackPinion3.asmt b/testapp/rackPinion3.asmt new file mode 100644 index 0000000..8e11249 --- /dev/null +++ b/testapp/rackPinion3.asmt @@ -0,0 +1,423 @@ +freeCAD: 3D CAD with Motion Simulation by askoh.com +Assembly + Notes + (Text string: '' runs: (Core.RunArray runs: #() values: #())) + Name + OndselAssembly + Position3D + 0.0 0.0 0.0 + RotationMatrix + 1.0 0.0 0.0 + 0.0 1.0 0.0 + 0.0 0.0 1.0 + Velocity3D + 0.0 0.0 0.0 + Omega3D + 0.0 0.0 0.0 + RefPoints + RefPoint + Position3D + 0 0 0 + RotationMatrix + 1 0 0 + 0 1 0 + 0 0 1 + Markers + Marker + Name + marker-rackPinion#Box001 + Position3D + -1.0912714004517 0.68168020248413 1.6223564147949 + RotationMatrix + 1.0 0.0 0.0 + 0.0 1.0 0.0 + 0.0 0.0 1.0 + RefCurves + RefSurfaces + Parts + Part + Name + rackPinion#Box + Position3D + 5.6962232290719 0.68168020248413 3.6223564147949 + RotationMatrix + 1.0 0.0 -4.4408920985006e-16 + 0.0 1.0 0.0 + 4.4408920985006e-16 0.0 1.0 + Velocity3D + 0.0 0.0 0.0 + Omega3D + 0.0 0.0 0.0 + FeatureOrder + PrincipalMassMarker + Name + MassMarker + Position3D + 0 0 0 + RotationMatrix + 1 0 0 + 0 1 0 + 0 0 1 + Mass + 1 + MomentOfInertias + 1 1 1 + Density + 1 + RefPoints + RefPoint + Position3D + 0 0 0 + RotationMatrix + 1 0 0 + 0 1 0 + 0 0 1 + Markers + Marker + Name + rackPinion#RackPinion + Position3D + -4.4408920985007e-16 0.0 3.0 + RotationMatrix + 1.0 0.0 0.0 + 0.0 1.0 0.0 + 0.0 0.0 1.0 + RefPoint + Position3D + 0 0 0 + RotationMatrix + 1 0 0 + 0 1 0 + 0 0 1 + Markers + Marker + Name + rackPinion#Slider + Position3D + 0.0 0.0 0.0 + RotationMatrix + -2.2204460492503e-16 0.0 1.0 + 0.0 -1.0 0.0 + 1.0 0.0 -2.2204460492503e-16 + RefCurves + RefSurfaces + Part + Name + rackPinion#Box001 + Position3D + -1.0912714004517 0.68168020248413 1.6223564147949 + RotationMatrix + 1.0 0.0 0.0 + 0.0 1.0 0.0 + 0.0 0.0 1.0 + Velocity3D + 0.0 0.0 0.0 + Omega3D + 0.0 0.0 0.0 + FeatureOrder + PrincipalMassMarker + Name + MassMarker + Position3D + 0 0 0 + RotationMatrix + 1 0 0 + 0 1 0 + 0 0 1 + Mass + 1 + MomentOfInertias + 1 1 1 + Density + 1 + RefPoints + RefPoint + Position3D + 0 0 0 + RotationMatrix + 1 0 0 + 0 1 0 + 0 0 1 + Markers + Marker + Name + FixingMarker + Position3D + 0.0 0.0 0.0 + RotationMatrix + 1.0 0.0 0.0 + 0.0 1.0 0.0 + 0.0 0.0 1.0 + RefPoint + Position3D + 0 0 0 + RotationMatrix + 1 0 0 + 0 1 0 + 0 0 1 + Markers + Marker + Name + rackPinion#Revolute + Position3D + 0.0 12.0 2.0 + RotationMatrix + 1.0 0.0 0.0 + 0.0 1.0 0.0 + 0.0 0.0 1.0 + RefPoint + Position3D + 0 0 0 + RotationMatrix + 1 0 0 + 0 1 0 + 0 0 1 + Markers + Marker + Name + rackPinion#Slider + Position3D + 0.0 0.0 2.0 + RotationMatrix + -2.2204460492503e-16 0.0 1.0 + 0.0 -1.0 0.0 + 1.0 0.0 -2.2204460492503e-16 + RefCurves + RefSurfaces + Part + Name + rackPinion#Cylinder + Position3D + -1.0912714004517 12.681680202484 3.6223564147949 + RotationMatrix + 0.83233196026638 -0.55427746474047 0.0 + 0.55427746474047 0.83233196026638 0.0 + 0.0 0.0 1.0 + Velocity3D + 0.0 0.0 0.0 + Omega3D + 0.0 0.0 0.0 + FeatureOrder + PrincipalMassMarker + Name + MassMarker + Position3D + 0 0 0 + RotationMatrix + 1 0 0 + 0 1 0 + 0 0 1 + Mass + 1 + MomentOfInertias + 1 1 1 + Density + 1 + RefPoints + RefPoint + Position3D + 0 0 0 + RotationMatrix + 1 0 0 + 0 1 0 + 0 0 1 + Markers + Marker + Name + rackPinion#RackPinion + Position3D + 0.0 0.0 2.0 + RotationMatrix + 1.0 0.0 0.0 + 0.0 1.0 0.0 + 0.0 0.0 1.0 + RefPoint + Position3D + 0 0 0 + RotationMatrix + 1 0 0 + 0 1 0 + 0 0 1 + Markers + Marker + Name + rackPinion#Revolute + Position3D + 0.0 0.0 0.0 + RotationMatrix + 1.0 0.0 0.0 + 0.0 1.0 0.0 + 0.0 0.0 1.0 + RefCurves + RefSurfaces + KinematicIJs + ConstraintSets + Joints + RackPinionJoint + Name + rackPin + MarkerI + /OndselAssembly/rackPinion#Box/rackPinion#RackPinion + MarkerJ + /OndselAssembly/rackPinion#Cylinder/rackPinion#RackPinion + pitchRadius + 1.0 + FixedJoint + Name + rackPinion#GroundedJoint + MarkerI + /OndselAssembly/marker-rackPinion#Box001 + MarkerJ + /OndselAssembly/rackPinion#Box001/FixingMarker + RevoluteJoint + Name + rackPinion#Revolute + MarkerI + /OndselAssembly/rackPinion#Cylinder/rackPinion#Revolute + MarkerJ + /OndselAssembly/rackPinion#Box001/rackPinion#Revolute + TranslationalJoint + Name + rackPinion#Slider + MarkerI + /OndselAssembly/rackPinion#Box/rackPinion#Slider + MarkerJ + /OndselAssembly/rackPinion#Box001/rackPinion#Slider + Motions + GeneralConstraintSets + ForceTorques + ConstantGravity + 0 0 0 + SimulationParameters + tstart + 0 + tend + 0.0 + hmin + 1.0e-9 + hmax + 1000000000 + hout + 0.1 + errorTol + 1.0e-6 + AnimationParameters + nframe + 1 + icurrent + 1 + istart + 1 + iend + 1 + isForward + true + framesPerSecond + 30 +TimeSeries +Number Input 1 +Time Input 0.0 +AssemblySeries /OndselAssembly +X 0.0 0.0 +Y 0.0 0.0 +Z 0.0 0.0 +Bryantx 0.0 0.0 +Bryanty 0.0 0.0 +Bryantz 0.0 0.0 +VX 0.0 0.0 +VY 0.0 0.0 +VZ 0.0 0.0 +OmegaX 0.0 0.0 +OmegaY 0.0 0.0 +OmegaZ 0.0 0.0 +AX 0 0.0 +AY 0 0.0 +AZ 0 0.0 +AlphaX 0 0.0 +AlphaY 0 0.0 +AlphaZ 0 0.0 +PartSeries /OndselAssembly/rackPinion#Box +X 5.7924906490609 5.6962232290719 +Y 0.68168020248413 0.68168020248413 +Z 3.6223564147949 3.6223564147949 +Bryantx 0.0 0.0 +Bryanty 0.0 -4.4408920985006e-16 +Bryantz 0.0 0.0 +VX 0.0 0.0 +VY 0.0 0.0 +VZ 0.0 0.0 +OmegaX 0.0 0.0 +OmegaY 0.0 0.0 +OmegaZ 0.0 0.0 +AX 0 0.0 +AY 0 0.0 +AZ 0 0.0 +AlphaX 0 0.0 +AlphaY 0 0.0 +AlphaZ 0 0.0 +PartSeries /OndselAssembly/rackPinion#Box001 +X -1.0912714004517 -1.0912714004517 +Y 0.68168020248413 0.68168020248413 +Z 1.6223564147949 1.6223564147949 +Bryantx 0.0 0.0 +Bryanty 0.0 0.0 +Bryantz 0.0 0.0 +VX 0.0 0.0 +VY 0.0 0.0 +VZ 0.0 0.0 +OmegaX 0.0 0.0 +OmegaY 0.0 0.0 +OmegaZ 0.0 0.0 +AX 0 0.0 +AY 0 0.0 +AZ 0 0.0 +AlphaX 0 0.0 +AlphaY 0 0.0 +AlphaZ 0 0.0 +PartSeries /OndselAssembly/rackPinion#Cylinder +X -1.0912714004517 -1.0912714004517 +Y 12.681680202484 12.681680202484 +Z 3.6223564147949 3.6223564147949 +Bryantx 0.0 0.0 +Bryanty 0.0 0.0 +Bryantz 0.17703467195969 0.58749462952357 +VX 0.0 0.0 +VY 0.0 0.0 +VZ 0.0 0.0 +OmegaX 0.0 0.0 +OmegaY 0.0 0.0 +OmegaZ 0.0 0.0 +AX 0 0.0 +AY 0 0.0 +AZ 0 0.0 +AlphaX 0 0.0 +AlphaY 0 0.0 +AlphaZ 0 0.0 +RackPinionJointSeries /OndselAssembly/rackPin +FXonI 0 0.0 +FYonI 0 0.0 +FZonI 0 0.0 +TXonI 0 0.0 +TYonI 0 0.0 +TZonI 0 0.0 +FixedJointSeries /OndselAssembly/rackPinion#GroundedJoint +FXonI 0 0.0 +FYonI 0 0.0 +FZonI 0 0.0 +TXonI 0 0.0 +TYonI 0 0.0 +TZonI 0 0.0 +RevoluteJointSeries /OndselAssembly/rackPinion#Revolute +FXonI 0 0.0 +FYonI 0 0.0 +FZonI 0 0.0 +TXonI 0 0.0 +TYonI 0 0.0 +TZonI 0 0.0 +TranslationalJointSeries /OndselAssembly/rackPinion#Slider +FXonI 0 0.0 +FYonI 0 0.0 +FZonI 0 0.0 +TXonI 0 0.0 +TYonI 0 0.0 +TZonI 0 0.0