EgtMachKernel :
- piccoli aggiustamenti sui tabs.
This commit is contained in:
+35
-1
@@ -4228,13 +4228,46 @@ Milling::CalcTabsPositions( const ICurveComposite* pCompo, bool bPathTabsEnable,
|
||||
if ( ! bPathTabsEnable)
|
||||
return true ;
|
||||
|
||||
// lunghezza di un Tab
|
||||
double dTabLen = tdTabs.m_dRampLen + tdTabs.m_dTopLen + tdTabs.m_dRampLen ;
|
||||
|
||||
// lunghezza del percorso
|
||||
double dLen ; pCompo->GetLength( dLen) ; dLen -= m_dAddedOverlap ;
|
||||
// vettore estrusione del percorso
|
||||
Vector3d vtExtr ; pCompo->GetExtrusion( vtExtr) ;
|
||||
if ( vtExtr.IsSmall())
|
||||
vtExtr = Z_AX ;
|
||||
|
||||
#if 0
|
||||
// determinazione intervalli validi
|
||||
Intervals ivTabs ;
|
||||
// inizializzo intervallo valido
|
||||
ivTabs.Set( 0, dLen) ;
|
||||
// elimino le zone vicine agli angoli
|
||||
bool bContinue = true ;
|
||||
double dCurrLen = 0 ;
|
||||
const ICurve* pCurrCrv = pCompo->GetFirstCurve() ;
|
||||
const ICurve* pNextCrv = pCompo->GetNextCurve() ;
|
||||
while ( pNextCrv != nullptr) {
|
||||
// aggiorno lunghezza
|
||||
double dTmp = 0 ;
|
||||
pCurrCrv->GetLength( dTmp) ;
|
||||
dCurrLen += dTmp ;
|
||||
// verifico se angolo tra le entità
|
||||
Vector3d vtTg1 ; pCurrCrv->GetEndDir( vtTg1) ;
|
||||
Vector3d vtTg2 ; pCurrCrv->GetStartDir( vtTg2) ;
|
||||
if ( abs( ( vtTg1 ^ vtTg2) * vtExtr) > sin( 5 * DEGTORAD)) {
|
||||
|
||||
}
|
||||
// passo al successivo
|
||||
pCurrCrv = pNextCrv ;
|
||||
pNextCrv = ( bContinue ? pCompo->GetNextCurve() : nullptr) ;
|
||||
if ( pNextCrv == nullptr && pCompo->IsClosed()) {
|
||||
pNextCrv = pCompo->GetFirstCurve() ;
|
||||
bContinue = false ;
|
||||
}
|
||||
}
|
||||
|
||||
// elimino parti (test)
|
||||
if ( dLen > 300) {
|
||||
ivTabs.Subtract( 0, 100) ;
|
||||
@@ -4243,13 +4276,14 @@ Milling::CalcTabsPositions( const ICurveComposite* pCompo, bool bPathTabsEnable,
|
||||
else {
|
||||
ivTabs.Subtract( 0.4 * dLen, 0.6 * dLen) ;
|
||||
}
|
||||
#endif
|
||||
|
||||
// determino posizioni di inizio dei Tabs
|
||||
double dNextTab = 0.5 * tdTabs.m_dBottomLen ;
|
||||
double dCurrLen = 0 ;
|
||||
while ( dCurrLen + dNextTab < dLen) {
|
||||
vdTabs.emplace_back( dCurrLen + dNextTab) ;
|
||||
dCurrLen += dNextTab + tdTabs.m_dRampLen + tdTabs.m_dTopLen + tdTabs.m_dRampLen ;
|
||||
dCurrLen += dNextTab + dTabLen ;
|
||||
dNextTab = tdTabs.m_dBottomLen ;
|
||||
}
|
||||
if ( ! vdTabs.empty())
|
||||
|
||||
Reference in New Issue
Block a user