ASMT output, MBDyn input and output done.
This commit is contained in:
@@ -18,7 +18,7 @@ namespace MbD {
|
||||
void parseASMT(std::vector<std::string>& lines) override;
|
||||
void storeOnLevel(std::ofstream& os, int level) override;
|
||||
|
||||
int nframe = 1000000, icurrent = 0, istart = 0, iend = 1000000, framesPerSecond = 30;
|
||||
int nframe = 1000000, icurrent = 1, istart = 1, iend = 1000000, framesPerSecond = 30;
|
||||
bool isForward = true;
|
||||
|
||||
|
||||
|
||||
@@ -1212,6 +1212,7 @@ void MbD::ASMTAssembly::storeOnLevelGeneralConstraintSets(std::ofstream& os, int
|
||||
|
||||
void MbD::ASMTAssembly::storeOnTimeSeries(std::ofstream& os)
|
||||
{
|
||||
if (times->empty()) return;
|
||||
os << "TimeSeries" << std::endl;
|
||||
os << "Number\tInput\t";
|
||||
for (int i = 1; i < times->size(); i++)
|
||||
|
||||
@@ -121,7 +121,7 @@ namespace MbD {
|
||||
void storeOnLevelGeneralConstraintSets(std::ofstream& os, int level);
|
||||
void storeOnTimeSeries(std::ofstream& os) override;
|
||||
|
||||
std::string notes;
|
||||
std::string notes = "(Text string: '' runs: (Core.RunArray runs: #() values: #()))";
|
||||
std::shared_ptr<std::vector<std::shared_ptr<ASMTPart>>> parts = std::make_shared<std::vector<std::shared_ptr<ASMTPart>>>();
|
||||
std::shared_ptr<std::vector<std::shared_ptr<ASMTKinematicIJ>>> kinematicIJs = std::make_shared<std::vector<std::shared_ptr<ASMTKinematicIJ>>>();
|
||||
std::shared_ptr<std::vector<std::shared_ptr<ASMTConstraintSet>>> constraintSets = std::make_shared<std::vector<std::shared_ptr<ASMTConstraintSet>>>();
|
||||
@@ -129,11 +129,11 @@ namespace MbD {
|
||||
std::shared_ptr<std::vector<std::shared_ptr<ASMTMotion>>> motions = std::make_shared<std::vector<std::shared_ptr<ASMTMotion>>>();
|
||||
std::shared_ptr<std::vector<std::shared_ptr<ASMTForceTorque>>> forcesTorques = std::make_shared<std::vector<std::shared_ptr<ASMTForceTorque>>>();
|
||||
std::shared_ptr<ASMTConstantGravity> constantGravity = std::make_shared<ASMTConstantGravity>();
|
||||
std::shared_ptr<ASMTSimulationParameters> simulationParameters;
|
||||
std::shared_ptr<ASMTAnimationParameters> animationParameters;
|
||||
std::shared_ptr<std::vector<double>> times;
|
||||
std::shared_ptr<ASMTSimulationParameters> simulationParameters = std::make_shared<ASMTSimulationParameters>();
|
||||
std::shared_ptr<ASMTAnimationParameters> animationParameters = std::make_shared<ASMTAnimationParameters>();
|
||||
std::shared_ptr<std::vector<double>> times = std::make_shared<std::vector<double>>();
|
||||
std::shared_ptr<ASMTTime> asmtTime = std::make_shared<ASMTTime>();
|
||||
std::shared_ptr<Units> mbdUnits;
|
||||
std::shared_ptr<Units> mbdUnits = std::make_shared<Units>();
|
||||
MBDynSystem* mbdynItem = nullptr;
|
||||
};
|
||||
}
|
||||
|
||||
@@ -92,21 +92,21 @@ void MbD::ASMTGeneralMotion::createMbD(std::shared_ptr<System> mbdSys, std::shar
|
||||
userFunc = std::make_shared<BasicUserFunction>(rIJI->at(0), 1.0);
|
||||
parser->parseUserFunction(userFunc);
|
||||
auto geoX = parser->stack->top();
|
||||
geoX = Symbolic::times(geoX, std::make_shared<Constant>(1.0 / mbdUnits->length));
|
||||
geoX = Symbolic::times(geoX, sptrConstant(1.0 / mbdUnits->length));
|
||||
geoX->createMbD(mbdSys, mbdUnits);
|
||||
auto xBlk = geoX->simplified(geoX);
|
||||
|
||||
userFunc = std::make_shared<BasicUserFunction>(rIJI->at(1), 1.0);
|
||||
parser->parseUserFunction(userFunc);
|
||||
auto geoY = parser->stack->top();
|
||||
geoY = Symbolic::times(geoY, std::make_shared<Constant>(1.0 / mbdUnits->length));
|
||||
geoY = Symbolic::times(geoY, sptrConstant(1.0 / mbdUnits->length));
|
||||
geoY->createMbD(mbdSys, mbdUnits);
|
||||
auto yBlk = geoY->simplified(geoY);
|
||||
|
||||
userFunc = std::make_shared<BasicUserFunction>(rIJI->at(2), 1.0);
|
||||
parser->parseUserFunction(userFunc);
|
||||
auto geoZ = parser->stack->top();
|
||||
geoZ = Symbolic::times(geoZ, std::make_shared<Constant>(1.0 / mbdUnits->length));
|
||||
geoZ = Symbolic::times(geoZ, sptrConstant(1.0 / mbdUnits->length));
|
||||
geoZ->createMbD(mbdSys, mbdUnits);
|
||||
auto zBlk = geoZ->simplified(geoZ);
|
||||
|
||||
@@ -117,21 +117,21 @@ void MbD::ASMTGeneralMotion::createMbD(std::shared_ptr<System> mbdSys, std::shar
|
||||
userFunc = std::make_shared<BasicUserFunction>(angIJJ->at(0), 1.0);
|
||||
parser->parseUserFunction(userFunc);
|
||||
auto geoPhi = parser->stack->top();
|
||||
geoPhi = Symbolic::times(geoPhi, std::make_shared<Constant>(1.0 / mbdUnits->angle));
|
||||
geoPhi = Symbolic::times(geoPhi, sptrConstant(1.0 / mbdUnits->angle));
|
||||
geoPhi->createMbD(mbdSys, mbdUnits);
|
||||
auto phiBlk = geoPhi->simplified(geoPhi);
|
||||
|
||||
userFunc = std::make_shared<BasicUserFunction>(angIJJ->at(1), 1.0);
|
||||
parser->parseUserFunction(userFunc);
|
||||
auto geoThe = parser->stack->top();
|
||||
geoThe = Symbolic::times(geoThe, std::make_shared<Constant>(1.0 / mbdUnits->angle));
|
||||
geoThe = Symbolic::times(geoThe, sptrConstant(1.0 / mbdUnits->angle));
|
||||
geoThe->createMbD(mbdSys, mbdUnits);
|
||||
auto theBlk = geoThe->simplified(geoThe);
|
||||
|
||||
userFunc = std::make_shared<BasicUserFunction>(angIJJ->at(2), 1.0);
|
||||
parser->parseUserFunction(userFunc);
|
||||
auto geoPsi = parser->stack->top();
|
||||
geoPsi = Symbolic::times(geoPsi, std::make_shared<Constant>(1.0 / mbdUnits->angle));
|
||||
geoPsi = Symbolic::times(geoPsi, sptrConstant(1.0 / mbdUnits->angle));
|
||||
geoPsi->createMbD(mbdSys, mbdUnits);
|
||||
auto psiBlk = geoPsi->simplified(geoPsi);
|
||||
|
||||
|
||||
@@ -12,6 +12,11 @@
|
||||
|
||||
using namespace MbD;
|
||||
|
||||
MbD::ASMTPrincipalMassMarker::ASMTPrincipalMassMarker()
|
||||
{
|
||||
name = "MassMarker";
|
||||
}
|
||||
|
||||
void MbD::ASMTPrincipalMassMarker::parseASMT(std::vector<std::string>& lines)
|
||||
{
|
||||
size_t pos = lines[0].find_first_not_of("\t");
|
||||
|
||||
@@ -5,29 +5,30 @@
|
||||
* *
|
||||
* See LICENSE file for details about copyright. *
|
||||
***************************************************************************/
|
||||
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "ASMTSpatialItem.h"
|
||||
|
||||
namespace MbD {
|
||||
class EXPORT ASMTPrincipalMassMarker : public ASMTSpatialItem
|
||||
{
|
||||
//
|
||||
public:
|
||||
void parseASMT(std::vector<std::string>& lines) override;
|
||||
void setMass(double mass);
|
||||
void setDensity(double density);
|
||||
void setMomentOfInertias(DiagMatDsptr momentOfInertias);
|
||||
class EXPORT ASMTPrincipalMassMarker : public ASMTSpatialItem
|
||||
{
|
||||
//
|
||||
public:
|
||||
ASMTPrincipalMassMarker();
|
||||
void parseASMT(std::vector<std::string>& lines) override;
|
||||
void setMass(double mass);
|
||||
void setDensity(double density);
|
||||
void setMomentOfInertias(DiagMatDsptr momentOfInertias);
|
||||
|
||||
// Overloads to simplify syntax.
|
||||
void setMomentOfInertias(double a, double b, double c);
|
||||
void storeOnLevel(std::ofstream& os, int level) override;
|
||||
// Overloads to simplify syntax.
|
||||
void setMomentOfInertias(double a, double b, double c);
|
||||
void storeOnLevel(std::ofstream& os, int level) override;
|
||||
|
||||
double mass = 0.0;
|
||||
double density = 0.0;
|
||||
DiagMatDsptr momentOfInertias = std::make_shared<DiagonalMatrix<double>>(ListD{ 0.,0.,0. });
|
||||
double mass = 1.0;
|
||||
double density = 10.0;
|
||||
DiagMatDsptr momentOfInertias = std::make_shared<DiagonalMatrix<double>>(ListD{ 1.0, 2.0, 3.0 });
|
||||
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@@ -68,9 +68,13 @@ void MbD::ASMTRotationalMotion::createMbD(std::shared_ptr<System> mbdSys, std::s
|
||||
auto userFunc = std::make_shared<BasicUserFunction>(rotationZ, 1.0);
|
||||
parser->parseUserFunction(userFunc);
|
||||
auto geoPhi = parser->stack->top();
|
||||
geoPhi = Symbolic::times(geoPhi, std::make_shared<Constant>(1.0 / mbdUnits->angle));
|
||||
std::cout << *geoPhi << std::endl;
|
||||
geoPhi = Symbolic::times(geoPhi, sptrConstant(1.0 / mbdUnits->angle));
|
||||
geoPhi->createMbD(mbdSys, mbdUnits);
|
||||
std::static_pointer_cast<ZRotation>(mbdObject)->phiBlk = geoPhi->simplified(geoPhi);
|
||||
std::cout << *geoPhi << std::endl;
|
||||
auto simple = geoPhi->simplified(geoPhi);
|
||||
std::cout << *simple << std::endl;
|
||||
std::static_pointer_cast<ZRotation>(mbdObject)->phiBlk = simple;
|
||||
}
|
||||
|
||||
std::shared_ptr<Joint> MbD::ASMTRotationalMotion::mbdClassNew()
|
||||
|
||||
@@ -550,13 +550,25 @@ void MbD::ASMTSpatialContainer::setOmega3D(double a, double b, double c)
|
||||
void MbD::ASMTSpatialContainer::storeOnLevelVelocity(std::ofstream& os, int level)
|
||||
{
|
||||
storeOnLevelString(os, level, "Velocity3D");
|
||||
storeOnLevelArray(os, level + 1, *velocity3D);
|
||||
if (vxs == nullptr || vxs->empty()) {
|
||||
storeOnLevelArray(os, level + 1, *velocity3D);
|
||||
}
|
||||
else {
|
||||
auto array = getVelocity3D(0);
|
||||
storeOnLevelArray(os, level + 1, *array);
|
||||
}
|
||||
}
|
||||
|
||||
void MbD::ASMTSpatialContainer::storeOnLevelOmega(std::ofstream& os, int level)
|
||||
{
|
||||
storeOnLevelString(os, level, "Omega3D");
|
||||
storeOnLevelArray(os, level + 1, *omega3D);
|
||||
if (omexs == nullptr || omexs->empty()) {
|
||||
storeOnLevelArray(os, level + 1, *omega3D);
|
||||
}
|
||||
else {
|
||||
auto array = getOmega3D(0);
|
||||
storeOnLevelArray(os, level + 1, *array);
|
||||
}
|
||||
}
|
||||
|
||||
void MbD::ASMTSpatialContainer::storeOnLevelRefPoints(std::ofstream& os, int level)
|
||||
@@ -697,3 +709,21 @@ void MbD::ASMTSpatialContainer::storeOnTimeSeries(std::ofstream& os)
|
||||
}
|
||||
os << std::endl;
|
||||
}
|
||||
|
||||
FColDsptr MbD::ASMTSpatialContainer::getVelocity3D(size_t i)
|
||||
{
|
||||
auto vec3 = std::make_shared<FullColumn<double>>(3);
|
||||
vec3->atiput(0, vxs->at(i));
|
||||
vec3->atiput(1, vys->at(i));
|
||||
vec3->atiput(2, vzs->at(i));
|
||||
return vec3;
|
||||
}
|
||||
|
||||
FColDsptr MbD::ASMTSpatialContainer::getOmega3D(size_t i)
|
||||
{
|
||||
auto vec3 = std::make_shared<FullColumn<double>>(3);
|
||||
vec3->atiput(0, omexs->at(i));
|
||||
vec3->atiput(1, omeys->at(i));
|
||||
vec3->atiput(2, omezs->at(i));
|
||||
return vec3;
|
||||
}
|
||||
|
||||
@@ -86,16 +86,16 @@ namespace MbD {
|
||||
void storeOnLevelRefCurves(std::ofstream& os, int level);
|
||||
void storeOnLevelRefSurfaces(std::ofstream& os, int level);
|
||||
void storeOnTimeSeries(std::ofstream& os) override;
|
||||
FColDsptr getVelocity3D(size_t i);
|
||||
FColDsptr getOmega3D(size_t i);
|
||||
|
||||
FColDsptr velocity3D = std::make_shared<FullColumn<double>>(3);
|
||||
FColDsptr omega3D = std::make_shared<FullColumn<double>>(3);
|
||||
std::shared_ptr<std::vector<std::shared_ptr<ASMTRefPoint>>> refPoints;
|
||||
std::shared_ptr<std::vector<std::shared_ptr<ASMTRefCurve>>> refCurves;
|
||||
std::shared_ptr<std::vector<std::shared_ptr<ASMTRefSurface>>> refSurfaces;
|
||||
FRowDsptr xs, ys, zs, bryxs, bryys, bryzs;
|
||||
FRowDsptr vxs, vys, vzs, omexs, omeys, omezs;
|
||||
FRowDsptr axs, ays, azs, alpxs, alpys, alpzs;
|
||||
FRowDsptr inxs, inys, inzs, inbryxs, inbryys, inbryzs;
|
||||
FRowDsptr invxs, invys, invzs, inomexs, inomeys, inomezs;
|
||||
FRowDsptr inaxs, inays, inazs, inalpxs, inalpys, inalpzs;
|
||||
std::shared_ptr<ASMTPrincipalMassMarker> principalMassMarker = std::make_shared<ASMTPrincipalMassMarker>();
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
#include "Units.h"
|
||||
#include "Part.h"
|
||||
#include "ASMTSpatialContainer.h"
|
||||
#include "EulerAngles.h"
|
||||
|
||||
using namespace MbD;
|
||||
|
||||
@@ -102,14 +103,50 @@ void MbD::ASMTSpatialItem::storeOnLevel(std::ofstream& os, int level)
|
||||
void MbD::ASMTSpatialItem::storeOnLevelPosition(std::ofstream& os, int level)
|
||||
{
|
||||
storeOnLevelString(os, level, "Position3D");
|
||||
storeOnLevelArray(os, level + 1, *position3D);
|
||||
if (xs == nullptr || xs->empty()) {
|
||||
storeOnLevelArray(os, level + 1, *position3D);
|
||||
}
|
||||
else {
|
||||
auto array = getPosition3D(0);
|
||||
storeOnLevelArray(os, level + 1, *array);
|
||||
}
|
||||
}
|
||||
|
||||
void MbD::ASMTSpatialItem::storeOnLevelRotationMatrix(std::ofstream& os, int level)
|
||||
{
|
||||
storeOnLevelString(os, level, "RotationMatrix");
|
||||
for (int i = 0; i < 3; i++)
|
||||
{
|
||||
storeOnLevelArray(os, level + 1, *rotationMatrix->at(i));
|
||||
if (xs == nullptr || xs->empty()) {
|
||||
for (int i = 0; i < 3; i++)
|
||||
{
|
||||
storeOnLevelArray(os, level + 1, *rotationMatrix->at(i));
|
||||
}
|
||||
}
|
||||
else {
|
||||
auto rotMat = getRotationMatrix(0);
|
||||
for (int i = 0; i < 3; i++)
|
||||
{
|
||||
storeOnLevelArray(os, level + 1, *rotMat->at(i));
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
FColDsptr MbD::ASMTSpatialItem::getPosition3D(size_t i)
|
||||
{
|
||||
auto vec3 = std::make_shared<FullColumn<double>>(3);
|
||||
vec3->atiput(0, xs->at(i));
|
||||
vec3->atiput(1, ys->at(i));
|
||||
vec3->atiput(2, zs->at(i));
|
||||
return vec3;
|
||||
}
|
||||
|
||||
FMatDsptr MbD::ASMTSpatialItem::getRotationMatrix(size_t i)
|
||||
{
|
||||
auto bryantAngles = std::make_shared<EulerAngles<double>>();
|
||||
bryantAngles->setRotOrder(1, 2, 3);
|
||||
bryantAngles->at(0) = bryxs->at(i);
|
||||
bryantAngles->at(1) = bryys->at(i);
|
||||
bryantAngles->at(2) = bryzs->at(i);
|
||||
bryantAngles->calc();
|
||||
return bryantAngles->aA;
|
||||
}
|
||||
|
||||
@@ -31,6 +31,8 @@ namespace MbD {
|
||||
void storeOnLevel(std::ofstream& os, int level) override;
|
||||
void storeOnLevelPosition(std::ofstream& os, int level);
|
||||
void storeOnLevelRotationMatrix(std::ofstream& os, int level);
|
||||
FColDsptr getPosition3D(size_t i);
|
||||
FMatDsptr getRotationMatrix(size_t i);
|
||||
|
||||
FColDsptr position3D = std::make_shared<FullColumn<double>>(3);
|
||||
FMatDsptr rotationMatrix = std::make_shared<FullMatrix<double>>(ListListD{
|
||||
@@ -38,6 +40,9 @@ namespace MbD {
|
||||
{ 0, 1, 0 },
|
||||
{ 0, 0, 1 }
|
||||
});
|
||||
FRowDsptr xs, ys, zs, bryxs, bryys, bryzs;
|
||||
FRowDsptr inxs, inys, inzs, inbryxs, inbryys, inbryzs;
|
||||
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@@ -25,7 +25,27 @@ void MbD::ASMTTime::createMbD(std::shared_ptr<System> mbdSys, std::shared_ptr<Un
|
||||
{
|
||||
auto mbdTime = mbdSys->time;
|
||||
if (xx == mbdTime) return;
|
||||
auto timeScale = std::make_shared<Constant>(mbdUnits->time);
|
||||
auto timeScale = sptrConstant(mbdUnits->time);
|
||||
auto geoTime = std::make_shared<Product>(timeScale, mbdTime);
|
||||
this->xexpression(mbdTime, geoTime->simplified(geoTime));
|
||||
}
|
||||
|
||||
Symsptr MbD::ASMTTime::expandUntil(Symsptr sptr, std::shared_ptr<std::unordered_set<Symsptr>> set)
|
||||
{
|
||||
return sptr;
|
||||
}
|
||||
|
||||
Symsptr MbD::ASMTTime::simplifyUntil(Symsptr sptr, std::shared_ptr<std::unordered_set<Symsptr>> set)
|
||||
{
|
||||
return sptr;
|
||||
}
|
||||
|
||||
bool MbD::ASMTTime::isVariable()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
void MbD::ASMTTime::setValue(double val)
|
||||
{
|
||||
xx->setValue(val);
|
||||
}
|
||||
|
||||
@@ -19,6 +19,10 @@ namespace MbD {
|
||||
public:
|
||||
void deleteMbD();
|
||||
void createMbD(std::shared_ptr<System> mbdSys, std::shared_ptr<Units> mbdUnits);
|
||||
Symsptr expandUntil(Symsptr sptr, std::shared_ptr<std::unordered_set<Symsptr>> set) override;
|
||||
Symsptr simplifyUntil(Symsptr sptr, std::shared_ptr<std::unordered_set<Symsptr>> set) override;
|
||||
bool isVariable() override;
|
||||
void setValue(double val) override;
|
||||
|
||||
};
|
||||
}
|
||||
|
||||
@@ -42,7 +42,7 @@ void MbD::ASMTTranslationalMotion::createMbD(std::shared_ptr<System> mbdSys, std
|
||||
auto userFunc = std::make_shared<BasicUserFunction>(translationZ, 1.0);
|
||||
parser->parseUserFunction(userFunc);
|
||||
auto zIJ = parser->stack->top();
|
||||
zIJ = Symbolic::times(zIJ, std::make_shared<Constant>(1.0 / mbdUnits->length));
|
||||
zIJ = Symbolic::times(zIJ, sptrConstant(1.0 / mbdUnits->length));
|
||||
zIJ->createMbD(mbdSys, mbdUnits);
|
||||
std::static_pointer_cast<ZTranslation>(mbdObject)->zBlk = zIJ->simplified(zIJ);
|
||||
}
|
||||
|
||||
@@ -19,8 +19,13 @@ double MbD::Abs::getValue()
|
||||
return std::abs(xx->getValue());
|
||||
}
|
||||
|
||||
Symsptr MbD::Abs::copyWith(Symsptr arg)
|
||||
{
|
||||
return std::make_shared<Abs>(arg);
|
||||
}
|
||||
|
||||
std::ostream& MbD::Abs::printOn(std::ostream& s) const
|
||||
{
|
||||
s << "abs(" << xx << ")";
|
||||
s << "abs(" << *xx << ")";
|
||||
return s;
|
||||
}
|
||||
|
||||
@@ -18,6 +18,7 @@ namespace MbD {
|
||||
Abs() = default;
|
||||
Abs(Symsptr arg);
|
||||
double getValue() override;
|
||||
Symsptr copyWith(Symsptr arg) override;
|
||||
|
||||
std::ostream& printOn(std::ostream& s) const override;
|
||||
|
||||
|
||||
@@ -19,8 +19,13 @@ double MbD::ArcSine::getValue()
|
||||
return std::asin(xx->getValue());
|
||||
}
|
||||
|
||||
Symsptr MbD::ArcSine::copyWith(Symsptr arg)
|
||||
{
|
||||
return std::make_shared<ArcSine>(arg);
|
||||
}
|
||||
|
||||
std::ostream& MbD::ArcSine::printOn(std::ostream& s) const
|
||||
{
|
||||
s << "arcsin(" << xx << ")";
|
||||
s << "arcsin(" << *xx << ")";
|
||||
return s;
|
||||
}
|
||||
|
||||
@@ -18,6 +18,7 @@ namespace MbD {
|
||||
ArcSine() = default;
|
||||
ArcSine(Symsptr arg);
|
||||
double getValue() override;
|
||||
Symsptr copyWith(Symsptr arg) override;
|
||||
|
||||
std::ostream& printOn(std::ostream& s) const override;
|
||||
|
||||
|
||||
@@ -19,8 +19,13 @@ double MbD::ArcTan::getValue()
|
||||
return std::atan(xx->getValue());
|
||||
}
|
||||
|
||||
Symsptr MbD::ArcTan::copyWith(Symsptr arg)
|
||||
{
|
||||
return std::make_shared<ArcTan>(arg);
|
||||
}
|
||||
|
||||
std::ostream& MbD::ArcTan::printOn(std::ostream& s) const
|
||||
{
|
||||
s << "arctan(" << xx << ")";
|
||||
s << "arctan(" << *xx << ")";
|
||||
return s;
|
||||
}
|
||||
|
||||
@@ -18,6 +18,7 @@ namespace MbD {
|
||||
ArcTan() = default;
|
||||
ArcTan(Symsptr arg);
|
||||
double getValue() override;
|
||||
Symsptr copyWith(Symsptr arg) override;
|
||||
|
||||
std::ostream& printOn(std::ostream& s) const override;
|
||||
|
||||
|
||||
@@ -16,5 +16,5 @@ MbD::ArcTan2::ArcTan2(Symsptr arg, Symsptr arg1) : FunctionXY(arg, arg1)
|
||||
|
||||
double MbD::ArcTan2::getValue()
|
||||
{
|
||||
return std::atan2(y->getValue(), x->getValue());;
|
||||
return std::atan2(y->getValue(), x->getValue());
|
||||
}
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
#include "Constant.h"
|
||||
#include "System.h"
|
||||
#include "Units.h"
|
||||
#include "Polynomial.h"
|
||||
|
||||
using namespace MbD;
|
||||
|
||||
@@ -22,7 +23,23 @@ Constant::Constant(double val) : Variable(val)
|
||||
|
||||
Symsptr MbD::Constant::differentiateWRT(Symsptr var)
|
||||
{
|
||||
return std::make_shared<Constant>(0.0);
|
||||
return sptrConstant(0.0);
|
||||
}
|
||||
|
||||
Symsptr MbD::Constant::integrateWRT(Symsptr var)
|
||||
{
|
||||
if (value == 0.0) return clonesptr();
|
||||
auto slope = sptrConstant(value);
|
||||
auto intercept = sptrConstant(0.0);
|
||||
auto coeffs = std::make_shared<std::vector<Symsptr>>();
|
||||
coeffs->push_back(intercept);
|
||||
coeffs->push_back(slope);
|
||||
return std::make_shared<Polynomial>(var, coeffs);
|
||||
}
|
||||
|
||||
Symsptr MbD::Constant::expandUntil(Symsptr sptr, std::shared_ptr<std::unordered_set<Symsptr>> set)
|
||||
{
|
||||
return sptr;
|
||||
}
|
||||
|
||||
bool Constant::isConstant()
|
||||
@@ -30,11 +47,6 @@ bool Constant::isConstant()
|
||||
return true;
|
||||
}
|
||||
|
||||
Symsptr MbD::Constant::expandUntil(std::shared_ptr<std::unordered_set<Symsptr>> set)
|
||||
{
|
||||
return clonesptr();
|
||||
}
|
||||
|
||||
Symsptr MbD::Constant::clonesptr()
|
||||
{
|
||||
return std::make_shared<Constant>(*this);
|
||||
@@ -60,6 +72,11 @@ double MbD::Constant::getValue()
|
||||
return value;
|
||||
}
|
||||
|
||||
double MbD::Constant::getValue(double arg)
|
||||
{
|
||||
return value;
|
||||
}
|
||||
|
||||
std::ostream& Constant::printOn(std::ostream& s) const
|
||||
{
|
||||
return s << this->value;
|
||||
|
||||
@@ -17,13 +17,15 @@ namespace MbD {
|
||||
Constant();
|
||||
Constant(double val);
|
||||
Symsptr differentiateWRT(Symsptr var) override;
|
||||
Symsptr integrateWRT(Symsptr var) override;
|
||||
Symsptr expandUntil(Symsptr sptr, std::shared_ptr<std::unordered_set<Symsptr>> set) override;
|
||||
bool isConstant() override;
|
||||
Symsptr expandUntil(std::shared_ptr<std::unordered_set<Symsptr>> set) override;
|
||||
Symsptr clonesptr() override;
|
||||
bool isZero() override;
|
||||
bool isOne() override;
|
||||
void createMbD(std::shared_ptr<System> mbdSys, std::shared_ptr<Units> mbdUnits) override;
|
||||
double getValue() override;
|
||||
double getValue(double arg) override;
|
||||
|
||||
std::ostream& printOn(std::ostream& s) const override;
|
||||
};
|
||||
|
||||
@@ -26,8 +26,13 @@ Symsptr MbD::Cosine::differentiateWRTx()
|
||||
return std::make_shared<Negative>(std::make_shared<Sine>(xx));
|
||||
}
|
||||
|
||||
Symsptr MbD::Cosine::copyWith(Symsptr arg)
|
||||
{
|
||||
return std::make_shared<Cosine>(arg);
|
||||
}
|
||||
|
||||
std::ostream& MbD::Cosine::printOn(std::ostream& s) const
|
||||
{
|
||||
s << "cos(" << xx << ")";
|
||||
s << "cos(" << *xx << ")";
|
||||
return s;
|
||||
}
|
||||
|
||||
@@ -19,6 +19,7 @@ namespace MbD {
|
||||
Cosine(Symsptr arg);
|
||||
double getValue() override;
|
||||
Symsptr differentiateWRTx() override;
|
||||
Symsptr copyWith(Symsptr arg) override;
|
||||
|
||||
std::ostream& printOn(std::ostream& s) const override;
|
||||
|
||||
|
||||
@@ -34,6 +34,6 @@ Symsptr MbD::DifferentiatedGeneralSpline::clonesptr()
|
||||
|
||||
std::ostream& MbD::DifferentiatedGeneralSpline::printOn(std::ostream& s) const
|
||||
{
|
||||
s << "deriv(" << generalSpline << ", " << derivativeOrder << ")";
|
||||
s << "deriv(" << *generalSpline << ", " << derivativeOrder << ")";
|
||||
return s;
|
||||
}
|
||||
|
||||
@@ -101,6 +101,8 @@ void EndFrameqct::initpPhiThePsiptBlks()
|
||||
auto vel = var->simplified(var);
|
||||
//std::cout << "vel " << *vel << std::endl;
|
||||
pPhiThePsiptBlks->at(i) = vel;
|
||||
//std::cout << *angle << std::endl;
|
||||
//std::cout << *vel << std::endl;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -113,6 +115,8 @@ void EndFrameqct::initppPhiThePsiptptBlks()
|
||||
auto var = angleVel->differentiateWRT(mbdTime);
|
||||
auto angleAcc = var->simplified(var);
|
||||
ppPhiThePsiptptBlks->at(i) = angleAcc;
|
||||
//std::cout << *angleVel << std::endl;
|
||||
//std::cout << *angleAcc << std::endl;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -19,8 +19,13 @@ double MbD::Exponential::getValue()
|
||||
return std::log(xx->getValue());
|
||||
}
|
||||
|
||||
Symsptr MbD::Exponential::copyWith(Symsptr arg)
|
||||
{
|
||||
return std::make_shared<Exponential>(arg);
|
||||
}
|
||||
|
||||
std::ostream& MbD::Exponential::printOn(std::ostream& s) const
|
||||
{
|
||||
s << "exp(" << xx << ")";
|
||||
s << "exp(" << *xx << ")";
|
||||
return s;
|
||||
}
|
||||
|
||||
@@ -18,6 +18,7 @@ namespace MbD {
|
||||
Exponential() = default;
|
||||
Exponential(Symsptr arg);
|
||||
double getValue() override;
|
||||
Symsptr copyWith(Symsptr arg) override;
|
||||
|
||||
std::ostream& printOn(std::ostream& s) const override;
|
||||
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
***************************************************************************/
|
||||
|
||||
#include "ExpressionX.h"
|
||||
#include "Constant.h"
|
||||
|
||||
using namespace MbD;
|
||||
|
||||
@@ -23,8 +24,14 @@ void MbD::ExpressionX::xexpression(Symsptr arg, Symsptr func)
|
||||
expression = func;
|
||||
}
|
||||
|
||||
Symsptr MbD::ExpressionX::differentiateWRTx()
|
||||
{
|
||||
return expression->differentiateWRT(xx);
|
||||
}
|
||||
|
||||
Symsptr MbD::ExpressionX::differentiateWRT(Symsptr var)
|
||||
{
|
||||
if (this == var.get()) return sptrConstant(1.0);
|
||||
return expression->differentiateWRT(var);
|
||||
}
|
||||
|
||||
|
||||
@@ -17,6 +17,7 @@ namespace MbD {
|
||||
public:
|
||||
|
||||
void xexpression(Symsptr arg, Symsptr func);
|
||||
Symsptr differentiateWRTx() override;
|
||||
Symsptr differentiateWRT(Symsptr var) override;
|
||||
double getValue() override;
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
* *
|
||||
* See LICENSE file for details about copyright. *
|
||||
***************************************************************************/
|
||||
|
||||
|
||||
#include "FunctionX.h"
|
||||
#include "Constant.h"
|
||||
#include "Sum.h"
|
||||
@@ -24,9 +24,43 @@ void MbD::FunctionX::arguments(Symsptr args)
|
||||
xx = sum->terms->front();
|
||||
}
|
||||
|
||||
Symsptr MbD::FunctionX::copyWith(Symsptr arg)
|
||||
{
|
||||
assert(false);
|
||||
return Symsptr();
|
||||
}
|
||||
|
||||
Symsptr MbD::FunctionX::expandUntil(Symsptr sptr, std::shared_ptr<std::unordered_set<Symsptr>> set)
|
||||
{
|
||||
auto itr = std::find_if(set->begin(), set->end(), [sptr](Symsptr sym) {return sptr.get() == sym.get(); });
|
||||
if (itr != set->end()) return sptr;
|
||||
auto newx = xx->expandUntil(xx, set);
|
||||
auto copy = copyWith(newx);
|
||||
if (newx->isConstant()) {
|
||||
return sptrConstant(copy->getValue());
|
||||
}
|
||||
else {
|
||||
return copy;
|
||||
}
|
||||
}
|
||||
|
||||
Symsptr MbD::FunctionX::simplifyUntil(Symsptr sptr, std::shared_ptr<std::unordered_set<Symsptr>> set)
|
||||
{
|
||||
auto itr = std::find_if(set->begin(), set->end(), [sptr](Symsptr sym) {return sptr.get() == sym.get(); });
|
||||
if (itr != set->end()) return sptr;
|
||||
auto newx = xx->simplifyUntil(xx, set);
|
||||
auto copy = copyWith(newx);
|
||||
if (newx->isConstant()) {
|
||||
return sptrConstant(copy->getValue());
|
||||
}
|
||||
else {
|
||||
return copy;
|
||||
}
|
||||
}
|
||||
|
||||
Symsptr MbD::FunctionX::differentiateWRT(Symsptr var)
|
||||
{
|
||||
if (this == var.get()) return std::make_shared<Constant>(1.0);
|
||||
if (this == var.get()) return sptrConstant(1.0);
|
||||
auto dfdx = differentiateWRTx();
|
||||
auto dxdvar = xx->differentiateWRT(var);
|
||||
return Symbolic::times(dfdx, dxdvar);
|
||||
@@ -42,3 +76,24 @@ void MbD::FunctionX::createMbD(std::shared_ptr<System> mbdSys, std::shared_ptr<U
|
||||
{
|
||||
xx->createMbD(mbdSys, mbdUnits);
|
||||
}
|
||||
|
||||
double MbD::FunctionX::getValue()
|
||||
{
|
||||
assert(false);
|
||||
return 0.0;
|
||||
}
|
||||
|
||||
double MbD::FunctionX::getValue(double arg)
|
||||
{
|
||||
double answer;
|
||||
if (xx->isVariable()) {
|
||||
auto oldVal = xx->getValue();
|
||||
xx->setValue(arg);
|
||||
answer = getValue();
|
||||
xx->setValue(oldVal);
|
||||
}
|
||||
else {
|
||||
assert(false);
|
||||
}
|
||||
return answer;
|
||||
}
|
||||
|
||||
@@ -21,9 +21,14 @@ namespace MbD {
|
||||
FunctionX() = default;
|
||||
FunctionX(Symsptr arg);
|
||||
void arguments(Symsptr args) override;
|
||||
virtual Symsptr copyWith(Symsptr arg);
|
||||
Symsptr expandUntil(Symsptr sptr, std::shared_ptr<std::unordered_set<Symsptr>> set) override;
|
||||
Symsptr simplifyUntil(Symsptr sptr, std::shared_ptr<std::unordered_set<Symsptr>> set) override;
|
||||
Symsptr differentiateWRT(Symsptr var) override;
|
||||
virtual Symsptr differentiateWRTx();
|
||||
void createMbD(std::shared_ptr<System> mbdSys, std::shared_ptr<Units> mbdUnits) override;
|
||||
double getValue() override;
|
||||
double getValue(double arg) override;
|
||||
|
||||
Symsptr xx;
|
||||
|
||||
|
||||
@@ -249,15 +249,13 @@ std::ostream& MbD::GeneralSpline::printOn(std::ostream& s) const
|
||||
{
|
||||
s << ", " << xs->at(i);
|
||||
}
|
||||
s << "}" << std::endl;;
|
||||
s << "}, " << std::endl;
|
||||
s << "ys{";
|
||||
s << ys->at(0);
|
||||
for (int i = 1; i < ys->size(); i++)
|
||||
{
|
||||
s << ", " << ys->at(i);
|
||||
}
|
||||
s << "}";
|
||||
s << ")";
|
||||
s << std::endl;
|
||||
s << "})" << std::endl;
|
||||
return s;
|
||||
}
|
||||
|
||||
@@ -18,9 +18,9 @@ IndependentVariable::IndependentVariable()
|
||||
Symsptr MbD::IndependentVariable::differentiateWRT(Symsptr var)
|
||||
{
|
||||
if (this == var.get()) {
|
||||
return std::make_shared<Constant>(1.0);
|
||||
return sptrConstant(1.0);
|
||||
}
|
||||
else {
|
||||
return std::make_shared<Constant>(0.0);
|
||||
return sptrConstant(0.0);
|
||||
}
|
||||
}
|
||||
|
||||
45
OndselSolver/Integral.cpp
Normal file
45
OndselSolver/Integral.cpp
Normal file
@@ -0,0 +1,45 @@
|
||||
#include "Integral.h"
|
||||
|
||||
using namespace MbD;
|
||||
|
||||
MbD::Integral::Integral(Symsptr var, Symsptr integrand)
|
||||
{
|
||||
assert(false);
|
||||
}
|
||||
|
||||
void MbD::Integral::arguments(Symsptr args)
|
||||
{
|
||||
auto arguments = args->getTerms();
|
||||
xx = arguments->at(0);
|
||||
integrand = arguments->at(1);
|
||||
expression = integrand->integrateWRT(xx);
|
||||
}
|
||||
|
||||
Symsptr MbD::Integral::expandUntil(Symsptr sptr, std::shared_ptr<std::unordered_set<Symsptr>> set)
|
||||
{
|
||||
auto expand = expression->expandUntil(expression, set);
|
||||
auto answer = std::make_shared<Integral>();
|
||||
answer->xx = xx;
|
||||
answer->expression = expand;
|
||||
answer->integrand = integrand;
|
||||
answer->integrationConstant = integrationConstant;
|
||||
return answer;
|
||||
}
|
||||
|
||||
Symsptr MbD::Integral::simplifyUntil(Symsptr sptr, std::shared_ptr<std::unordered_set<Symsptr>> set)
|
||||
{
|
||||
auto simple = expression->simplifyUntil(expression, set);
|
||||
auto answer = std::make_shared<Integral>();
|
||||
answer->xx = xx;
|
||||
answer->expression = simple;
|
||||
answer->integrand = integrand;
|
||||
answer->integrationConstant = integrationConstant;
|
||||
return answer;
|
||||
}
|
||||
|
||||
std::ostream& MbD::Integral::printOn(std::ostream& s) const
|
||||
{
|
||||
s << *expression << " + ";
|
||||
s << *integrationConstant;
|
||||
return s;
|
||||
}
|
||||
29
OndselSolver/Integral.h
Normal file
29
OndselSolver/Integral.h
Normal file
@@ -0,0 +1,29 @@
|
||||
/***************************************************************************
|
||||
* Copyright (c) 2023 Ondsel, Inc. *
|
||||
* *
|
||||
* This file is part of OndselSolver. *
|
||||
* *
|
||||
* See LICENSE file for details about copyright. *
|
||||
***************************************************************************/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "ExpressionX.h"
|
||||
#include "Constant.h"
|
||||
|
||||
namespace MbD {
|
||||
class Integral : public ExpressionX
|
||||
{
|
||||
public:
|
||||
Integral() = default;
|
||||
Integral(Symsptr var, Symsptr integrand);
|
||||
void arguments(Symsptr args) override;
|
||||
Symsptr expandUntil(Symsptr sptr, std::shared_ptr<std::unordered_set<Symsptr>> set) override;
|
||||
Symsptr simplifyUntil(Symsptr sptr, std::shared_ptr<std::unordered_set<Symsptr>> set) override;
|
||||
|
||||
std::ostream& printOn(std::ostream& s) const override;
|
||||
|
||||
Symsptr integrand;
|
||||
Symsptr integrationConstant = sptrConstant(0.0);
|
||||
};
|
||||
}
|
||||
@@ -13,6 +13,7 @@
|
||||
|
||||
#include "Item.h"
|
||||
#include "System.h"
|
||||
#include "Symbolic.h"
|
||||
|
||||
using namespace MbD;
|
||||
|
||||
@@ -41,7 +42,7 @@ std::ostream& Item::printOn(std::ostream& s) const
|
||||
{
|
||||
std::string str = typeid(*this).name();
|
||||
auto classname = str.substr(11, str.size() - 11);
|
||||
s << classname << std::endl;
|
||||
s << classname; //Why classname() cannot be used?
|
||||
return s;
|
||||
}
|
||||
|
||||
|
||||
@@ -18,3 +18,8 @@ double MbD::Ln::getValue()
|
||||
{
|
||||
return std::log(xx->getValue());
|
||||
}
|
||||
|
||||
Symsptr MbD::Ln::copyWith(Symsptr arg)
|
||||
{
|
||||
return std::make_shared<Ln>(arg);
|
||||
}
|
||||
|
||||
@@ -18,6 +18,7 @@ namespace MbD {
|
||||
Ln() = default;
|
||||
Ln(Symsptr arg);
|
||||
double getValue() override;
|
||||
Symsptr copyWith(Symsptr arg) override;
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -19,8 +19,13 @@ double MbD::Log10::getValue()
|
||||
return std::log(xx->getValue());
|
||||
}
|
||||
|
||||
Symsptr MbD::Log10::copyWith(Symsptr arg)
|
||||
{
|
||||
return std::make_shared<Log10>(arg);
|
||||
}
|
||||
|
||||
std::ostream& MbD::Log10::printOn(std::ostream& s) const
|
||||
{
|
||||
s << "lg(" << xx << ")";
|
||||
s << "lg(" << *xx << ")";
|
||||
return s;
|
||||
}
|
||||
|
||||
@@ -18,6 +18,7 @@ namespace MbD {
|
||||
Log10() = default;
|
||||
Log10(Symsptr arg);
|
||||
double getValue() override;
|
||||
Symsptr copyWith(Symsptr arg) override;
|
||||
|
||||
std::ostream& printOn(std::ostream& s) const override;
|
||||
|
||||
|
||||
@@ -19,8 +19,13 @@ double MbD::LogN::getValue()
|
||||
return std::log(xx->getValue());
|
||||
}
|
||||
|
||||
Symsptr MbD::LogN::copyWith(Symsptr arg)
|
||||
{
|
||||
return std::make_shared<LogN>(arg);
|
||||
}
|
||||
|
||||
std::ostream& MbD::LogN::printOn(std::ostream& s) const
|
||||
{
|
||||
s << "ln(" << xx << ")";
|
||||
s << "ln(" << *xx << ")";
|
||||
return s;
|
||||
}
|
||||
|
||||
@@ -18,6 +18,7 @@ namespace MbD {
|
||||
LogN() = default;
|
||||
LogN(Symsptr arg);
|
||||
double getValue() override;
|
||||
Symsptr copyWith(Symsptr arg) override;
|
||||
|
||||
std::ostream& printOn(std::ostream& s) const override;
|
||||
|
||||
|
||||
@@ -19,7 +19,7 @@ namespace MbD {
|
||||
void readInertiaMatrix(std::vector<std::string>& args);
|
||||
void createASMT() override;
|
||||
|
||||
std::string bodyString, name, nodeName;
|
||||
std::string bodyString, nodeName;
|
||||
double mass;
|
||||
FColDsptr rPcmP;
|
||||
FMatDsptr aJmat;
|
||||
|
||||
@@ -1,324 +1,324 @@
|
||||
1 0.121 8.796847998598882e-19 0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 0.1853423520676719 -0.0003049963359123015 0.1415220993435272 0.9952959831601956 -0.0005372420906749178 -0.09687939551894122 -3.252606517456513e-19 0.9999846242181696 -0.005545387925678226 0.09688088513829464 0.005519302327492587 0.995280679706302 0 -0 -0 0 0 0
|
||||
3 0.3222616402245218 -0.0002911328660981436 0.1799682739051885 0.9952948074630237 -0.001621407113303408 -0.09687939551894119 0.001089272628257954 0.9999840309514423 -0.005545387925678226 0.09688683977859862 0.005413767734014727 0.995280679706302 0 0 0 0 0 0
|
||||
4 0.4640248981573186 -7.44074583944898e-17 0.1600000000000001 1 0 0 0 1 0 0 0 1 0 0 -0 0 0 0
|
||||
1 0.121 8.796847998598882e-19 0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 0.1853423520676719 -0.0003049963359123014 0.1415220993435272 0.9952959831601956 -0.0005372420906749176 -0.09687939551894111 2.168404344971009e-19 0.9999846242181696 -0.005545387925678225 0.09688088513829453 0.005519302327492586 0.995280679706302 0 -0 -0 0 0 0
|
||||
3 0.3222616402245218 -0.0002911328660981437 0.1799682739051886 0.9952948074630237 -0.001621407113303408 -0.09687939551894117 0.001089272628257954 0.9999840309514423 -0.005545387925678226 0.0968868397785986 0.005413767734014727 0.995280679706302 0 0 0 0 0 0
|
||||
4 0.4640248981573186 -7.44074583944898e-17 0.1600000000000001 1 0 0 0 1 0 0 0 1 0 0 -0 0 0 0
|
||||
1 0.121 8.796847998598882e-19 0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 0.1853423520676719 -0.0003049963359123014 0.1415220993435272 0.9952959831601956 -0.0005372420906749175 -0.09687939551894122 -6.505213034913027e-19 0.9999846242181696 -0.005545387925678225 0.09688088513829464 0.005519302327492586 0.995280679706302 0 -0 -0 0 0 0
|
||||
3 0.3222616402245218 -0.0002911328660981436 0.1799682739051886 0.9952948074630237 -0.001621407113303408 -0.09687939551894117 0.001089272628257954 0.9999840309514423 -0.005545387925678226 0.0968868397785986 0.005413767734014727 0.995280679706302 0 0 0 0 0 0
|
||||
4 0.4640248981573186 -7.44074583944898e-17 0.1600000000000001 1 0 0 0 1 0 0 0 1 0 0 -0 0 0 0
|
||||
1 0.121 8.796847998598882e-19 0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 0.1853423520676719 -0.0003049963359123015 0.1415220993435272 0.9952959831601956 -0.0005372420906749175 -0.09687939551894111 0 0.9999846242181696 -0.005545387925678225 0.09688088513829453 0.005519302327492586 0.995280679706302 0 -0 -0 0 0 0
|
||||
3 0.3222616402245218 -0.0002911328660981436 0.1799682739051886 0.9952948074630237 -0.001621407113303408 -0.09687939551894117 0.001089272628257954 0.9999840309514423 -0.005545387925678226 0.0968868397785986 0.005413767734014727 0.995280679706302 0 0 0 0 0 0
|
||||
4 0.4640248981573186 -7.44074583944898e-17 0.1600000000000001 1 0 0 0 1 0 0 0 1 0 0 -0 0 0 0
|
||||
1 0.121 8.796847998598882e-19 0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 0.1853423520676719 -0.0003049963359123015 0.1415220993435272 0.9952959831601956 -0.0005372420906749176 -0.09687939551894122 -4.336808689942018e-19 0.9999846242181696 -0.005545387925678225 0.09688088513829464 0.005519302327492586 0.995280679706302 0 -0 -0 0 0 0
|
||||
3 0.3222616402245218 -0.0002911328660981436 0.1799682739051886 0.9952948074630237 -0.001621407113303408 -0.09687939551894117 0.001089272628257954 0.9999840309514423 -0.005545387925678226 0.0968868397785986 0.005413767734014727 0.995280679706302 0 0 0 0 0 0
|
||||
4 0.4640248981573186 -7.44074583944898e-17 0.1600000000000001 1 0 0 0 1 0 0 0 1 0 0 -0 0 0 0
|
||||
1 0.121 8.796847998598882e-19 0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 0.1853423520676719 -0.0003049963359123014 0.1415220993435272 0.9952959831601956 -0.0005372420906749176 -0.09687939551894111 2.168404344971009e-19 0.9999846242181696 -0.005545387925678225 0.09688088513829453 0.005519302327492586 0.995280679706302 0 -0 -0 0 0 0
|
||||
3 0.3222616402245218 -0.0002911328660981436 0.1799682739051886 0.9952948074630237 -0.001621407113303408 -0.09687939551894117 0.001089272628257954 0.9999840309514423 -0.005545387925678226 0.0968868397785986 0.005413767734014727 0.995280679706302 0 0 0 0 0 0
|
||||
4 0.4640248981573186 -7.44074583944898e-17 0.1600000000000001 1 0 0 0 1 0 0 0 1 0 0 -0 0 0 0
|
||||
1 0.121 8.796847998598882e-19 0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 0.1853423520676719 -0.0003049963359123014 0.1415220993435272 0.9952959831601956 -0.0005372420906749175 -0.09687939551894122 -6.505213034913027e-19 0.9999846242181696 -0.005545387925678225 0.09688088513829464 0.005519302327492586 0.995280679706302 0 -0 -0 0 0 0
|
||||
3 0.3222616402245218 -0.0002911328660981436 0.1799682739051886 0.9952948074630237 -0.001621407113303408 -0.09687939551894117 0.001089272628257954 0.9999840309514423 -0.005545387925678226 0.0968868397785986 0.005413767734014727 0.995280679706302 0 0 0 0 0 0
|
||||
4 0.4640248981573186 -7.44074583944898e-17 0.1600000000000001 1 0 0 0 1 0 0 0 1 0 0 -0 0 0 0
|
||||
1 0.121 8.796847998598882e-19 0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 0.1853423520676719 -0.0003049963359123015 0.1415220993435272 0.9952959831601956 -0.0005372420906749175 -0.09687939551894111 0 0.9999846242181696 -0.005545387925678225 0.09688088513829453 0.005519302327492586 0.995280679706302 0 -0 -0 0 0 0
|
||||
3 0.3222616402245218 -0.0002911328660981436 0.1799682739051886 0.9952948074630237 -0.001621407113303408 -0.09687939551894117 0.001089272628257954 0.9999840309514423 -0.005545387925678226 0.0968868397785986 0.005413767734014727 0.995280679706302 0 0 0 0 0 0
|
||||
4 0.4640248981573186 -7.44074583944898e-17 0.1600000000000001 1 0 0 0 1 0 0 0 1 0 0 -0 0 0 0
|
||||
1 0.121 8.796847998598882e-19 0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 0.1853423520676719 -0.0003049963359123015 0.1415220993435272 0.9952959831601956 -0.0005372420906749176 -0.09687939551894122 -4.336808689942018e-19 0.9999846242181696 -0.005545387925678225 0.09688088513829464 0.005519302327492586 0.995280679706302 0 -0 -0 0 0 0
|
||||
3 0.3222616402245218 -0.0002911328660981436 0.1799682739051886 0.9952948074630237 -0.001621407113303408 -0.09687939551894117 0.001089272628257954 0.9999840309514423 -0.005545387925678226 0.0968868397785986 0.005413767734014727 0.995280679706302 0 0 0 0 0 0
|
||||
4 0.4640248981573186 -7.44074583944898e-17 0.1600000000000001 1 0 0 0 1 0 0 0 1 0 0 -0 0 0 0
|
||||
1 0.121 8.796847998598882e-19 0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 0.1853423520676719 -0.0003049963359123014 0.1415220993435272 0.9952959831601956 -0.0005372420906749176 -0.09687939551894111 2.168404344971009e-19 0.9999846242181696 -0.005545387925678225 0.09688088513829453 0.005519302327492586 0.995280679706302 0 -0 -0 0 0 0
|
||||
3 0.3222616402245218 -0.0002911328660981436 0.1799682739051886 0.9952948074630237 -0.001621407113303408 -0.09687939551894117 0.001089272628257954 0.9999840309514423 -0.005545387925678226 0.0968868397785986 0.005413767734014727 0.995280679706302 0 0 0 0 0 0
|
||||
4 0.4640248981573186 -7.44074583944898e-17 0.1600000000000001 1 0 0 0 1 0 0 0 1 0 0 -0 0 0 0
|
||||
1 0.121 8.796847998598882e-19 0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 0.1853423520676719 -0.0003049963359123014 0.1415220993435272 0.9952959831601956 -0.0005372420906749175 -0.09687939551894122 -6.505213034913027e-19 0.9999846242181696 -0.005545387925678225 0.09688088513829464 0.005519302327492586 0.995280679706302 0 -0 -0 0 0 0
|
||||
3 0.3222616402245218 -0.0002911328660981436 0.1799682739051886 0.9952948074630237 -0.001621407113303408 -0.09687939551894117 0.001089272628257954 0.9999840309514423 -0.005545387925678226 0.0968868397785986 0.005413767734014727 0.995280679706302 0 0 0 0 0 0
|
||||
4 0.4640248981573186 -7.44074583944898e-17 0.1600000000000001 1 0 0 0 1 0 0 0 1 0 0 -0 0 0 0
|
||||
1 0.121 8.796847998598882e-19 0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 0.1853423520676719 -0.0003049963359123015 0.1415220993435272 0.9952959831601956 -0.0005372420906749175 -0.09687939551894111 0 0.9999846242181696 -0.005545387925678225 0.09688088513829453 0.005519302327492586 0.995280679706302 0 -0 -0 0 0 0
|
||||
3 0.3222616402245218 -0.0002911328660981436 0.1799682739051886 0.9952948074630237 -0.001621407113303408 -0.09687939551894117 0.001089272628257954 0.9999840309514423 -0.005545387925678226 0.0968868397785986 0.005413767734014727 0.995280679706302 0 0 0 0 0 0
|
||||
4 0.4640248981573186 -7.44074583944898e-17 0.1600000000000001 1 0 0 0 1 0 0 0 1 0 0 -0 0 0 0
|
||||
1 0.121 8.796847998598882e-19 0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 0.1853423520676719 -0.0003049963359123015 0.1415220993435272 0.9952959831601956 -0.0005372420906749176 -0.09687939551894122 -4.336808689942018e-19 0.9999846242181696 -0.005545387925678225 0.09688088513829464 0.005519302327492586 0.995280679706302 0 -0 -0 0 0 0
|
||||
3 0.3222616402245218 -0.0002911328660981436 0.1799682739051886 0.9952948074630237 -0.001621407113303408 -0.09687939551894117 0.001089272628257954 0.9999840309514423 -0.005545387925678226 0.0968868397785986 0.005413767734014727 0.995280679706302 0 0 0 0 0 0
|
||||
4 0.4640248981573186 -7.44074583944898e-17 0.1600000000000001 1 0 0 0 1 0 0 0 1 0 0 -0 0 0 0
|
||||
1 0.121 8.796847998598882e-19 0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 0.1853423520676719 -0.0003049963359123014 0.1415220993435272 0.9952959831601956 -0.0005372420906749176 -0.09687939551894111 2.168404344971009e-19 0.9999846242181696 -0.005545387925678225 0.09688088513829453 0.005519302327492586 0.995280679706302 0 -0 -0 0 0 0
|
||||
3 0.3222616402245218 -0.0002911328660981436 0.1799682739051886 0.9952948074630237 -0.001621407113303408 -0.09687939551894117 0.001089272628257954 0.9999840309514423 -0.005545387925678226 0.0968868397785986 0.005413767734014727 0.995280679706302 0 0 0 0 0 0
|
||||
4 0.4640248981573186 -7.44074583944898e-17 0.1600000000000001 1 0 0 0 1 0 0 0 1 0 0 -0 0 0 0
|
||||
1 0.121 8.796847998598882e-19 0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 0.1853423520676719 -0.0003049963359123014 0.1415220993435272 0.9952959831601956 -0.0005372420906749175 -0.09687939551894122 -6.505213034913027e-19 0.9999846242181696 -0.005545387925678225 0.09688088513829464 0.005519302327492586 0.995280679706302 0 -0 -0 0 0 0
|
||||
3 0.3222616402245218 -0.0002911328660981436 0.1799682739051886 0.9952948074630237 -0.001621407113303408 -0.09687939551894117 0.001089272628257954 0.9999840309514423 -0.005545387925678226 0.0968868397785986 0.005413767734014727 0.995280679706302 0 0 0 0 0 0
|
||||
4 0.4640248981573186 -7.44074583944898e-17 0.1600000000000001 1 0 0 0 1 0 0 0 1 0 0 -0 0 0 0
|
||||
1 0.121 8.796847998598882e-19 0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 0.1853423520676719 -0.0003049963359123015 0.1415220993435272 0.9952959831601956 -0.0005372420906749175 -0.09687939551894111 0 0.9999846242181696 -0.005545387925678225 0.09688088513829453 0.005519302327492586 0.995280679706302 0 -0 -0 0 0 0
|
||||
3 0.3222616402245218 -0.0002911328660981436 0.1799682739051886 0.9952948074630237 -0.001621407113303408 -0.09687939551894117 0.001089272628257954 0.9999840309514423 -0.005545387925678226 0.0968868397785986 0.005413767734014727 0.995280679706302 0 0 0 0 0 0
|
||||
4 0.4640248981573186 -7.44074583944898e-17 0.1600000000000001 1 0 0 0 1 0 0 0 1 0 0 -0 0 0 0
|
||||
1 0.121 8.796847998598882e-19 0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 0.1853423520676719 -0.0003049963359123015 0.1415220993435272 0.9952959831601956 -0.0005372420906749176 -0.09687939551894122 -4.336808689942018e-19 0.9999846242181696 -0.005545387925678225 0.09688088513829464 0.005519302327492586 0.995280679706302 0 -0 -0 0 0 0
|
||||
3 0.3222616402245218 -0.0002911328660981436 0.1799682739051886 0.9952948074630237 -0.001621407113303408 -0.09687939551894117 0.001089272628257954 0.9999840309514423 -0.005545387925678226 0.0968868397785986 0.005413767734014727 0.995280679706302 0 0 0 0 0 0
|
||||
4 0.4640248981573186 -7.44074583944898e-17 0.1600000000000001 1 0 0 0 1 0 0 0 1 0 0 -0 0 0 0
|
||||
1 0.121 8.796847998598882e-19 0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 0.1853423520676719 -0.0003049963359123014 0.1415220993435272 0.9952959831601956 -0.0005372420906749176 -0.09687939551894111 2.168404344971009e-19 0.9999846242181696 -0.005545387925678225 0.09688088513829453 0.005519302327492586 0.995280679706302 0 -0 -0 0 0 0
|
||||
3 0.3222616402245218 -0.0002911328660981436 0.1799682739051886 0.9952948074630237 -0.001621407113303408 -0.09687939551894117 0.001089272628257954 0.9999840309514423 -0.005545387925678226 0.0968868397785986 0.005413767734014727 0.995280679706302 0 0 0 0 0 0
|
||||
4 0.4640248981573186 -7.44074583944898e-17 0.1600000000000001 1 0 0 0 1 0 0 0 1 0 0 -0 0 0 0
|
||||
1 0.121 8.796847998598882e-19 0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 0.1853423520676719 -0.0003049963359123014 0.1415220993435272 0.9952959831601956 -0.0005372420906749175 -0.09687939551894122 -6.505213034913027e-19 0.9999846242181696 -0.005545387925678225 0.09688088513829464 0.005519302327492586 0.995280679706302 0 -0 -0 0 0 0
|
||||
3 0.3222616402245218 -0.0002911328660981436 0.1799682739051886 0.9952948074630237 -0.001621407113303408 -0.09687939551894117 0.001089272628257954 0.9999840309514423 -0.005545387925678226 0.0968868397785986 0.005413767734014727 0.995280679706302 0 0 0 0 0 0
|
||||
4 0.4640248981573186 -7.44074583944898e-17 0.1600000000000001 1 0 0 0 1 0 0 0 1 0 0 -0 0 0 0
|
||||
1 0.121 8.796847998598882e-19 0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 0.1853423520676719 -0.0003049963359123015 0.1415220993435272 0.9952959831601956 -0.0005372420906749175 -0.09687939551894111 0 0.9999846242181696 -0.005545387925678225 0.09688088513829453 0.005519302327492586 0.995280679706302 0 -0 -0 0 0 0
|
||||
3 0.3222616402245218 -0.0002911328660981436 0.1799682739051886 0.9952948074630237 -0.001621407113303408 -0.09687939551894117 0.001089272628257954 0.9999840309514423 -0.005545387925678226 0.0968868397785986 0.005413767734014727 0.995280679706302 0 0 0 0 0 0
|
||||
4 0.4640248981573186 -7.44074583944898e-17 0.1600000000000001 1 0 0 0 1 0 0 0 1 0 0 -0 0 0 0
|
||||
1 0.121 8.796847998598882e-19 0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 0.1853423520676719 -0.0003049963359123015 0.1415220993435272 0.9952959831601956 -0.0005372420906749176 -0.09687939551894122 -4.336808689942018e-19 0.9999846242181696 -0.005545387925678225 0.09688088513829464 0.005519302327492586 0.995280679706302 0 -0 -0 0 0 0
|
||||
3 0.3222616402245218 -0.0002911328660981436 0.1799682739051886 0.9952948074630237 -0.001621407113303408 -0.09687939551894117 0.001089272628257954 0.9999840309514423 -0.005545387925678226 0.0968868397785986 0.005413767734014727 0.995280679706302 0 0 0 0 0 0
|
||||
4 0.4640248981573186 -7.44074583944898e-17 0.1600000000000001 1 0 0 0 1 0 0 0 1 0 0 -0 0 0 0
|
||||
1 0.121 8.796847998598882e-19 0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 0.1853423520676719 -0.0003049963359123014 0.1415220993435272 0.9952959831601956 -0.0005372420906749176 -0.09687939551894111 2.168404344971009e-19 0.9999846242181696 -0.005545387925678225 0.09688088513829453 0.005519302327492586 0.995280679706302 0 -0 -0 0 0 0
|
||||
3 0.3222616402245218 -0.0002911328660981436 0.1799682739051886 0.9952948074630237 -0.001621407113303408 -0.09687939551894117 0.001089272628257954 0.9999840309514423 -0.005545387925678226 0.0968868397785986 0.005413767734014727 0.995280679706302 0 0 0 0 0 0
|
||||
4 0.4640248981573186 -7.44074583944898e-17 0.1600000000000001 1 0 0 0 1 0 0 0 1 0 0 -0 0 0 0
|
||||
1 0.121 8.796847998598882e-19 0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 0.1853423520676719 -0.0003049963359123014 0.1415220993435272 0.9952959831601956 -0.0005372420906749175 -0.09687939551894122 -6.505213034913027e-19 0.9999846242181696 -0.005545387925678225 0.09688088513829464 0.005519302327492586 0.995280679706302 0 -0 -0 0 0 0
|
||||
3 0.3222616402245218 -0.0002911328660981436 0.1799682739051886 0.9952948074630237 -0.001621407113303408 -0.09687939551894117 0.001089272628257954 0.9999840309514423 -0.005545387925678226 0.0968868397785986 0.005413767734014727 0.995280679706302 0 0 0 0 0 0
|
||||
4 0.4640248981573186 -7.44074583944898e-17 0.1600000000000001 1 0 0 0 1 0 0 0 1 0 0 -0 0 0 0
|
||||
1 0.121 8.796847998598882e-19 0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 0.1853423520676719 -0.0003049963359123015 0.1415220993435272 0.9952959831601956 -0.0005372420906749175 -0.09687939551894111 0 0.9999846242181696 -0.005545387925678225 0.09688088513829453 0.005519302327492586 0.995280679706302 0 -0 -0 0 0 0
|
||||
3 0.3222616402245218 -0.0002911328660981436 0.1799682739051886 0.9952948074630237 -0.001621407113303408 -0.09687939551894117 0.001089272628257954 0.9999840309514423 -0.005545387925678226 0.0968868397785986 0.005413767734014727 0.995280679706302 0 0 0 0 0 0
|
||||
4 0.4640248981573186 -7.44074583944898e-17 0.1600000000000001 1 0 0 0 1 0 0 0 1 0 0 -0 0 0 0
|
||||
1 0.121 8.796847998598882e-19 0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 0.1853423520676719 -0.0003049963359123015 0.1415220993435272 0.9952959831601956 -0.0005372420906749176 -0.09687939551894122 -4.336808689942018e-19 0.9999846242181696 -0.005545387925678225 0.09688088513829464 0.005519302327492586 0.995280679706302 0 -0 -0 0 0 0
|
||||
3 0.3222616402245218 -0.0002911328660981436 0.1799682739051886 0.9952948074630237 -0.001621407113303408 -0.09687939551894117 0.001089272628257954 0.9999840309514423 -0.005545387925678226 0.0968868397785986 0.005413767734014727 0.995280679706302 0 0 0 0 0 0
|
||||
4 0.4640248981573186 -7.44074583944898e-17 0.1600000000000001 1 0 0 0 1 0 0 0 1 0 0 -0 0 0 0
|
||||
1 0.121 8.796847998598882e-19 0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 0.1853423520676719 -0.0003049963359123014 0.1415220993435272 0.9952959831601956 -0.0005372420906749176 -0.09687939551894111 2.168404344971009e-19 0.9999846242181696 -0.005545387925678225 0.09688088513829453 0.005519302327492586 0.995280679706302 0 -0 -0 0 0 0
|
||||
3 0.3222616402245218 -0.0002911328660981436 0.1799682739051886 0.9952948074630237 -0.001621407113303408 -0.09687939551894117 0.001089272628257954 0.9999840309514423 -0.005545387925678226 0.0968868397785986 0.005413767734014727 0.995280679706302 0 0 0 0 0 0
|
||||
4 0.4640248981573186 -7.44074583944898e-17 0.1600000000000001 1 0 0 0 1 0 0 0 1 0 0 -0 0 0 0
|
||||
1 0.121 8.796847998598882e-19 0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 0.1853423520676719 -0.0003049963359123014 0.1415220993435272 0.9952959831601956 -0.0005372420906749175 -0.09687939551894122 -6.505213034913027e-19 0.9999846242181696 -0.005545387925678225 0.09688088513829464 0.005519302327492586 0.995280679706302 0 -0 -0 0 0 0
|
||||
3 0.3222616402245218 -0.0002911328660981436 0.1799682739051886 0.9952948074630237 -0.001621407113303408 -0.09687939551894117 0.001089272628257954 0.9999840309514423 -0.005545387925678226 0.0968868397785986 0.005413767734014727 0.995280679706302 0 0 0 0 0 0
|
||||
4 0.4640248981573186 -7.44074583944898e-17 0.1600000000000001 1 0 0 0 1 0 0 0 1 0 0 -0 0 0 0
|
||||
1 0.121 8.796847998598882e-19 0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 0.1853423520676719 -0.0003049963359123015 0.1415220993435272 0.9952959831601956 -0.0005372420906749175 -0.09687939551894111 0 0.9999846242181696 -0.005545387925678225 0.09688088513829453 0.005519302327492586 0.995280679706302 0 -0 -0 0 0 0
|
||||
3 0.3222616402245218 -0.0002911328660981436 0.1799682739051886 0.9952948074630237 -0.001621407113303408 -0.09687939551894117 0.001089272628257954 0.9999840309514423 -0.005545387925678226 0.0968868397785986 0.005413767734014727 0.995280679706302 0 0 0 0 0 0
|
||||
4 0.4640248981573186 -7.44074583944898e-17 0.1600000000000001 1 0 0 0 1 0 0 0 1 0 0 -0 0 0 0
|
||||
1 0.121 8.796847998598882e-19 0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 0.1853423520676719 -0.0003049963359123015 0.1415220993435272 0.9952959831601956 -0.0005372420906749176 -0.09687939551894122 -4.336808689942018e-19 0.9999846242181696 -0.005545387925678225 0.09688088513829464 0.005519302327492586 0.995280679706302 0 -0 -0 0 0 0
|
||||
3 0.3222616402245218 -0.0002911328660981436 0.1799682739051886 0.9952948074630237 -0.001621407113303408 -0.09687939551894117 0.001089272628257954 0.9999840309514423 -0.005545387925678226 0.0968868397785986 0.005413767734014727 0.995280679706302 0 0 0 0 0 0
|
||||
4 0.4640248981573186 -7.44074583944898e-17 0.1600000000000001 1 0 0 0 1 0 0 0 1 0 0 -0 0 0 0
|
||||
1 0.121 8.796847998598882e-19 0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 0.1853423520676719 -0.0003049963359123014 0.1415220993435272 0.9952959831601956 -0.0005372420906749176 -0.09687939551894111 2.168404344971009e-19 0.9999846242181696 -0.005545387925678225 0.09688088513829453 0.005519302327492586 0.995280679706302 0 -0 -0 0 0 0
|
||||
3 0.3222616402245218 -0.0002911328660981436 0.1799682739051886 0.9952948074630237 -0.001621407113303408 -0.09687939551894117 0.001089272628257954 0.9999840309514423 -0.005545387925678226 0.0968868397785986 0.005413767734014727 0.995280679706302 0 0 0 0 0 0
|
||||
4 0.4640248981573186 -7.44074583944898e-17 0.1600000000000001 1 0 0 0 1 0 0 0 1 0 0 -0 0 0 0
|
||||
1 0.121 8.796847998598882e-19 0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 0.1853423520676719 -0.0003049963359123014 0.1415220993435272 0.9952959831601956 -0.0005372420906749175 -0.09687939551894122 -6.505213034913027e-19 0.9999846242181696 -0.005545387925678225 0.09688088513829464 0.005519302327492586 0.995280679706302 0 -0 -0 0 0 0
|
||||
3 0.3222616402245218 -0.0002911328660981436 0.1799682739051886 0.9952948074630237 -0.001621407113303408 -0.09687939551894117 0.001089272628257954 0.9999840309514423 -0.005545387925678226 0.0968868397785986 0.005413767734014727 0.995280679706302 0 0 0 0 0 0
|
||||
4 0.4640248981573186 -7.44074583944898e-17 0.1600000000000001 1 0 0 0 1 0 0 0 1 0 0 -0 0 0 0
|
||||
1 0.121 8.796847998598882e-19 0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 0.1853423520676719 -0.0003049963359123015 0.1415220993435272 0.9952959831601956 -0.0005372420906749175 -0.09687939551894111 0 0.9999846242181696 -0.005545387925678225 0.09688088513829453 0.005519302327492586 0.995280679706302 0 -0 -0 0 0 0
|
||||
3 0.3222616402245218 -0.0002911328660981436 0.1799682739051886 0.9952948074630237 -0.001621407113303408 -0.09687939551894117 0.001089272628257954 0.9999840309514423 -0.005545387925678226 0.0968868397785986 0.005413767734014727 0.995280679706302 0 0 0 0 0 0
|
||||
4 0.4640248981573186 -7.44074583944898e-17 0.1600000000000001 1 0 0 0 1 0 0 0 1 0 0 -0 0 0 0
|
||||
1 0.121 8.796847998598882e-19 0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 0.1853423520676719 -0.0003049963359123015 0.1415220993435272 0.9952959831601956 -0.0005372420906749176 -0.09687939551894122 -4.336808689942018e-19 0.9999846242181696 -0.005545387925678225 0.09688088513829464 0.005519302327492586 0.995280679706302 0 -0 -0 0 0 0
|
||||
3 0.3222616402245218 -0.0002911328660981436 0.1799682739051886 0.9952948074630237 -0.001621407113303408 -0.09687939551894117 0.001089272628257954 0.9999840309514423 -0.005545387925678226 0.0968868397785986 0.005413767734014727 0.995280679706302 0 0 0 0 0 0
|
||||
4 0.4640248981573186 -7.44074583944898e-17 0.1600000000000001 1 0 0 0 1 0 0 0 1 0 0 -0 0 0 0
|
||||
1 0.121 8.796847998598882e-19 0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 0.1853423520676719 -0.0003049963359123014 0.1415220993435272 0.9952959831601956 -0.0005372420906749176 -0.09687939551894111 2.168404344971009e-19 0.9999846242181696 -0.005545387925678225 0.09688088513829453 0.005519302327492586 0.995280679706302 0 -0 -0 0 0 0
|
||||
3 0.3222616402245218 -0.0002911328660981436 0.1799682739051886 0.9952948074630237 -0.001621407113303408 -0.09687939551894117 0.001089272628257954 0.9999840309514423 -0.005545387925678226 0.0968868397785986 0.005413767734014727 0.995280679706302 0 0 0 0 0 0
|
||||
4 0.4640248981573186 -7.44074583944898e-17 0.1600000000000001 1 0 0 0 1 0 0 0 1 0 0 -0 0 0 0
|
||||
1 0.121 8.796847998598882e-19 0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 0.1853423520676719 -0.0003049963359123014 0.1415220993435272 0.9952959831601956 -0.0005372420906749175 -0.09687939551894122 -6.505213034913027e-19 0.9999846242181696 -0.005545387925678225 0.09688088513829464 0.005519302327492586 0.995280679706302 0 -0 -0 0 0 0
|
||||
3 0.3222616402245218 -0.0002911328660981436 0.1799682739051886 0.9952948074630237 -0.001621407113303408 -0.09687939551894117 0.001089272628257954 0.9999840309514423 -0.005545387925678226 0.0968868397785986 0.005413767734014727 0.995280679706302 0 0 0 0 0 0
|
||||
4 0.4640248981573186 -7.44074583944898e-17 0.1600000000000001 1 0 0 0 1 0 0 0 1 0 0 -0 0 0 0
|
||||
1 0.121 8.796847998598882e-19 0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 0.1853423520676719 -0.0003049963359123015 0.1415220993435272 0.9952959831601956 -0.0005372420906749175 -0.09687939551894111 0 0.9999846242181696 -0.005545387925678225 0.09688088513829453 0.005519302327492586 0.995280679706302 0 -0 -0 0 0 0
|
||||
3 0.3222616402245218 -0.0002911328660981436 0.1799682739051886 0.9952948074630237 -0.001621407113303408 -0.09687939551894117 0.001089272628257954 0.9999840309514423 -0.005545387925678226 0.0968868397785986 0.005413767734014727 0.995280679706302 0 0 0 0 0 0
|
||||
4 0.4640248981573186 -7.44074583944898e-17 0.1600000000000001 1 0 0 0 1 0 0 0 1 0 0 -0 0 0 0
|
||||
1 0.121 8.796847998598882e-19 0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 0.1853423520676719 -0.0003049963359123015 0.1415220993435272 0.9952959831601956 -0.0005372420906749176 -0.09687939551894122 -4.336808689942018e-19 0.9999846242181696 -0.005545387925678225 0.09688088513829464 0.005519302327492586 0.995280679706302 0 -0 -0 0 0 0
|
||||
3 0.3222616402245218 -0.0002911328660981436 0.1799682739051886 0.9952948074630237 -0.001621407113303408 -0.09687939551894117 0.001089272628257954 0.9999840309514423 -0.005545387925678226 0.0968868397785986 0.005413767734014727 0.995280679706302 0 0 0 0 0 0
|
||||
4 0.4640248981573186 -7.44074583944898e-17 0.1600000000000001 1 0 0 0 1 0 0 0 1 0 0 -0 0 0 0
|
||||
1 0.121 8.796847998598882e-19 0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 0.1853423520676719 -0.0003049963359123014 0.1415220993435272 0.9952959831601956 -0.0005372420906749176 -0.09687939551894111 2.168404344971009e-19 0.9999846242181696 -0.005545387925678225 0.09688088513829453 0.005519302327492586 0.995280679706302 0 -0 -0 0 0 0
|
||||
3 0.3222616402245218 -0.0002911328660981436 0.1799682739051886 0.9952948074630237 -0.001621407113303408 -0.09687939551894117 0.001089272628257954 0.9999840309514423 -0.005545387925678226 0.0968868397785986 0.005413767734014727 0.995280679706302 0 0 0 0 0 0
|
||||
4 0.4640248981573186 -7.44074583944898e-17 0.1600000000000001 1 0 0 0 1 0 0 0 1 0 0 -0 0 0 0
|
||||
1 0.121 8.796847998598882e-19 0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 0.1853423520676719 -0.0003049963359123014 0.1415220993435272 0.9952959831601956 -0.0005372420906749175 -0.09687939551894122 -6.505213034913027e-19 0.9999846242181696 -0.005545387925678225 0.09688088513829464 0.005519302327492586 0.995280679706302 0 -0 -0 0 0 0
|
||||
3 0.3222616402245218 -0.0002911328660981436 0.1799682739051886 0.9952948074630237 -0.001621407113303408 -0.09687939551894117 0.001089272628257954 0.9999840309514423 -0.005545387925678226 0.0968868397785986 0.005413767734014727 0.995280679706302 0 0 0 0 0 0
|
||||
4 0.4640248981573186 -7.44074583944898e-17 0.1600000000000001 1 0 0 0 1 0 0 0 1 0 0 -0 0 0 0
|
||||
1 0.121 8.796847998598882e-19 0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 0.1853423520676719 -0.0003049963359123015 0.1415220993435272 0.9952959831601956 -0.0005372420906749175 -0.09687939551894111 0 0.9999846242181696 -0.005545387925678225 0.09688088513829453 0.005519302327492586 0.995280679706302 0 -0 -0 0 0 0
|
||||
3 0.3222616402245218 -0.0002911328660981436 0.1799682739051886 0.9952948074630237 -0.001621407113303408 -0.09687939551894117 0.001089272628257954 0.9999840309514423 -0.005545387925678226 0.0968868397785986 0.005413767734014727 0.995280679706302 0 0 0 0 0 0
|
||||
4 0.4640248981573186 -7.44074583944898e-17 0.1600000000000001 1 0 0 0 1 0 0 0 1 0 0 -0 0 0 0
|
||||
1 0.121 8.796847998598882e-19 0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 0.1853423520676719 -0.0003049963359123015 0.1415220993435272 0.9952959831601956 -0.0005372420906749176 -0.09687939551894122 -4.336808689942018e-19 0.9999846242181696 -0.005545387925678225 0.09688088513829464 0.005519302327492586 0.995280679706302 0 -0 -0 0 0 0
|
||||
3 0.3222616402245218 -0.0002911328660981436 0.1799682739051886 0.9952948074630237 -0.001621407113303408 -0.09687939551894117 0.001089272628257954 0.9999840309514423 -0.005545387925678226 0.0968868397785986 0.005413767734014727 0.995280679706302 0 0 0 0 0 0
|
||||
4 0.4640248981573186 -7.44074583944898e-17 0.1600000000000001 1 0 0 0 1 0 0 0 1 0 0 -0 0 0 0
|
||||
1 0.121 8.796847998598882e-19 0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 0.1853423520676719 -0.0003049963359123014 0.1415220993435272 0.9952959831601956 -0.0005372420906749176 -0.09687939551894111 2.168404344971009e-19 0.9999846242181696 -0.005545387925678225 0.09688088513829453 0.005519302327492586 0.995280679706302 0 -0 -0 0 0 0
|
||||
3 0.3222616402245218 -0.0002911328660981436 0.1799682739051886 0.9952948074630237 -0.001621407113303408 -0.09687939551894117 0.001089272628257954 0.9999840309514423 -0.005545387925678226 0.0968868397785986 0.005413767734014727 0.995280679706302 0 0 0 0 0 0
|
||||
4 0.4640248981573186 -7.44074583944898e-17 0.1600000000000001 1 0 0 0 1 0 0 0 1 0 0 -0 0 0 0
|
||||
1 0.121 8.796847998598882e-19 0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 0.1853423520676719 -0.0003049963359123014 0.1415220993435272 0.9952959831601956 -0.0005372420906749175 -0.09687939551894122 -6.505213034913027e-19 0.9999846242181696 -0.005545387925678225 0.09688088513829464 0.005519302327492586 0.995280679706302 0 -0 -0 0 0 0
|
||||
3 0.3222616402245218 -0.0002911328660981436 0.1799682739051886 0.9952948074630237 -0.001621407113303408 -0.09687939551894117 0.001089272628257954 0.9999840309514423 -0.005545387925678226 0.0968868397785986 0.005413767734014727 0.995280679706302 0 0 0 0 0 0
|
||||
4 0.4640248981573186 -7.44074583944898e-17 0.1600000000000001 1 0 0 0 1 0 0 0 1 0 0 -0 0 0 0
|
||||
1 0.121 8.796847998598882e-19 0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 0.1853423520676719 -0.0003049963359123015 0.1415220993435272 0.9952959831601956 -0.0005372420906749175 -0.09687939551894111 0 0.9999846242181696 -0.005545387925678225 0.09688088513829453 0.005519302327492586 0.995280679706302 0 -0 -0 0 0 0
|
||||
3 0.3222616402245218 -0.0002911328660981436 0.1799682739051886 0.9952948074630237 -0.001621407113303408 -0.09687939551894117 0.001089272628257954 0.9999840309514423 -0.005545387925678226 0.0968868397785986 0.005413767734014727 0.995280679706302 0 0 0 0 0 0
|
||||
4 0.4640248981573186 -7.44074583944898e-17 0.1600000000000001 1 0 0 0 1 0 0 0 1 0 0 -0 0 0 0
|
||||
1 0.121 8.796847998598882e-19 0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 0.1853423520676719 -0.0003049963359123015 0.1415220993435272 0.9952959831601956 -0.0005372420906749176 -0.09687939551894122 -4.336808689942018e-19 0.9999846242181696 -0.005545387925678225 0.09688088513829464 0.005519302327492586 0.995280679706302 0 -0 -0 0 0 0
|
||||
3 0.3222616402245218 -0.0002911328660981436 0.1799682739051886 0.9952948074630237 -0.001621407113303408 -0.09687939551894117 0.001089272628257954 0.9999840309514423 -0.005545387925678226 0.0968868397785986 0.005413767734014727 0.995280679706302 0 0 0 0 0 0
|
||||
4 0.4640248981573186 -7.44074583944898e-17 0.1600000000000001 1 0 0 0 1 0 0 0 1 0 0 -0 0 0 0
|
||||
1 0.121 8.796847998598882e-19 0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 0.1853423520676719 -0.0003049963359123014 0.1415220993435272 0.9952959831601956 -0.0005372420906749176 -0.09687939551894111 2.168404344971009e-19 0.9999846242181696 -0.005545387925678225 0.09688088513829453 0.005519302327492586 0.995280679706302 0 -0 -0 0 0 0
|
||||
3 0.3222616402245218 -0.0002911328660981436 0.1799682739051886 0.9952948074630237 -0.001621407113303408 -0.09687939551894117 0.001089272628257954 0.9999840309514423 -0.005545387925678226 0.0968868397785986 0.005413767734014727 0.995280679706302 0 0 0 0 0 0
|
||||
4 0.4640248981573186 -7.44074583944898e-17 0.1600000000000001 1 0 0 0 1 0 0 0 1 0 0 -0 0 0 0
|
||||
1 0.121 8.796847998598882e-19 0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 0.1853423520676719 -0.0003049963359123014 0.1415220993435272 0.9952959831601956 -0.0005372420906749175 -0.09687939551894122 -6.505213034913027e-19 0.9999846242181696 -0.005545387925678225 0.09688088513829464 0.005519302327492586 0.995280679706302 0 -0 -0 0 0 0
|
||||
3 0.3222616402245218 -0.0002911328660981436 0.1799682739051886 0.9952948074630237 -0.001621407113303408 -0.09687939551894117 0.001089272628257954 0.9999840309514423 -0.005545387925678226 0.0968868397785986 0.005413767734014727 0.995280679706302 0 0 0 0 0 0
|
||||
4 0.4640248981573186 -7.44074583944898e-17 0.1600000000000001 1 0 0 0 1 0 0 0 1 0 0 -0 0 0 0
|
||||
1 0.121 8.796847998598882e-19 0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 0.1853423520676719 -0.0003049963359123015 0.1415220993435272 0.9952959831601956 -0.0005372420906749175 -0.09687939551894111 0 0.9999846242181696 -0.005545387925678225 0.09688088513829453 0.005519302327492586 0.995280679706302 0 -0 -0 0 0 0
|
||||
3 0.3222616402245218 -0.0002911328660981436 0.1799682739051886 0.9952948074630237 -0.001621407113303408 -0.09687939551894117 0.001089272628257954 0.9999840309514423 -0.005545387925678226 0.0968868397785986 0.005413767734014727 0.995280679706302 0 0 0 0 0 0
|
||||
4 0.4640248981573186 -7.44074583944898e-17 0.1600000000000001 1 0 0 0 1 0 0 0 1 0 0 -0 0 0 0
|
||||
1 0.121 8.796847998598882e-19 0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 0.1853423520676719 -0.0003049963359123015 0.1415220993435272 0.9952959831601956 -0.0005372420906749176 -0.09687939551894122 -4.336808689942018e-19 0.9999846242181696 -0.005545387925678225 0.09688088513829464 0.005519302327492586 0.995280679706302 0 -0 -0 0 0 0
|
||||
3 0.3222616402245218 -0.0002911328660981436 0.1799682739051886 0.9952948074630237 -0.001621407113303408 -0.09687939551894117 0.001089272628257954 0.9999840309514423 -0.005545387925678226 0.0968868397785986 0.005413767734014727 0.995280679706302 0 0 0 0 0 0
|
||||
4 0.4640248981573186 -7.44074583944898e-17 0.1600000000000001 1 0 0 0 1 0 0 0 1 0 0 -0 0 0 0
|
||||
1 0.121 8.796847998598882e-19 0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 0.1853423520676719 -0.0003049963359123014 0.1415220993435272 0.9952959831601956 -0.0005372420906749176 -0.09687939551894111 2.168404344971009e-19 0.9999846242181696 -0.005545387925678225 0.09688088513829453 0.005519302327492586 0.995280679706302 0 -0 -0 0 0 0
|
||||
3 0.3222616402245218 -0.0002911328660981436 0.1799682739051886 0.9952948074630237 -0.001621407113303408 -0.09687939551894117 0.001089272628257954 0.9999840309514423 -0.005545387925678226 0.0968868397785986 0.005413767734014727 0.995280679706302 0 0 0 0 0 0
|
||||
4 0.4640248981573186 -7.44074583944898e-17 0.1600000000000001 1 0 0 0 1 0 0 0 1 0 0 -0 0 0 0
|
||||
1 0.121 8.796847998598882e-19 0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 0.1853423520676719 -0.0003049963359123014 0.1415220993435272 0.9952959831601956 -0.0005372420906749175 -0.09687939551894122 -6.505213034913027e-19 0.9999846242181696 -0.005545387925678225 0.09688088513829464 0.005519302327492586 0.995280679706302 0 -0 -0 0 0 0
|
||||
3 0.3222616402245218 -0.0002911328660981436 0.1799682739051886 0.9952948074630237 -0.001621407113303408 -0.09687939551894117 0.001089272628257954 0.9999840309514423 -0.005545387925678226 0.0968868397785986 0.005413767734014727 0.995280679706302 0 0 0 0 0 0
|
||||
4 0.4640248981573186 -7.44074583944898e-17 0.1600000000000001 1 0 0 0 1 0 0 0 1 0 0 -0 0 0 0
|
||||
1 0.121 8.796847998598882e-19 0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 0.1853423520676719 -0.0003049963359123015 0.1415220993435272 0.9952959831601956 -0.0005372420906749175 -0.09687939551894111 0 0.9999846242181696 -0.005545387925678225 0.09688088513829453 0.005519302327492586 0.995280679706302 0 -0 -0 0 0 0
|
||||
3 0.3222616402245218 -0.0002911328660981436 0.1799682739051886 0.9952948074630237 -0.001621407113303408 -0.09687939551894117 0.001089272628257954 0.9999840309514423 -0.005545387925678226 0.0968868397785986 0.005413767734014727 0.995280679706302 0 0 0 0 0 0
|
||||
4 0.4640248981573186 -7.44074583944898e-17 0.1600000000000001 1 0 0 0 1 0 0 0 1 0 0 -0 0 0 0
|
||||
1 0.121 8.796847998598882e-19 0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 0.1853423520676719 -0.0003049963359123015 0.1415220993435272 0.9952959831601956 -0.0005372420906749176 -0.09687939551894122 -4.336808689942018e-19 0.9999846242181696 -0.005545387925678225 0.09688088513829464 0.005519302327492586 0.995280679706302 0 -0 -0 0 0 0
|
||||
3 0.3222616402245218 -0.0002911328660981436 0.1799682739051886 0.9952948074630237 -0.001621407113303408 -0.09687939551894117 0.001089272628257954 0.9999840309514423 -0.005545387925678226 0.0968868397785986 0.005413767734014727 0.995280679706302 0 0 0 0 0 0
|
||||
4 0.4640248981573186 -7.44074583944898e-17 0.1600000000000001 1 0 0 0 1 0 0 0 1 0 0 -0 0 0 0
|
||||
1 0.121 8.796847998598882e-19 0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 0.1853423520676719 -0.0003049963359123014 0.1415220993435272 0.9952959831601956 -0.0005372420906749176 -0.09687939551894111 2.168404344971009e-19 0.9999846242181696 -0.005545387925678225 0.09688088513829453 0.005519302327492586 0.995280679706302 0 -0 -0 0 0 0
|
||||
3 0.3222616402245218 -0.0002911328660981436 0.1799682739051886 0.9952948074630237 -0.001621407113303408 -0.09687939551894117 0.001089272628257954 0.9999840309514423 -0.005545387925678226 0.0968868397785986 0.005413767734014727 0.995280679706302 0 0 0 0 0 0
|
||||
4 0.4640248981573186 -7.44074583944898e-17 0.1600000000000001 1 0 0 0 1 0 0 0 1 0 0 -0 0 0 0
|
||||
1 0.121 8.796847998598882e-19 0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 0.1853423520676719 -0.0003049963359123014 0.1415220993435272 0.9952959831601956 -0.0005372420906749175 -0.09687939551894122 -6.505213034913027e-19 0.9999846242181696 -0.005545387925678225 0.09688088513829464 0.005519302327492586 0.995280679706302 0 -0 -0 0 0 0
|
||||
3 0.3222616402245218 -0.0002911328660981436 0.1799682739051886 0.9952948074630237 -0.001621407113303408 -0.09687939551894117 0.001089272628257954 0.9999840309514423 -0.005545387925678226 0.0968868397785986 0.005413767734014727 0.995280679706302 0 0 0 0 0 0
|
||||
4 0.4640248981573186 -7.44074583944898e-17 0.1600000000000001 1 0 0 0 1 0 0 0 1 0 0 -0 0 0 0
|
||||
1 0.121 8.796847998598882e-19 0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 0.1853423520676719 -0.0003049963359123015 0.1415220993435272 0.9952959831601956 -0.0005372420906749175 -0.09687939551894111 0 0.9999846242181696 -0.005545387925678225 0.09688088513829453 0.005519302327492586 0.995280679706302 0 -0 -0 0 0 0
|
||||
3 0.3222616402245218 -0.0002911328660981436 0.1799682739051886 0.9952948074630237 -0.001621407113303408 -0.09687939551894117 0.001089272628257954 0.9999840309514423 -0.005545387925678226 0.0968868397785986 0.005413767734014727 0.995280679706302 0 0 0 0 0 0
|
||||
4 0.4640248981573186 -7.44074583944898e-17 0.1600000000000001 1 0 0 0 1 0 0 0 1 0 0 -0 0 0 0
|
||||
1 0.121 8.796847998598882e-19 0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 0.1853423520676719 -0.0003049963359123015 0.1415220993435272 0.9952959831601956 -0.0005372420906749176 -0.09687939551894122 -4.336808689942018e-19 0.9999846242181696 -0.005545387925678225 0.09688088513829464 0.005519302327492586 0.995280679706302 0 -0 -0 0 0 0
|
||||
3 0.3222616402245218 -0.0002911328660981436 0.1799682739051886 0.9952948074630237 -0.001621407113303408 -0.09687939551894117 0.001089272628257954 0.9999840309514423 -0.005545387925678226 0.0968868397785986 0.005413767734014727 0.995280679706302 0 0 0 0 0 0
|
||||
4 0.4640248981573186 -7.44074583944898e-17 0.1600000000000001 1 0 0 0 1 0 0 0 1 0 0 -0 0 0 0
|
||||
1 0.121 8.796847998598882e-19 0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 0.1853423520676719 -0.0003049963359123014 0.1415220993435272 0.9952959831601956 -0.0005372420906749176 -0.09687939551894111 2.168404344971009e-19 0.9999846242181696 -0.005545387925678225 0.09688088513829453 0.005519302327492586 0.995280679706302 0 -0 -0 0 0 0
|
||||
3 0.3222616402245218 -0.0002911328660981436 0.1799682739051886 0.9952948074630237 -0.001621407113303408 -0.09687939551894117 0.001089272628257954 0.9999840309514423 -0.005545387925678226 0.0968868397785986 0.005413767734014727 0.995280679706302 0 0 0 0 0 0
|
||||
4 0.4640248981573186 -7.44074583944898e-17 0.1600000000000001 1 0 0 0 1 0 0 0 1 0 0 -0 0 0 0
|
||||
1 0.121 8.796847998598882e-19 0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 0.1853423520676719 -0.0003049963359123014 0.1415220993435272 0.9952959831601956 -0.0005372420906749175 -0.09687939551894122 -6.505213034913027e-19 0.9999846242181696 -0.005545387925678225 0.09688088513829464 0.005519302327492586 0.995280679706302 0 -0 -0 0 0 0
|
||||
3 0.3222616402245218 -0.0002911328660981436 0.1799682739051886 0.9952948074630237 -0.001621407113303408 -0.09687939551894117 0.001089272628257954 0.9999840309514423 -0.005545387925678226 0.0968868397785986 0.005413767734014727 0.995280679706302 0 0 0 0 0 0
|
||||
4 0.4640248981573186 -7.44074583944898e-17 0.1600000000000001 1 0 0 0 1 0 0 0 1 0 0 -0 0 0 0
|
||||
1 0.121 8.796847998598882e-19 0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 0.1853423520676719 -0.0003049963359123015 0.1415220993435272 0.9952959831601956 -0.0005372420906749175 -0.09687939551894111 0 0.9999846242181696 -0.005545387925678225 0.09688088513829453 0.005519302327492586 0.995280679706302 0 -0 -0 0 0 0
|
||||
3 0.3222616402245218 -0.0002911328660981436 0.1799682739051886 0.9952948074630237 -0.001621407113303408 -0.09687939551894117 0.001089272628257954 0.9999840309514423 -0.005545387925678226 0.0968868397785986 0.005413767734014727 0.995280679706302 0 0 0 0 0 0
|
||||
4 0.4640248981573186 -7.44074583944898e-17 0.1600000000000001 1 0 0 0 1 0 0 0 1 0 0 -0 0 0 0
|
||||
1 0.121 8.796847998598882e-19 0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 0.1853423520676719 -0.0003049963359123015 0.1415220993435272 0.9952959831601956 -0.0005372420906749176 -0.09687939551894122 -4.336808689942018e-19 0.9999846242181696 -0.005545387925678225 0.09688088513829464 0.005519302327492586 0.995280679706302 0 -0 -0 0 0 0
|
||||
3 0.3222616402245218 -0.0002911328660981436 0.1799682739051886 0.9952948074630237 -0.001621407113303408 -0.09687939551894117 0.001089272628257954 0.9999840309514423 -0.005545387925678226 0.0968868397785986 0.005413767734014727 0.995280679706302 0 0 0 0 0 0
|
||||
4 0.4640248981573186 -7.44074583944898e-17 0.1600000000000001 1 0 0 0 1 0 0 0 1 0 0 -0 0 0 0
|
||||
1 0.121 8.796847998598882e-19 0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 0.1853423520676719 -0.0003049963359123014 0.1415220993435272 0.9952959831601956 -0.0005372420906749176 -0.09687939551894111 2.168404344971009e-19 0.9999846242181696 -0.005545387925678225 0.09688088513829453 0.005519302327492586 0.995280679706302 0 -0 -0 0 0 0
|
||||
3 0.3222616402245218 -0.0002911328660981436 0.1799682739051886 0.9952948074630237 -0.001621407113303408 -0.09687939551894117 0.001089272628257954 0.9999840309514423 -0.005545387925678226 0.0968868397785986 0.005413767734014727 0.995280679706302 0 0 0 0 0 0
|
||||
4 0.4640248981573186 -7.44074583944898e-17 0.1600000000000001 1 0 0 0 1 0 0 0 1 0 0 -0 0 0 0
|
||||
1 0.121 8.796847998598882e-19 0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 0.1853423520676719 -0.0003049963359123014 0.1415220993435272 0.9952959831601956 -0.0005372420906749175 -0.09687939551894122 -6.505213034913027e-19 0.9999846242181696 -0.005545387925678225 0.09688088513829464 0.005519302327492586 0.995280679706302 0 -0 -0 0 0 0
|
||||
3 0.3222616402245218 -0.0002911328660981436 0.1799682739051886 0.9952948074630237 -0.001621407113303408 -0.09687939551894117 0.001089272628257954 0.9999840309514423 -0.005545387925678226 0.0968868397785986 0.005413767734014727 0.995280679706302 0 0 0 0 0 0
|
||||
4 0.4640248981573186 -7.44074583944898e-17 0.1600000000000001 1 0 0 0 1 0 0 0 1 0 0 -0 0 0 0
|
||||
1 0.121 8.796847998598882e-19 0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 0.1853423520676719 -0.0003049963359123015 0.1415220993435272 0.9952959831601956 -0.0005372420906749175 -0.09687939551894111 0 0.9999846242181696 -0.005545387925678225 0.09688088513829453 0.005519302327492586 0.995280679706302 0 -0 -0 0 0 0
|
||||
3 0.3222616402245218 -0.0002911328660981436 0.1799682739051886 0.9952948074630237 -0.001621407113303408 -0.09687939551894117 0.001089272628257954 0.9999840309514423 -0.005545387925678226 0.0968868397785986 0.005413767734014727 0.995280679706302 0 0 0 0 0 0
|
||||
4 0.4640248981573186 -7.44074583944898e-17 0.1600000000000001 1 0 0 0 1 0 0 0 1 0 0 -0 0 0 0
|
||||
1 0.121 8.796847998598882e-19 0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 0.1853423520676719 -0.0003049963359123015 0.1415220993435272 0.9952959831601956 -0.0005372420906749176 -0.09687939551894122 -4.336808689942018e-19 0.9999846242181696 -0.005545387925678225 0.09688088513829464 0.005519302327492586 0.995280679706302 0 -0 -0 0 0 0
|
||||
3 0.3222616402245218 -0.0002911328660981436 0.1799682739051886 0.9952948074630237 -0.001621407113303408 -0.09687939551894117 0.001089272628257954 0.9999840309514423 -0.005545387925678226 0.0968868397785986 0.005413767734014727 0.995280679706302 0 0 0 0 0 0
|
||||
4 0.4640248981573186 -7.44074583944898e-17 0.1600000000000001 1 0 0 0 1 0 0 0 1 0 0 -0 0 0 0
|
||||
1 0.121 8.796847998598882e-19 0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 0.1853423520676719 -0.0003049963359123014 0.1415220993435272 0.9952959831601956 -0.0005372420906749176 -0.09687939551894111 2.168404344971009e-19 0.9999846242181696 -0.005545387925678225 0.09688088513829453 0.005519302327492586 0.995280679706302 0 -0 -0 0 0 0
|
||||
3 0.3222616402245218 -0.0002911328660981436 0.1799682739051886 0.9952948074630237 -0.001621407113303408 -0.09687939551894117 0.001089272628257954 0.9999840309514423 -0.005545387925678226 0.0968868397785986 0.005413767734014727 0.995280679706302 0 0 0 0 0 0
|
||||
4 0.4640248981573186 -7.44074583944898e-17 0.1600000000000001 1 0 0 0 1 0 0 0 1 0 0 -0 0 0 0
|
||||
1 0.121 8.796847998598882e-19 0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 0.1853423520676719 -0.0003049963359123014 0.1415220993435272 0.9952959831601956 -0.0005372420906749175 -0.09687939551894122 -6.505213034913027e-19 0.9999846242181696 -0.005545387925678225 0.09688088513829464 0.005519302327492586 0.995280679706302 0 -0 -0 0 0 0
|
||||
3 0.3222616402245218 -0.0002911328660981436 0.1799682739051886 0.9952948074630237 -0.001621407113303408 -0.09687939551894117 0.001089272628257954 0.9999840309514423 -0.005545387925678226 0.0968868397785986 0.005413767734014727 0.995280679706302 0 0 0 0 0 0
|
||||
4 0.4640248981573186 -7.44074583944898e-17 0.1600000000000001 1 0 0 0 1 0 0 0 1 0 0 -0 0 0 0
|
||||
1 0.121 8.796847998598882e-19 0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 0.1853423520676719 -0.0003049963359123015 0.1415220993435272 0.9952959831601956 -0.0005372420906749175 -0.09687939551894111 0 0.9999846242181696 -0.005545387925678225 0.09688088513829453 0.005519302327492586 0.995280679706302 0 -0 -0 0 0 0
|
||||
3 0.3222616402245218 -0.0002911328660981436 0.1799682739051886 0.9952948074630237 -0.001621407113303408 -0.09687939551894117 0.001089272628257954 0.9999840309514423 -0.005545387925678226 0.0968868397785986 0.005413767734014727 0.995280679706302 0 0 0 0 0 0
|
||||
4 0.4640248981573186 -7.44074583944898e-17 0.1600000000000001 1 0 0 0 1 0 0 0 1 0 0 -0 0 0 0
|
||||
1 0.121 8.796847998598882e-19 0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 0.1853423520676719 -0.0003049963359123015 0.1415220993435272 0.9952959831601956 -0.0005372420906749176 -0.09687939551894122 -4.336808689942018e-19 0.9999846242181696 -0.005545387925678225 0.09688088513829464 0.005519302327492586 0.995280679706302 0 -0 -0 0 0 0
|
||||
3 0.3222616402245218 -0.0002911328660981436 0.1799682739051886 0.9952948074630237 -0.001621407113303408 -0.09687939551894117 0.001089272628257954 0.9999840309514423 -0.005545387925678226 0.0968868397785986 0.005413767734014727 0.995280679706302 0 0 0 0 0 0
|
||||
4 0.4640248981573186 -7.44074583944898e-17 0.1600000000000001 1 0 0 0 1 0 0 0 1 0 0 -0 0 0 0
|
||||
1 0.121 8.796847998598882e-19 0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 0.1853423520676719 -0.0003049963359123014 0.1415220993435272 0.9952959831601956 -0.0005372420906749176 -0.09687939551894111 2.168404344971009e-19 0.9999846242181696 -0.005545387925678225 0.09688088513829453 0.005519302327492586 0.995280679706302 0 -0 -0 0 0 0
|
||||
3 0.3222616402245218 -0.0002911328660981436 0.1799682739051886 0.9952948074630237 -0.001621407113303408 -0.09687939551894117 0.001089272628257954 0.9999840309514423 -0.005545387925678226 0.0968868397785986 0.005413767734014727 0.995280679706302 0 0 0 0 0 0
|
||||
4 0.4640248981573186 -7.44074583944898e-17 0.1600000000000001 1 0 0 0 1 0 0 0 1 0 0 -0 0 0 0
|
||||
1 0.121 8.796847998598882e-19 0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 0.1853423520676719 -0.0003049963359123014 0.1415220993435272 0.9952959831601956 -0.0005372420906749175 -0.09687939551894122 -6.505213034913027e-19 0.9999846242181696 -0.005545387925678225 0.09688088513829464 0.005519302327492586 0.995280679706302 0 -0 -0 0 0 0
|
||||
3 0.3222616402245218 -0.0002911328660981436 0.1799682739051886 0.9952948074630237 -0.001621407113303408 -0.09687939551894117 0.001089272628257954 0.9999840309514423 -0.005545387925678226 0.0968868397785986 0.005413767734014727 0.995280679706302 0 0 0 0 0 0
|
||||
4 0.4640248981573186 -7.44074583944898e-17 0.1600000000000001 1 0 0 0 1 0 0 0 1 0 0 -0 0 0 0
|
||||
1 0.121 8.796847998598882e-19 0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 0.1853423520676719 -0.0003049963359123015 0.1415220993435272 0.9952959831601956 -0.0005372420906749175 -0.09687939551894111 0 0.9999846242181696 -0.005545387925678225 0.09688088513829453 0.005519302327492586 0.995280679706302 0 -0 -0 0 0 0
|
||||
3 0.3222616402245218 -0.0002911328660981436 0.1799682739051886 0.9952948074630237 -0.001621407113303408 -0.09687939551894117 0.001089272628257954 0.9999840309514423 -0.005545387925678226 0.0968868397785986 0.005413767734014727 0.995280679706302 0 0 0 0 0 0
|
||||
4 0.4640248981573186 -7.44074583944898e-17 0.1600000000000001 1 0 0 0 1 0 0 0 1 0 0 -0 0 0 0
|
||||
1 0.121 8.796847998598882e-19 0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 0.1853423520676719 -0.0003049963359123015 0.1415220993435272 0.9952959831601956 -0.0005372420906749176 -0.09687939551894122 -4.336808689942018e-19 0.9999846242181696 -0.005545387925678225 0.09688088513829464 0.005519302327492586 0.995280679706302 0 -0 -0 0 0 0
|
||||
3 0.3222616402245218 -0.0002911328660981436 0.1799682739051886 0.9952948074630237 -0.001621407113303408 -0.09687939551894117 0.001089272628257954 0.9999840309514423 -0.005545387925678226 0.0968868397785986 0.005413767734014727 0.995280679706302 0 0 0 0 0 0
|
||||
4 0.4640248981573186 -7.44074583944898e-17 0.1600000000000001 1 0 0 0 1 0 0 0 1 0 0 -0 0 0 0
|
||||
1 0.121 8.796847998598882e-19 0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 0.1853423520676719 -0.0003049963359123014 0.1415220993435272 0.9952959831601956 -0.0005372420906749176 -0.09687939551894111 2.168404344971009e-19 0.9999846242181696 -0.005545387925678225 0.09688088513829453 0.005519302327492586 0.995280679706302 0 -0 -0 0 0 0
|
||||
3 0.3222616402245218 -0.0002911328660981436 0.1799682739051886 0.9952948074630237 -0.001621407113303408 -0.09687939551894117 0.001089272628257954 0.9999840309514423 -0.005545387925678226 0.0968868397785986 0.005413767734014727 0.995280679706302 0 0 0 0 0 0
|
||||
4 0.4640248981573186 -7.44074583944898e-17 0.1600000000000001 1 0 0 0 1 0 0 0 1 0 0 -0 0 0 0
|
||||
1 0.121 8.796847998598882e-19 0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 0.1853423520676719 -0.0003049963359123014 0.1415220993435272 0.9952959831601956 -0.0005372420906749175 -0.09687939551894122 -6.505213034913027e-19 0.9999846242181696 -0.005545387925678225 0.09688088513829464 0.005519302327492586 0.995280679706302 0 -0 -0 0 0 0
|
||||
3 0.3222616402245218 -0.0002911328660981436 0.1799682739051886 0.9952948074630237 -0.001621407113303408 -0.09687939551894117 0.001089272628257954 0.9999840309514423 -0.005545387925678226 0.0968868397785986 0.005413767734014727 0.995280679706302 0 0 0 0 0 0
|
||||
4 0.4640248981573186 -7.44074583944898e-17 0.1600000000000001 1 0 0 0 1 0 0 0 1 0 0 -0 0 0 0
|
||||
1 0.121 8.796847998598882e-19 0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 0.1853423520676719 -0.0003049963359123015 0.1415220993435272 0.9952959831601956 -0.0005372420906749175 -0.09687939551894111 0 0.9999846242181696 -0.005545387925678225 0.09688088513829453 0.005519302327492586 0.995280679706302 0 -0 -0 0 0 0
|
||||
3 0.3222616402245218 -0.0002911328660981436 0.1799682739051886 0.9952948074630237 -0.001621407113303408 -0.09687939551894117 0.001089272628257954 0.9999840309514423 -0.005545387925678226 0.0968868397785986 0.005413767734014727 0.995280679706302 0 0 0 0 0 0
|
||||
4 0.4640248981573186 -7.44074583944898e-17 0.1600000000000001 1 0 0 0 1 0 0 0 1 0 0 -0 0 0 0
|
||||
1 0.121 8.796847998598882e-19 0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 0.1853423520676719 -0.0003049963359123015 0.1415220993435272 0.9952959831601956 -0.0005372420906749176 -0.09687939551894122 -4.336808689942018e-19 0.9999846242181696 -0.005545387925678225 0.09688088513829464 0.005519302327492586 0.995280679706302 0 -0 -0 0 0 0
|
||||
3 0.3222616402245218 -0.0002911328660981436 0.1799682739051886 0.9952948074630237 -0.001621407113303408 -0.09687939551894117 0.001089272628257954 0.9999840309514423 -0.005545387925678226 0.0968868397785986 0.005413767734014727 0.995280679706302 0 0 0 0 0 0
|
||||
4 0.4640248981573186 -7.44074583944898e-17 0.1600000000000001 1 0 0 0 1 0 0 0 1 0 0 -0 0 0 0
|
||||
1 0.121 8.796847998598882e-19 0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 0.1853423520676719 -0.0003049963359123014 0.1415220993435272 0.9952959831601956 -0.0005372420906749176 -0.09687939551894111 2.168404344971009e-19 0.9999846242181696 -0.005545387925678225 0.09688088513829453 0.005519302327492586 0.995280679706302 0 -0 -0 0 0 0
|
||||
3 0.3222616402245218 -0.0002911328660981436 0.1799682739051886 0.9952948074630237 -0.001621407113303408 -0.09687939551894117 0.001089272628257954 0.9999840309514423 -0.005545387925678226 0.0968868397785986 0.005413767734014727 0.995280679706302 0 0 0 0 0 0
|
||||
4 0.4640248981573186 -7.44074583944898e-17 0.1600000000000001 1 0 0 0 1 0 0 0 1 0 0 -0 0 0 0
|
||||
1 0.121 8.796847998598882e-19 0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 0.1853423520676719 -0.0003049963359123014 0.1415220993435272 0.9952959831601956 -0.0005372420906749175 -0.09687939551894122 -6.505213034913027e-19 0.9999846242181696 -0.005545387925678225 0.09688088513829464 0.005519302327492586 0.995280679706302 0 -0 -0 0 0 0
|
||||
3 0.3222616402245218 -0.0002911328660981436 0.1799682739051886 0.9952948074630237 -0.001621407113303408 -0.09687939551894117 0.001089272628257954 0.9999840309514423 -0.005545387925678226 0.0968868397785986 0.005413767734014727 0.995280679706302 0 0 0 0 0 0
|
||||
4 0.4640248981573186 -7.44074583944898e-17 0.1600000000000001 1 0 0 0 1 0 0 0 1 0 0 -0 0 0 0
|
||||
1 0.121 8.796847998598882e-19 0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 0.1853423520676719 -0.0003049963359123015 0.1415220993435272 0.9952959831601956 -0.0005372420906749175 -0.09687939551894111 0 0.9999846242181696 -0.005545387925678225 0.09688088513829453 0.005519302327492586 0.995280679706302 0 -0 -0 0 0 0
|
||||
3 0.3222616402245218 -0.0002911328660981436 0.1799682739051886 0.9952948074630237 -0.001621407113303408 -0.09687939551894117 0.001089272628257954 0.9999840309514423 -0.005545387925678226 0.0968868397785986 0.005413767734014727 0.995280679706302 0 0 0 0 0 0
|
||||
4 0.4640248981573186 -7.44074583944898e-17 0.1600000000000001 1 0 0 0 1 0 0 0 1 0 0 -0 0 0 0
|
||||
1 0.121 8.796847998598882e-19 0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 0.1853423520676719 -0.0003049963359123015 0.1415220993435272 0.9952959831601956 -0.0005372420906749176 -0.09687939551894122 -4.336808689942018e-19 0.9999846242181696 -0.005545387925678225 0.09688088513829464 0.005519302327492586 0.995280679706302 0 -0 -0 0 0 0
|
||||
3 0.3222616402245218 -0.0002911328660981436 0.1799682739051886 0.9952948074630237 -0.001621407113303408 -0.09687939551894117 0.001089272628257954 0.9999840309514423 -0.005545387925678226 0.0968868397785986 0.005413767734014727 0.995280679706302 0 0 0 0 0 0
|
||||
4 0.4640248981573186 -7.44074583944898e-17 0.1600000000000001 1 0 0 0 1 0 0 0 1 0 0 -0 0 0 0
|
||||
1 -0.121 -8.796847998598882e-19 -0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 -0.04869259570202728 -0.001985390890606622 -0.02810879162419696 0.9990678575462876 0.001558253989975219 0.04313916854059263 2.168404344971009e-18 0.9993482542271943 -0.03609801619284766 -0.04316730264761665 0.03606436769945951 0.9984167192933857 0 -0 -0 0 0 0
|
||||
3 0.0922534106532278 -0.001895145850124541 -0.009155819605617083 0.9990537652981445 -0.005530477486285016 0.04313916854059265 0.007090681752166227 0.9993230986318842 -0.03609801619284764 -0.04291032831253404 0.03636974511243224 0.9984167192933857 0 0 0 0 0 -0
|
||||
4 0.2310424585814532 -7.816912863716824e-17 7.816912871471643e-17 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0
|
||||
1 -0.121 -8.796847998598882e-19 -0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 -0.04869259570202728 -0.001985390890606622 -0.02810879162419695 0.9990678575462876 0.001558253989975216 0.04313916854059258 3.469446951953614e-18 0.9993482542271943 -0.03609801619284765 -0.04316730264761659 0.0360643676994595 0.9984167192933857 0 -0 -0 0 0 0
|
||||
3 0.09225341065322781 -0.001895145850124542 -0.009155819605617056 0.9990537652981445 -0.00553047748628502 0.04313916854059259 0.007090681752166229 0.9993230986318842 -0.03609801619284766 -0.04291032831253398 0.03636974511243225 0.9984167192933857 0 0 0 0 0 -0
|
||||
4 0.2310424585814533 -7.816912863716824e-17 7.816912871471643e-17 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0
|
||||
1 -0.121 -8.796847998598882e-19 -0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 -0.04869259570202727 -0.001985390890606623 -0.02810879162419695 0.9990678575462876 0.001558253989975217 0.04313916854059247 -1.084202172485504e-18 0.9993482542271943 -0.03609801619284767 -0.04316730264761648 0.03606436769945952 0.9984167192933857 0 -0 -0 0 0 0
|
||||
3 0.09225341065322781 -0.001895145850124542 -0.009155819605617056 0.9990537652981445 -0.005530477486285023 0.04313916854059251 0.007090681752166229 0.9993230986318842 -0.03609801619284766 -0.0429103283125339 0.03636974511243225 0.9984167192933857 0 0 0 0 0 -0
|
||||
4 0.2310424585814533 -7.816912863716824e-17 7.816912871471643e-17 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0
|
||||
1 -0.121 -8.796847998598882e-19 -0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 -0.04869259570202728 -0.001985390890606622 -0.02810879162419695 0.9990678575462876 0.001558253989975214 0.04313916854059258 5.204170427930421e-18 0.9993482542271943 -0.03609801619284765 -0.04316730264761659 0.0360643676994595 0.9984167192933857 0 -0 -0 0 0 0
|
||||
3 0.0922534106532278 -0.001895145850124542 -0.009155819605617063 0.9990537652981445 -0.005530477486285021 0.04313916854059257 0.007090681752166229 0.9993230986318842 -0.03609801619284766 -0.04291032831253396 0.03636974511243225 0.9984167192933857 0 0 0 0 0 -0
|
||||
4 0.2310424585814533 -7.816912863716824e-17 7.816912871471643e-17 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0
|
||||
1 -0.121 -8.796847998598882e-19 -0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 -0.04869259570202728 -0.001985390890606622 -0.02810879162419696 0.9990678575462876 0.001558253989975221 0.04313916854059258 -1.301042606982605e-18 0.9993482542271943 -0.03609801619284767 -0.04316730264761659 0.03606436769945952 0.9984167192933857 0 -0 -0 0 0 0
|
||||
3 0.09225341065322783 -0.001895145850124541 -0.009155819605617063 0.9990537652981445 -0.005530477486285021 0.04313916854059256 0.007090681752166228 0.9993230986318842 -0.03609801619284764 -0.04291032831253395 0.03636974511243224 0.9984167192933857 0 0 0 0 0 -0
|
||||
4 0.2310424585814533 -7.816912863716824e-17 7.816912871471643e-17 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0
|
||||
1 -0.121 -8.796847998598882e-19 -0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 -0.04869259570202728 -0.001985390890606623 -0.02810879162419695 0.9990678575462876 0.001558253989975222 0.04313916854059258 -1.517883041479706e-18 0.9993482542271943 -0.03609801619284768 -0.04316730264761659 0.03606436769945953 0.9984167192933857 0 -0 -0 0 0 0
|
||||
3 0.09225341065322783 -0.001895145850124542 -0.009155819605617049 0.9990537652981445 -0.005530477486285022 0.04313916854059257 0.00709068175216623 0.9993230986318842 -0.03609801619284766 -0.04291032831253396 0.03636974511243225 0.9984167192933857 0 0 0 0 0 -0
|
||||
4 0.2310424585814533 -7.816912863716824e-17 7.816912871471643e-17 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0
|
||||
1 -0.121 -8.796847998598882e-19 -0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 -0.04869259570202727 -0.001985390890606623 -0.02810879162419695 0.9990678575462876 0.001558253989975214 0.04313916854059247 1.517883041479706e-18 0.9993482542271943 -0.03609801619284767 -0.04316730264761648 0.03606436769945952 0.9984167192933857 0 -0 -0 0 0 0
|
||||
3 0.09225341065322781 -0.001895145850124542 -0.009155819605617042 0.9990537652981445 -0.005530477486285025 0.04313916854059247 0.00709068175216623 0.9993230986318842 -0.03609801619284766 -0.04291032831253386 0.03636974511243225 0.9984167192933857 0 0 0 0 0 -0
|
||||
4 0.2310424585814533 -7.816912863716824e-17 7.816912871471643e-17 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0
|
||||
1 -0.121 -8.796847998598882e-19 -0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 -0.0486925957020273 -0.001985390890606622 -0.02810879162419695 0.9990678575462876 0.001558253989975217 0.04313916854059252 2.168404344971009e-19 0.9993482542271943 -0.03609801619284767 -0.04316730264761653 0.03606436769945952 0.9984167192933857 0 -0 -0 0 0 0
|
||||
3 0.0922534106532278 -0.001895145850124542 -0.009155819605617056 0.9990537652981445 -0.005530477486285023 0.04313916854059251 0.00709068175216623 0.9993230986318842 -0.03609801619284766 -0.04291032831253391 0.03636974511243225 0.9984167192933857 0 0 0 0 0 -0
|
||||
4 0.2310424585814533 -7.816912863716824e-17 7.816912871471643e-17 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0
|
||||
1 -0.121 -8.796847998598882e-19 -0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 -0.04869259570202728 -0.001985390890606622 -0.02810879162419695 0.9990678575462876 0.001558253989975217 0.04313916854059258 2.168404344971009e-18 0.9993482542271943 -0.03609801619284767 -0.04316730264761659 0.03606436769945952 0.9984167192933857 0 -0 -0 0 0 0
|
||||
3 0.09225341065322781 -0.001895145850124542 -0.009155819605617056 0.9990537652981445 -0.005530477486285022 0.04313916854059258 0.007090681752166231 0.9993230986318842 -0.03609801619284766 -0.04291032831253397 0.03636974511243225 0.9984167192933857 0 0 0 0 0 -0
|
||||
4 0.2310424585814533 -7.816912863716824e-17 7.816912871471643e-17 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0
|
||||
1 -0.121 -8.796847998598882e-19 -0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 -0.04869259570202727 -0.001985390890606623 -0.02810879162419695 0.9990678575462876 0.001558253989975217 0.04313916854059247 -1.084202172485504e-18 0.9993482542271943 -0.03609801619284767 -0.04316730264761648 0.03606436769945952 0.9984167192933857 0 -0 -0 0 0 0
|
||||
3 0.09225341065322781 -0.001895145850124542 -0.009155819605617056 0.9990537652981445 -0.005530477486285022 0.04313916854059251 0.007090681752166228 0.9993230986318842 -0.03609801619284766 -0.04291032831253391 0.03636974511243225 0.9984167192933857 0 0 0 0 0 -0
|
||||
4 0.2310424585814533 -7.816912863716824e-17 7.816912871471643e-17 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0
|
||||
1 -0.121 -8.796847998598882e-19 -0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 -0.04869259570202728 -0.001985390890606622 -0.02810879162419695 0.9990678575462876 0.001558253989975215 0.04313916854059258 4.77048955893622e-18 0.9993482542271943 -0.03609801619284767 -0.04316730264761659 0.03606436769945952 0.9984167192933857 0 -0 -0 0 0 0
|
||||
3 0.0922534106532278 -0.001895145850124542 -0.009155819605617063 0.9990537652981445 -0.005530477486285021 0.04313916854059257 0.007090681752166229 0.9993230986318842 -0.03609801619284766 -0.04291032831253396 0.03636974511243225 0.9984167192933857 0 0 0 0 0 -0
|
||||
4 0.2310424585814533 -7.816912863716824e-17 7.816912871471643e-17 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0
|
||||
1 -0.121 -8.796847998598882e-19 -0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 -0.04869259570202727 -0.001985390890606622 -0.02810879162419696 0.9990678575462876 0.001558253989975215 0.04313916854059252 2.168404344971009e-18 0.9993482542271943 -0.03609801619284766 -0.04316730264761653 0.03606436769945951 0.9984167192933857 0 -0 -0 0 0 0
|
||||
3 0.09225341065322783 -0.001895145850124542 -0.009155819605617063 0.9990537652981445 -0.005530477486285022 0.04313916854059256 0.00709068175216623 0.9993230986318842 -0.03609801619284766 -0.04291032831253395 0.03636974511243225 0.9984167192933857 0 0 0 0 0 -0
|
||||
4 0.2310424585814533 -7.816912863716824e-17 7.816912871471643e-17 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0
|
||||
1 -0.121 -8.796847998598882e-19 -0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 -0.04869259570202728 -0.001985390890606622 -0.02810879162419696 0.9990678575462876 0.001558253989975218 0.04313916854059258 1.301042606982605e-18 0.9993482542271943 -0.03609801619284767 -0.04316730264761659 0.03606436769945952 0.9984167192933857 0 -0 -0 0 0 0
|
||||
3 0.0922534106532278 -0.001895145850124541 -0.009155819605617069 0.9990537652981445 -0.00553047748628502 0.04313916854059258 0.007090681752166228 0.9993230986318842 -0.03609801619284766 -0.04291032831253397 0.03636974511243225 0.9984167192933857 0 0 0 0 0 -0
|
||||
4 0.2310424585814533 -7.816912863716824e-17 7.816912871471643e-17 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0
|
||||
1 -0.121 -8.796847998598882e-19 -0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 -0.04869259570202728 -0.001985390890606622 -0.02810879162419696 0.9990678575462876 0.001558253989975219 0.04313916854059263 2.602085213965211e-18 0.9993482542271943 -0.03609801619284767 -0.04316730264761665 0.03606436769945952 0.9984167192933857 0 -0 -0 0 0 0
|
||||
3 0.09225341065322783 -0.001895145850124542 -0.009155819605617069 0.9990537652981445 -0.00553047748628502 0.0431391685405926 0.007090681752166229 0.9993230986318842 -0.03609801619284766 -0.042910328312534 0.03636974511243225 0.9984167192933857 0 0 0 0 0 -0
|
||||
4 0.2310424585814533 -7.816912863716824e-17 7.816912871471643e-17 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0
|
||||
1 -0.121 -8.796847998598882e-19 -0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 -0.04869259570202728 -0.001985390890606622 -0.02810879162419696 0.9990678575462876 0.00155825398997522 0.04313916854059258 -4.336808689942018e-19 0.9993482542271943 -0.03609801619284767 -0.04316730264761659 0.03606436769945952 0.9984167192933857 0 -0 -0 0 0 0
|
||||
3 0.09225341065322781 -0.001895145850124542 -0.009155819605617063 0.9990537652981445 -0.005530477486285022 0.0431391685405926 0.007090681752166231 0.9993230986318842 -0.03609801619284766 -0.04291032831253399 0.03636974511243225 0.9984167192933857 0 0 0 0 0 -0
|
||||
4 0.2310424585814533 -7.816912863716824e-17 7.816912871471643e-17 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0
|
||||
1 -0.121 -8.796847998598882e-19 -0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 -0.04869259570202727 -0.001985390890606623 -0.02810879162419695 0.9990678575462876 0.001558253989975219 0.04313916854059252 -8.673617379884035e-19 0.9993482542271943 -0.03609801619284767 -0.04316730264761653 0.03606436769945952 0.9984167192933857 0 -0 -0 0 0 0
|
||||
3 0.09225341065322783 -0.001895145850124542 -0.009155819605617056 0.9990537652981445 -0.005530477486285022 0.04313916854059256 0.00709068175216623 0.9993230986318842 -0.03609801619284766 -0.04291032831253395 0.03636974511243225 0.9984167192933857 0 0 0 0 0 -0
|
||||
4 0.2310424585814533 -7.816912863716824e-17 7.816912871471643e-17 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0
|
||||
1 -0.121 -8.796847998598882e-19 -0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 -0.04869259570202728 -0.001985390890606622 -0.02810879162419695 0.9990678575462876 0.00155825398997522 0.04313916854059258 -4.336808689942018e-19 0.9993482542271943 -0.03609801619284767 -0.04316730264761659 0.03606436769945952 0.9984167192933857 0 -0 -0 0 0 0
|
||||
3 0.0922534106532278 -0.001895145850124542 -0.009155819605617063 0.9990537652981445 -0.005530477486285022 0.04313916854059258 0.00709068175216623 0.9993230986318842 -0.03609801619284766 -0.04291032831253397 0.03636974511243225 0.9984167192933857 0 0 0 0 0 -0
|
||||
4 0.2310424585814533 -7.816912863716824e-17 7.816912871471643e-17 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0
|
||||
1 -0.121 -8.796847998598882e-19 -0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 -0.04869259570202727 -0.001985390890606623 -0.02810879162419695 0.9990678575462876 0.001558253989975218 0.04313916854059252 0 0.9993482542271943 -0.03609801619284767 -0.04316730264761653 0.03606436769945952 0.9984167192933857 0 -0 -0 0 0 0
|
||||
3 0.09225341065322783 -0.001895145850124542 -0.009155819605617063 0.9990537652981445 -0.005530477486285022 0.04313916854059256 0.007090681752166229 0.9993230986318842 -0.03609801619284766 -0.04291032831253395 0.03636974511243225 0.9984167192933857 0 0 0 0 0 -0
|
||||
4 0.2310424585814533 -7.816912863716824e-17 7.816912871471643e-17 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0
|
||||
1 -0.121 -8.796847998598882e-19 -0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 -0.04869259570202728 -0.001985390890606622 -0.02810879162419695 0.9990678575462876 0.001558253989975218 0.04313916854059263 3.469446951953614e-18 0.9993482542271943 -0.03609801619284767 -0.04316730264761665 0.03606436769945952 0.9984167192933857 0 -0 -0 0 0 0
|
||||
3 0.0922534106532278 -0.001895145850124542 -0.009155819605617063 0.9990537652981445 -0.005530477486285019 0.0431391685405926 0.007090681752166229 0.9993230986318842 -0.03609801619284767 -0.04291032831253399 0.03636974511243227 0.9984167192933857 0 0 0 0 0 -0
|
||||
4 0.2310424585814533 -7.816912863716824e-17 7.816912871471643e-17 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0
|
||||
1 -0.121 -8.796847998598882e-19 -0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 -0.04869259570202728 -0.001985390890606622 -0.02810879162419696 0.9990678575462876 0.001558253989975215 0.04313916854059258 4.336808689942018e-18 0.9993482542271943 -0.03609801619284765 -0.04316730264761659 0.0360643676994595 0.9984167192933857 0 -0 -0 0 0 0
|
||||
3 0.09225341065322781 -0.001895145850124541 -0.009155819605617069 0.9990537652981445 -0.005530477486285019 0.04313916854059258 0.007090681752166228 0.9993230986318842 -0.03609801619284766 -0.04291032831253398 0.03636974511243225 0.9984167192933857 0 0 0 0 0 -0
|
||||
4 0.2310424585814533 -7.816912863716824e-17 7.816912871471643e-17 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0
|
||||
1 -0.121 -8.796847998598882e-19 -0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 -0.04869259570202728 -0.001985390890606622 -0.02810879162419695 0.9990678575462876 0.001558253989975221 0.04313916854059263 8.673617379884035e-19 0.9993482542271943 -0.03609801619284767 -0.04316730264761665 0.03606436769945952 0.9984167192933857 0 -0 -0 0 0 0
|
||||
3 0.09225341065322783 -0.001895145850124542 -0.009155819605617063 0.9990537652981445 -0.005530477486285019 0.04313916854059261 0.007090681752166228 0.9993230986318842 -0.03609801619284766 -0.042910328312534 0.03636974511243225 0.9984167192933857 0 0 0 0 0 -0
|
||||
4 0.2310424585814533 -7.816912863716824e-17 7.816912871471643e-17 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0
|
||||
1 -0.121 -8.796847998598882e-19 -0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 -0.04869259570202728 -0.001985390890606622 -0.02810879162419696 0.9990678575462876 0.00155825398997522 0.04313916854059258 -4.336808689942018e-19 0.9993482542271943 -0.03609801619284767 -0.04316730264761659 0.03606436769945952 0.9984167192933857 0 -0 -0 0 0 0
|
||||
3 0.09225341065322781 -0.001895145850124542 -0.009155819605617063 0.9990537652981445 -0.005530477486285021 0.04313916854059255 0.007090681752166228 0.9993230986318842 -0.03609801619284766 -0.04291032831253394 0.03636974511243225 0.9984167192933857 0 0 0 0 0 -0
|
||||
4 0.2310424585814533 -7.816912863716824e-17 7.816912871471643e-17 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0
|
||||
1 -0.121 -8.796847998598882e-19 -0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 -0.04869259570202728 -0.001985390890606622 -0.02810879162419695 0.9990678575462876 0.00155825398997522 0.04313916854059263 1.734723475976807e-18 0.9993482542271943 -0.03609801619284767 -0.04316730264761665 0.03606436769945952 0.9984167192933857 0 -0 -0 0 0 0
|
||||
3 0.09225341065322783 -0.001895145850124542 -0.009155819605617056 0.9990537652981445 -0.005530477486285022 0.04313916854059258 0.00709068175216623 0.9993230986318842 -0.03609801619284766 -0.04291032831253398 0.03636974511243225 0.9984167192933857 0 0 0 0 0 -0
|
||||
4 0.2310424585814533 -7.816912863716824e-17 7.816912871471643e-17 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0
|
||||
1 -0.121 -8.796847998598882e-19 -0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 -0.04869259570202728 -0.001985390890606623 -0.02810879162419696 0.9990678575462876 0.001558253989975217 0.04313916854059252 8.673617379884035e-19 0.9993482542271943 -0.03609801619284768 -0.04316730264761653 0.03606436769945953 0.9984167192933857 0 -0 -0 0 0 0
|
||||
3 0.09225341065322781 -0.001895145850124542 -0.009155819605617056 0.9990537652981445 -0.005530477486285025 0.04313916854059252 0.007090681752166232 0.9993230986318842 -0.03609801619284766 -0.04291032831253391 0.03636974511243225 0.9984167192933857 0 0 0 0 0 -0
|
||||
4 0.2310424585814533 -7.816912863716824e-17 7.816912871471643e-17 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0
|
||||
1 -0.121 -8.796847998598882e-19 -0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 -0.04869259570202728 -0.001985390890606623 -0.02810879162419696 0.9990678575462876 0.001558253989975217 0.04313916854059258 2.818925648462312e-18 0.9993482542271943 -0.03609801619284768 -0.04316730264761659 0.03606436769945953 0.9984167192933857 0 -0 -0 0 0 0
|
||||
3 0.09225341065322781 -0.001895145850124542 -0.009155819605617056 0.9990537652981445 -0.005530477486285024 0.04313916854059253 0.007090681752166232 0.9993230986318842 -0.03609801619284767 -0.04291032831253392 0.03636974511243227 0.9984167192933857 0 0 0 0 0 -0
|
||||
4 0.2310424585814533 -7.816912863716824e-17 7.816912871471643e-17 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0
|
||||
1 -0.121 -8.796847998598882e-19 -0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 -0.04869259570202727 -0.001985390890606623 -0.02810879162419694 0.9990678575462876 0.001558253989975219 0.04313916854059252 -8.673617379884035e-19 0.9993482542271943 -0.03609801619284767 -0.04316730264761653 0.03606436769945952 0.9984167192933857 0 -0 -0 0 0 0
|
||||
3 0.09225341065322781 -0.001895145850124542 -0.009155819605617049 0.9990537652981445 -0.005530477486285022 0.04313916854059253 0.00709068175216623 0.9993230986318842 -0.03609801619284767 -0.04291032831253393 0.03636974511243227 0.9984167192933857 0 0 0 0 0 -0
|
||||
4 0.2310424585814533 -7.816912863716824e-17 7.816912871471643e-17 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0
|
||||
1 -0.121 -8.796847998598882e-19 -0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 -0.0486925957020273 -0.001985390890606623 -0.02810879162419696 0.9990678575462876 0.001558253989975221 0.04313916854059258 -6.505213034913027e-19 0.9993482542271943 -0.03609801619284768 -0.04316730264761659 0.03606436769945953 0.9984167192933857 0 -0 -0 0 0 0
|
||||
3 0.0922534106532278 -0.001895145850124542 -0.009155819605617063 0.9990537652981445 -0.005530477486285021 0.04313916854059255 0.007090681752166228 0.9993230986318842 -0.03609801619284766 -0.04291032831253394 0.03636974511243225 0.9984167192933857 0 0 0 0 0 -0
|
||||
4 0.2310424585814533 -7.816912863716824e-17 7.816912871471643e-17 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0
|
||||
1 -0.121 -8.796847998598882e-19 -0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 -0.04869259570202728 -0.001985390890606623 -0.02810879162419696 0.9990678575462876 0.00155825398997522 0.04313916854059258 -4.336808689942018e-19 0.9993482542271943 -0.03609801619284767 -0.04316730264761659 0.03606436769945952 0.9984167192933857 0 -0 -0 0 0 0
|
||||
3 0.09225341065322783 -0.001895145850124542 -0.009155819605617063 0.9990537652981445 -0.005530477486285022 0.04313916854059258 0.007090681752166231 0.9993230986318842 -0.03609801619284766 -0.04291032831253397 0.03636974511243225 0.9984167192933857 0 0 0 0 0 -0
|
||||
4 0.2310424585814533 -7.816912863716824e-17 7.816912871471643e-17 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0
|
||||
1 -0.121 -8.796847998598882e-19 -0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 -0.04869259570202727 -0.001985390890606624 -0.02810879162419694 0.9990678575462876 0.001558253989975219 0.04313916854059252 -2.168404344971009e-19 0.9993482542271943 -0.03609801619284769 -0.04316730264761653 0.03606436769945954 0.9984167192933857 0 -0 -0 0 0 0
|
||||
3 0.09225341065322781 -0.001895145850124543 -0.009155819605617049 0.9990537652981445 -0.005530477486285024 0.04313916854059253 0.007090681752166232 0.9993230986318842 -0.03609801619284767 -0.04291032831253393 0.03636974511243227 0.9984167192933857 0 0 0 0 0 -0
|
||||
4 0.2310424585814533 -7.816912863716824e-17 7.816912871471643e-17 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0
|
||||
1 -0.121 -8.796847998598882e-19 -0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 -0.0486925957020273 -0.001985390890606622 -0.02810879162419696 0.9990678575462876 0.001558253989975216 0.04313916854059258 3.035766082959412e-18 0.9993482542271943 -0.03609801619284767 -0.04316730264761659 0.03606436769945952 0.9984167192933857 0 -0 -0 0 0 0
|
||||
3 0.0922534106532278 -0.001895145850124542 -0.009155819605617063 0.9990537652981445 -0.005530477486285022 0.04313916854059255 0.00709068175216623 0.9993230986318842 -0.03609801619284767 -0.04291032831253394 0.03636974511243227 0.9984167192933857 0 0 0 0 0 -0
|
||||
4 0.2310424585814533 -7.816912863716824e-17 7.816912871471643e-17 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0
|
||||
1 -0.121 -8.796847998598882e-19 -0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 -0.04869259570202728 -0.001985390890606623 -0.02810879162419696 0.9990678575462876 0.00155825398997522 0.04313916854059258 2.168404344971009e-19 0.9993482542271943 -0.03609801619284768 -0.04316730264761659 0.03606436769945953 0.9984167192933857 0 -0 -0 0 0 0
|
||||
3 0.09225341065322783 -0.001895145850124542 -0.009155819605617063 0.9990537652981445 -0.005530477486285021 0.04313916854059258 0.00709068175216623 0.9993230986318842 -0.03609801619284767 -0.04291032831253397 0.03636974511243227 0.9984167192933857 0 0 0 0 0 -0
|
||||
4 0.2310424585814533 -7.816912863716824e-17 7.816912871471643e-17 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0
|
||||
1 -0.121 -8.796847998598882e-19 -0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 -0.04869259570202727 -0.001985390890606623 -0.02810879162419694 0.9990678575462876 0.001558253989975219 0.04313916854059252 -8.673617379884035e-19 0.9993482542271943 -0.03609801619284767 -0.04316730264761653 0.03606436769945952 0.9984167192933857 0 -0 -0 0 0 0
|
||||
3 0.09225341065322781 -0.001895145850124543 -0.009155819605617049 0.9990537652981445 -0.005530477486285024 0.04313916854059253 0.007090681752166232 0.9993230986318842 -0.03609801619284767 -0.04291032831253393 0.03636974511243227 0.9984167192933857 0 0 0 0 0 -0
|
||||
4 0.2310424585814533 -7.816912863716824e-17 7.816912871471643e-17 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0
|
||||
1 -0.121 -8.796847998598882e-19 -0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 -0.0486925957020273 -0.001985390890606622 -0.02810879162419696 0.9990678575462876 0.00155825398997522 0.04313916854059258 -4.336808689942018e-19 0.9993482542271943 -0.03609801619284767 -0.04316730264761659 0.03606436769945952 0.9984167192933857 0 -0 -0 0 0 0
|
||||
3 0.0922534106532278 -0.001895145850124542 -0.009155819605617063 0.9990537652981445 -0.005530477486285021 0.04313916854059255 0.007090681752166229 0.9993230986318842 -0.03609801619284767 -0.04291032831253394 0.03636974511243227 0.9984167192933857 0 0 0 0 0 -0
|
||||
4 0.2310424585814533 -7.816912863716824e-17 7.816912871471643e-17 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0
|
||||
1 -0.121 -8.796847998598882e-19 -0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 -0.04869259570202728 -0.001985390890606622 -0.02810879162419696 0.9990678575462876 0.001558253989975219 0.04313916854059258 4.336808689942018e-19 0.9993482542271943 -0.03609801619284767 -0.04316730264761659 0.03606436769945952 0.9984167192933857 0 -0 -0 0 0 0
|
||||
3 0.09225341065322783 -0.001895145850124542 -0.009155819605617063 0.9990537652981445 -0.005530477486285022 0.04313916854059258 0.00709068175216623 0.9993230986318842 -0.03609801619284766 -0.04291032831253397 0.03636974511243225 0.9984167192933857 0 0 0 0 0 -0
|
||||
4 0.2310424585814533 -7.816912863716824e-17 7.816912871471643e-17 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0
|
||||
1 -0.121 -8.796847998598882e-19 -0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 -0.04869259570202727 -0.001985390890606624 -0.02810879162419694 0.9990678575462876 0.00155825398997522 0.04313916854059252 -1.951563910473908e-18 0.9993482542271943 -0.03609801619284769 -0.04316730264761653 0.03606436769945954 0.9984167192933857 0 -0 -0 0 0 0
|
||||
3 0.09225341065322781 -0.001895145850124542 -0.009155819605617049 0.9990537652981445 -0.005530477486285024 0.04313916854059253 0.007090681752166232 0.9993230986318842 -0.03609801619284766 -0.04291032831253393 0.03636974511243225 0.9984167192933857 0 0 0 0 0 -0
|
||||
4 0.2310424585814533 -7.816912863716824e-17 7.816912871471643e-17 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0
|
||||
1 -0.121 -8.796847998598882e-19 -0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 -0.0486925957020273 -0.001985390890606622 -0.02810879162419696 0.9990678575462876 0.001558253989975216 0.04313916854059258 3.903127820947816e-18 0.9993482542271943 -0.03609801619284767 -0.04316730264761659 0.03606436769945952 0.9984167192933857 0 -0 -0 0 0 0
|
||||
3 0.0922534106532278 -0.001895145850124542 -0.009155819605617063 0.9990537652981445 -0.005530477486285022 0.04313916854059255 0.00709068175216623 0.9993230986318842 -0.03609801619284766 -0.04291032831253394 0.03636974511243225 0.9984167192933857 0 0 0 0 0 -0
|
||||
4 0.2310424585814533 -7.816912863716824e-17 7.816912871471643e-17 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0
|
||||
1 -0.121 -8.796847998598882e-19 -0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 -0.04869259570202728 -0.001985390890606622 -0.02810879162419696 0.9990678575462876 0.001558253989975217 0.04313916854059258 2.168404344971009e-18 0.9993482542271943 -0.03609801619284767 -0.04316730264761659 0.03606436769945952 0.9984167192933857 0 -0 -0 0 0 0
|
||||
3 0.09225341065322783 -0.001895145850124542 -0.009155819605617063 0.9990537652981445 -0.005530477486285022 0.04313916854059258 0.00709068175216623 0.9993230986318842 -0.03609801619284766 -0.04291032831253397 0.03636974511243225 0.9984167192933857 0 0 0 0 0 -0
|
||||
4 0.2310424585814533 -7.816912863716824e-17 7.816912871471643e-17 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0
|
||||
1 -0.121 -8.796847998598882e-19 -0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 -0.04869259570202727 -0.001985390890606624 -0.02810879162419694 0.9990678575462876 0.00155825398997522 0.04313916854059252 -1.951563910473908e-18 0.9993482542271943 -0.03609801619284769 -0.04316730264761653 0.03606436769945954 0.9984167192933857 0 -0 -0 0 0 0
|
||||
3 0.09225341065322781 -0.001895145850124542 -0.009155819605617049 0.9990537652981445 -0.005530477486285024 0.04313916854059253 0.007090681752166232 0.9993230986318842 -0.03609801619284766 -0.04291032831253393 0.03636974511243225 0.9984167192933857 0 0 0 0 0 -0
|
||||
4 0.2310424585814533 -7.816912863716824e-17 7.816912871471643e-17 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0
|
||||
1 -0.121 -8.796847998598882e-19 -0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 -0.0486925957020273 -0.001985390890606622 -0.02810879162419696 0.9990678575462876 0.001558253989975216 0.04313916854059258 3.903127820947816e-18 0.9993482542271943 -0.03609801619284767 -0.04316730264761659 0.03606436769945952 0.9984167192933857 0 -0 -0 0 0 0
|
||||
3 0.0922534106532278 -0.001895145850124542 -0.009155819605617063 0.9990537652981445 -0.005530477486285022 0.04313916854059255 0.007090681752166229 0.9993230986318842 -0.03609801619284766 -0.04291032831253394 0.03636974511243225 0.9984167192933857 0 0 0 0 0 -0
|
||||
4 0.2310424585814533 -7.816912863716824e-17 7.816912871471643e-17 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0
|
||||
1 -0.121 -8.796847998598882e-19 -0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 -0.04869259570202728 -0.001985390890606622 -0.02810879162419696 0.9990678575462876 0.001558253989975217 0.04313916854059258 2.168404344971009e-18 0.9993482542271943 -0.03609801619284767 -0.04316730264761659 0.03606436769945952 0.9984167192933857 0 -0 -0 0 0 0
|
||||
3 0.09225341065322783 -0.001895145850124542 -0.009155819605617063 0.9990537652981445 -0.005530477486285022 0.04313916854059258 0.00709068175216623 0.9993230986318842 -0.03609801619284766 -0.04291032831253397 0.03636974511243225 0.9984167192933857 0 0 0 0 0 -0
|
||||
4 0.2310424585814533 -7.816912863716824e-17 7.816912871471643e-17 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0
|
||||
1 -0.121 -8.796847998598882e-19 -0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 -0.04869259570202727 -0.001985390890606624 -0.02810879162419694 0.9990678575462876 0.00155825398997522 0.04313916854059252 -1.951563910473908e-18 0.9993482542271943 -0.03609801619284769 -0.04316730264761653 0.03606436769945954 0.9984167192933857 0 -0 -0 0 0 0
|
||||
3 0.09225341065322781 -0.001895145850124542 -0.009155819605617049 0.9990537652981445 -0.005530477486285024 0.04313916854059253 0.007090681752166232 0.9993230986318842 -0.03609801619284766 -0.04291032831253393 0.03636974511243225 0.9984167192933857 0 0 0 0 0 -0
|
||||
4 0.2310424585814533 -7.816912863716824e-17 7.816912871471643e-17 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0
|
||||
1 -0.121 -8.796847998598882e-19 -0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 -0.0486925957020273 -0.001985390890606622 -0.02810879162419696 0.9990678575462876 0.001558253989975216 0.04313916854059258 3.903127820947816e-18 0.9993482542271943 -0.03609801619284767 -0.04316730264761659 0.03606436769945952 0.9984167192933857 0 -0 -0 0 0 0
|
||||
3 0.0922534106532278 -0.001895145850124542 -0.009155819605617063 0.9990537652981445 -0.005530477486285022 0.04313916854059255 0.007090681752166229 0.9993230986318842 -0.03609801619284766 -0.04291032831253394 0.03636974511243225 0.9984167192933857 0 0 0 0 0 -0
|
||||
4 0.2310424585814533 -7.816912863716824e-17 7.816912871471643e-17 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0
|
||||
1 -0.121 -8.796847998598882e-19 -0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 -0.04869259570202728 -0.001985390890606622 -0.02810879162419696 0.9990678575462876 0.001558253989975217 0.04313916854059258 2.168404344971009e-18 0.9993482542271943 -0.03609801619284767 -0.04316730264761659 0.03606436769945952 0.9984167192933857 0 -0 -0 0 0 0
|
||||
3 0.09225341065322783 -0.001895145850124542 -0.009155819605617063 0.9990537652981445 -0.005530477486285022 0.04313916854059258 0.00709068175216623 0.9993230986318842 -0.03609801619284766 -0.04291032831253397 0.03636974511243225 0.9984167192933857 0 0 0 0 0 -0
|
||||
4 0.2310424585814533 -7.816912863716824e-17 7.816912871471643e-17 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0
|
||||
1 -0.121 -8.796847998598882e-19 -0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 -0.04869259570202727 -0.001985390890606624 -0.02810879162419694 0.9990678575462876 0.00155825398997522 0.04313916854059252 -1.951563910473908e-18 0.9993482542271943 -0.03609801619284769 -0.04316730264761653 0.03606436769945954 0.9984167192933857 0 -0 -0 0 0 0
|
||||
3 0.09225341065322781 -0.001895145850124542 -0.009155819605617049 0.9990537652981445 -0.005530477486285024 0.04313916854059253 0.007090681752166232 0.9993230986318842 -0.03609801619284766 -0.04291032831253393 0.03636974511243225 0.9984167192933857 0 0 0 0 0 -0
|
||||
4 0.2310424585814533 -7.816912863716824e-17 7.816912871471643e-17 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0
|
||||
1 -0.121 -8.796847998598882e-19 -0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 -0.0486925957020273 -0.001985390890606622 -0.02810879162419696 0.9990678575462876 0.001558253989975216 0.04313916854059258 3.903127820947816e-18 0.9993482542271943 -0.03609801619284767 -0.04316730264761659 0.03606436769945952 0.9984167192933857 0 -0 -0 0 0 0
|
||||
3 0.0922534106532278 -0.001895145850124542 -0.009155819605617063 0.9990537652981445 -0.005530477486285022 0.04313916854059255 0.007090681752166229 0.9993230986318842 -0.03609801619284766 -0.04291032831253394 0.03636974511243225 0.9984167192933857 0 0 0 0 0 -0
|
||||
4 0.2310424585814533 -7.816912863716824e-17 7.816912871471643e-17 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0
|
||||
1 -0.121 -8.796847998598882e-19 -0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 -0.04869259570202728 -0.001985390890606622 -0.02810879162419696 0.9990678575462876 0.001558253989975217 0.04313916854059258 2.168404344971009e-18 0.9993482542271943 -0.03609801619284767 -0.04316730264761659 0.03606436769945952 0.9984167192933857 0 -0 -0 0 0 0
|
||||
3 0.09225341065322783 -0.001895145850124542 -0.009155819605617063 0.9990537652981445 -0.005530477486285022 0.04313916854059258 0.00709068175216623 0.9993230986318842 -0.03609801619284766 -0.04291032831253397 0.03636974511243225 0.9984167192933857 0 0 0 0 0 -0
|
||||
4 0.2310424585814533 -7.816912863716824e-17 7.816912871471643e-17 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0
|
||||
1 -0.121 -8.796847998598882e-19 -0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 -0.04869259570202727 -0.001985390890606624 -0.02810879162419694 0.9990678575462876 0.00155825398997522 0.04313916854059252 -1.951563910473908e-18 0.9993482542271943 -0.03609801619284769 -0.04316730264761653 0.03606436769945954 0.9984167192933857 0 -0 -0 0 0 0
|
||||
3 0.09225341065322781 -0.001895145850124542 -0.009155819605617049 0.9990537652981445 -0.005530477486285024 0.04313916854059253 0.007090681752166232 0.9993230986318842 -0.03609801619284766 -0.04291032831253393 0.03636974511243225 0.9984167192933857 0 0 0 0 0 -0
|
||||
4 0.2310424585814533 -7.816912863716824e-17 7.816912871471643e-17 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0
|
||||
1 -0.121 -8.796847998598882e-19 -0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 -0.0486925957020273 -0.001985390890606622 -0.02810879162419696 0.9990678575462876 0.001558253989975216 0.04313916854059258 3.903127820947816e-18 0.9993482542271943 -0.03609801619284767 -0.04316730264761659 0.03606436769945952 0.9984167192933857 0 -0 -0 0 0 0
|
||||
3 0.0922534106532278 -0.001895145850124542 -0.009155819605617063 0.9990537652981445 -0.005530477486285022 0.04313916854059255 0.007090681752166229 0.9993230986318842 -0.03609801619284766 -0.04291032831253394 0.03636974511243225 0.9984167192933857 0 0 0 0 0 -0
|
||||
4 0.2310424585814533 -7.816912863716824e-17 7.816912871471643e-17 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0
|
||||
1 -0.121 -8.796847998598882e-19 -0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 -0.04869259570202728 -0.001985390890606622 -0.02810879162419696 0.9990678575462876 0.001558253989975217 0.04313916854059258 2.168404344971009e-18 0.9993482542271943 -0.03609801619284767 -0.04316730264761659 0.03606436769945952 0.9984167192933857 0 -0 -0 0 0 0
|
||||
3 0.09225341065322783 -0.001895145850124542 -0.009155819605617063 0.9990537652981445 -0.005530477486285022 0.04313916854059258 0.00709068175216623 0.9993230986318842 -0.03609801619284766 -0.04291032831253397 0.03636974511243225 0.9984167192933857 0 0 0 0 0 -0
|
||||
4 0.2310424585814533 -7.816912863716824e-17 7.816912871471643e-17 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0
|
||||
1 -0.121 -8.796847998598882e-19 -0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 -0.04869259570202727 -0.001985390890606624 -0.02810879162419694 0.9990678575462876 0.00155825398997522 0.04313916854059252 -1.951563910473908e-18 0.9993482542271943 -0.03609801619284769 -0.04316730264761653 0.03606436769945954 0.9984167192933857 0 -0 -0 0 0 0
|
||||
3 0.09225341065322781 -0.001895145850124542 -0.009155819605617049 0.9990537652981445 -0.005530477486285024 0.04313916854059253 0.007090681752166232 0.9993230986318842 -0.03609801619284766 -0.04291032831253393 0.03636974511243225 0.9984167192933857 0 0 0 0 0 -0
|
||||
4 0.2310424585814533 -7.816912863716824e-17 7.816912871471643e-17 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0
|
||||
1 -0.121 -8.796847998598882e-19 -0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 -0.0486925957020273 -0.001985390890606622 -0.02810879162419696 0.9990678575462876 0.001558253989975216 0.04313916854059258 3.903127820947816e-18 0.9993482542271943 -0.03609801619284767 -0.04316730264761659 0.03606436769945952 0.9984167192933857 0 -0 -0 0 0 0
|
||||
3 0.0922534106532278 -0.001895145850124542 -0.009155819605617063 0.9990537652981445 -0.005530477486285022 0.04313916854059255 0.007090681752166229 0.9993230986318842 -0.03609801619284766 -0.04291032831253394 0.03636974511243225 0.9984167192933857 0 0 0 0 0 -0
|
||||
4 0.2310424585814533 -7.816912863716824e-17 7.816912871471643e-17 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0
|
||||
1 -0.121 -8.796847998598882e-19 -0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 -0.04869259570202728 -0.001985390890606622 -0.02810879162419696 0.9990678575462876 0.001558253989975217 0.04313916854059258 2.168404344971009e-18 0.9993482542271943 -0.03609801619284767 -0.04316730264761659 0.03606436769945952 0.9984167192933857 0 -0 -0 0 0 0
|
||||
3 0.09225341065322783 -0.001895145850124542 -0.009155819605617063 0.9990537652981445 -0.005530477486285022 0.04313916854059258 0.00709068175216623 0.9993230986318842 -0.03609801619284766 -0.04291032831253397 0.03636974511243225 0.9984167192933857 0 0 0 0 0 -0
|
||||
4 0.2310424585814533 -7.816912863716824e-17 7.816912871471643e-17 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0
|
||||
1 -0.121 -8.796847998598882e-19 -0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 -0.04869259570202727 -0.001985390890606624 -0.02810879162419694 0.9990678575462876 0.00155825398997522 0.04313916854059252 -1.951563910473908e-18 0.9993482542271943 -0.03609801619284769 -0.04316730264761653 0.03606436769945954 0.9984167192933857 0 -0 -0 0 0 0
|
||||
3 0.09225341065322781 -0.001895145850124542 -0.009155819605617049 0.9990537652981445 -0.005530477486285024 0.04313916854059253 0.007090681752166232 0.9993230986318842 -0.03609801619284766 -0.04291032831253393 0.03636974511243225 0.9984167192933857 0 0 0 0 0 -0
|
||||
4 0.2310424585814533 -7.816912863716824e-17 7.816912871471643e-17 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0
|
||||
1 -0.121 -8.796847998598882e-19 -0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 -0.0486925957020273 -0.001985390890606622 -0.02810879162419696 0.9990678575462876 0.001558253989975216 0.04313916854059258 3.903127820947816e-18 0.9993482542271943 -0.03609801619284767 -0.04316730264761659 0.03606436769945952 0.9984167192933857 0 -0 -0 0 0 0
|
||||
3 0.0922534106532278 -0.001895145850124542 -0.009155819605617063 0.9990537652981445 -0.005530477486285022 0.04313916854059255 0.007090681752166229 0.9993230986318842 -0.03609801619284766 -0.04291032831253394 0.03636974511243225 0.9984167192933857 0 0 0 0 0 -0
|
||||
4 0.2310424585814533 -7.816912863716824e-17 7.816912871471643e-17 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0
|
||||
1 -0.121 -8.796847998598882e-19 -0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 -0.04869259570202728 -0.001985390890606622 -0.02810879162419696 0.9990678575462876 0.001558253989975217 0.04313916854059258 2.168404344971009e-18 0.9993482542271943 -0.03609801619284767 -0.04316730264761659 0.03606436769945952 0.9984167192933857 0 -0 -0 0 0 0
|
||||
3 0.09225341065322783 -0.001895145850124542 -0.009155819605617063 0.9990537652981445 -0.005530477486285022 0.04313916854059258 0.00709068175216623 0.9993230986318842 -0.03609801619284766 -0.04291032831253397 0.03636974511243225 0.9984167192933857 0 0 0 0 0 -0
|
||||
4 0.2310424585814533 -7.816912863716824e-17 7.816912871471643e-17 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0
|
||||
1 -0.121 -8.796847998598882e-19 -0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 -0.04869259570202727 -0.001985390890606624 -0.02810879162419694 0.9990678575462876 0.00155825398997522 0.04313916854059252 -1.951563910473908e-18 0.9993482542271943 -0.03609801619284769 -0.04316730264761653 0.03606436769945954 0.9984167192933857 0 -0 -0 0 0 0
|
||||
3 0.09225341065322781 -0.001895145850124542 -0.009155819605617049 0.9990537652981445 -0.005530477486285024 0.04313916854059253 0.007090681752166232 0.9993230986318842 -0.03609801619284766 -0.04291032831253393 0.03636974511243225 0.9984167192933857 0 0 0 0 0 -0
|
||||
4 0.2310424585814533 -7.816912863716824e-17 7.816912871471643e-17 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0
|
||||
1 -0.121 -8.796847998598882e-19 -0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 -0.0486925957020273 -0.001985390890606622 -0.02810879162419696 0.9990678575462876 0.001558253989975216 0.04313916854059258 3.903127820947816e-18 0.9993482542271943 -0.03609801619284767 -0.04316730264761659 0.03606436769945952 0.9984167192933857 0 -0 -0 0 0 0
|
||||
3 0.0922534106532278 -0.001895145850124542 -0.009155819605617063 0.9990537652981445 -0.005530477486285022 0.04313916854059255 0.007090681752166229 0.9993230986318842 -0.03609801619284766 -0.04291032831253394 0.03636974511243225 0.9984167192933857 0 0 0 0 0 -0
|
||||
4 0.2310424585814533 -7.816912863716824e-17 7.816912871471643e-17 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0
|
||||
1 -0.121 -8.796847998598882e-19 -0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 -0.04869259570202728 -0.001985390890606622 -0.02810879162419696 0.9990678575462876 0.001558253989975217 0.04313916854059258 2.168404344971009e-18 0.9993482542271943 -0.03609801619284767 -0.04316730264761659 0.03606436769945952 0.9984167192933857 0 -0 -0 0 0 0
|
||||
3 0.09225341065322783 -0.001895145850124542 -0.009155819605617063 0.9990537652981445 -0.005530477486285022 0.04313916854059258 0.00709068175216623 0.9993230986318842 -0.03609801619284766 -0.04291032831253397 0.03636974511243225 0.9984167192933857 0 0 0 0 0 -0
|
||||
4 0.2310424585814533 -7.816912863716824e-17 7.816912871471643e-17 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0
|
||||
1 -0.121 -8.796847998598882e-19 -0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 -0.04869259570202727 -0.001985390890606624 -0.02810879162419694 0.9990678575462876 0.00155825398997522 0.04313916854059252 -1.951563910473908e-18 0.9993482542271943 -0.03609801619284769 -0.04316730264761653 0.03606436769945954 0.9984167192933857 0 -0 -0 0 0 0
|
||||
3 0.09225341065322781 -0.001895145850124542 -0.009155819605617049 0.9990537652981445 -0.005530477486285024 0.04313916854059253 0.007090681752166232 0.9993230986318842 -0.03609801619284766 -0.04291032831253393 0.03636974511243225 0.9984167192933857 0 0 0 0 0 -0
|
||||
4 0.2310424585814533 -7.816912863716824e-17 7.816912871471643e-17 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0
|
||||
1 -0.121 -8.796847998598882e-19 -0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 -0.0486925957020273 -0.001985390890606622 -0.02810879162419696 0.9990678575462876 0.001558253989975216 0.04313916854059258 3.903127820947816e-18 0.9993482542271943 -0.03609801619284767 -0.04316730264761659 0.03606436769945952 0.9984167192933857 0 -0 -0 0 0 0
|
||||
3 0.0922534106532278 -0.001895145850124542 -0.009155819605617063 0.9990537652981445 -0.005530477486285022 0.04313916854059255 0.007090681752166229 0.9993230986318842 -0.03609801619284766 -0.04291032831253394 0.03636974511243225 0.9984167192933857 0 0 0 0 0 -0
|
||||
4 0.2310424585814533 -7.816912863716824e-17 7.816912871471643e-17 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0
|
||||
1 -0.121 -8.796847998598882e-19 -0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 -0.04869259570202728 -0.001985390890606622 -0.02810879162419696 0.9990678575462876 0.001558253989975217 0.04313916854059258 2.168404344971009e-18 0.9993482542271943 -0.03609801619284767 -0.04316730264761659 0.03606436769945952 0.9984167192933857 0 -0 -0 0 0 0
|
||||
3 0.09225341065322783 -0.001895145850124542 -0.009155819605617063 0.9990537652981445 -0.005530477486285022 0.04313916854059258 0.00709068175216623 0.9993230986318842 -0.03609801619284766 -0.04291032831253397 0.03636974511243225 0.9984167192933857 0 0 0 0 0 -0
|
||||
4 0.2310424585814533 -7.816912863716824e-17 7.816912871471643e-17 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0
|
||||
1 -0.121 -8.796847998598882e-19 -0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 -0.04869259570202727 -0.001985390890606624 -0.02810879162419694 0.9990678575462876 0.00155825398997522 0.04313916854059252 -1.951563910473908e-18 0.9993482542271943 -0.03609801619284769 -0.04316730264761653 0.03606436769945954 0.9984167192933857 0 -0 -0 0 0 0
|
||||
3 0.09225341065322781 -0.001895145850124542 -0.009155819605617049 0.9990537652981445 -0.005530477486285024 0.04313916854059253 0.007090681752166232 0.9993230986318842 -0.03609801619284766 -0.04291032831253393 0.03636974511243225 0.9984167192933857 0 0 0 0 0 -0
|
||||
4 0.2310424585814533 -7.816912863716824e-17 7.816912871471643e-17 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0
|
||||
1 -0.121 -8.796847998598882e-19 -0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 -0.0486925957020273 -0.001985390890606622 -0.02810879162419696 0.9990678575462876 0.001558253989975216 0.04313916854059258 3.903127820947816e-18 0.9993482542271943 -0.03609801619284767 -0.04316730264761659 0.03606436769945952 0.9984167192933857 0 -0 -0 0 0 0
|
||||
3 0.0922534106532278 -0.001895145850124542 -0.009155819605617063 0.9990537652981445 -0.005530477486285022 0.04313916854059255 0.007090681752166229 0.9993230986318842 -0.03609801619284766 -0.04291032831253394 0.03636974511243225 0.9984167192933857 0 0 0 0 0 -0
|
||||
4 0.2310424585814533 -7.816912863716824e-17 7.816912871471643e-17 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0
|
||||
1 -0.121 -8.796847998598882e-19 -0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 -0.04869259570202728 -0.001985390890606622 -0.02810879162419696 0.9990678575462876 0.001558253989975217 0.04313916854059258 2.168404344971009e-18 0.9993482542271943 -0.03609801619284767 -0.04316730264761659 0.03606436769945952 0.9984167192933857 0 -0 -0 0 0 0
|
||||
3 0.09225341065322783 -0.001895145850124542 -0.009155819605617063 0.9990537652981445 -0.005530477486285022 0.04313916854059258 0.00709068175216623 0.9993230986318842 -0.03609801619284766 -0.04291032831253397 0.03636974511243225 0.9984167192933857 0 0 0 0 0 -0
|
||||
4 0.2310424585814533 -7.816912863716824e-17 7.816912871471643e-17 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0
|
||||
1 -0.121 -8.796847998598882e-19 -0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 -0.04869259570202727 -0.001985390890606624 -0.02810879162419694 0.9990678575462876 0.00155825398997522 0.04313916854059252 -1.951563910473908e-18 0.9993482542271943 -0.03609801619284769 -0.04316730264761653 0.03606436769945954 0.9984167192933857 0 -0 -0 0 0 0
|
||||
3 0.09225341065322781 -0.001895145850124542 -0.009155819605617049 0.9990537652981445 -0.005530477486285024 0.04313916854059253 0.007090681752166232 0.9993230986318842 -0.03609801619284766 -0.04291032831253393 0.03636974511243225 0.9984167192933857 0 0 0 0 0 -0
|
||||
4 0.2310424585814533 -7.816912863716824e-17 7.816912871471643e-17 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0
|
||||
1 -0.121 -8.796847998598882e-19 -0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 -0.0486925957020273 -0.001985390890606622 -0.02810879162419696 0.9990678575462876 0.001558253989975216 0.04313916854059258 3.903127820947816e-18 0.9993482542271943 -0.03609801619284767 -0.04316730264761659 0.03606436769945952 0.9984167192933857 0 -0 -0 0 0 0
|
||||
3 0.0922534106532278 -0.001895145850124542 -0.009155819605617063 0.9990537652981445 -0.005530477486285022 0.04313916854059255 0.007090681752166229 0.9993230986318842 -0.03609801619284766 -0.04291032831253394 0.03636974511243225 0.9984167192933857 0 0 0 0 0 -0
|
||||
4 0.2310424585814533 -7.816912863716824e-17 7.816912871471643e-17 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0
|
||||
1 -0.121 -8.796847998598882e-19 -0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 -0.04869259570202728 -0.001985390890606622 -0.02810879162419696 0.9990678575462876 0.001558253989975217 0.04313916854059258 2.168404344971009e-18 0.9993482542271943 -0.03609801619284767 -0.04316730264761659 0.03606436769945952 0.9984167192933857 0 -0 -0 0 0 0
|
||||
3 0.09225341065322783 -0.001895145850124542 -0.009155819605617063 0.9990537652981445 -0.005530477486285022 0.04313916854059258 0.00709068175216623 0.9993230986318842 -0.03609801619284766 -0.04291032831253397 0.03636974511243225 0.9984167192933857 0 0 0 0 0 -0
|
||||
4 0.2310424585814533 -7.816912863716824e-17 7.816912871471643e-17 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0
|
||||
1 -0.121 -8.796847998598882e-19 -0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 -0.04869259570202727 -0.001985390890606624 -0.02810879162419694 0.9990678575462876 0.00155825398997522 0.04313916854059252 -1.951563910473908e-18 0.9993482542271943 -0.03609801619284769 -0.04316730264761653 0.03606436769945954 0.9984167192933857 0 -0 -0 0 0 0
|
||||
3 0.09225341065322781 -0.001895145850124542 -0.009155819605617049 0.9990537652981445 -0.005530477486285024 0.04313916854059253 0.007090681752166232 0.9993230986318842 -0.03609801619284766 -0.04291032831253393 0.03636974511243225 0.9984167192933857 0 0 0 0 0 -0
|
||||
4 0.2310424585814533 -7.816912863716824e-17 7.816912871471643e-17 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0
|
||||
1 -0.121 -8.796847998598882e-19 -0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 -0.0486925957020273 -0.001985390890606622 -0.02810879162419696 0.9990678575462876 0.001558253989975216 0.04313916854059258 3.903127820947816e-18 0.9993482542271943 -0.03609801619284767 -0.04316730264761659 0.03606436769945952 0.9984167192933857 0 -0 -0 0 0 0
|
||||
3 0.0922534106532278 -0.001895145850124542 -0.009155819605617063 0.9990537652981445 -0.005530477486285022 0.04313916854059255 0.007090681752166229 0.9993230986318842 -0.03609801619284766 -0.04291032831253394 0.03636974511243225 0.9984167192933857 0 0 0 0 0 -0
|
||||
4 0.2310424585814533 -7.816912863716824e-17 7.816912871471643e-17 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0
|
||||
1 -0.121 -8.796847998598882e-19 -0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 -0.04869259570202728 -0.001985390890606622 -0.02810879162419696 0.9990678575462876 0.001558253989975217 0.04313916854059258 2.168404344971009e-18 0.9993482542271943 -0.03609801619284767 -0.04316730264761659 0.03606436769945952 0.9984167192933857 0 -0 -0 0 0 0
|
||||
3 0.09225341065322783 -0.001895145850124542 -0.009155819605617063 0.9990537652981445 -0.005530477486285022 0.04313916854059258 0.00709068175216623 0.9993230986318842 -0.03609801619284766 -0.04291032831253397 0.03636974511243225 0.9984167192933857 0 0 0 0 0 -0
|
||||
4 0.2310424585814533 -7.816912863716824e-17 7.816912871471643e-17 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0
|
||||
1 -0.121 -8.796847998598882e-19 -0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 -0.04869259570202727 -0.001985390890606624 -0.02810879162419694 0.9990678575462876 0.00155825398997522 0.04313916854059252 -1.951563910473908e-18 0.9993482542271943 -0.03609801619284769 -0.04316730264761653 0.03606436769945954 0.9984167192933857 0 -0 -0 0 0 0
|
||||
3 0.09225341065322781 -0.001895145850124542 -0.009155819605617049 0.9990537652981445 -0.005530477486285024 0.04313916854059253 0.007090681752166232 0.9993230986318842 -0.03609801619284766 -0.04291032831253393 0.03636974511243225 0.9984167192933857 0 0 0 0 0 -0
|
||||
4 0.2310424585814533 -7.816912863716824e-17 7.816912871471643e-17 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0
|
||||
1 -0.121 -8.796847998598882e-19 -0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 -0.0486925957020273 -0.001985390890606622 -0.02810879162419696 0.9990678575462876 0.001558253989975216 0.04313916854059258 3.903127820947816e-18 0.9993482542271943 -0.03609801619284767 -0.04316730264761659 0.03606436769945952 0.9984167192933857 0 -0 -0 0 0 0
|
||||
3 0.0922534106532278 -0.001895145850124542 -0.009155819605617063 0.9990537652981445 -0.005530477486285022 0.04313916854059255 0.007090681752166229 0.9993230986318842 -0.03609801619284766 -0.04291032831253394 0.03636974511243225 0.9984167192933857 0 0 0 0 0 -0
|
||||
4 0.2310424585814533 -7.816912863716824e-17 7.816912871471643e-17 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0
|
||||
1 -0.121 -8.796847998598882e-19 -0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 -0.04869259570202728 -0.001985390890606622 -0.02810879162419696 0.9990678575462876 0.001558253989975217 0.04313916854059258 2.168404344971009e-18 0.9993482542271943 -0.03609801619284767 -0.04316730264761659 0.03606436769945952 0.9984167192933857 0 -0 -0 0 0 0
|
||||
3 0.09225341065322783 -0.001895145850124542 -0.009155819605617063 0.9990537652981445 -0.005530477486285022 0.04313916854059258 0.00709068175216623 0.9993230986318842 -0.03609801619284766 -0.04291032831253397 0.03636974511243225 0.9984167192933857 0 0 0 0 0 -0
|
||||
4 0.2310424585814533 -7.816912863716824e-17 7.816912871471643e-17 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0
|
||||
1 -0.121 -8.796847998598882e-19 -0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 -0.04869259570202727 -0.001985390890606624 -0.02810879162419694 0.9990678575462876 0.00155825398997522 0.04313916854059252 -1.951563910473908e-18 0.9993482542271943 -0.03609801619284769 -0.04316730264761653 0.03606436769945954 0.9984167192933857 0 -0 -0 0 0 0
|
||||
3 0.09225341065322781 -0.001895145850124542 -0.009155819605617049 0.9990537652981445 -0.005530477486285024 0.04313916854059253 0.007090681752166232 0.9993230986318842 -0.03609801619284766 -0.04291032831253393 0.03636974511243225 0.9984167192933857 0 0 0 0 0 -0
|
||||
4 0.2310424585814533 -7.816912863716824e-17 7.816912871471643e-17 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0
|
||||
1 -0.121 -8.796847998598882e-19 -0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 -0.0486925957020273 -0.001985390890606622 -0.02810879162419696 0.9990678575462876 0.001558253989975216 0.04313916854059258 3.903127820947816e-18 0.9993482542271943 -0.03609801619284767 -0.04316730264761659 0.03606436769945952 0.9984167192933857 0 -0 -0 0 0 0
|
||||
3 0.0922534106532278 -0.001895145850124542 -0.009155819605617063 0.9990537652981445 -0.005530477486285022 0.04313916854059255 0.007090681752166229 0.9993230986318842 -0.03609801619284766 -0.04291032831253394 0.03636974511243225 0.9984167192933857 0 0 0 0 0 -0
|
||||
4 0.2310424585814533 -7.816912863716824e-17 7.816912871471643e-17 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0
|
||||
1 -0.121 -8.796847998598882e-19 -0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 -0.04869259570202728 -0.001985390890606622 -0.02810879162419696 0.9990678575462876 0.001558253989975217 0.04313916854059258 2.168404344971009e-18 0.9993482542271943 -0.03609801619284767 -0.04316730264761659 0.03606436769945952 0.9984167192933857 0 -0 -0 0 0 0
|
||||
3 0.09225341065322783 -0.001895145850124542 -0.009155819605617063 0.9990537652981445 -0.005530477486285022 0.04313916854059258 0.00709068175216623 0.9993230986318842 -0.03609801619284766 -0.04291032831253397 0.03636974511243225 0.9984167192933857 0 0 0 0 0 -0
|
||||
4 0.2310424585814533 -7.816912863716824e-17 7.816912871471643e-17 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0
|
||||
1 -0.121 -8.796847998598882e-19 -0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 -0.04869259570202727 -0.001985390890606624 -0.02810879162419694 0.9990678575462876 0.00155825398997522 0.04313916854059252 -1.951563910473908e-18 0.9993482542271943 -0.03609801619284769 -0.04316730264761653 0.03606436769945954 0.9984167192933857 0 -0 -0 0 0 0
|
||||
3 0.09225341065322781 -0.001895145850124542 -0.009155819605617049 0.9990537652981445 -0.005530477486285024 0.04313916854059253 0.007090681752166232 0.9993230986318842 -0.03609801619284766 -0.04291032831253393 0.03636974511243225 0.9984167192933857 0 0 0 0 0 -0
|
||||
4 0.2310424585814533 -7.816912863716824e-17 7.816912871471643e-17 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0
|
||||
1 -0.121 -8.796847998598882e-19 -0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 -0.0486925957020273 -0.001985390890606622 -0.02810879162419696 0.9990678575462876 0.001558253989975216 0.04313916854059258 3.903127820947816e-18 0.9993482542271943 -0.03609801619284767 -0.04316730264761659 0.03606436769945952 0.9984167192933857 0 -0 -0 0 0 0
|
||||
3 0.0922534106532278 -0.001895145850124542 -0.009155819605617063 0.9990537652981445 -0.005530477486285022 0.04313916854059255 0.007090681752166229 0.9993230986318842 -0.03609801619284766 -0.04291032831253394 0.03636974511243225 0.9984167192933857 0 0 0 0 0 -0
|
||||
4 0.2310424585814533 -7.816912863716824e-17 7.816912871471643e-17 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0
|
||||
1 -0.121 -8.796847998598882e-19 -0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 -0.04869259570202728 -0.001985390890606622 -0.02810879162419696 0.9990678575462876 0.001558253989975217 0.04313916854059258 2.168404344971009e-18 0.9993482542271943 -0.03609801619284767 -0.04316730264761659 0.03606436769945952 0.9984167192933857 0 -0 -0 0 0 0
|
||||
3 0.09225341065322783 -0.001895145850124542 -0.009155819605617063 0.9990537652981445 -0.005530477486285022 0.04313916854059258 0.00709068175216623 0.9993230986318842 -0.03609801619284766 -0.04291032831253397 0.03636974511243225 0.9984167192933857 0 0 0 0 0 -0
|
||||
4 0.2310424585814533 -7.816912863716824e-17 7.816912871471643e-17 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0
|
||||
1 -0.121 -8.796847998598882e-19 -0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 -0.04869259570202727 -0.001985390890606624 -0.02810879162419694 0.9990678575462876 0.00155825398997522 0.04313916854059252 -1.951563910473908e-18 0.9993482542271943 -0.03609801619284769 -0.04316730264761653 0.03606436769945954 0.9984167192933857 0 -0 -0 0 0 0
|
||||
3 0.09225341065322781 -0.001895145850124542 -0.009155819605617049 0.9990537652981445 -0.005530477486285024 0.04313916854059253 0.007090681752166232 0.9993230986318842 -0.03609801619284766 -0.04291032831253393 0.03636974511243225 0.9984167192933857 0 0 0 0 0 -0
|
||||
4 0.2310424585814533 -7.816912863716824e-17 7.816912871471643e-17 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0
|
||||
1 -0.121 -8.796847998598882e-19 -0.08 1 0 0 0 1 0 0 0 1 -0 -0 0 -0 0 0
|
||||
2 -0.0486925957020273 -0.001985390890606622 -0.02810879162419696 0.9990678575462876 0.001558253989975216 0.04313916854059258 3.903127820947816e-18 0.9993482542271943 -0.03609801619284767 -0.04316730264761659 0.03606436769945952 0.9984167192933857 0 -0 -0 0 0 0
|
||||
3 0.0922534106532278 -0.001895145850124542 -0.009155819605617063 0.9990537652981445 -0.005530477486285022 0.04313916854059255 0.007090681752166229 0.9993230986318842 -0.03609801619284766 -0.04291032831253394 0.03636974511243225 0.9984167192933857 0 0 0 0 0 -0
|
||||
4 0.2310424585814533 -7.816912863716824e-17 7.816912871471643e-17 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0
|
||||
|
||||
297
OndselSolver/MBDynCase2.mbd
Normal file
297
OndselSolver/MBDynCase2.mbd
Normal file
@@ -0,0 +1,297 @@
|
||||
#-----------------------------------------------------------------------------
|
||||
# [Data Block]
|
||||
|
||||
begin: data;
|
||||
problem: initial value;
|
||||
end: data;
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# [Problem Block]
|
||||
|
||||
begin: initial value;
|
||||
initial time: 0.0;
|
||||
final time: 3.0;
|
||||
time step: 0.01;
|
||||
max iterations: 100;
|
||||
tolerance: 1e-06;
|
||||
derivatives tolerance: 0.0001;
|
||||
derivatives max iterations: 100;
|
||||
derivatives coefficient: auto;
|
||||
end: initial value;
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# [Control Data Block]
|
||||
|
||||
begin: control data;
|
||||
max iterations: 1000;
|
||||
default orientation: euler321;
|
||||
omega rotates: no;
|
||||
print: none;
|
||||
initial stiffness: 1.0, 1.0;
|
||||
structural nodes: 4;
|
||||
rigid bodies: 3;
|
||||
joints: 6;
|
||||
end: control data;
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# [Design Variables]
|
||||
|
||||
#Generic bodies
|
||||
|
||||
#body: 2
|
||||
set: integer body_2 = 2; #body label
|
||||
set: real mass_2 = 1.448636188351172; #mass [kg]
|
||||
set: real volume_2 = 0.00018337166941154076; #volume [m^3]
|
||||
|
||||
#body: 3
|
||||
set: integer body_3 = 3; #body label
|
||||
set: real mass_3 = 2.8529486557067685; #mass [kg]
|
||||
set: real volume_3 = 0.0003611327412287049; #volume [m^3]
|
||||
|
||||
#body: 4
|
||||
set: integer body_4 = 4; #body label
|
||||
set: real mass_4 = 10.859427202622141; #mass [kg]
|
||||
set: real volume_4 = 0.0013746110383066003; #volume [m^3]
|
||||
|
||||
#Nodes
|
||||
|
||||
#node: 1
|
||||
set: integer structural_node_1 = 1; #node label
|
||||
|
||||
#node: 2
|
||||
set: integer structural_node_2 = 2; #node label
|
||||
|
||||
#node: 3
|
||||
set: integer structural_node_3 = 3; #node label
|
||||
|
||||
#node: 4
|
||||
set: integer structural_node_4 = 4; #node label
|
||||
|
||||
#Joints
|
||||
|
||||
#joint: 1
|
||||
set: integer joint_1 = 1; #joint label
|
||||
|
||||
#joint: 2
|
||||
set: integer joint_2 = 2; #joint label
|
||||
|
||||
#joint: 3
|
||||
set: integer joint_3 = 3; #joint label
|
||||
|
||||
#joint: 4
|
||||
set: integer joint_4 = 4; #joint label
|
||||
|
||||
#joint: 5
|
||||
set: integer joint_5 = 5; #joint label
|
||||
|
||||
#joint: 6
|
||||
set: integer joint_6 = 6; #joint label
|
||||
|
||||
#Nodes: initial conditions
|
||||
|
||||
#node: 1
|
||||
set: real Px_1 = -0.121; #X component of the absolute position [m]
|
||||
set: real Py_1 = -1.218180697837851e-18; #Y component of the absolute position [m]
|
||||
set: real Pz_1 = -0.08; #Z component of the absolute position [m]
|
||||
|
||||
set: real Vx_1 = 0.0; #X component of the absolute velocity [m/s]
|
||||
set: real Vy_1 = 0.0; #Y component of the absolute velocity [m/s]
|
||||
set: real Vz_1 = 0.0; #Z component of the absolute velocity [m/s]
|
||||
|
||||
set: real Wx_1 = 0.0; #X component of the absolute angular velocity [rad/s]
|
||||
set: real Wy_1 = 0.0; #Y component of the absolute angular velocity [rad/s]
|
||||
set: real Wz_1 = 0.0; #Z component of the absolute angular velocity [rad/s]
|
||||
|
||||
#node: 2
|
||||
set: real Px_2 = -0.047537048944738425; #X component of the absolute position [m]
|
||||
set: real Py_2 = 0.09742200410568831; #Y component of the absolute position [m]
|
||||
set: real Pz_2 = -0.030293476812230588; #Z component of the absolute position [m]
|
||||
|
||||
set: real Vx_2 = 0.0; #X component of the absolute velocity [m/s]
|
||||
set: real Vy_2 = 0.0; #Y component of the absolute velocity [m/s]
|
||||
set: real Vz_2 = 0.0; #Z component of the absolute velocity [m/s]
|
||||
|
||||
set: real Wx_2 = 0.0; #X component of the absolute angular velocity [rad/s]
|
||||
set: real Wy_2 = 0.0; #Y component of the absolute angular velocity [rad/s]
|
||||
set: real Wz_2 = 0.0; #Z component of the absolute angular velocity [rad/s]
|
||||
|
||||
#node: 3
|
||||
set: real Px_3 = 0.07099630277370235; #X component of the absolute position [m]
|
||||
set: real Py_3 = -0.07364765799707981; #Y component of the absolute position [m]
|
||||
set: real Pz_3 = 0.058407900823760565; #Z component of the absolute position [m]
|
||||
|
||||
set: real Vx_3 = 0.0; #X component of the absolute velocity [m/s]
|
||||
set: real Vy_3 = 0.0; #Y component of the absolute velocity [m/s]
|
||||
set: real Vz_3 = 0.0; #Z component of the absolute velocity [m/s]
|
||||
|
||||
set: real Wx_3 = 0.0; #X component of the absolute angular velocity [rad/s]
|
||||
set: real Wy_3 = 0.0; #Y component of the absolute angular velocity [rad/s]
|
||||
set: real Wz_3 = 0.0; #Z component of the absolute angular velocity [rad/s]
|
||||
|
||||
#node: 4
|
||||
set: real Px_4 = 0.3723079639890564; #X component of the absolute position [m]
|
||||
set: real Py_4 = 0.04333150035096042; #Y component of the absolute position [m]
|
||||
set: real Pz_4 = 0.008140985321785409; #Z component of the absolute position [m]
|
||||
|
||||
set: real Vx_4 = 0.0; #X component of the absolute velocity [m/s]
|
||||
set: real Vy_4 = 0.0; #Y component of the absolute velocity [m/s]
|
||||
set: real Vz_4 = 0.0; #Z component of the absolute velocity [m/s]
|
||||
|
||||
set: real Wx_4 = 0.0; #X component of the absolute angular velocity [rad/s]
|
||||
set: real Wy_4 = 0.0; #Y component of the absolute angular velocity [rad/s]
|
||||
set: real Wz_4 = 0.0; #Z component of the absolute angular velocity [rad/s]
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# [Intermediate Variables]
|
||||
|
||||
#Moments of inertia and relative center of mass
|
||||
|
||||
#body 2:
|
||||
set: real Ixx_2 = 0.0028717510150880004; #moment of inertia [kg*m^2]
|
||||
set: real Iyy_2 = 0.002864447840812; #moment of inertia [kg*m^2]
|
||||
set: real Izz_2 = 0.0007089594589930001; #moment of inertia [kg*m^2]
|
||||
|
||||
set: real Rx_2 = 7.105427357601002e-18; #X component of the relative center of mass [m]
|
||||
set: real Ry_2 = 0.0; #Y component of the relative center of mass [m]
|
||||
set: real Rz_2 = 7.105427357601002e-18; #Z component of the relative center of mass [m]
|
||||
|
||||
#body 3:
|
||||
set: real Ixx_3 = 0.033837921987970004; #moment of inertia [kg*m^2]
|
||||
set: real Iyy_3 = 0.033715148099504; #moment of inertia [kg*m^2]
|
||||
set: real Izz_3 = 0.001956310318013; #moment of inertia [kg*m^2]
|
||||
|
||||
set: real Rx_3 = 2.842170943040401e-17; #X component of the relative center of mass [m]
|
||||
set: real Ry_3 = -1.4210854715202004e-17; #Y component of the relative center of mass [m]
|
||||
set: real Rz_3 = 0.0; #Z component of the relative center of mass [m]
|
||||
|
||||
#body 4:
|
||||
set: real Ixx_4 = 0.07706742098794901; #moment of inertia [kg*m^2]
|
||||
set: real Iyy_4 = 0.066351815798527; #moment of inertia [kg*m^2]
|
||||
set: real Izz_4 = 0.061792350456255; #moment of inertia [kg*m^2]
|
||||
|
||||
set: real Rx_4 = 2.842170943040401e-16; #X component of the relative center of mass [m]
|
||||
set: real Ry_4 = 2.1316282072803006e-17; #Y component of the relative center of mass [m]
|
||||
set: real Rz_4 = 2.2737367544323206e-16; #Z component of the relative center of mass [m]
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# [Nodes Block]
|
||||
|
||||
begin: nodes;
|
||||
|
||||
structural: structural_node_1,
|
||||
static,
|
||||
Px_1, Py_1, Pz_1, #<absolute_position> [m]
|
||||
3, 0.0, 0.0, 1.0, 2, 0.0, 1.0, 0.0, #<absolute_orientation_matrix>
|
||||
Vx_1, Vy_1, Vz_1, #<absolute_velocity> [m/s]
|
||||
Wx_1, Wy_1, Wz_1; #<absolute_angular_velocity> [rad/s]
|
||||
|
||||
structural: structural_node_2,
|
||||
dynamic,
|
||||
Px_2, Py_2, Pz_2, #<absolute_position> [m]
|
||||
3, 0.28116838555915347, -0.12674940821214617, 0.9512512425641977, 2, -0.12674940821214617, 0.9776506595433675, 0.16773125949652098, #<absolute_orientation_matrix>
|
||||
Vx_2, Vy_2, Vz_2, #<absolute_velocity> [m/s]
|
||||
Wx_2, Wy_2, Wz_2; #<absolute_angular_velocity> [rad/s]
|
||||
|
||||
structural: structural_node_3,
|
||||
dynamic,
|
||||
Px_3, Py_3, Pz_3, #<absolute_position> [m]
|
||||
3, -0.27178893568691503, -0.25783416049630004, 0.9271743741709766, 2, 0.014330116918634624, 0.9622501868990581, 0.271788935686915, #<absolute_orientation_matrix>
|
||||
Vx_3, Vy_3, Vz_3, #<absolute_velocity> [m/s]
|
||||
Wx_3, Wy_3, Wz_3; #<absolute_angular_velocity> [rad/s]
|
||||
|
||||
structural: structural_node_4,
|
||||
dynamic,
|
||||
Px_4, Py_4, Pz_4, #<absolute_position> [m]
|
||||
3, 0.2588190451025211, 0.0, 0.9659258262890682, 2, 0.0, 1.0, 0.0, #<absolute_orientation_matrix>
|
||||
Vx_4, Vy_4, Vz_4, #<absolute_velocity> [m/s]
|
||||
Wx_4, Wy_4, Wz_4; #<absolute_angular_velocity> [rad/s]
|
||||
|
||||
end: nodes;
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# [Elements Block]
|
||||
|
||||
begin: elements;
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# [Bodies]
|
||||
|
||||
body: body_2,
|
||||
structural_node_2, #<node_label>
|
||||
mass_2, #<mass> [kg]
|
||||
Rx_2, Ry_2, Rz_2, #<relative_center_of_mass> [m]
|
||||
diag, Ixx_2, Iyy_2, Izz_2, #<inertia matrix> [kg*m^2]
|
||||
orientation, 3, -0.0054384608129255385, 0.8559103374577453, 0.5150405937686557, 2, 0.9969290667160357, -0.0024978913689130133, 0.0023196850194898005;
|
||||
|
||||
body: body_3,
|
||||
structural_node_3, #<node_label>
|
||||
mass_3, #<mass> [kg]
|
||||
Rx_3, Ry_3, Rz_3, #<relative_center_of_mass> [m]
|
||||
diag, Ixx_3, Iyy_3, Izz_3, #<inertia matrix> [kg*m^2]
|
||||
orientation, 3, 0.9973238325492868, 0.0012847690482160057, -0.002629529780301787, 2, -0.00011328308715380375, 1.0027304733964244, 0.004450235157436283;
|
||||
|
||||
body: body_4,
|
||||
structural_node_4, #<node_label>
|
||||
mass_4, #<mass> [kg]
|
||||
Rx_4, Ry_4, Rz_4, #<relative_center_of_mass> [m]
|
||||
diag, Ixx_4, Iyy_4, Izz_4, #<inertia matrix> [kg*m^2]
|
||||
orientation, 3, -8.551421488581235e-05, 0.0, 0.9957768995806164, 2, 0.0, 1.0, 0.0;
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# [Joints]
|
||||
|
||||
joint: joint_1,
|
||||
clamp,
|
||||
structural_node_1, #<node_label>
|
||||
-0.121, -1.218180697837851e-18, -0.08, #<absolute_pin_position> [m]
|
||||
3, 0.0, 0.0, 1.0, 2, 0.0, 1.0, 0.0; #<absolute_orientation_matrix>
|
||||
|
||||
joint: joint_2,
|
||||
axial rotation,
|
||||
structural_node_1, #<node_1_label>
|
||||
0.0, 1.218180697837851e-18, 0.05, #<relative_offset_1> [m]
|
||||
orientation, 3, 0.0, 0.0, 1.0, 2, 0.0, 1.0, 0.0, #<relative_orientation_matrix_1>
|
||||
structural_node_2, #<node_2_label>
|
||||
-0.03739853284269051, 0.0, 0.0032867622552210634, #<relative_offset_2> [m]
|
||||
orientation, 3, 5.204170427930421e-18, 0.0, 1.0, 2, guess, #<relative_orientation_matrix_2>
|
||||
string, "model::drive(1, Time)"; #<angular_velocity> [rad/s]
|
||||
|
||||
joint: joint_3,
|
||||
revolute hinge,
|
||||
structural_node_2, #<node_1_label>
|
||||
0.03260146715730949, 1.4210854715202004e-17, 0.05328676225522106, #<relative_position_1> [m]
|
||||
orientation, 3, 5.204170427930421e-18, 0.0, 1.0, 2, 0.0, 1.0, 0.0, #<relative_pin_orientation_matrix_1>
|
||||
structural_node_3, #<node_2_label>
|
||||
-0.1400000000000079, -1.0444978215673472e-15, 0.024999999999998038, #<relative_position_2> [m]
|
||||
orientation, 3, -5.551115123125784e-17, -5.984795992119986e-17, 1.0, 2, guess; #<relative_pin_orientation_matrix_2>
|
||||
|
||||
joint: joint_4,
|
||||
in line,
|
||||
structural_node_3, #<node_1_label>
|
||||
0.13999999999999133, 4.4231285301066236e-16, 9.79127889877418e-15, #<relative_line_position> [m]
|
||||
3, 2.7195091690402506e-15, 1.2586758486779817e-14, 1.0, 2, 0.6882367162699149, 0.7254861972346578, -1.1003185610451133e-14, #<relative_orientation>
|
||||
structural_node_4, #<node_2_label>
|
||||
offset, -0.045580834634119244, -2.0299354019925886e-10, 1.2562251640702015e-08; #<relative_offset> [m]
|
||||
|
||||
joint: joint_5,
|
||||
in line,
|
||||
structural_node_1, #<node_1_label>
|
||||
0.0, 1.2181806978377854e-18, 0.08, #<relative_line_position> [m]
|
||||
3, 1.0, -2.220446049250313e-16, 2.220446049250313e-16, 2, -2.220446049250313e-16, 0.0, 1.0, #<relative_orientation>
|
||||
structural_node_4, #<node_2_label>
|
||||
offset, -0.045580834634119244, -2.0299354019925886e-10, 1.2562251640702015e-08; #<relative_offset> [m]
|
||||
|
||||
joint: joint_6,
|
||||
prismatic,
|
||||
structural_node_1, #<node_1_label>
|
||||
orientation, 3, 0.0, 0.0, 1.0, 2, 0.0, 1.0, 0.0, #relative_orientation_matrix_1>
|
||||
structural_node_4, #<node_2_label>
|
||||
orientation, 3, 0, 0, 1, 2, 0, 1, 0; #relative_orientation_matrix_2>
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# [Drive callers]
|
||||
|
||||
drive caller: 1, name,"drive:1", ramp, 6.28, 0.0, 1.0, 0.0;
|
||||
|
||||
end: elements;
|
||||
|
||||
1204
OndselSolver/MBDynCase2.mov
Normal file
1204
OndselSolver/MBDynCase2.mov
Normal file
File diff suppressed because it is too large
Load Diff
@@ -40,18 +40,18 @@
|
||||
|
||||
#body: 2
|
||||
set: integer body_2 = 2; #body label
|
||||
set: real mass_2 = 1.4486361883511718; #mass [kg]
|
||||
set: real volume_2 = 0.00018337166941154073; #volume [m^3]
|
||||
set: real mass_2 = 1.448636188351172; #mass [kg]
|
||||
set: real volume_2 = 0.00018337166941154076; #volume [m^3]
|
||||
|
||||
#body: 3
|
||||
set: integer body_3 = 3; #body label
|
||||
set: real mass_3 = 2.852948655706769; #mass [kg]
|
||||
set: real volume_3 = 0.00036113274122870494; #volume [m^3]
|
||||
set: real mass_3 = 2.8529486557067685; #mass [kg]
|
||||
set: real volume_3 = 0.0003611327412287049; #volume [m^3]
|
||||
|
||||
#body: 4
|
||||
set: integer body_4 = 4; #body label
|
||||
set: real mass_4 = 10.859427202622149; #mass [kg]
|
||||
set: real volume_4 = 0.001374611038306601; #volume [m^3]
|
||||
set: real mass_4 = 10.859427202622141; #mass [kg]
|
||||
set: real volume_4 = 0.0013746110383066003; #volume [m^3]
|
||||
|
||||
#Nodes
|
||||
|
||||
@@ -103,9 +103,9 @@
|
||||
set: real Wz_1 = 0.0; #Z component of the absolute angular velocity [rad/s]
|
||||
|
||||
#node: 2
|
||||
set: real Px_2 = -0.04942161873703145; #X component of the absolute position [m]
|
||||
set: real Py_2 = 0.10494947176309491; #Y component of the absolute position [m]
|
||||
set: real Pz_2 = -0.03019496284287986; #Z component of the absolute position [m]
|
||||
set: real Px_2 = -0.047537048944738425; #X component of the absolute position [m]
|
||||
set: real Py_2 = 0.09742200410568831; #Y component of the absolute position [m]
|
||||
set: real Pz_2 = -0.030293476812230588; #Z component of the absolute position [m]
|
||||
|
||||
set: real Vx_2 = 0.0; #X component of the absolute velocity [m/s]
|
||||
set: real Vy_2 = 0.0; #Y component of the absolute velocity [m/s]
|
||||
@@ -116,9 +116,9 @@
|
||||
set: real Wz_2 = 0.0; #Z component of the absolute angular velocity [rad/s]
|
||||
|
||||
#node: 3
|
||||
set: real Px_3 = 0.0745132790133479; #X component of the absolute position [m]
|
||||
set: real Py_3 = -0.07931074487337057; #Y component of the absolute position [m]
|
||||
set: real Pz_3 = 0.047693362858105263; #Z component of the absolute position [m]
|
||||
set: real Px_3 = 0.07099630277370235; #X component of the absolute position [m]
|
||||
set: real Py_3 = -0.07364765799707981; #Y component of the absolute position [m]
|
||||
set: real Pz_3 = 0.058407900823760565; #Z component of the absolute position [m]
|
||||
|
||||
set: real Vx_3 = 0.0; #X component of the absolute velocity [m/s]
|
||||
set: real Vy_3 = 0.0; #Y component of the absolute velocity [m/s]
|
||||
@@ -129,9 +129,9 @@
|
||||
set: real Wz_3 = 0.0; #Z component of the absolute angular velocity [rad/s]
|
||||
|
||||
#node: 4
|
||||
set: real Px_4 = 0.3575148357029521; #X component of the absolute position [m]
|
||||
set: real Py_4 = 0.043331500350960436; #Y component of the absolute position [m]
|
||||
set: real Pz_4 = 0.10422397969746418; #Z component of the absolute position [m]
|
||||
set: real Px_4 = 0.3723079639890564; #X component of the absolute position [m]
|
||||
set: real Py_4 = 0.04333150035096042; #Y component of the absolute position [m]
|
||||
set: real Pz_4 = 0.008140985321785409; #Z component of the absolute position [m]
|
||||
|
||||
set: real Vx_4 = 0.0; #X component of the absolute velocity [m/s]
|
||||
set: real Vy_4 = 0.0; #Y component of the absolute velocity [m/s]
|
||||
@@ -151,17 +151,17 @@
|
||||
set: real Iyy_2 = 0.002864447840812; #moment of inertia [kg*m^2]
|
||||
set: real Izz_2 = 0.0007089594589930001; #moment of inertia [kg*m^2]
|
||||
|
||||
set: real Rx_2 = 0.0; #X component of the relative center of mass [m]
|
||||
set: real Rx_2 = 7.105427357601002e-18; #X component of the relative center of mass [m]
|
||||
set: real Ry_2 = 0.0; #Y component of the relative center of mass [m]
|
||||
set: real Rz_2 = 0.0; #Z component of the relative center of mass [m]
|
||||
set: real Rz_2 = 7.105427357601002e-18; #Z component of the relative center of mass [m]
|
||||
|
||||
#body 3:
|
||||
set: real Ixx_3 = 0.033837921987970004; #moment of inertia [kg*m^2]
|
||||
set: real Iyy_3 = 0.033715148099504; #moment of inertia [kg*m^2]
|
||||
set: real Izz_3 = 0.001956310318013; #moment of inertia [kg*m^2]
|
||||
|
||||
set: real Rx_3 = 0.0; #X component of the relative center of mass [m]
|
||||
set: real Ry_3 = 0.0; #Y component of the relative center of mass [m]
|
||||
set: real Rx_3 = 2.842170943040401e-17; #X component of the relative center of mass [m]
|
||||
set: real Ry_3 = -1.4210854715202004e-17; #Y component of the relative center of mass [m]
|
||||
set: real Rz_3 = 0.0; #Z component of the relative center of mass [m]
|
||||
|
||||
#body 4:
|
||||
@@ -169,9 +169,9 @@
|
||||
set: real Iyy_4 = 0.066351815798527; #moment of inertia [kg*m^2]
|
||||
set: real Izz_4 = 0.061792350456255; #moment of inertia [kg*m^2]
|
||||
|
||||
set: real Rx_4 = 0.0; #X component of the relative center of mass [m]
|
||||
set: real Ry_4 = 0.0; #Y component of the relative center of mass [m]
|
||||
set: real Rz_4 = 0.0; #Z component of the relative center of mass [m]
|
||||
set: real Rx_4 = 2.842170943040401e-16; #X component of the relative center of mass [m]
|
||||
set: real Ry_4 = 2.1316282072803006e-17; #Y component of the relative center of mass [m]
|
||||
set: real Rz_4 = 2.2737367544323206e-16; #Z component of the relative center of mass [m]
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# [Nodes Block]
|
||||
@@ -188,21 +188,21 @@
|
||||
structural: structural_node_2,
|
||||
dynamic,
|
||||
Px_2, Py_2, Pz_2, #<absolute_position> [m]
|
||||
3, 0.24321034680169393, 0.08852132690137694, 0.9659258262890683, 2, -0.3420201433256683, 0.9396926207859085, -1.8041124150158794e-16, #<absolute_orientation_matrix>
|
||||
3, 0.28116838555915347, -0.12674940821214617, 0.9512512425641977, 2, -0.12674940821214617, 0.9776506595433675, 0.16773125949652098, #<absolute_orientation_matrix>
|
||||
Vx_2, Vy_2, Vz_2, #<absolute_velocity> [m/s]
|
||||
Wx_2, Wy_2, Wz_2; #<absolute_angular_velocity> [rad/s]
|
||||
|
||||
structural: structural_node_3,
|
||||
dynamic,
|
||||
Px_3, Py_3, Pz_3, #<absolute_position> [m]
|
||||
3, -0.17364817766693005, -3.122502256758253e-16, 0.9848077530122081, 2, 0.17101007166283402, 0.9848077530122081, 0.030153689607046008, #<absolute_orientation_matrix>
|
||||
3, -0.27178893568691503, -0.25783416049630004, 0.9271743741709766, 2, 0.014330116918634624, 0.9622501868990581, 0.271788935686915, #<absolute_orientation_matrix>
|
||||
Vx_3, Vy_3, Vz_3, #<absolute_velocity> [m/s]
|
||||
Wx_3, Wy_3, Wz_3; #<absolute_angular_velocity> [rad/s]
|
||||
|
||||
structural: structural_node_4,
|
||||
dynamic,
|
||||
Px_4, Py_4, Pz_4, #<absolute_position> [m]
|
||||
3, 0.0, 0.0, 1.0, 2, 0.0, 1.0, 0.0, #<absolute_orientation_matrix>
|
||||
3, 0.2588190451025211, 0.0, 0.9659258262890682, 2, 0.0, 1.0, 0.0, #<absolute_orientation_matrix>
|
||||
Vx_4, Vy_4, Vz_4, #<absolute_velocity> [m/s]
|
||||
Wx_4, Wy_4, Wz_4; #<absolute_angular_velocity> [rad/s]
|
||||
|
||||
@@ -220,22 +220,22 @@
|
||||
structural_node_2, #<node_label>
|
||||
mass_2, #<mass> [kg]
|
||||
Rx_2, Ry_2, Rz_2, #<relative_center_of_mass> [m]
|
||||
diag, Ixx_2, Iyy_2, Izz_2, #<inertia_matrix> [kg*m^2]
|
||||
orientation, 3, -6.071532165918825e-17, -2.775557561562891e-17, 1.0, 2, 1.1102230246251565e-16, 1.0, 2.775557561562892e-17;
|
||||
diag, Ixx_2, Iyy_2, Izz_2, #<inertia matrix> [kg*m^2]
|
||||
orientation, 3, -0.0054384608129255385, 0.8559103374577453, 0.5150405937686557, 2, 0.9969290667160357, -0.0024978913689130133, 0.0023196850194898005;
|
||||
|
||||
body: body_3,
|
||||
structural_node_3, #<node_label>
|
||||
mass_3, #<mass> [kg]
|
||||
Rx_3, Ry_3, Rz_3, #<relative_center_of_mass> [m]
|
||||
diag, Ixx_3, Iyy_3, Izz_3, #<inertia_matrix> [kg*m^2]
|
||||
orientation, 3, -4.119968255444917e-18, -1.734723475976807e-18, 1.0, 2, -3.573502826499754e-36, 1.0, 1.734723475976807e-18;
|
||||
diag, Ixx_3, Iyy_3, Izz_3, #<inertia matrix> [kg*m^2]
|
||||
orientation, 3, 0.9973238325492868, 0.0012847690482160057, -0.002629529780301787, 2, -0.00011328308715380375, 1.0027304733964244, 0.004450235157436283;
|
||||
|
||||
body: body_4,
|
||||
structural_node_4, #<node_label>
|
||||
mass_4, #<mass> [kg]
|
||||
Rx_4, Ry_4, Rz_4, #<relative_center_of_mass> [m]
|
||||
diag, Ixx_4, Iyy_4, Izz_4, #<inertia_matrix> [kg*m^2]
|
||||
orientation, 3, 0.0, 0.0, 1.0, 2, 0.0, 1.0, 0.0;
|
||||
diag, Ixx_4, Iyy_4, Izz_4, #<inertia matrix> [kg*m^2]
|
||||
orientation, 3, -8.551421488581235e-05, 0.0, 0.9957768995806164, 2, 0.0, 1.0, 0.0;
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# [Joints]
|
||||
@@ -248,50 +248,50 @@
|
||||
|
||||
joint: joint_2,
|
||||
axial rotation,
|
||||
1,#<node_1>
|
||||
structural_node_1, #<node_1_label>
|
||||
0.0, 1.218180697837851e-18, 0.05, #<relative_offset_1> [m]
|
||||
orientation, 3, 0.0, 0.0, 1.0, 2, 0.0, 1.0, 0.0, #<relative_orientation_matrix_1>
|
||||
2, #<node_2>
|
||||
-0.03739853284269052, 0.0, 0.0032867622552210526, #<relative_offset_2> [m]
|
||||
orientation, 3, -6.678685382510707e-17, -2.0816681711721682e-17, 1.0, 2, guess, #<relative_orientation_matrix_2>
|
||||
structural_node_2, #<node_2_label>
|
||||
-0.03739853284269051, 0.0, 0.0032867622552210634, #<relative_offset_2> [m]
|
||||
orientation, 3, 5.204170427930421e-18, 0.0, 1.0, 2, guess, #<relative_orientation_matrix_2>
|
||||
string, "model::drive(1, Time)"; #<angular_velocity> [rad/s]
|
||||
|
||||
joint: joint_3,
|
||||
revolute hinge,
|
||||
structural_node_2, #<node_1_label>
|
||||
0.03260146715730951, 0.0, 0.05328676225522103, #<relative_position_1> [m]
|
||||
orientation, 3, -6.678685382510707e-17, -2.0816681711721682e-17, 1.0, 2, 1.1102230246251565e-16, 1.0, 2.0816681711721688e-17, #<relative_pin_orientation_matrix_1>
|
||||
0.03260146715730949, 1.4210854715202004e-17, 0.05328676225522106, #<relative_position_1> [m]
|
||||
orientation, 3, 5.204170427930421e-18, 0.0, 1.0, 2, 0.0, 1.0, 0.0, #<relative_pin_orientation_matrix_1>
|
||||
structural_node_3, #<node_2_label>
|
||||
-0.14000000000000795, -1.0302869668521452e-15, 0.024999999999998076, #<relative_position_2> [m]
|
||||
orientation, 3, -4.119968255444917e-18, -0.0, 1.0, 2, guess; #<relative_pin_orientation_matrix_2>
|
||||
-0.1400000000000079, -1.0444978215673472e-15, 0.024999999999998038, #<relative_position_2> [m]
|
||||
orientation, 3, -5.551115123125784e-17, -5.984795992119986e-17, 1.0, 2, guess; #<relative_pin_orientation_matrix_2>
|
||||
|
||||
joint: joint_4,
|
||||
in line,
|
||||
structural_node_3, #<node_1_label>
|
||||
0.13999999999999274, -9.25814980234918e-16, 4.0323300254385686e-15, #<relative_line_position> [m]
|
||||
3, -5.818367705906288e-15, -7.134403807651544e-16, 1.0, 2, 0.9848077530122082, 0.1736481776669303, 5.853861248646238e-15, #<relative_orientation>
|
||||
0.13999999999999133, 4.4231285301066236e-16, 9.79127889877418e-15, #<relative_line_position> [m]
|
||||
3, 2.7195091690402506e-15, 1.2586758486779817e-14, 1.0, 2, 0.6882367162699149, 0.7254861972346578, -1.1003185610451133e-14, #<relative_orientation>
|
||||
structural_node_4, #<node_2_label>
|
||||
offset, -0.045580834634119466, -2.0299355441011357e-10, 1.2562251569647742e-08; #<relative_offset> [m]
|
||||
offset, -0.045580834634119244, -2.0299354019925886e-10, 1.2562251640702015e-08; #<relative_offset> [m]
|
||||
|
||||
joint: joint_5,
|
||||
in line,
|
||||
structural_node_1, #<node_1_label>
|
||||
0.0, 1.2181806978377854e-18, 0.08, #<relative_line_position> [m]
|
||||
3, 1.0, -2.220446049250313e-16, 2.220446049250313e-16, 2, -2.220446049250313e-16, 0.0, 1.0, #<relative_orientation>
|
||||
structural_node_4, #<node_2_label>
|
||||
offset, -0.045580834634119244, -2.0299354019925886e-10, 1.2562251640702015e-08; #<relative_offset> [m]
|
||||
|
||||
joint: joint_6,
|
||||
prismatic,
|
||||
structural_node_1, #<node_1_label>
|
||||
orientation, 3, 0.0, 0.0, 1.0, 2, 0.0, 1.0, 0.0, #relative_orientation_matrix_1>
|
||||
structural_node_4, #<node_2_label>
|
||||
orientation, 3, 0, 0, 1, 2, 0, 1, 0; #relative_orientation_matrix_2>
|
||||
|
||||
joint: joint_6,
|
||||
in line,
|
||||
structural_node_1, #<node_1_label>
|
||||
0.0, 1.218180697837851e-18, 0.071, #<relative_line_position> [m]
|
||||
3, 1.0, 0.0, 2.220446049250313e-16, 2, 0.0, 1.0, 0.0, #<relative_orientation>
|
||||
structural_node_4, #<node_2_label>
|
||||
offset, 0.0, 0.0, 0.0; #<relative_offset> [m]
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# [Drive callers]
|
||||
|
||||
drive caller: 1, name,"drive:1", cosine, 0.25, 3.1416, 10.0, half, 0.0;
|
||||
drive caller: 1, name,"drive:1", ramp, 6.28, 0.0, 1.0, 0.0;
|
||||
|
||||
end: elements;
|
||||
|
||||
3208
OndselSolver/MBDynCase2orig.mov
Normal file
3208
OndselSolver/MBDynCase2orig.mov
Normal file
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
78
OndselSolver/MBDynDrive.cpp
Normal file
78
OndselSolver/MBDynDrive.cpp
Normal file
@@ -0,0 +1,78 @@
|
||||
#include <regex>
|
||||
|
||||
#include "MBDynDrive.h"
|
||||
|
||||
using namespace MbD;
|
||||
|
||||
void MbD::MBDynDrive::parseMBDyn(std::string line)
|
||||
{
|
||||
driveString = line;
|
||||
size_t previousPos = 0;
|
||||
auto pos = line.find(":");
|
||||
auto front = line.substr(previousPos, pos - previousPos);
|
||||
assert(front.find("drive caller") != std::string::npos);
|
||||
auto arguments = std::vector<std::string>();
|
||||
std::string argument;
|
||||
while (true) {
|
||||
previousPos = pos;
|
||||
pos = line.find(",", pos + 1);
|
||||
if (pos != std::string::npos) {
|
||||
argument = line.substr(previousPos + 1, pos - previousPos - 1);
|
||||
arguments.push_back(argument);
|
||||
}
|
||||
else {
|
||||
argument = line.substr(previousPos + 1);
|
||||
arguments.push_back(argument);
|
||||
break;
|
||||
}
|
||||
}
|
||||
auto iss = std::istringstream(arguments.at(0));
|
||||
iss >> name;
|
||||
arguments.erase(arguments.begin());
|
||||
assert(arguments.at(0).find("name") != std::string::npos);
|
||||
arguments.erase(arguments.begin());
|
||||
iss = std::istringstream(arguments.at(0));
|
||||
iss >> driveName;
|
||||
driveName = std::regex_replace(driveName, std::regex("\""), "");
|
||||
arguments.erase(arguments.begin());
|
||||
readFunction(arguments);
|
||||
}
|
||||
|
||||
void MbD::MBDynDrive::readFunction(std::vector<std::string>& args)
|
||||
{
|
||||
if (args.empty()) return;
|
||||
std::string str;
|
||||
auto iss = std::istringstream(args.at(0));
|
||||
iss >> str;
|
||||
if (str.find("ramp") != std::string::npos) {
|
||||
args.erase(args.begin());
|
||||
std::string slope, initValue, initTime, finalTime;
|
||||
slope = popOffTop(args);
|
||||
initTime = popOffTop(args);
|
||||
finalTime = popOffTop(args);
|
||||
initValue = popOffTop(args);
|
||||
slope.erase(remove_if(slope.begin(), slope.end(), isspace), slope.end());
|
||||
initTime.erase(remove_if(initTime.begin(), initTime.end(), isspace), initTime.end());
|
||||
finalTime.erase(remove_if(finalTime.begin(), finalTime.end(), isspace), finalTime.end());
|
||||
initValue.erase(remove_if(initValue.begin(), initValue.end(), isspace), initValue.end());
|
||||
|
||||
//f = slope*(time - t0) + f0
|
||||
//rampstep(time, t0, f0, t1, f1)
|
||||
//t0 = initTime
|
||||
//f0 = initValue
|
||||
//t1 = finalTime
|
||||
//f1 = initValue + slope * (finalTime - initTime)
|
||||
auto ss = std::stringstream();
|
||||
ss << "rampstep(time, " << initTime << ", " << initValue << ", " << finalTime << ", "
|
||||
<< initValue << " + " << slope << "*(" << finalTime << " - " << initTime << "))";
|
||||
formula = ss.str();
|
||||
}
|
||||
else {
|
||||
assert(false);
|
||||
}
|
||||
}
|
||||
|
||||
void MbD::MBDynDrive::createASMT()
|
||||
{
|
||||
assert(false);
|
||||
}
|
||||
24
OndselSolver/MBDynDrive.h
Normal file
24
OndselSolver/MBDynDrive.h
Normal file
@@ -0,0 +1,24 @@
|
||||
/***************************************************************************
|
||||
* Copyright (c) 2023 Ondsel, Inc. *
|
||||
* *
|
||||
* This file is part of OndselSolver. *
|
||||
* *
|
||||
* See LICENSE file for details about copyright. *
|
||||
***************************************************************************/
|
||||
|
||||
#pragma once
|
||||
#include "MBDynElement.h"
|
||||
|
||||
namespace MbD {
|
||||
class MBDynDrive : public MBDynElement
|
||||
{
|
||||
public:
|
||||
void parseMBDyn(std::string line);
|
||||
void readFunction(std::vector<std::string>& args);
|
||||
void createASMT() override;
|
||||
|
||||
std::string driveString, driveName, formula;
|
||||
|
||||
};
|
||||
}
|
||||
|
||||
@@ -32,6 +32,55 @@ void MbD::MBDynItem::parseMBDyn(std::vector<std::string>& lines)
|
||||
assert(false);
|
||||
}
|
||||
|
||||
std::vector<std::string> MbD::MBDynItem::collectArgumentsFor(std::string title, std::string& statement)
|
||||
{
|
||||
size_t previousPos = 0;
|
||||
auto pos = statement.find(":");
|
||||
auto front = statement.substr(previousPos, pos - previousPos);
|
||||
assert(front.find(title) != std::string::npos);
|
||||
auto arguments = std::vector<std::string>();
|
||||
std::string argument;
|
||||
while (true) {
|
||||
previousPos = pos;
|
||||
pos = statement.find(",", pos + 1);
|
||||
if (pos != std::string::npos) {
|
||||
argument = statement.substr(previousPos + 1, pos - previousPos - 1);
|
||||
arguments.push_back(argument);
|
||||
}
|
||||
else {
|
||||
argument = statement.substr(previousPos + 1);
|
||||
arguments.push_back(argument);
|
||||
break;
|
||||
}
|
||||
}
|
||||
auto arguments2 = std::vector<std::string>();
|
||||
while (!arguments.empty()) {
|
||||
argument = arguments[0];
|
||||
auto n = std::count(argument.begin(), argument.end(), '"');
|
||||
if ((n % 2) == 0) {
|
||||
arguments2.push_back(argument);
|
||||
arguments.erase(arguments.begin());
|
||||
}
|
||||
else {
|
||||
//Need to find matching '"'
|
||||
auto it = std::find_if(arguments.begin() + 1, arguments.end(), [](const std::string& s) {
|
||||
auto nn = std::count(s.begin(), s.end(), '"');
|
||||
if ((nn % 2) == 1) return true;
|
||||
});
|
||||
std::vector<std::string> needToCombineArgs(arguments.begin(), it + 1);
|
||||
arguments.erase(arguments.begin(), it + 1);
|
||||
std::stringstream ss;
|
||||
ss << needToCombineArgs[0];
|
||||
needToCombineArgs.erase(needToCombineArgs.begin());
|
||||
for (auto& arg : needToCombineArgs) {
|
||||
ss << ',' << arg;
|
||||
}
|
||||
arguments2.push_back(ss.str());
|
||||
}
|
||||
}
|
||||
return arguments2;
|
||||
}
|
||||
|
||||
std::vector<std::string>::iterator MbD::MBDynItem::findLineWith(std::vector<std::string>& lines, std::vector<std::string>& tokens)
|
||||
{
|
||||
auto it = std::find_if(lines.begin(), lines.end(), [&](const std::string& line) {
|
||||
@@ -56,6 +105,21 @@ std::shared_ptr<std::vector<std::shared_ptr<MBDynNode>>> MbD::MBDynItem::mbdynNo
|
||||
return owner->mbdynNodes();
|
||||
}
|
||||
|
||||
std::shared_ptr<std::vector<std::shared_ptr<MBDynBody>>> MbD::MBDynItem::mbdynBodies()
|
||||
{
|
||||
return owner->mbdynBodies();
|
||||
}
|
||||
|
||||
std::shared_ptr<std::vector<std::shared_ptr<MBDynJoint>>> MbD::MBDynItem::mbdynJoints()
|
||||
{
|
||||
return owner->mbdynJoints();
|
||||
}
|
||||
|
||||
std::shared_ptr<std::vector<std::shared_ptr<MBDynDrive>>> MbD::MBDynItem::mbdynDrives()
|
||||
{
|
||||
return owner->mbdynDrives();
|
||||
}
|
||||
|
||||
std::vector<std::string> MbD::MBDynItem::nodeNames()
|
||||
{
|
||||
return owner->nodeNames();
|
||||
@@ -96,6 +160,18 @@ std::shared_ptr<ASMTAssembly> MbD::MBDynItem::asmtAssembly()
|
||||
return owner->asmtAssembly();
|
||||
}
|
||||
|
||||
std::string MbD::MBDynItem::formulaFromDrive(std::string driveName, std::string varName)
|
||||
{
|
||||
std::vector<std::string> tokens{ "drive:", driveName };
|
||||
auto drives = mbdynDrives();
|
||||
auto it = std::find_if(drives->begin(), drives->end(), [&](auto& drive) {
|
||||
return lineHasTokens(drive->driveName, tokens);
|
||||
});
|
||||
auto formula = (*it)->formula;
|
||||
assert(varName == "Time");
|
||||
return formula;
|
||||
}
|
||||
|
||||
FColDsptr MbD::MBDynItem::readVector3(std::vector<std::string>& args)
|
||||
{
|
||||
auto parser = std::make_shared<SymbolicParser>();
|
||||
@@ -336,3 +412,11 @@ std::string MbD::MBDynItem::readStringOffTop(std::vector<std::string>& args)
|
||||
iss >> str;
|
||||
return str;
|
||||
}
|
||||
|
||||
std::string MbD::MBDynItem::readToken(std::string& line)
|
||||
{
|
||||
auto iss = std::istringstream(line);
|
||||
std::string str;
|
||||
iss >> str;
|
||||
return str;
|
||||
}
|
||||
|
||||
@@ -16,6 +16,8 @@ namespace MbD {
|
||||
class MBDynNode;
|
||||
class ASMTItem;
|
||||
class MBDynBody;
|
||||
class MBDynJoint;
|
||||
class MBDynDrive;
|
||||
class ASMTAssembly;
|
||||
|
||||
class MBDynItem
|
||||
@@ -28,9 +30,13 @@ namespace MbD {
|
||||
void noop();
|
||||
//void setName(std::string str);
|
||||
virtual void parseMBDyn(std::vector<std::string>& lines);
|
||||
static std::vector<std::string> collectArgumentsFor(std::string title, std::string& statement);
|
||||
std::vector<std::string>::iterator findLineWith(std::vector<std::string>& lines, std::vector<std::string>& tokens);
|
||||
bool lineHasTokens(const std::string& line, std::vector<std::string>& tokens);
|
||||
virtual std::shared_ptr<std::vector<std::shared_ptr<MBDynNode>>> mbdynNodes();
|
||||
virtual std::shared_ptr<std::vector<std::shared_ptr<MBDynBody>>> mbdynBodies();
|
||||
virtual std::shared_ptr<std::vector<std::shared_ptr<MBDynJoint>>> mbdynJoints();
|
||||
virtual std::shared_ptr<std::vector<std::shared_ptr<MBDynDrive>>> mbdynDrives();
|
||||
virtual std::vector<std::string> nodeNames();
|
||||
virtual std::shared_ptr<std::map<std::string, Symsptr>> mbdynVariables();
|
||||
virtual std::shared_ptr<std::map<std::string, std::shared_ptr<MBDynReference>>> mbdynReferences();
|
||||
@@ -39,6 +45,7 @@ namespace MbD {
|
||||
virtual int nodeidAt(std::string nodeName);
|
||||
virtual std::shared_ptr<MBDynBody> bodyWithNode(std::string nodeName);
|
||||
virtual std::shared_ptr<ASMTAssembly> asmtAssembly();
|
||||
virtual std::string formulaFromDrive(std::string driveName, std::string varName);
|
||||
|
||||
FColDsptr readVector3(std::vector<std::string>& args);
|
||||
FColDsptr readPosition(std::vector<std::string>& args);
|
||||
@@ -47,6 +54,7 @@ namespace MbD {
|
||||
FMatDsptr readBasicOrientation(std::vector<std::string>& args);
|
||||
std::string popOffTop(std::vector<std::string>& args);
|
||||
std::string readStringOffTop(std::vector<std::string>& args);
|
||||
std::string readToken(std::string& line);
|
||||
|
||||
std::string name;
|
||||
MBDynItem* owner;
|
||||
|
||||
@@ -20,25 +20,26 @@ void MbD::MBDynJoint::initialize()
|
||||
void MbD::MBDynJoint::parseMBDyn(std::string line)
|
||||
{
|
||||
jointString = line;
|
||||
size_t previousPos = 0;
|
||||
auto pos = line.find(":");
|
||||
auto front = line.substr(previousPos, pos - previousPos);
|
||||
assert(front.find("joint") != std::string::npos);
|
||||
auto arguments = std::vector<std::string>();
|
||||
std::string argument;
|
||||
while (true) {
|
||||
previousPos = pos;
|
||||
pos = line.find(",", pos + 1);
|
||||
if (pos != std::string::npos) {
|
||||
argument = line.substr(previousPos + 1, pos - previousPos - 1);
|
||||
arguments.push_back(argument);
|
||||
}
|
||||
else {
|
||||
argument = line.substr(previousPos + 1);
|
||||
arguments.push_back(argument);
|
||||
break;
|
||||
}
|
||||
}
|
||||
auto arguments = collectArgumentsFor("joint", line);
|
||||
//size_t previousPos = 0;
|
||||
//auto pos = line.find(":");
|
||||
//auto front = line.substr(previousPos, pos - previousPos);
|
||||
//assert(front.find("joint") != std::string::npos);
|
||||
//auto arguments = std::vector<std::string>();
|
||||
//std::string argument;
|
||||
//while (true) {
|
||||
// previousPos = pos;
|
||||
// pos = line.find(",", pos + 1);
|
||||
// if (pos != std::string::npos) {
|
||||
// argument = line.substr(previousPos + 1, pos - previousPos - 1);
|
||||
// arguments.push_back(argument);
|
||||
// }
|
||||
// else {
|
||||
// argument = line.substr(previousPos + 1);
|
||||
// arguments.push_back(argument);
|
||||
// break;
|
||||
// }
|
||||
//}
|
||||
auto ss = std::stringstream();
|
||||
auto iss = std::istringstream(arguments.at(0));
|
||||
iss >> name;
|
||||
@@ -119,7 +120,7 @@ void MbD::MBDynJoint::parseMBDyn(std::string line)
|
||||
mkr1->nodeStr = "Assembly";
|
||||
mkr1->rPmP = std::make_shared<FullColumn<double>>(3);
|
||||
mkr1->aAPm = FullMatrix<double>::identitysptr(3);
|
||||
readMarkerJ(arguments);
|
||||
readClampMarkerJ(arguments);
|
||||
return;
|
||||
}
|
||||
else if (joint_type == "prismatic") {
|
||||
@@ -160,6 +161,15 @@ void MbD::MBDynJoint::readMarkerJ(std::vector<std::string>& args)
|
||||
mkr2->parseMBDyn(args);
|
||||
}
|
||||
|
||||
void MbD::MBDynJoint::readClampMarkerJ(std::vector<std::string>& args)
|
||||
{
|
||||
if (args.empty()) return;
|
||||
mkr2 = std::make_shared<MBDynMarker>();
|
||||
mkr2->owner = this;
|
||||
mkr2->nodeStr = readStringOffTop(args);
|
||||
mkr2->parseMBDynClamp(args);
|
||||
}
|
||||
|
||||
void MbD::MBDynJoint::readFunction(std::vector<std::string>& args)
|
||||
{
|
||||
if (args.empty()) return;
|
||||
@@ -177,7 +187,8 @@ void MbD::MBDynJoint::readFunction(std::vector<std::string>& args)
|
||||
auto ss = std::stringstream();
|
||||
ss << slope << "*(time - " << initTime << ") + " << initValue;
|
||||
formula = ss.str();
|
||||
} else if (str.find("single") != std::string::npos) {
|
||||
}
|
||||
else if (str.find("single") != std::string::npos) {
|
||||
args.erase(args.begin());
|
||||
auto vec3 = readVector3(args);
|
||||
assert(vec3->at(0) == 0 && vec3->at(1) == 0 && vec3->at(2) == 1);
|
||||
@@ -185,6 +196,11 @@ void MbD::MBDynJoint::readFunction(std::vector<std::string>& args)
|
||||
formula = popOffTop(args);
|
||||
formula = std::regex_replace(formula, std::regex("\""), "");
|
||||
}
|
||||
else if (str.find("string") != std::string::npos) {
|
||||
args.erase(args.begin());
|
||||
formula = popOffTop(args);
|
||||
formula = std::regex_replace(formula, std::regex("\""), "");
|
||||
}
|
||||
else {
|
||||
assert(false);
|
||||
}
|
||||
@@ -216,7 +232,7 @@ void MbD::MBDynJoint::createASMT()
|
||||
asmtItem = asmtMotion;
|
||||
asmtMotion->setName(name.append("Motion"));
|
||||
asmtMotion->setMotionJoint(asmtJoint->fullName(""));
|
||||
asmtMotion->setRotationZ(formula);
|
||||
asmtMotion->setRotationZ(asmtFormulaIntegral());
|
||||
asmtAsm->addMotion(asmtMotion);
|
||||
return;
|
||||
}
|
||||
@@ -252,3 +268,37 @@ void MbD::MBDynJoint::createASMT()
|
||||
asmtJoint->setMarkerJ(mkr2->asmtItem->fullName(""));
|
||||
asmtAssembly()->addJoint(asmtJoint);
|
||||
}
|
||||
|
||||
std::string MbD::MBDynJoint::asmtFormula()
|
||||
{
|
||||
auto ss = std::stringstream();
|
||||
std::string drivestr = "model::drive";
|
||||
size_t previousPos = 0;
|
||||
auto pos = formula.find(drivestr);
|
||||
ss << formula.substr(previousPos, pos - previousPos);
|
||||
while (pos != std::string::npos) {
|
||||
previousPos = pos;
|
||||
pos = formula.find('(', pos + 1);
|
||||
previousPos = pos;
|
||||
pos = formula.find(',', pos + 1);
|
||||
auto driveName = formula.substr(previousPos + 1, pos - previousPos - 1);
|
||||
driveName = readToken(driveName);
|
||||
previousPos = pos;
|
||||
pos = formula.find(')', pos + 1);
|
||||
auto varName = formula.substr(previousPos + 1, pos - previousPos - 1);
|
||||
varName = readToken(varName);
|
||||
//Insert drive formula
|
||||
ss << formulaFromDrive(driveName, varName);
|
||||
previousPos = pos;
|
||||
pos = formula.find(drivestr, pos + 1);
|
||||
ss << formula.substr(previousPos + 1, pos - previousPos);
|
||||
}
|
||||
return ss.str();
|
||||
}
|
||||
|
||||
std::string MbD::MBDynJoint::asmtFormulaIntegral()
|
||||
{
|
||||
auto ss = std::stringstream();
|
||||
ss << "integral(time, " << asmtFormula() << ")";
|
||||
return ss.str();
|
||||
}
|
||||
|
||||
@@ -18,8 +18,11 @@ namespace MbD {
|
||||
void parseMBDyn(std::string line);
|
||||
void readMarkerI(std::vector<std::string>& args);
|
||||
void readMarkerJ(std::vector<std::string>& args);
|
||||
void readClampMarkerJ(std::vector<std::string>& args);
|
||||
void readFunction(std::vector<std::string>& args);
|
||||
void createASMT() override;
|
||||
std::string asmtFormula();
|
||||
std::string asmtFormulaIntegral();
|
||||
|
||||
std::string jointString, joint_type, node_1_label, node_2_label;
|
||||
std::shared_ptr<MBDynMarker> mkr1, mkr2;
|
||||
|
||||
@@ -32,6 +32,18 @@ void MbD::MBDynMarker::parseMBDyn(std::vector<std::string>& args)
|
||||
}
|
||||
}
|
||||
|
||||
void MbD::MBDynMarker::parseMBDynClamp(std::vector<std::string>& args)
|
||||
{
|
||||
//rOmO = rOPO + aAOP*rPmP
|
||||
//aAOm = aAOP * aAPm
|
||||
auto rOmO = std::make_shared<FullColumn<double>>(3);
|
||||
auto aAOm = FullMatrix<double>::identitysptr(3);
|
||||
auto rOPO = readPosition(args);
|
||||
auto aAOP = readOrientation(args);
|
||||
rPmP = aAOP->transposeTimesFullColumn(rOmO->minusFullColumn(rOPO));
|
||||
aAPm = aAOP->transposeTimesFullMatrix(aAOm);
|
||||
}
|
||||
|
||||
void MbD::MBDynMarker::createASMT()
|
||||
{
|
||||
auto asmtAsm = asmtAssembly();
|
||||
|
||||
@@ -15,6 +15,7 @@ namespace MbD {
|
||||
{
|
||||
public:
|
||||
void parseMBDyn(std::vector<std::string>& args);
|
||||
void parseMBDynClamp(std::vector<std::string>& args);
|
||||
void createASMT() override;
|
||||
|
||||
std::string nodeStr;
|
||||
|
||||
@@ -20,13 +20,7 @@ void MbD::MBDynNode::outputLine(int i, std::ostream& os)
|
||||
auto x = asmtPart->xs->at(i);
|
||||
auto y = asmtPart->ys->at(i);
|
||||
auto z = asmtPart->zs->at(i);
|
||||
auto bryantAngles = std::make_shared<EulerAngles<double>>();
|
||||
bryantAngles->setRotOrder(1, 2, 3);
|
||||
bryantAngles->at(0) = asmtPart->bryxs->at(i);
|
||||
bryantAngles->at(1) = asmtPart->bryys->at(i);
|
||||
bryantAngles->at(2) = asmtPart->bryzs->at(i);
|
||||
bryantAngles->calc();
|
||||
auto aA = bryantAngles->aA;
|
||||
auto aA = asmtPart->getRotationMatrix(i);
|
||||
auto vx = asmtPart->vxs->at(i);
|
||||
auto vy = asmtPart->vys->at(i);
|
||||
auto vz = asmtPart->vzs->at(i);
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
#include <fstream>
|
||||
#include <algorithm>
|
||||
#include <numeric>
|
||||
#include <iomanip>
|
||||
|
||||
#include "MBDynSystem.h"
|
||||
#include "CREATE.h"
|
||||
@@ -14,12 +15,12 @@
|
||||
#include "ASMTConstantGravity.h"
|
||||
#include "ASMTTime.h"
|
||||
#include "MBDynBody.h"
|
||||
#include "MBDynJoint.h"
|
||||
#include "MBDynStructural.h"
|
||||
#include "SymbolicParser.h"
|
||||
#include "BasicUserFunction.h"
|
||||
#include "MBDynJoint.h"
|
||||
#include "MBDynReference.h"
|
||||
#include <iomanip>
|
||||
#include "MBDynDrive.h"
|
||||
|
||||
using namespace MbD;
|
||||
|
||||
@@ -38,7 +39,6 @@ void MbD::MBDynSystem::runFile(const char* filename)
|
||||
system->setFilename(filename);
|
||||
system->parseMBDyn(statements);
|
||||
system->runKINEMATIC();
|
||||
system->outputFiles();
|
||||
}
|
||||
|
||||
void MbD::MBDynSystem::parseMBDyn(std::vector<std::string>& lines)
|
||||
@@ -51,7 +51,7 @@ void MbD::MBDynSystem::parseMBDyn(std::vector<std::string>& lines)
|
||||
readReferences(lines);
|
||||
readNodesBlock(lines);
|
||||
readElementsBlock(lines);
|
||||
|
||||
assert(lines.empty());
|
||||
}
|
||||
|
||||
std::shared_ptr<std::vector<std::shared_ptr<MBDynNode>>> MbD::MBDynSystem::mbdynNodes()
|
||||
@@ -59,6 +59,21 @@ std::shared_ptr<std::vector<std::shared_ptr<MBDynNode>>> MbD::MBDynSystem::mbdyn
|
||||
return nodes;
|
||||
}
|
||||
|
||||
std::shared_ptr<std::vector<std::shared_ptr<MBDynBody>>> MbD::MBDynSystem::mbdynBodies()
|
||||
{
|
||||
return bodies;
|
||||
}
|
||||
|
||||
std::shared_ptr<std::vector<std::shared_ptr<MBDynJoint>>> MbD::MBDynSystem::mbdynJoints()
|
||||
{
|
||||
return joints;
|
||||
}
|
||||
|
||||
std::shared_ptr<std::vector<std::shared_ptr<MBDynDrive>>> MbD::MBDynSystem::mbdynDrives()
|
||||
{
|
||||
return drives;
|
||||
}
|
||||
|
||||
std::shared_ptr<std::map<std::string, Symsptr>> MbD::MBDynSystem::mbdynVariables()
|
||||
{
|
||||
return variables;
|
||||
@@ -77,7 +92,8 @@ void MbD::MBDynSystem::createASMT()
|
||||
asmtItem->setName("Assembly");
|
||||
initialValue->createASMT();
|
||||
for (auto& node : *nodes) node->createASMT();
|
||||
for (auto& element : *elements) element->createASMT();
|
||||
for (auto& body : *bodies) body->createASMT();
|
||||
for (auto& joint : *joints) joint->createASMT();
|
||||
}
|
||||
|
||||
std::shared_ptr<MBDynNode> MbD::MBDynSystem::nodeAt(std::string nodeName)
|
||||
@@ -95,12 +111,8 @@ int MbD::MBDynSystem::nodeidAt(std::string nodeName)
|
||||
|
||||
std::shared_ptr<MBDynBody> MbD::MBDynSystem::bodyWithNode(std::string nodeName)
|
||||
{
|
||||
for (auto& element : *elements) {
|
||||
std::string str = typeid(element).name();
|
||||
if (str.find("MBDynBody") != std::string::npos) {
|
||||
auto body = std::static_pointer_cast<MBDynBody>(element);
|
||||
if (body->nodeName == nodeName) return body;
|
||||
}
|
||||
for (auto& body : *bodies) {
|
||||
if (body->nodeName == nodeName) return body;
|
||||
}
|
||||
return nullptr;
|
||||
}
|
||||
@@ -122,8 +134,10 @@ std::vector<std::string> MbD::MBDynSystem::nodeNames()
|
||||
void MbD::MBDynSystem::runKINEMATIC()
|
||||
{
|
||||
createASMT();
|
||||
asmtAssembly()->outputFile("assembly.asmt");
|
||||
std::static_pointer_cast<ASMTAssembly>(asmtItem)->runKINEMATIC();
|
||||
outputFiles();
|
||||
asmtAssembly()->outputFile("assembly2.asmt");
|
||||
}
|
||||
|
||||
void MbD::MBDynSystem::outputFiles()
|
||||
@@ -302,31 +316,47 @@ void MbD::MBDynSystem::parseMBDynNodes(std::vector<std::string>& lines)
|
||||
|
||||
void MbD::MBDynSystem::parseMBDynElements(std::vector<std::string>& lines)
|
||||
{
|
||||
elements = std::make_shared<std::vector<std::shared_ptr<MBDynElement>>>();
|
||||
std::vector<std::string> bodyToken{ "body:" };
|
||||
std::vector<std::string> jointToken{ "joint:" };
|
||||
assert(lines[0].find("begin: elements") != std::string::npos);
|
||||
lines.erase(lines.begin());
|
||||
bodies = std::make_shared<std::vector<std::shared_ptr<MBDynBody>>>();
|
||||
joints = std::make_shared<std::vector<std::shared_ptr<MBDynJoint>>>();
|
||||
drives = std::make_shared<std::vector<std::shared_ptr<MBDynDrive>>>();
|
||||
std::vector<std::string> bodyTokens{ "body:" };
|
||||
std::vector<std::string> jointTokens{ "joint:" };
|
||||
std::vector<std::string> driveTokens{ "drive", "caller:" };
|
||||
std::vector<std::string>::iterator it;
|
||||
while (true) {
|
||||
it = findLineWith(lines, bodyToken);
|
||||
it = findLineWith(lines, bodyTokens);
|
||||
if (it != lines.end()) {
|
||||
auto body = std::make_shared<MBDynBody>();
|
||||
body->owner = this;
|
||||
body->parseMBDyn(*it);
|
||||
elements->push_back(body);
|
||||
bodies->push_back(body);
|
||||
lines.erase(it);
|
||||
continue;
|
||||
}
|
||||
it = findLineWith(lines, jointToken);
|
||||
it = findLineWith(lines, jointTokens);
|
||||
if (it != lines.end()) {
|
||||
auto joint = std::make_shared<MBDynJoint>();
|
||||
joint->owner = this;
|
||||
joint->parseMBDyn(*it);
|
||||
elements->push_back(joint);
|
||||
joints->push_back(joint);
|
||||
lines.erase(it);
|
||||
continue;
|
||||
}
|
||||
it = findLineWith(lines, driveTokens);
|
||||
if (it != lines.end()) {
|
||||
auto drive = std::make_shared<MBDynDrive>();
|
||||
drive->owner = this;
|
||||
drive->parseMBDyn(*it);
|
||||
drives->push_back(drive);
|
||||
lines.erase(it);
|
||||
continue;
|
||||
}
|
||||
break;
|
||||
}
|
||||
assert(lines[0].find("end: elements") != std::string::npos);
|
||||
lines.erase(lines.begin());
|
||||
}
|
||||
|
||||
void MbD::MBDynSystem::parseMBDynVariables(std::vector<std::string>& lines)
|
||||
@@ -349,6 +379,7 @@ void MbD::MBDynSystem::parseMBDynVariables(std::vector<std::string>& lines)
|
||||
auto userFunc = std::make_shared<BasicUserFunction>(str, 1.0);
|
||||
parser->parseUserFunction(userFunc);
|
||||
auto sym = parser->stack->top();
|
||||
auto val = sym->getValue();
|
||||
variables->insert(std::make_pair(variable, sym));
|
||||
lines.erase(it);
|
||||
}
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
#include <string>
|
||||
|
||||
#include "MBDynItem.h"
|
||||
#include "MBDynDrive.h"
|
||||
|
||||
namespace MbD {
|
||||
class MBDynData;
|
||||
@@ -37,6 +38,9 @@ namespace MbD {
|
||||
void parseMBDynLabels(std::vector<std::string>& lines);
|
||||
void parseMBDynReferences(std::vector<std::string>& lines);
|
||||
std::shared_ptr<std::vector<std::shared_ptr<MBDynNode>>> mbdynNodes() override;
|
||||
std::shared_ptr<std::vector<std::shared_ptr<MBDynBody>>> mbdynBodies() override;
|
||||
std::shared_ptr<std::vector<std::shared_ptr<MBDynJoint>>> mbdynJoints() override;
|
||||
std::shared_ptr<std::vector<std::shared_ptr<MBDynDrive>>> mbdynDrives() override;
|
||||
std::shared_ptr<std::map<std::string, Symsptr>> mbdynVariables() override;
|
||||
std::shared_ptr<std::map<std::string, std::shared_ptr<MBDynReference>>> mbdynReferences() override;
|
||||
void createASMT() override;
|
||||
@@ -63,7 +67,9 @@ namespace MbD {
|
||||
std::shared_ptr<MBDynInitialValue> initialValue;
|
||||
std::shared_ptr<MBDynControlData> controlData;
|
||||
std::shared_ptr<std::vector<std::shared_ptr<MBDynNode>>> nodes;
|
||||
std::shared_ptr<std::vector<std::shared_ptr<MBDynElement>>> elements;
|
||||
std::shared_ptr<std::vector<std::shared_ptr<MBDynBody>>> bodies;
|
||||
std::shared_ptr<std::vector<std::shared_ptr<MBDynJoint>>> joints;
|
||||
std::shared_ptr<std::vector<std::shared_ptr<MBDynDrive>>> drives;
|
||||
std::shared_ptr<std::map<std::string, Symsptr>> variables;
|
||||
std::shared_ptr<std::map<std::string, int>> labels;
|
||||
std::shared_ptr<std::map<std::string, std::shared_ptr<MBDynReference>>> references;
|
||||
|
||||
@@ -6,4 +6,9 @@
|
||||
* See LICENSE file for details about copyright. *
|
||||
***************************************************************************/
|
||||
|
||||
#include "MbdMath.h"
|
||||
#include "MbDMath.h"
|
||||
|
||||
void MbD::MbDMath::noop()
|
||||
{
|
||||
//No Operations
|
||||
}
|
||||
|
||||
@@ -9,8 +9,11 @@
|
||||
#pragma once
|
||||
|
||||
namespace MbD {
|
||||
class MbdMath
|
||||
class MbDMath
|
||||
{
|
||||
public:
|
||||
void noop();
|
||||
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@@ -22,11 +22,31 @@ double MbD::Negative::getValue()
|
||||
|
||||
Symsptr MbD::Negative::differentiateWRTx()
|
||||
{
|
||||
return std::make_shared<Constant>(-1);
|
||||
return sptrConstant(-1);
|
||||
}
|
||||
|
||||
Symsptr MbD::Negative::expandUntil(Symsptr sptr, std::shared_ptr<std::unordered_set<Symsptr>> set)
|
||||
{
|
||||
auto expand = xx->expandUntil(xx, set);
|
||||
return std::make_shared<Negative>(expand);
|
||||
}
|
||||
|
||||
Symsptr MbD::Negative::simplifyUntil(Symsptr sptr, std::shared_ptr<std::unordered_set<Symsptr>> set)
|
||||
{
|
||||
auto simple = xx->simplifyUntil(xx, set);
|
||||
if (simple->isConstant()) {
|
||||
return sptrConstant(-simple->getValue());
|
||||
}
|
||||
return std::make_shared<Negative>(simple);
|
||||
}
|
||||
|
||||
Symsptr MbD::Negative::copyWith(Symsptr arg)
|
||||
{
|
||||
return std::make_shared<Negative>(arg);
|
||||
}
|
||||
|
||||
std::ostream& MbD::Negative::printOn(std::ostream& s) const
|
||||
{
|
||||
s << "-(" << xx << ")";
|
||||
s << "-(" << *xx << ")";
|
||||
return s;
|
||||
}
|
||||
|
||||
@@ -19,6 +19,9 @@ namespace MbD {
|
||||
Negative(Symsptr arg);
|
||||
double getValue() override;
|
||||
Symsptr differentiateWRTx() override;
|
||||
Symsptr expandUntil(Symsptr sptr, std::shared_ptr<std::unordered_set<Symsptr>> set) override;
|
||||
Symsptr simplifyUntil(Symsptr sptr, std::shared_ptr<std::unordered_set<Symsptr>> set) override;
|
||||
Symsptr copyWith(Symsptr arg) override;
|
||||
|
||||
std::ostream& printOn(std::ostream& s) const override;
|
||||
|
||||
|
||||
@@ -9,10 +9,10 @@
|
||||
#pragma once
|
||||
#include <vector>
|
||||
|
||||
#include "MbdMath.h"
|
||||
#include "MbDMath.h"
|
||||
|
||||
namespace MbD {
|
||||
class Numeric : public MbdMath
|
||||
class Numeric : public MbDMath
|
||||
{
|
||||
//
|
||||
public:
|
||||
|
||||
@@ -22,13 +22,14 @@
|
||||
|
||||
using namespace MbD;
|
||||
void runSpMat();
|
||||
void sharedptrTest();
|
||||
|
||||
int main()
|
||||
{
|
||||
////ASMTAssembly::readWriteFile("piston.asmt");
|
||||
//MBDynSystem::runFile("MBDynCaseJose.mbd");
|
||||
//MBDynSystem::runFile("MBDynCase.mbd");
|
||||
//MBDynSystem::runFile("crank_slider.mbd");
|
||||
ASMTAssembly::readWriteFile("piston.asmt");
|
||||
MBDynSystem::runFile("MBDynCase2.mbd");
|
||||
MBDynSystem::runFile("MBDynCase.mbd");
|
||||
//MBDynSystem::runFile("crank_slider.mbd"); //Needs integration of product
|
||||
////ASMTAssembly::runSinglePendulumSuperSimplified(); //Mass is missing
|
||||
////ASMTAssembly::runSinglePendulumSuperSimplified2(); //DOF has infinite acceleration due to zero mass and inertias
|
||||
ASMTAssembly::runSinglePendulumSimplified();
|
||||
@@ -49,8 +50,25 @@ int main()
|
||||
cadSystem->runPiston();
|
||||
runSpMat();
|
||||
MomentOfInertiaSolver::example1();
|
||||
sharedptrTest();
|
||||
}
|
||||
void sharedptrTest() {
|
||||
auto assm = std::make_shared<ASMTAssembly>();
|
||||
|
||||
auto assm1 = assm; //New shared_ptr to old object. Reference count incremented.
|
||||
assert(assm == assm1);
|
||||
assert(assm.get() == assm1.get());
|
||||
assert(&assm != &assm1);
|
||||
assert(assm->constantGravity == assm1->constantGravity);
|
||||
assert(&(assm->constantGravity) == &(assm1->constantGravity));
|
||||
|
||||
auto assm2 = std::make_shared<ASMTAssembly>(*assm); //New shared_ptr to new object. Member variables copy old member variables
|
||||
assert(assm != assm2);
|
||||
assert(assm.get() != assm2.get());
|
||||
assert(&assm != &assm2);
|
||||
assert(assm->constantGravity == assm2->constantGravity); //constantGravity is same object pointed to
|
||||
assert(&(assm->constantGravity) != &(assm2->constantGravity)); //Different shared_ptrs of same reference counter
|
||||
}
|
||||
void runSpMat() {
|
||||
auto spMat = std::make_shared<SparseMatrix<double>>(3, 3);
|
||||
spMat->atijput(0, 0, 1.0);
|
||||
|
||||
@@ -219,6 +219,7 @@
|
||||
<ClCompile Include="FunctionXcParameter.cpp" />
|
||||
<ClCompile Include="FunctionXY.cpp" />
|
||||
<ClCompile Include="GeneralSpline.cpp" />
|
||||
<ClCompile Include="Integral.cpp" />
|
||||
<ClCompile Include="Ln.cpp" />
|
||||
<ClCompile Include="Log10.cpp" />
|
||||
<ClCompile Include="LogN.cpp" />
|
||||
@@ -226,6 +227,7 @@
|
||||
<ClCompile Include="MBDynBody.cpp" />
|
||||
<ClCompile Include="MBDynControlData.cpp" />
|
||||
<ClCompile Include="MBDynData.cpp" />
|
||||
<ClCompile Include="MBDynDrive.cpp" />
|
||||
<ClCompile Include="MBDynElement.cpp" />
|
||||
<ClCompile Include="MBDynInitialValue.cpp" />
|
||||
<ClCompile Include="MBDynItem.cpp" />
|
||||
@@ -237,6 +239,8 @@
|
||||
<ClCompile Include="MBDynSystem.cpp" />
|
||||
<ClCompile Include="MomentOfInertiaSolver.cpp" />
|
||||
<ClCompile Include="Negative.cpp" />
|
||||
<ClCompile Include="PiecewiseFunction.cpp" />
|
||||
<ClCompile Include="Polynomial.cpp" />
|
||||
<ClCompile Include="PosVelAccData.cpp" />
|
||||
<ClCompile Include="DiagonalMatrix.cpp" />
|
||||
<ClCompile Include="DifferenceOperator.cpp" />
|
||||
@@ -337,7 +341,7 @@
|
||||
<ClCompile Include="MatrixLDU.cpp" />
|
||||
<ClCompile Include="MatrixSolver.cpp" />
|
||||
<ClCompile Include="MaximumIterationError.cpp" />
|
||||
<ClCompile Include="MbdMath.cpp" />
|
||||
<ClCompile Include="MbDMath.cpp" />
|
||||
<ClCompile Include="NewtonRaphson.cpp" />
|
||||
<ClCompile Include="NewtonRaphsonError.cpp" />
|
||||
<ClCompile Include="NoRotationJoint.cpp" />
|
||||
@@ -367,6 +371,7 @@
|
||||
<ClCompile Include="RackPinConstraintIqcJc.cpp" />
|
||||
<ClCompile Include="RackPinConstraintIqcJqc.cpp" />
|
||||
<ClCompile Include="RackPinJoint.cpp" />
|
||||
<ClCompile Include="RampStepFunction.cpp" />
|
||||
<ClCompile Include="Reciprocal.cpp" />
|
||||
<ClCompile Include="RedundantConstraint.cpp" />
|
||||
<ClCompile Include="RevCylJoint.cpp" />
|
||||
@@ -390,6 +395,7 @@
|
||||
<ClCompile Include="StableBackwardDifference.cpp" />
|
||||
<ClCompile Include="LDUFullMat.cpp" />
|
||||
<ClCompile Include="StateData.cpp" />
|
||||
<ClCompile Include="StepFunction.cpp" />
|
||||
<ClCompile Include="Sum.cpp" />
|
||||
<ClCompile Include="Symbolic.cpp" />
|
||||
<ClCompile Include="SymbolicParser.cpp" />
|
||||
@@ -505,6 +511,7 @@
|
||||
<ClInclude Include="FunctionXcParameter.h" />
|
||||
<ClInclude Include="FunctionXY.h" />
|
||||
<ClInclude Include="GeneralSpline.h" />
|
||||
<ClInclude Include="Integral.h" />
|
||||
<ClInclude Include="Ln.h" />
|
||||
<ClInclude Include="Log10.h" />
|
||||
<ClInclude Include="LogN.h" />
|
||||
@@ -512,6 +519,7 @@
|
||||
<ClInclude Include="MBDynBody.h" />
|
||||
<ClInclude Include="MBDynControlData.h" />
|
||||
<ClInclude Include="MBDynData.h" />
|
||||
<ClInclude Include="MBDynDrive.h" />
|
||||
<ClInclude Include="MBDynElement.h" />
|
||||
<ClInclude Include="MBDynInitialValue.h" />
|
||||
<ClInclude Include="MBDynItem.h" />
|
||||
@@ -523,6 +531,8 @@
|
||||
<ClInclude Include="MBDynSystem.h" />
|
||||
<ClInclude Include="MomentOfInertiaSolver.h" />
|
||||
<ClInclude Include="Negative.h" />
|
||||
<ClInclude Include="PiecewiseFunction.h" />
|
||||
<ClInclude Include="Polynomial.h" />
|
||||
<ClInclude Include="PosVelAccData.h" />
|
||||
<ClInclude Include="DiagonalMatrix.h" />
|
||||
<ClInclude Include="DifferenceOperator.h" />
|
||||
@@ -624,7 +634,7 @@
|
||||
<ClInclude Include="MatrixLDU.h" />
|
||||
<ClInclude Include="MatrixSolver.h" />
|
||||
<ClInclude Include="MaximumIterationError.h" />
|
||||
<ClInclude Include="MbdMath.h" />
|
||||
<ClInclude Include="MbDMath.h" />
|
||||
<ClInclude Include="NewtonRaphson.h" />
|
||||
<ClInclude Include="NewtonRaphsonError.h" />
|
||||
<ClInclude Include="NoRotationJoint.h" />
|
||||
@@ -654,6 +664,7 @@
|
||||
<ClInclude Include="RackPinConstraintIqcJc.h" />
|
||||
<ClInclude Include="RackPinConstraintIqcJqc.h" />
|
||||
<ClInclude Include="RackPinJoint.h" />
|
||||
<ClInclude Include="RampStepFunction.h" />
|
||||
<ClInclude Include="Reciprocal.h" />
|
||||
<ClInclude Include="RedundantConstraint.h" />
|
||||
<ClInclude Include="resource.h" />
|
||||
@@ -678,6 +689,7 @@
|
||||
<ClInclude Include="StableBackwardDifference.h" />
|
||||
<ClInclude Include="LDUFullMat.h" />
|
||||
<ClInclude Include="StateData.h" />
|
||||
<ClInclude Include="StepFunction.h" />
|
||||
<ClInclude Include="Sum.h" />
|
||||
<ClInclude Include="Symbolic.h" />
|
||||
<ClInclude Include="SymbolicParser.h" />
|
||||
|
||||
@@ -867,6 +867,24 @@
|
||||
<ClCompile Include="MomentOfInertiaSolver.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="MBDynDrive.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="PiecewiseFunction.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Polynomial.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="RampStepFunction.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="StepFunction.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Integral.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="Array.h">
|
||||
@@ -1727,6 +1745,24 @@
|
||||
<ClInclude Include="MomentOfInertiaSolver.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="MBDynDrive.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="PiecewiseFunction.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Polynomial.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="RampStepFunction.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="StepFunction.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Integral.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ResourceCompile Include="OndselSolver.rc">
|
||||
|
||||
115
OndselSolver/PiecewiseFunction.cpp
Normal file
115
OndselSolver/PiecewiseFunction.cpp
Normal file
@@ -0,0 +1,115 @@
|
||||
/***************************************************************************
|
||||
* Copyright (c) 2023 Ondsel, Inc. *
|
||||
* *
|
||||
* This file is part of OndselSolver. *
|
||||
* *
|
||||
* See LICENSE file for details about copyright. *
|
||||
***************************************************************************/
|
||||
|
||||
#include <algorithm>
|
||||
|
||||
#include "PiecewiseFunction.h"
|
||||
|
||||
using namespace MbD;
|
||||
|
||||
MbD::PiecewiseFunction::PiecewiseFunction()
|
||||
{
|
||||
noop();
|
||||
}
|
||||
|
||||
MbD::PiecewiseFunction::PiecewiseFunction(Symsptr var, std::shared_ptr<std::vector<Symsptr>> funcs, std::shared_ptr<std::vector<Symsptr>> trans)
|
||||
{
|
||||
assert(var);
|
||||
assert(functions->empty());
|
||||
xx = var;
|
||||
functions->clear();
|
||||
functions->insert(functions->end(), funcs->begin(), funcs->end());
|
||||
transitions->clear();
|
||||
transitions->insert(transitions->end(), trans->begin(), trans->end());
|
||||
}
|
||||
|
||||
Symsptr MbD::PiecewiseFunction::expandUntil(Symsptr sptr, std::shared_ptr<std::unordered_set<Symsptr>> set)
|
||||
{
|
||||
auto expansions = std::make_shared<std::vector<Symsptr>>();
|
||||
std::transform(functions->begin(),
|
||||
functions->end(),
|
||||
std::back_inserter(*expansions),
|
||||
[&](auto& func) { return func->expandUntil(func, set); }
|
||||
);
|
||||
return std::make_shared<PiecewiseFunction>(xx, expansions, transitions);
|
||||
}
|
||||
|
||||
Symsptr MbD::PiecewiseFunction::simplifyUntil(Symsptr sptr, std::shared_ptr<std::unordered_set<Symsptr>> set)
|
||||
{
|
||||
auto simplifications = std::make_shared<std::vector<Symsptr>>();
|
||||
std::transform(functions->begin(),
|
||||
functions->end(),
|
||||
std::back_inserter(*simplifications),
|
||||
[&](auto& func) { return func->simplifyUntil(func, set); }
|
||||
);
|
||||
return std::make_shared<PiecewiseFunction>(xx, simplifications, transitions);
|
||||
}
|
||||
|
||||
Symsptr MbD::PiecewiseFunction::differentiateWRTx()
|
||||
{
|
||||
auto derivatives = std::make_shared<std::vector<Symsptr>>();
|
||||
std::transform(functions->begin(),
|
||||
functions->end(),
|
||||
std::back_inserter(*derivatives),
|
||||
[&](auto& func) { return func->differentiateWRT(xx); }
|
||||
);
|
||||
return std::make_shared<PiecewiseFunction>(xx, derivatives, transitions);
|
||||
}
|
||||
|
||||
Symsptr MbD::PiecewiseFunction::integrateWRT(Symsptr var)
|
||||
{
|
||||
assert(xx == var);
|
||||
auto integrals = std::make_shared<std::vector<Symsptr>>();
|
||||
std::transform(functions->begin(),
|
||||
functions->end(),
|
||||
std::back_inserter(*integrals),
|
||||
[var](auto& func) { return func->integrateWRT(var); }
|
||||
);
|
||||
for (int i = 0; i < transitions->size(); i++)
|
||||
{
|
||||
auto x = transitions->at(i)->getValue();
|
||||
auto fi = integrals->at(i)->getValue(x);
|
||||
auto fi1 = integrals->at(i + 1)->getValue(x);
|
||||
auto integConstant = fi - fi1;
|
||||
integrals->at(i + 1)->integrationConstant(integConstant);
|
||||
noop();
|
||||
}
|
||||
return std::make_shared<PiecewiseFunction>(var, integrals, transitions);
|
||||
}
|
||||
|
||||
double MbD::PiecewiseFunction::getValue()
|
||||
{
|
||||
auto xval = xx->getValue();
|
||||
for (int i = 0; i < transitions->size(); i++)
|
||||
{
|
||||
if (xval < transitions->at(i)->getValue()) {
|
||||
return functions->at(i)->getValue();
|
||||
}
|
||||
}
|
||||
return functions->back()->getValue();
|
||||
}
|
||||
|
||||
std::ostream& MbD::PiecewiseFunction::printOn(std::ostream& s) const
|
||||
{
|
||||
s << "PiecewiseFunction(" << *xx << ", " << std::endl;
|
||||
s << "functions{" << std::endl;
|
||||
s << *functions->at(0) << std::endl;
|
||||
for (int i = 1; i < functions->size(); i++)
|
||||
{
|
||||
s << *functions->at(i) << std::endl;
|
||||
}
|
||||
s << "}, " << std::endl;
|
||||
s << "transitions{" << std::endl;
|
||||
s << *transitions->at(0) << std::endl;
|
||||
for (int i = 1; i < transitions->size(); i++)
|
||||
{
|
||||
s << *transitions->at(i) << std::endl;
|
||||
}
|
||||
s << "})" << std::endl;
|
||||
return s;
|
||||
}
|
||||
36
OndselSolver/PiecewiseFunction.h
Normal file
36
OndselSolver/PiecewiseFunction.h
Normal file
@@ -0,0 +1,36 @@
|
||||
/***************************************************************************
|
||||
* Copyright (c) 2023 Ondsel, Inc. *
|
||||
* *
|
||||
* This file is part of OndselSolver. *
|
||||
* *
|
||||
* See LICENSE file for details about copyright. *
|
||||
***************************************************************************/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "FunctionXcParameter.h"
|
||||
|
||||
namespace MbD {
|
||||
class Symbolic;
|
||||
using Symsptr = std::shared_ptr<Symbolic>;
|
||||
|
||||
class PiecewiseFunction : public FunctionXcParameter
|
||||
{
|
||||
//functions transitions
|
||||
//func0 tran0 func1 tran1 func2
|
||||
public:
|
||||
PiecewiseFunction();
|
||||
PiecewiseFunction(Symsptr var, std::shared_ptr<std::vector<Symsptr>> funcs, std::shared_ptr<std::vector<Symsptr>> trans);
|
||||
Symsptr expandUntil(Symsptr sptr, std::shared_ptr<std::unordered_set<Symsptr>> set) override;
|
||||
Symsptr simplifyUntil(Symsptr sptr, std::shared_ptr<std::unordered_set<Symsptr>> set) override;
|
||||
Symsptr differentiateWRTx() override;
|
||||
Symsptr integrateWRT(Symsptr var) override;
|
||||
double getValue() override;
|
||||
|
||||
std::ostream& printOn(std::ostream& s) const override;
|
||||
|
||||
std::shared_ptr<std::vector<Symsptr>> functions = std::make_shared<std::vector<Symsptr>>();
|
||||
std::shared_ptr<std::vector<Symsptr>> transitions = std::make_shared<std::vector<Symsptr>>();
|
||||
|
||||
};
|
||||
}
|
||||
122
OndselSolver/Polynomial.cpp
Normal file
122
OndselSolver/Polynomial.cpp
Normal file
@@ -0,0 +1,122 @@
|
||||
/***************************************************************************
|
||||
* Copyright (c) 2023 Ondsel, Inc. *
|
||||
* *
|
||||
* This file is part of OndselSolver. *
|
||||
* *
|
||||
* See LICENSE file for details about copyright. *
|
||||
***************************************************************************/
|
||||
|
||||
#include <algorithm>
|
||||
|
||||
#include "Polynomial.h"
|
||||
#include "Constant.h"
|
||||
#include "Sum.h"
|
||||
|
||||
using namespace MbD;
|
||||
|
||||
MbD::Polynomial::Polynomial(Symsptr var, std::shared_ptr<std::vector<double>> coefficients)
|
||||
{
|
||||
assert(!coefficients->empty());
|
||||
xx = var;
|
||||
std::transform(coefficients->begin(), coefficients->end(), coeffs->begin(),
|
||||
[&](auto& coeff) { return sptrConstant(coeff); }
|
||||
);
|
||||
}
|
||||
MbD::Polynomial::Polynomial(Symsptr var, std::shared_ptr<std::vector<Symsptr>> coefficients)
|
||||
{
|
||||
assert(!coefficients->empty());
|
||||
xx = var;
|
||||
coeffs->insert(coeffs->end(), coefficients->begin(), coefficients->end());
|
||||
}
|
||||
|
||||
Symsptr MbD::Polynomial::expandUntil(Symsptr sptr, std::shared_ptr<std::unordered_set<Symsptr>> set)
|
||||
{
|
||||
auto newCoeffs = std::make_shared<std::vector<Symsptr>>();
|
||||
for (int i = 0; i < coeffs->size(); i++)
|
||||
{
|
||||
auto coeff = coeffs->at(i);
|
||||
auto newCoeff = coeff->expandUntil(coeff, set);
|
||||
newCoeffs->push_back(newCoeff);
|
||||
}
|
||||
return std::make_shared<Polynomial>(xx, newCoeffs);
|
||||
}
|
||||
|
||||
Symsptr MbD::Polynomial::simplifyUntil(Symsptr sptr, std::shared_ptr<std::unordered_set<Symsptr>> set)
|
||||
{
|
||||
auto newCoeffs = std::make_shared<std::vector<Symsptr>>();
|
||||
for (int i = 0; i < coeffs->size(); i++)
|
||||
{
|
||||
auto coeff = coeffs->at(i);
|
||||
auto newCoeff = coeff->simplifyUntil(coeff, set);
|
||||
newCoeffs->push_back(newCoeff);
|
||||
}
|
||||
return std::make_shared<Polynomial>(xx, newCoeffs);
|
||||
}
|
||||
|
||||
Symsptr MbD::Polynomial::differentiateWRTx()
|
||||
{
|
||||
//Differentiate powers
|
||||
if (coeffs->size() == 1) return sptrConstant(0.0);
|
||||
auto newCoeffs = std::make_shared<std::vector<Symsptr>>();
|
||||
for (int i = 1; i < coeffs->size(); i++)
|
||||
{
|
||||
auto newCoeff = i * coeffs->at(i)->getValue();
|
||||
newCoeffs->push_back(sptrConstant(newCoeff));
|
||||
}
|
||||
auto poly1 = std::make_shared<Polynomial>(xx, newCoeffs);
|
||||
//Differentiate coeffs
|
||||
auto coeffDerivs = std::make_shared<std::vector<Symsptr>>();
|
||||
std::transform(coeffs->begin(),
|
||||
coeffs->end(),
|
||||
std::back_inserter(*coeffDerivs),
|
||||
[&](auto& coeff) { return coeff->differentiateWRT(xx); }
|
||||
);
|
||||
auto poly2 = std::make_shared<Polynomial>(xx, coeffDerivs);
|
||||
return std::make_shared<Sum>(poly1, poly2);
|
||||
}
|
||||
|
||||
Symsptr MbD::Polynomial::integrateWRT(Symsptr var)
|
||||
{
|
||||
assert(xx == var);
|
||||
auto newCoeffs = std::make_shared<std::vector<Symsptr>>();
|
||||
newCoeffs->push_back(sptrConstant(0.0));
|
||||
for (int i = 0; i < coeffs->size(); i++)
|
||||
{
|
||||
auto newCoeff = coeffs->at(i)->getValue() / (i + 1);
|
||||
newCoeffs->push_back(sptrConstant(newCoeff));
|
||||
}
|
||||
return std::make_shared<Polynomial>(var, newCoeffs);
|
||||
}
|
||||
|
||||
double MbD::Polynomial::getValue()
|
||||
{
|
||||
auto xvalue = xx->getValue();
|
||||
auto xpower = 1.0;
|
||||
auto answer = 0.0;
|
||||
for (int i = 0; i < coeffs->size(); i++)
|
||||
{
|
||||
answer += coeffs->at(i)->getValue() * xpower;
|
||||
xpower *= xvalue;
|
||||
}
|
||||
return answer;
|
||||
}
|
||||
|
||||
void MbD::Polynomial::integrationConstant(double integConstant)
|
||||
{
|
||||
auto coeff0 = coeffs->at(0);
|
||||
coeff0->setValue(coeff0->getValue() + integConstant);
|
||||
}
|
||||
|
||||
std::ostream& MbD::Polynomial::printOn(std::ostream& s) const
|
||||
{
|
||||
s << "Polynomial(";
|
||||
s << *xx << ", ";
|
||||
s << "coeffs{";
|
||||
s << *coeffs->at(0);
|
||||
for (int i = 1; i < coeffs->size(); i++)
|
||||
{
|
||||
s << ", " << *coeffs->at(i);
|
||||
}
|
||||
s << "})";
|
||||
return s;
|
||||
}
|
||||
33
OndselSolver/Polynomial.h
Normal file
33
OndselSolver/Polynomial.h
Normal file
@@ -0,0 +1,33 @@
|
||||
/***************************************************************************
|
||||
* Copyright (c) 2023 Ondsel, Inc. *
|
||||
* *
|
||||
* This file is part of OndselSolver. *
|
||||
* *
|
||||
* See LICENSE file for details about copyright. *
|
||||
***************************************************************************/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "FunctionXcParameter.h"
|
||||
|
||||
namespace MbD {
|
||||
class Polynomial : public FunctionXcParameter
|
||||
{
|
||||
//pn = a0*x^0 + a1*x^1 ... an*x^n
|
||||
public:
|
||||
Polynomial(Symsptr var, std::shared_ptr<std::vector<double>> coeffs);
|
||||
Polynomial(Symsptr var, std::shared_ptr<std::vector<Symsptr>> coeffs);
|
||||
Symsptr expandUntil(Symsptr sptr, std::shared_ptr<std::unordered_set<Symsptr>> set) override;
|
||||
Symsptr simplifyUntil(Symsptr sptr, std::shared_ptr<std::unordered_set<Symsptr>> set) override;
|
||||
Symsptr differentiateWRTx() override;
|
||||
Symsptr integrateWRT(Symsptr var) override;
|
||||
double getValue() override;
|
||||
void integrationConstant(double integConstant) override;
|
||||
|
||||
std::ostream& printOn(std::ostream& s) const override;
|
||||
|
||||
std::shared_ptr<std::vector<Symsptr>> coeffs = std::make_shared<std::vector<Symsptr>>();
|
||||
|
||||
};
|
||||
}
|
||||
|
||||
@@ -22,7 +22,7 @@ MbD::Power::Power(Symsptr bse, Symsptr ex) : FunctionXY(bse, ex)
|
||||
|
||||
Symsptr MbD::Power::differentiateWRTx()
|
||||
{
|
||||
auto yminus1 = Symbolic::sum(y, std::make_shared<Constant>(-1.0));
|
||||
auto yminus1 = Symbolic::sum(y, sptrConstant(-1.0));
|
||||
auto power = Symbolic::raisedTo(x, yminus1);
|
||||
auto deriv = Symbolic::times(y, power);
|
||||
return deriv->simplified(deriv);
|
||||
@@ -37,6 +37,7 @@ Symsptr MbD::Power::differentiateWRTy()
|
||||
|
||||
Symsptr MbD::Power::simplifyUntil(Symsptr sptr, std::shared_ptr<std::unordered_set<Symsptr>> set)
|
||||
{
|
||||
assert(false);
|
||||
return Symsptr();
|
||||
}
|
||||
|
||||
|
||||
@@ -43,6 +43,13 @@ Symsptr MbD::Product::differentiateWRT(Symsptr var)
|
||||
return answer;
|
||||
}
|
||||
|
||||
Symsptr MbD::Product::integrateWRT(Symsptr var)
|
||||
{
|
||||
//ToDo: Integration by parts
|
||||
assert(false);
|
||||
return Symsptr();
|
||||
}
|
||||
|
||||
Symsptr Product::expandUntil(Symsptr sptr, std::shared_ptr<std::unordered_set<Symsptr>> set)
|
||||
{
|
||||
auto itr = std::find_if(set->begin(), set->end(), [sptr](Symsptr sym) {return sptr.get() == sym.get(); });
|
||||
@@ -67,7 +74,8 @@ Symsptr Product::expandUntil(Symsptr sptr, std::shared_ptr<std::unordered_set<Sy
|
||||
}
|
||||
auto factor = std::make_shared<Product>();
|
||||
factor->terms = productTerms;
|
||||
auto sumOfProductsOfSums = std::make_shared<Sum>(std::make_shared<Constant>(1));
|
||||
//sumOfProductsOfSums = (a + b + ...)*(c + d + ...)
|
||||
auto sumOfProductsOfSums = std::make_shared<Sum>(sptrConstant(1));
|
||||
for (const auto& term : *sumTerms) {
|
||||
sumOfProductsOfSums = std::static_pointer_cast<Sum>(Symbolic::times(sumOfProductsOfSums, term));
|
||||
}
|
||||
@@ -94,14 +102,14 @@ Symsptr Product::simplifyUntil(Symsptr sptr, std::shared_ptr<std::unordered_set<
|
||||
}
|
||||
}
|
||||
if (factor == 0.0) {
|
||||
return std::make_shared<Constant>(0.0);
|
||||
return sptrConstant(0.0);
|
||||
}
|
||||
if (factor != 1.0) {
|
||||
newTerms->insert(newTerms->begin(), std::make_shared<Constant>(factor));
|
||||
newTerms->insert(newTerms->begin(), sptrConstant(factor));
|
||||
}
|
||||
auto newSize = newTerms->size();
|
||||
if (newSize == 0) {
|
||||
return std::make_shared<Constant>(1.0);
|
||||
return sptrConstant(1.0);
|
||||
}
|
||||
else if (newSize == 1) {
|
||||
return newTerms->at(0);
|
||||
|
||||
@@ -24,6 +24,7 @@ namespace MbD {
|
||||
Product(Symsptr term, Symsptr term1, Symsptr term2) : FunctionWithManyArgs(term, term1, term2) {}
|
||||
Product(std::shared_ptr<std::vector<Symsptr>> _terms) : FunctionWithManyArgs(_terms) {}
|
||||
Symsptr differentiateWRT(Symsptr var) override;
|
||||
Symsptr integrateWRT(Symsptr var) override;
|
||||
Symsptr expandUntil(Symsptr sptr, std::shared_ptr<std::unordered_set<Symsptr>> set) override;
|
||||
Symsptr simplifyUntil(Symsptr sptr, std::shared_ptr<std::unordered_set<Symsptr>> set) override;
|
||||
bool isProduct() override;
|
||||
|
||||
62
OndselSolver/RampStepFunction.cpp
Normal file
62
OndselSolver/RampStepFunction.cpp
Normal file
@@ -0,0 +1,62 @@
|
||||
#include <algorithm>
|
||||
|
||||
#include "RampStepFunction.h"
|
||||
#include "Constant.h"
|
||||
#include "Polynomial.h"
|
||||
|
||||
using namespace MbD;
|
||||
|
||||
MbD::RampStepFunction::RampStepFunction(Symsptr var, std::shared_ptr<std::vector<double>> consts, std::shared_ptr<std::vector<double>> trans)
|
||||
{
|
||||
|
||||
double x0 = trans->at(0);
|
||||
double x1 = trans->at(1);
|
||||
double y0 = consts->at(0);
|
||||
double y1 = consts->at(1);
|
||||
initFunctionsTransitions(var, x0, y0, x1, y1);
|
||||
}
|
||||
|
||||
void MbD::RampStepFunction::arguments(Symsptr args)
|
||||
{
|
||||
auto arguments = args->getTerms();
|
||||
auto var = arguments->at(0);
|
||||
auto symx0 = arguments->at(1);
|
||||
auto symy0 = arguments->at(2);
|
||||
auto symx1 = arguments->at(3);
|
||||
auto symy1 = arguments->at(4);
|
||||
double x0 = symx0->getValue();
|
||||
double y0 = symy0->getValue();
|
||||
double x1 = symx1->getValue();
|
||||
double y1 = symy1->getValue();
|
||||
initFunctionsTransitions(var, x0, y0, x1, y1, symx0, symy0, symx1, symy1);
|
||||
}
|
||||
|
||||
void MbD::RampStepFunction::initFunctionsTransitions(Symsptr var, double x0, double y0, double x1, double y1)
|
||||
{
|
||||
auto symx0 = sptrConstant(x0);
|
||||
auto symy0 = sptrConstant(y0);
|
||||
auto symx1 = sptrConstant(x1);
|
||||
auto symy1 = sptrConstant(y1);
|
||||
initFunctionsTransitions(var, x0, y0, x1, y1, symx0, symy0, symx1, symy1);
|
||||
}
|
||||
|
||||
void MbD::RampStepFunction::initFunctionsTransitions(Symsptr var, double x0, double y0, double x1, double y1, Symsptr symx0, Symsptr symy0, Symsptr symx1, Symsptr symy1)
|
||||
{
|
||||
//(y - y0)/(x - x0) = (y1 - y0)/(x1 - x0)
|
||||
//y = (x - x0)(y1 - y0)/(x1 - x0) + y0
|
||||
//y = (y1 - y0)*x/(x1 - x0) + y0 - (y1 - y0)*x0/(x1 - x0)
|
||||
xx = var;
|
||||
auto func0 = symy0;
|
||||
auto slope = sptrConstant((y1 - y0) / (x1 - x0));
|
||||
auto intercept = sptrConstant(y0 - (y1 - y0) * x0 / (x1 - x0));
|
||||
auto coeffs = std::make_shared<std::vector<Symsptr>>();
|
||||
coeffs->push_back(intercept);
|
||||
coeffs->push_back(slope);
|
||||
auto func1 = std::make_shared<Polynomial>(var, coeffs);
|
||||
auto func2 = symy1;
|
||||
functions->push_back(func0);
|
||||
functions->push_back(func1);
|
||||
functions->push_back(func2);
|
||||
transitions->push_back(symx0);
|
||||
transitions->push_back(symx1);
|
||||
}
|
||||
25
OndselSolver/RampStepFunction.h
Normal file
25
OndselSolver/RampStepFunction.h
Normal file
@@ -0,0 +1,25 @@
|
||||
/***************************************************************************
|
||||
* Copyright (c) 2023 Ondsel, Inc. *
|
||||
* *
|
||||
* This file is part of OndselSolver. *
|
||||
* *
|
||||
* See LICENSE file for details about copyright. *
|
||||
***************************************************************************/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "PiecewiseFunction.h"
|
||||
|
||||
namespace MbD {
|
||||
class RampStepFunction : public PiecewiseFunction
|
||||
{
|
||||
public:
|
||||
RampStepFunction() = default;
|
||||
RampStepFunction(Symsptr var, std::shared_ptr<std::vector<double>> consts, std::shared_ptr<std::vector<double>> trans);
|
||||
void arguments(Symsptr args) override;
|
||||
void initFunctionsTransitions(Symsptr var, double x0, double y0, double x1, double y1);
|
||||
void initFunctionsTransitions(Symsptr var, double x0, double y0, double x1, double y1, Symsptr symx0, Symsptr symy0, Symsptr symx1, Symsptr symy1);
|
||||
|
||||
};
|
||||
}
|
||||
|
||||
@@ -24,13 +24,18 @@ double MbD::Reciprocal::getValue()
|
||||
|
||||
Symsptr MbD::Reciprocal::differentiateWRTx()
|
||||
{
|
||||
auto two = std::make_shared<Constant>(2);
|
||||
auto two = sptrConstant(2);
|
||||
auto sq = std::make_shared<Power>(xx, two);
|
||||
return std::make_shared<Negative>(sq);
|
||||
}
|
||||
|
||||
Symsptr MbD::Reciprocal::copyWith(Symsptr arg)
|
||||
{
|
||||
return std::make_shared<Reciprocal>(arg);
|
||||
}
|
||||
|
||||
std::ostream& MbD::Reciprocal::printOn(std::ostream& s) const
|
||||
{
|
||||
s << "/(" << xx << ")";
|
||||
s << "/(" << *xx << ")";
|
||||
return s;
|
||||
}
|
||||
|
||||
@@ -19,6 +19,7 @@ namespace MbD {
|
||||
Reciprocal(Symsptr arg);
|
||||
double getValue() override;
|
||||
Symsptr differentiateWRTx() override;
|
||||
Symsptr copyWith(Symsptr arg) override;
|
||||
|
||||
std::ostream& printOn(std::ostream& s) const override;
|
||||
|
||||
|
||||
@@ -25,8 +25,13 @@ Symsptr MbD::Sine::differentiateWRTx()
|
||||
return std::make_shared<Cosine>(xx);
|
||||
}
|
||||
|
||||
Symsptr MbD::Sine::copyWith(Symsptr arg)
|
||||
{
|
||||
return std::make_shared<Sine>(arg);
|
||||
}
|
||||
|
||||
std::ostream& MbD::Sine::printOn(std::ostream& s) const
|
||||
{
|
||||
s << "sin(" << xx << ")";
|
||||
s << "sin(" << *xx << ")";
|
||||
return s;
|
||||
}
|
||||
|
||||
@@ -19,6 +19,7 @@ namespace MbD {
|
||||
Sine(Symsptr arg);
|
||||
double getValue() override;
|
||||
Symsptr differentiateWRTx() override;
|
||||
Symsptr copyWith(Symsptr arg) override;
|
||||
|
||||
std::ostream& printOn(std::ostream& s) const override;
|
||||
|
||||
|
||||
25
OndselSolver/StepFunction.cpp
Normal file
25
OndselSolver/StepFunction.cpp
Normal file
@@ -0,0 +1,25 @@
|
||||
/***************************************************************************
|
||||
* Copyright (c) 2023 Ondsel, Inc. *
|
||||
* *
|
||||
* This file is part of OndselSolver. *
|
||||
* *
|
||||
* See LICENSE file for details about copyright. *
|
||||
***************************************************************************/
|
||||
|
||||
#include <algorithm>
|
||||
|
||||
#include "StepFunction.h"
|
||||
#include "Constant.h"
|
||||
|
||||
using namespace MbD;
|
||||
|
||||
MbD::StepFunction::StepFunction(Symsptr var, std::shared_ptr<std::vector<double>> consts, std::shared_ptr<std::vector<double>> trans)
|
||||
{
|
||||
xx = var;
|
||||
std::transform(consts->begin(), consts->end(), functions->begin(),
|
||||
[&](auto& constant) { return sptrConstant(constant); }
|
||||
);
|
||||
std::transform(trans->begin(), trans->end(), transitions->begin(),
|
||||
[&](auto& constant) { return sptrConstant(constant); }
|
||||
);
|
||||
}
|
||||
21
OndselSolver/StepFunction.h
Normal file
21
OndselSolver/StepFunction.h
Normal file
@@ -0,0 +1,21 @@
|
||||
/***************************************************************************
|
||||
* Copyright (c) 2023 Ondsel, Inc. *
|
||||
* *
|
||||
* This file is part of OndselSolver. *
|
||||
* *
|
||||
* See LICENSE file for details about copyright. *
|
||||
***************************************************************************/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "PiecewiseFunction.h"
|
||||
|
||||
namespace MbD {
|
||||
class StepFunction : public PiecewiseFunction
|
||||
{
|
||||
public:
|
||||
StepFunction(Symsptr var, std::shared_ptr<std::vector<double>> consts, std::shared_ptr<std::vector<double>> trans);
|
||||
|
||||
};
|
||||
}
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
* *
|
||||
* See LICENSE file for details about copyright. *
|
||||
***************************************************************************/
|
||||
|
||||
|
||||
#include <sstream>
|
||||
#include <string>
|
||||
|
||||
@@ -72,7 +72,7 @@ Symsptr Sum::expandUntil(Symsptr sptr, std::shared_ptr<std::unordered_set<Symspt
|
||||
}
|
||||
auto newSize = newTerms->size();
|
||||
if (newSize == 0) {
|
||||
return std::make_shared<Constant>(0.0);
|
||||
return sptrConstant(0.0);
|
||||
}
|
||||
else if (newSize == 1) {
|
||||
return newTerms->at(0);
|
||||
@@ -104,11 +104,11 @@ Symsptr Sum::simplifyUntil(Symsptr sptr, std::shared_ptr<std::unordered_set<Syms
|
||||
}
|
||||
}
|
||||
if (constant != 0.0) {
|
||||
newTerms->insert(newTerms->begin(), std::make_shared<Constant>(constant));
|
||||
newTerms->insert(newTerms->begin(), sptrConstant(constant));
|
||||
}
|
||||
auto newSize = newTerms->size();
|
||||
if (newSize == 0) {
|
||||
return std::make_shared<Constant>(0.0);
|
||||
return sptrConstant(0.0);
|
||||
}
|
||||
else if (newSize == 1) {
|
||||
return newTerms->at(0);
|
||||
@@ -140,7 +140,8 @@ Symsptr MbD::Sum::clonesptr()
|
||||
Symsptr MbD::Sum::differentiateWRT(Symsptr var)
|
||||
{
|
||||
auto derivatives = std::make_shared<std::vector<Symsptr>>();
|
||||
std::transform(terms->begin(), terms->end(),
|
||||
std::transform(terms->begin(),
|
||||
terms->end(),
|
||||
std::back_inserter(*derivatives),
|
||||
[var](Symsptr term) { return term->differentiateWRT(var); }
|
||||
);
|
||||
@@ -149,6 +150,26 @@ Symsptr MbD::Sum::differentiateWRT(Symsptr var)
|
||||
return answer;
|
||||
}
|
||||
|
||||
Symsptr MbD::Sum::integrateWRT(Symsptr var)
|
||||
{
|
||||
auto simple = simplified();
|
||||
if (simple->isSum()) {
|
||||
auto newTerms = simple->getTerms();
|
||||
auto integrals = std::make_shared<std::vector<Symsptr>>();
|
||||
std::transform(newTerms->begin(),
|
||||
newTerms->end(),
|
||||
std::back_inserter(*integrals),
|
||||
[var](Symsptr term) { return term->integrateWRT(var); }
|
||||
);
|
||||
auto answer = std::make_shared<Sum>();
|
||||
answer->terms = integrals;
|
||||
return answer;
|
||||
}
|
||||
else {
|
||||
return simple->integrateWRT(var);
|
||||
}
|
||||
}
|
||||
|
||||
std::ostream& Sum::printOn(std::ostream& s) const
|
||||
{
|
||||
s << "(";
|
||||
|
||||
@@ -31,6 +31,7 @@ namespace MbD {
|
||||
double getValue() override;
|
||||
Symsptr clonesptr() override;
|
||||
Symsptr differentiateWRT(Symsptr var) override;
|
||||
Symsptr integrateWRT(Symsptr var) override;
|
||||
|
||||
std::ostream& printOn(std::ostream& s) const override;
|
||||
|
||||
|
||||
@@ -86,6 +86,12 @@ Symsptr MbD::Symbolic::differentiateWRT(Symsptr var)
|
||||
return Symsptr();
|
||||
}
|
||||
|
||||
Symsptr MbD::Symbolic::integrateWRT(Symsptr var)
|
||||
{
|
||||
assert(false);
|
||||
return Symsptr();
|
||||
}
|
||||
|
||||
Symsptr MbD::Symbolic::simplified()
|
||||
{
|
||||
//std::cout << "sptr " << *sptr << std::endl;
|
||||
@@ -112,17 +118,18 @@ Symsptr Symbolic::simplified(Symsptr sptr)
|
||||
|
||||
Symsptr MbD::Symbolic::expandUntil(std::shared_ptr<std::unordered_set<Symsptr>> set)
|
||||
{
|
||||
assert(false);
|
||||
return clonesptr();
|
||||
return expandUntil(clonesptr(), set);
|
||||
}
|
||||
|
||||
Symsptr Symbolic::expandUntil(Symsptr sptr, std::shared_ptr<std::unordered_set<Symsptr>> set)
|
||||
{
|
||||
assert(false);
|
||||
return sptr;
|
||||
}
|
||||
|
||||
Symsptr Symbolic::simplifyUntil(Symsptr sptr, std::shared_ptr<std::unordered_set<Symsptr>> set)
|
||||
{
|
||||
assert(false);
|
||||
return sptr;
|
||||
}
|
||||
|
||||
@@ -153,7 +160,10 @@ bool Symbolic::isConstant()
|
||||
|
||||
std::ostream& Symbolic::printOn(std::ostream& s) const
|
||||
{
|
||||
return s << "(" << typeid(*this).name() << ")";
|
||||
std::string str = typeid(*this).name();
|
||||
auto classname = str.substr(11, str.size() - 11);
|
||||
s << classname;
|
||||
return s;
|
||||
}
|
||||
|
||||
std::shared_ptr<std::vector<Symsptr>> Symbolic::getTerms()
|
||||
@@ -173,6 +183,17 @@ double Symbolic::getValue()
|
||||
return 0.0;
|
||||
}
|
||||
|
||||
double MbD::Symbolic::getValue(double arg)
|
||||
{
|
||||
assert(false);
|
||||
return 0.0;
|
||||
}
|
||||
|
||||
void MbD::Symbolic::setValue(double val)
|
||||
{
|
||||
assert(false);
|
||||
}
|
||||
|
||||
void MbD::Symbolic::createMbD(std::shared_ptr<System> mbdSys, std::shared_ptr<Units> mbdUnits)
|
||||
{
|
||||
assert(false);
|
||||
@@ -191,6 +212,16 @@ std::shared_ptr<Constant> MbD::Symbolic::sptrConstant(double value)
|
||||
return std::make_shared<Constant>(value);
|
||||
}
|
||||
|
||||
bool MbD::Symbolic::isVariable()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
void MbD::Symbolic::integrationConstant(double integConstant)
|
||||
{
|
||||
assert(false);
|
||||
}
|
||||
|
||||
Symsptr MbD::Symbolic::raisedTo(Symsptr x, Symsptr y)
|
||||
{
|
||||
return std::make_shared<Power>(x, y);
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
#include <memory>
|
||||
#include <ostream>
|
||||
|
||||
#include "MbdMath.h"
|
||||
#include "MbDMath.h"
|
||||
#include "System.h"
|
||||
#include "Units.h"
|
||||
//#include "Constant.h"
|
||||
@@ -23,7 +23,7 @@ namespace MbD {
|
||||
class Symbolic;
|
||||
using Symsptr = std::shared_ptr<Symbolic>;
|
||||
|
||||
class Symbolic : public MbdMath
|
||||
class Symbolic : public MbDMath
|
||||
{
|
||||
public:
|
||||
Symbolic();
|
||||
@@ -33,6 +33,7 @@ namespace MbD {
|
||||
|
||||
virtual void initialize();
|
||||
virtual Symsptr differentiateWRT(Symsptr var);
|
||||
virtual Symsptr integrateWRT(Symsptr var);
|
||||
virtual Symsptr simplified();
|
||||
virtual Symsptr simplified(Symsptr sptr);
|
||||
virtual Symsptr expandUntil(std::shared_ptr<std::unordered_set<Symsptr>> set);
|
||||
@@ -46,9 +47,13 @@ namespace MbD {
|
||||
virtual std::shared_ptr<std::vector<Symsptr>> getTerms();
|
||||
virtual void addTerm(Symsptr trm);
|
||||
virtual double getValue();
|
||||
virtual double getValue(double arg);
|
||||
virtual void setValue(double val);
|
||||
virtual void createMbD(std::shared_ptr<System> mbdSys, std::shared_ptr<Units> mbdUnits);
|
||||
virtual Symsptr clonesptr();
|
||||
std::shared_ptr<Constant> sptrConstant(double value);
|
||||
virtual bool isVariable();
|
||||
virtual void integrationConstant(double integConstant);
|
||||
|
||||
virtual std::ostream& printOn(std::ostream& s) const;
|
||||
friend std::ostream& operator<<(std::ostream& s, const Symbolic& sym)
|
||||
|
||||
@@ -25,6 +25,8 @@
|
||||
#include "Reciprocal.h"
|
||||
#include "GeneralSpline.h"
|
||||
#include "ArcSine.h"
|
||||
#include "Integral.h"
|
||||
#include "RampStepFunction.h"
|
||||
|
||||
MbD::SymbolicParser::SymbolicParser()
|
||||
{
|
||||
@@ -361,6 +363,12 @@ bool MbD::SymbolicParser::intrinsic()
|
||||
else if (peekForTypevalue("word", "spline")) {
|
||||
symfunc = std::make_shared<GeneralSpline>();
|
||||
}
|
||||
else if (peekForTypevalue("word", "integral")) {
|
||||
symfunc = std::make_shared<Integral>();
|
||||
}
|
||||
else if (peekForTypevalue("word", "rampstep")) {
|
||||
symfunc = std::make_shared<RampStepFunction>();
|
||||
}
|
||||
if (symfunc != nullptr) {
|
||||
stack->push(symfunc);
|
||||
if (peekForTypeNoPush("(")) {
|
||||
|
||||
@@ -52,3 +52,18 @@ void Variable::setValue(double val)
|
||||
{
|
||||
value = val;
|
||||
}
|
||||
|
||||
Symsptr MbD::Variable::expandUntil(Symsptr sptr, std::shared_ptr<std::unordered_set<Symsptr>> set)
|
||||
{
|
||||
return sptr;
|
||||
}
|
||||
|
||||
Symsptr MbD::Variable::simplifyUntil(Symsptr sptr, std::shared_ptr<std::unordered_set<Symsptr>> set)
|
||||
{
|
||||
return sptr;
|
||||
}
|
||||
|
||||
bool MbD::Variable::isVariable()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -24,7 +24,10 @@ namespace MbD {
|
||||
const std::string& getName() const;
|
||||
double getValue() override;
|
||||
std::ostream& printOn(std::ostream& s) const override;
|
||||
virtual void setValue(double val);
|
||||
void setValue(double val) override;
|
||||
Symsptr expandUntil(Symsptr sptr, std::shared_ptr<std::unordered_set<Symsptr>> set) override;
|
||||
Symsptr simplifyUntil(Symsptr sptr, std::shared_ptr<std::unordered_set<Symsptr>> set) override;
|
||||
bool isVariable() override;
|
||||
|
||||
std::string name;
|
||||
double value;
|
||||
|
||||
File diff suppressed because one or more lines are too long
620
OndselSolver/assembly2.asmt
Normal file
620
OndselSolver/assembly2.asmt
Normal file
File diff suppressed because one or more lines are too long
435
OndselSolver/assemblyDebug.asmt
Normal file
435
OndselSolver/assemblyDebug.asmt
Normal file
@@ -0,0 +1,435 @@
|
||||
OndselSolver
|
||||
Assembly
|
||||
Notes
|
||||
(Text string: '' runs: (Core.RunArray runs: #() values: #()))
|
||||
Name
|
||||
Assembly
|
||||
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
|
||||
Marker0
|
||||
Position3D
|
||||
0 0 0
|
||||
RotationMatrix
|
||||
1 0 0
|
||||
0 1 0
|
||||
0 0 1
|
||||
RefCurves
|
||||
RefSurfaces
|
||||
Parts
|
||||
Part
|
||||
Name
|
||||
structural_node_1
|
||||
Position3D
|
||||
-0.121 -1.218180697837851e-18 -0.08
|
||||
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 2 3
|
||||
Density
|
||||
10
|
||||
RefPoints
|
||||
RefPoint
|
||||
Position3D
|
||||
0 0 0
|
||||
RotationMatrix
|
||||
1 0 0
|
||||
0 1 0
|
||||
0 0 1
|
||||
Markers
|
||||
Marker
|
||||
Name
|
||||
Marker0
|
||||
Position3D
|
||||
0.121 1.218180697837851e-18 0.08
|
||||
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
|
||||
Marker1
|
||||
Position3D
|
||||
0 1.218180697837851e-18 0.05
|
||||
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
|
||||
Marker2
|
||||
Position3D
|
||||
0 1.218180697837785e-18 0.08
|
||||
RotationMatrix
|
||||
2.220446049250313e-16 -2.220446049250313e-16 1
|
||||
1 0 -2.220446049250313e-16
|
||||
4.930380657631324e-32 1 2.220446049250313e-16
|
||||
RefPoint
|
||||
Position3D
|
||||
0 0 0
|
||||
RotationMatrix
|
||||
1 0 0
|
||||
0 1 0
|
||||
0 0 1
|
||||
Markers
|
||||
Marker
|
||||
Name
|
||||
Marker3
|
||||
Position3D
|
||||
0 0 0
|
||||
RotationMatrix
|
||||
1 0 0
|
||||
0 1 0
|
||||
0 0 1
|
||||
RefCurves
|
||||
RefSurfaces
|
||||
Part
|
||||
Name
|
||||
structural_node_2
|
||||
Position3D
|
||||
-0.04753704894473842 0.09742200410568831 -0.03029347681223059
|
||||
RotationMatrix
|
||||
0.9512512425641979 -0.1267494082121462 0.2811683855591535
|
||||
0.167731259496521 0.9776506595433678 -0.1267494082121462
|
||||
-0.258819045102521 0.167731259496521 0.9512512425641977
|
||||
Velocity3D
|
||||
0 0 0
|
||||
Omega3D
|
||||
0 0 0
|
||||
FeatureOrder
|
||||
PrincipalMassMarker
|
||||
Name
|
||||
MassMarker
|
||||
Position3D
|
||||
7.105427357601002e-18 0 7.105427357601002e-18
|
||||
RotationMatrix
|
||||
1 0 0
|
||||
0 1 0
|
||||
0 0 1
|
||||
Mass
|
||||
1.448636188351172
|
||||
MomentOfInertias
|
||||
0.002871751015088 0.002864447840812 0.0007089594589930001
|
||||
Density
|
||||
10
|
||||
RefPoints
|
||||
RefPoint
|
||||
Position3D
|
||||
0 0 0
|
||||
RotationMatrix
|
||||
1 0 0
|
||||
0 1 0
|
||||
0 0 1
|
||||
Markers
|
||||
Marker
|
||||
Name
|
||||
Marker0
|
||||
Position3D
|
||||
-0.03739853284269051 0 0.003286762255221063
|
||||
RotationMatrix
|
||||
1 0 5.204170427930421e-18
|
||||
-0 1 0
|
||||
-5.204170427930421e-18 -0 1
|
||||
RefPoint
|
||||
Position3D
|
||||
0 0 0
|
||||
RotationMatrix
|
||||
1 0 0
|
||||
0 1 0
|
||||
0 0 1
|
||||
Markers
|
||||
Marker
|
||||
Name
|
||||
Marker1
|
||||
Position3D
|
||||
0.03260146715730949 1.4210854715202e-17 0.05328676225522106
|
||||
RotationMatrix
|
||||
1 -0 5.204170427930421e-18
|
||||
0 1 0
|
||||
-5.204170427930421e-18 0 1
|
||||
RefCurves
|
||||
RefSurfaces
|
||||
Part
|
||||
Name
|
||||
structural_node_3
|
||||
Position3D
|
||||
0.07099630277370235 -0.07364765799707981 0.05840790082376057
|
||||
RotationMatrix
|
||||
0.9622501868990581 0.01433011691863463 -0.271788935686915
|
||||
-0.08715574274765801 0.9622501868990581 -0.2578341604963
|
||||
0.2578341604963001 0.271788935686915 0.9271743741709766
|
||||
Velocity3D
|
||||
0 0 0
|
||||
Omega3D
|
||||
0 0 0
|
||||
FeatureOrder
|
||||
PrincipalMassMarker
|
||||
Name
|
||||
MassMarker
|
||||
Position3D
|
||||
2.842170943040401e-17 -1.4210854715202e-17 0
|
||||
RotationMatrix
|
||||
1 0 0
|
||||
0 1 0
|
||||
0 0 1
|
||||
Mass
|
||||
2.852948655706768
|
||||
MomentOfInertias
|
||||
0.03383792198797 0.033715148099504 0.001956310318013
|
||||
Density
|
||||
10
|
||||
RefPoints
|
||||
RefPoint
|
||||
Position3D
|
||||
0 0 0
|
||||
RotationMatrix
|
||||
1 0 0
|
||||
0 1 0
|
||||
0 0 1
|
||||
Markers
|
||||
Marker
|
||||
Name
|
||||
Marker0
|
||||
Position3D
|
||||
-0.1400000000000079 -1.044497821567347e-15 0.02499999999999804
|
||||
RotationMatrix
|
||||
3.322229154067983e-33 1 -5.551115123125784e-17
|
||||
-1 0 -5.984795992119986e-17
|
||||
-5.984795992119986e-17 5.551115123125784e-17 1
|
||||
RefPoint
|
||||
Position3D
|
||||
0 0 0
|
||||
RotationMatrix
|
||||
1 0 0
|
||||
0 1 0
|
||||
0 0 1
|
||||
Markers
|
||||
Marker
|
||||
Name
|
||||
Marker1
|
||||
Position3D
|
||||
0.1399999999999913 4.423128530106624e-16 9.79127889877418e-15
|
||||
RotationMatrix
|
||||
0.7254861972346578 0.6882367162699149 2.719509169040251e-15
|
||||
-0.6882367162699149 0.7254861972346578 1.258675848677982e-14
|
||||
6.689702964032028e-15 -1.100318561045113e-14 1
|
||||
RefCurves
|
||||
RefSurfaces
|
||||
Part
|
||||
Name
|
||||
structural_node_4
|
||||
Position3D
|
||||
0.3723079639890564 0.04333150035096042 0.008140985321785409
|
||||
RotationMatrix
|
||||
0.9659258262890682 -0 0.2588190451025211
|
||||
0 1 0
|
||||
-0.2588190451025211 0 0.9659258262890682
|
||||
Velocity3D
|
||||
0 0 0
|
||||
Omega3D
|
||||
0 0 0
|
||||
FeatureOrder
|
||||
PrincipalMassMarker
|
||||
Name
|
||||
MassMarker
|
||||
Position3D
|
||||
2.842170943040401e-16 2.131628207280301e-17 2.273736754432321e-16
|
||||
RotationMatrix
|
||||
1 0 0
|
||||
0 1 0
|
||||
0 0 1
|
||||
Mass
|
||||
10.85942720262214
|
||||
MomentOfInertias
|
||||
0.07706742098794901 0.066351815798527 0.061792350456255
|
||||
Density
|
||||
10
|
||||
RefPoints
|
||||
RefPoint
|
||||
Position3D
|
||||
0 0 0
|
||||
RotationMatrix
|
||||
1 0 0
|
||||
0 1 0
|
||||
0 0 1
|
||||
Markers
|
||||
Marker
|
||||
Name
|
||||
Marker0
|
||||
Position3D
|
||||
-0.04558083463411924 -2.029935401992589e-10 1.256225164070202e-08
|
||||
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
|
||||
Marker1
|
||||
Position3D
|
||||
-0.04558083463411924 -2.029935401992589e-10 1.256225164070202e-08
|
||||
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
|
||||
Marker2
|
||||
Position3D
|
||||
0 0 0
|
||||
RotationMatrix
|
||||
1 0 0
|
||||
0 1 0
|
||||
0 0 1
|
||||
RefCurves
|
||||
RefSurfaces
|
||||
KinematicIJs
|
||||
ConstraintSets
|
||||
Joints
|
||||
FixedJoint
|
||||
Name
|
||||
joint_1
|
||||
MarkerI
|
||||
/Assembly/Marker0
|
||||
MarkerJ
|
||||
/Assembly/structural_node_1/Marker0
|
||||
RevoluteJoint
|
||||
Name
|
||||
joint_2
|
||||
MarkerI
|
||||
/Assembly/structural_node_1/Marker1
|
||||
MarkerJ
|
||||
/Assembly/structural_node_2/Marker0
|
||||
RevoluteJoint
|
||||
Name
|
||||
joint_3
|
||||
MarkerI
|
||||
/Assembly/structural_node_2/Marker1
|
||||
MarkerJ
|
||||
/Assembly/structural_node_3/Marker0
|
||||
PointInLineJoint
|
||||
Name
|
||||
joint_4
|
||||
MarkerI
|
||||
/Assembly/structural_node_3/Marker1
|
||||
MarkerJ
|
||||
/Assembly/structural_node_4/Marker0
|
||||
PointInLineJoint
|
||||
Name
|
||||
joint_5
|
||||
MarkerI
|
||||
/Assembly/structural_node_1/Marker2
|
||||
MarkerJ
|
||||
/Assembly/structural_node_4/Marker1
|
||||
NoRotationJoint
|
||||
Name
|
||||
joint_6
|
||||
MarkerI
|
||||
/Assembly/structural_node_1/Marker3
|
||||
MarkerJ
|
||||
/Assembly/structural_node_4/Marker2
|
||||
Motions
|
||||
RotationalMotion
|
||||
Name
|
||||
joint_2Motion
|
||||
MotionJoint
|
||||
/Assembly/joint_2
|
||||
RotationZ
|
||||
2.0*pi*time
|
||||
GeneralConstraintSets
|
||||
ForceTorques
|
||||
ConstantGravity
|
||||
0 0 0
|
||||
SimulationParameters
|
||||
tstart
|
||||
0
|
||||
tend
|
||||
0.1
|
||||
hmin
|
||||
1e-09
|
||||
hmax
|
||||
1
|
||||
hout
|
||||
0.01
|
||||
errorTol
|
||||
1e-06
|
||||
AnimationParameters
|
||||
nframe
|
||||
1000000
|
||||
icurrent
|
||||
1
|
||||
istart
|
||||
1
|
||||
iend
|
||||
1000000
|
||||
isForward
|
||||
true
|
||||
framesPerSecond
|
||||
30
|
||||
582
OndselSolver/assemblyDebug2.asmt
Normal file
582
OndselSolver/assemblyDebug2.asmt
Normal file
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user