diff --git a/Disposition.cpp b/Disposition.cpp index b65f554..5215dec 100644 --- a/Disposition.cpp +++ b/Disposition.cpp @@ -597,7 +597,9 @@ Disposition::AddFixture( const string& sName, const Point3d& ptPos, double dAngD double dCurrVal = 0 ; m_pGeomDB->GetInfo( nMobId, FXT_MOB_CPOS, dCurrVal) ; if ( abs( dMov - dCurrVal) > EPS_SMALL) { - m_pGeomDB->TranslateGroup( nMobId, Vector3d( 0, 0, dMov - dCurrVal)) ; + Vector3d vtDir = Z_AX ; + m_pGeomDB->GetInfo( nMobId, FXT_MOB_MOVEDIR, vtDir) ; + m_pGeomDB->TranslateGroup( nMobId, (dMov - dCurrVal) * vtDir) ; m_pGeomDB->SetInfo( nMobId, FXT_MOB_CPOS, dMov) ; } } @@ -723,7 +725,9 @@ Disposition::MoveFixtureMobile( int nId, double dDeltaMov) double dCurrVal = 0 ; m_pGeomDB->GetInfo( nMobId, FXT_MOB_CPOS, dCurrVal) ; if ( abs( dDeltaMov) > EPS_SMALL) { - m_pGeomDB->TranslateGroup( nMobId, Vector3d( 0, 0, dDeltaMov)) ; + Vector3d vtDir = Z_AX ; + m_pGeomDB->GetInfo( nMobId, FXT_MOB_MOVEDIR, vtDir) ; + m_pGeomDB->TranslateGroup( nMobId, dDeltaMov * vtDir) ; m_pGeomDB->SetInfo( nMobId, FXT_MOB_CPOS, ( dCurrVal + dDeltaMov)) ; } } @@ -783,7 +787,9 @@ Disposition::PlaceFixture( int nId, const Point3d& ptPos, double dAngDeg, double double dCurrVal = 0 ; m_pGeomDB->GetInfo( nMobId, FXT_MOB_CPOS, dCurrVal) ; if ( abs( dMov - dCurrVal) > EPS_SMALL) { - m_pGeomDB->TranslateGroup( nMobId, Vector3d( 0, 0, dMov - dCurrVal)) ; + Vector3d vtDir = Z_AX ; + m_pGeomDB->GetInfo( nMobId, FXT_MOB_MOVEDIR, vtDir) ; + m_pGeomDB->TranslateGroup( nMobId, ( dMov - dCurrVal) * vtDir) ; m_pGeomDB->SetInfo( nMobId, FXT_MOB_CPOS, dMov) ; } } diff --git a/EgtMachKernel.rc b/EgtMachKernel.rc index ea7ea15..1773b2d 100644 Binary files a/EgtMachKernel.rc and b/EgtMachKernel.rc differ