EgtMachKernel :

- passo minimo di fresature portato da 1.0 a 0.1
- corretta determinazione se posizioni di attacco/uscita sono sotto il grezzo.
This commit is contained in:
Dario Sassi
2020-06-08 06:24:08 +00:00
parent 75266fd465
commit 79864ed594
3 changed files with 9 additions and 4 deletions
+6 -1
View File
@@ -344,6 +344,11 @@ Operation::GetPointUnderRaw( const Point3d& ptP, const Vector3d& vtTool, double
{
// punto a metà lunghezza utensile
Point3d ptQ = ptP + vtTool * dToolLen / 2 ;
// box di ingombro dell'utensile
BBox3d b3Tool ;
b3Tool.Set( ptP) ;
b3Tool.Add( ptQ) ;
b3Tool.Expand( dToolRadForElev) ;
// direzione di fuga per l'elevazione
Vector3d vtDir = vtTool ;
if ( vtDir.z < - EPS_SMALL)
@@ -358,7 +363,7 @@ Operation::GetPointUnderRaw( const Point3d& ptP, const Vector3d& vtTool, double
int nStmId = m_pGeomDB->GetFirstNameInGroup( nRawId, MACH_RAW_SOLID) ;
BBox3d b3Raw ;
m_pGeomDB->GetGlobalBBox( nStmId, b3Raw) ;
if ( ! b3Raw.IsEmpty() && ( b3Raw.EnclosesXY( ptP) || b3Raw.EnclosesXY( ptQ)) && ptP.z < b3Raw.GetMin().z - 10 * EPS_SMALL) {
if ( ! b3Raw.IsEmpty() && b3Raw.OverlapsXY( b3Tool) && ptP.z < b3Raw.GetMin().z - 10 * EPS_SMALL) {
// determino elevazione del punto rispetto al grezzo a metà altezza
Point3d ptTest( ptP.x, ptP.y, (( b3Raw.GetMin() + b3Raw.GetMax()) / 2).z) ;
double dNewElev ;