EgtMachKernel 2.3j4 :
- in fresatura corretta gestione elevazione di attacco e uscita con OneWay.
This commit is contained in:
Binary file not shown.
+14
-4
@@ -2747,14 +2747,19 @@ Milling::AddOneWayMilling( const ICurveComposite* pCompo, const Vector3d& vtTool
|
||||
// aggiungo approccio per frese normali
|
||||
if ( ( m_TParams.m_nType & TF_SAWBLADE) == 0) {
|
||||
// correggo elevazione iniziale per punto inizio attacco (se testa da sopra senza aggregato approccio mai Z-)
|
||||
Point3d ptP1m = ptP1 - 10 * EPS_SMALL * vtTool ;
|
||||
Vector3d vtEscape = vtTool ;
|
||||
if ( m_bAboveHead && ! m_bAggrBottom && vtTool.z < - EPS_SMALL) {
|
||||
vtEscape.z = 0 ;
|
||||
vtEscape.Normalize() ;
|
||||
}
|
||||
double dNewStElev ;
|
||||
if ( GetElevation( m_nPhase, ptP1 - 10 * EPS_SMALL * vtTool, vtTool, GetRadiusForStartEndElevation(), vtEscape, dNewStElev) && dNewStElev > EPS_SMALL)
|
||||
dStElev = min( dStElev, dNewStElev) ;
|
||||
if ( GetElevation( m_nPhase, ptP1m, vtTool, GetRadiusForStartEndElevation(), vtEscape, dNewStElev) && dNewStElev > EPS_SMALL) {
|
||||
if ( bAboveStartEnd)
|
||||
dStElev = min( dStElev, dNewStElev) ;
|
||||
else
|
||||
dStElev = max( dStElev, dNewStElev) ;
|
||||
}
|
||||
// determino se l'inizio dell'attacco è esattamente sotto il grezzo, nel qual caso ricalcolo l'elevazione
|
||||
bool bUnderStart = m_bAboveHead && GetPointUnderRaw( ptP1, vtTool, 0,
|
||||
GetRadiusForStartEndElevation(), m_TParams.m_dLen, false, dSafeZ, dStElev) ;
|
||||
@@ -2864,14 +2869,19 @@ Milling::AddOneWayMilling( const ICurveComposite* pCompo, const Vector3d& vtTool
|
||||
// aggiungo retrazione per frese normali (esclusi step intermedi senza retrazione)
|
||||
if ( ( m_TParams.m_nType & TF_SAWBLADE) == 0 && ( j == nStep || bMidRetract)) {
|
||||
// correggo elevazione finale per punto fine uscita (se testa da sopra senza aggregato approccio mai Z-)
|
||||
Point3d ptP1m = ptP1 - 10 * EPS_SMALL * vtTool ;
|
||||
Vector3d vtEscape = vtTool ;
|
||||
if ( m_bAboveHead && ! m_bAggrBottom && vtTool.z < - EPS_SMALL) {
|
||||
vtEscape.z = 0 ;
|
||||
vtEscape.Normalize() ;
|
||||
}
|
||||
double dNewEndElev ;
|
||||
if ( GetElevation( m_nPhase, ptP1 - 10 * EPS_SMALL * vtTool, vtTool, GetRadiusForStartEndElevation(), vtEscape, dNewEndElev) && dNewEndElev > EPS_SMALL)
|
||||
dEndElev = min( dEndElev, dNewEndElev) ;
|
||||
if ( GetElevation( m_nPhase, ptP1m, vtTool, GetRadiusForStartEndElevation(), vtEscape, dNewEndElev) && dNewEndElev > EPS_SMALL) {
|
||||
if ( bAboveStartEnd)
|
||||
dEndElev = min( dEndElev, dNewEndElev) ;
|
||||
else
|
||||
dEndElev = max( dEndElev, dNewEndElev) ;
|
||||
}
|
||||
// determino se l'inizio dell'uscita è esattamente sotto il grezzo, nel qual caso ricalcolo l'elevazione
|
||||
bool bUnderEnd = m_bAboveHead && GetPointUnderRaw( ptP1, vtTool, 0,
|
||||
GetRadiusForStartEndElevation(), m_TParams.m_dLen, false, dSafeZ, dEndElev) ;
|
||||
|
||||
+3
-3
@@ -354,19 +354,19 @@ ToolData::SetParam( int nType, double dVal)
|
||||
m_dMinFeed = dVal ;
|
||||
return true ;
|
||||
case TPA_DIST :
|
||||
if ( abs( dVal) > 0)
|
||||
if ( abs( dVal) > EPS_SMALL)
|
||||
SetValInNotes( TSI_DIST, dVal, m_sSysNotes) ;
|
||||
else
|
||||
RemoveValInNotes( TSI_DIST, m_sSysNotes) ;
|
||||
return true ;
|
||||
case TPA_STEMDIAM :
|
||||
if ( abs( dVal) > 0)
|
||||
if ( abs( dVal) > EPS_SMALL)
|
||||
SetValInNotes( TSI_STEM_DIAM, dVal, m_sSysNotes) ;
|
||||
else
|
||||
RemoveValInNotes( TSI_STEM_DIAM, m_sSysNotes) ;
|
||||
return true ;
|
||||
case TPA_CORE :
|
||||
if ( abs( dVal) > 0)
|
||||
if ( abs( dVal) > EPS_SMALL)
|
||||
SetValInNotes( TSI_CORE, dVal, m_sSysNotes) ;
|
||||
else
|
||||
RemoveValInNotes( TSI_CORE, m_sSysNotes) ;
|
||||
|
||||
Reference in New Issue
Block a user