From 63090926899627e17e3fdb40b169b44c93df89a1 Mon Sep 17 00:00:00 2001 From: "luca.mazzoleni" Date: Tue, 5 Dec 2023 18:37:28 +0100 Subject: [PATCH 1/2] In FacesBySaw -> CalcLeadInOutPerpGeom gestito caso in cui la geometria della feature esce dal grezzo --- LuaLibs/FacesBySaw.lua | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/LuaLibs/FacesBySaw.lua b/LuaLibs/FacesBySaw.lua index 9a18d4d..9e1e07f 100644 --- a/LuaLibs/FacesBySaw.lua +++ b/LuaLibs/FacesBySaw.lua @@ -715,6 +715,40 @@ function FacesBySaw.CalcLeadInOutPerpGeom( ptP1, ptP2, vtV1, vtV2, vtN, dRad, vt -- Spostamento punti per effetto dell'extra o della deficienza di taglio ptP1 = ptP1 + vtX * ( EgtIf( bRight, - dCutExtra, dCutExtra)) ptP2 = ptP2 + vtX * ( EgtIf( bRight, - dCutExtra, dCutExtra)) + -- Spostamento punti se fuori dal pezzo: si riportano sul bordo del grezzo + local dDeltaMovePt1, dDeltaMovePt2 = 0, 0 + local dPt1X, dPt1Y, dPt1Z = ptP1:getX(), ptP1:getY(), ptP1:getZ() + local dPt2X, dPt2Y, dPt2Z = ptP2:getX(), ptP2:getY(), ptP2:getZ() + local dBoxMinX, dBoxMinY, dBoxMinZ = b3Box:getMin():getX(), b3Box:getMin():getY(), b3Box:getMin():getZ() + local dBoxMaxX, dBoxMaxY, dBoxMaxZ = b3Box:getMax():getX(), b3Box:getMax():getY(), b3Box:getMax():getZ() + if dPt1X < dBoxMinX then + dDeltaMovePt1 = dBoxMinX - dPt1X + elseif dPt1X > dBoxMaxX then + dDeltaMovePt1 = dBoxMaxX - dPt1X + elseif dPt1Y < dBoxMinY then + dDeltaMovePt1 = dBoxMinY - dPt1Y + elseif dPt1Y > dBoxMaxY then + dDeltaMovePt1 = dBoxMaxY - dPt1Y + elseif dPt1Z < dBoxMinZ then + dDeltaMovePt1 = dBoxMinZ - dPt1Z + elseif dPt1Z > dBoxMaxZ then + dDeltaMovePt1 = dBoxMaxZ - dPt1Z + end + if dPt2X < dBoxMinX then + dDeltaMovePt2 = dPt2X - dBoxMinX + elseif dPt2X > dBoxMaxX then + dDeltaMovePt2 = dPt2X - dBoxMaxX + elseif dPt2Y < dBoxMinY then + dDeltaMovePt2 = dPt2Y - dBoxMinY + elseif dPt2Y > dBoxMaxY then + dDeltaMovePt2 = dPt2Y - dBoxMaxY + elseif dPt2Z < dBoxMinZ then + dDeltaMovePt2 = dPt2Z - dBoxMinZ + elseif dPt2Z > dBoxMaxZ then + dDeltaMovePt2 = dPt2Z - dBoxMaxZ + end + ptP1 = ptP1 + vtTg * dDeltaMovePt1 + ptP2 = ptP2 + vtTg * dDeltaMovePt2 -- Non va considerata l'uscita dalla faccia sotto, pertanto va abbassata -- 2021/02/26 Abilito anche uscita sotto local b3MyBox = BBox3d( b3Box) ; --b3MyBox:Add( b3MyBox:getMin() - 1000 * Z_AX()) From 1070910b8c7830ba60b79cc43ffed17527685a03 Mon Sep 17 00:00:00 2001 From: "luca.mazzoleni" Date: Wed, 6 Dec 2023 17:50:26 +0100 Subject: [PATCH 2/2] - In ProcessLapJoint -> VerifySideMillAsSaw, se SIDEDEPTH non definita, viene calcolata - update commenti --- LuaLibs/FacesBySaw.lua | 1 + LuaLibs/ProcessLapJoint.lua | 5 ++++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/LuaLibs/FacesBySaw.lua b/LuaLibs/FacesBySaw.lua index 9e1e07f..5894bf8 100644 --- a/LuaLibs/FacesBySaw.lua +++ b/LuaLibs/FacesBySaw.lua @@ -21,6 +21,7 @@ -- 2023/10/24 In MakeOne migliorata gestione taglio con percorso bilinea. Aggiunta funzione GetNameSolidFaceIncludingLine. -- 2023/11/14 In MakeOne migliorato calcolo scelta soluzione per macchina TURN -- 2023/11/28 In MakeTwo raffinamento calcolo vtRef per casi dubbi. +-- 2023/12/06 In CalcLeadInOutPerpGeom gestito caso in cui la geometria della feature esce dal grezzo. -- Tabella per definizione modulo local FacesBySaw = {} diff --git a/LuaLibs/ProcessLapJoint.lua b/LuaLibs/ProcessLapJoint.lua index 599bce4..19411d9 100644 --- a/LuaLibs/ProcessLapJoint.lua +++ b/LuaLibs/ProcessLapJoint.lua @@ -86,6 +86,7 @@ -- 2023/11/06 Migliorie per lavorazione con AngularTransmission con FAST. -- 2023/11/30 Calcolo elevazione velocizzato e centralizzato tramite la funzione GetFaceElevation. -- 2023/12/01 In MakeMoreFaces, nelle OpenPocket, ammesso utensile con diametro fino a 3 volte la dimensione della tasca (era 2). +-- 2023/12/06 In VerifySideMillAsSaw, se SIDEDEPTH non definita, viene calcolata. -- Tabella per definizione modulo local ProcessLapJoint = {} @@ -549,12 +550,14 @@ local function VerifySideMillAsSaw( Proc, nAddGrpId, vtN, dDiam, dFacElev) local dToolDiamOnSide = 0 local dThickMillOnSide = 0 local dMaxDepthOnSide = 0 + local dTDiamStem = 50 if EgtMdbSetCurrMachining( sMillingOnSide) then local sTuuid = EgtMdbGetCurrMachiningParam( MCH_MP.TUUID) if EgtTdbSetCurrTool( EgtTdbGetToolFromUUID( sTuuid) or '') then dToolDiamOnSide = EgtTdbGetCurrToolParam( MCH_TP.DIAM) or dToolDiamOnSide dThickMillOnSide = EgtTdbGetCurrToolParam( MCH_TP.MAXMAT) or dThickMillOnSide - dMaxDepthOnSide = EgtTdbGetCurrToolValInNotes( MCH_TP.USERNOTES, 'SIDEDEPTH', 'd') or dMaxDepthOnSide + dTDiamStem = EgtTdbGetCurrToolParam( MCH_TP.STEMDIAM) or dTDiamStem + dMaxDepthOnSide = min( EgtTdbGetCurrToolValInNotes( MCH_TP.USERNOTES, 'SIDEDEPTH', 'd') or 999, 0.5 * ( dToolDiamOnSide - dTDiamStem)) or dMaxDepthOnSide end end local bSpecialMillOnSide = ( dDiam > dThickMillOnSide - 10 * GEO.EPS_SMALL and dFacElev < dMaxDepthOnSide + 10 * GEO.EPS_SMALL)