Compare commits

...

19 Commits

Author SHA1 Message Date
luca.mazzoleni e844d761f9 - in LapJoint -> CalcInterference ora si usano le stesse funzioni della FreeContour 2024-12-02 18:11:47 +01:00
luca.mazzoleni 6a86f7798e - in FreeContour eLapJoint ->CleanCorner si scrivono ora TASKID e CUTID per riportare le collisioni sulla feature specifica 2024-12-02 11:47:48 +01:00
luca.mazzoleni 6a6a194df6 - in LapJoint modifica al calcolo feature passante per gorge 2024-11-29 17:52:11 +01:00
luca.mazzoleni dcd600af01 - in LapJoint correzioni varie 2024-11-29 17:21:17 +01:00
luca.mazzoleni 854fafddf2 Merge tag '2.6k3' into develop
2.6k3
2024-11-27 17:45:13 +01:00
luca.mazzoleni ef6cbc35df Merge branch 'hotfix/2.6k3' 2024-11-27 17:44:49 +01:00
luca.mazzoleni 2887591da4 update version e log 2024-11-27 17:44:41 +01:00
luca.mazzoleni 3d75344652 Merge branch 'develop' into hotfix/2.6k2 2024-11-27 17:42:25 +01:00
luca.mazzoleni 1952c937b0 - in LapJoint -> MakeSideGrooveByMill corretto e modificato calcolo leadin/out perpendicolare 2024-11-27 17:41:23 +01:00
luca.mazzoleni 99baaa6320 Merge tag 'NestingSilhouetteTolerance' into develop
2.6k2
2024-11-19 12:20:13 +01:00
luca.mazzoleni 3ac752861b Merge branch 'hotfix/NestingSilhouetteTolerance' 2024-11-19 12:19:52 +01:00
luca.mazzoleni d690906180 - in NestProcess tolleranza silhouette riportata al valore pre modifiche DLL 2024-11-19 12:19:27 +01:00
luca.mazzoleni 1bf70aaf27 Merge branch 'master' into develop 2024-11-15 18:12:01 +01:00
luca.mazzoleni e5a2a7e5a9 - modificato compile per contemplare Squaring.lua 2024-11-15 18:05:38 +01:00
luca.mazzoleni b726fbc2cc Merge tag '2.6k1' into develop
2.6k1
2024-11-14 15:22:29 +01:00
luca.mazzoleni 0771665282 Merge branch 'release/2.6k1' 2024-11-14 15:21:43 +01:00
luca.mazzoleni 6ba42d19e9 update version e log 2024-11-14 15:21:12 +01:00
luca.mazzoleni 374021ad13 - in NestProcess corretta creazione outline che in precedenza funzionava (modificata la gestione tolleranza nella funzione EgtGetSurfTmSilhouette con aggiornamenti DLL recenti) 2024-11-14 14:49:36 +01:00
luca.mazzoleni dfe405f3b0 - in NestProcess corretta indentazione 2024-11-13 17:17:12 +01:00
6 changed files with 100 additions and 89 deletions
+1
View File
@@ -4,6 +4,7 @@ REM Per togliere info di debug aggiungere flag -s prima del nome del file di inp
REM Compilazione 32 e 64 bit
\EgtProg\Dll32\luac54 -o bin\LuaLibs\Squaring.lua -s LuaLibs\Squaring.lua
\EgtProg\Dll32\luac54 -o bin\LuaLibs\WallExec.lua -s LuaLibs\WallExec.lua
\EgtProg\Dll32\luac54 -o bin\LuaLibs\WallLib.lua -s LuaLibs\WallLib.lua
\EgtProg\Dll32\luac54 -o bin\LuaLibs\WMachiningLib.lua -s LuaLibs\WMachiningLib.lua
+19 -17
View File
@@ -777,9 +777,9 @@ local function AddMillCornerMachining( nPartId, nNewProc, nFacInd, tFacAdj, nTyp
-- creo superfice locale o esco
local nSurfToAdd = MakeLocalSurf( tFacAdj[7], tFacAdj[8], tFacAdj[9], nAddGrpId)
if nSurfToAdd then
local nFacCntPre = EgtSurfTmFacetCount( nNewProc)
local nFacCntPre = EgtSurfTmFacetCount( nNewProc.Id)
-- creo copia del percorso principale e gli aggiungo la nuova faccia
nNewProcLoc = EgtCopyGlob( nNewProc, nAddGrpId)
nNewProcLoc = EgtCopyGlob( nNewProc.Id, nAddGrpId)
nNewProcLoc = EgtSurfTmBySewing( nAddGrpId, {nNewProcLoc,nSurfToAdd} , true)
-- riordino le facce
ReorderFacesFromTab( nNewProcLoc, vFace)
@@ -790,7 +790,7 @@ local function AddMillCornerMachining( nPartId, nNewProc, nFacInd, tFacAdj, nTyp
return true, ''
end
else
nNewProcLoc = nNewProc
nNewProcLoc = nNewProc.Id
end
-- prendo il primo versore
local _, vtN1 = EgtSurfTmFacetCenter( nNewProcLoc, nFacInd, GDB_ID.ROOT)
@@ -847,7 +847,7 @@ local function AddMillCornerMachining( nPartId, nNewProc, nFacInd, tFacAdj, nTyp
vtCheck:rotate( Z_AX(), dOffsAng)
end
-- controllo se c'è collisione con le facce della superfice
if nTypeConeCut == 1 and CalcInterference( nNewProc, vtCheck, tFacAdj[nIdEndPoint] + Point3d( 0, 0, -dDepthMach), dDiam1, dDiam2,
if nTypeConeCut == 1 and CalcInterference( nNewProc.Id, vtCheck, tFacAdj[nIdEndPoint] + Point3d( 0, 0, -dDepthMach), dDiam1, dDiam2,
dTall1, dTall2, dDiam3, dTall3) then
local sErr = 'Collision detect from clean corner tool and surface'
EgtOutLog( sErr)
@@ -944,6 +944,8 @@ local function AddMillCornerMachining( nPartId, nNewProc, nFacInd, tFacAdj, nTyp
-- trasformo in percorso
if #pAuxId > 0 then
AuxId = EgtCurveCompo( nAddGrpId, pAuxId, true)
EgtSetInfo( AuxId, 'TASKID', nNewProc.TaskId)
EgtSetInfo( AuxId, 'CUTID', nNewProc.CutId)
end
-- se non c'é il percorso do errore
if not AuxId then
@@ -958,8 +960,8 @@ local function AddMillCornerMachining( nPartId, nNewProc, nFacInd, tFacAdj, nTyp
EgtRotate( AuxId, tFacAdj[nIdEndPoint], Z_AX(), dOffsAng, GDB_RT.GLOB)
end
-- inserisco la lavorazione
local sName = 'Clean_' .. ( EgtGetName( nNewProc) or tostring( nNewProc))
local nMchId = WM.AddMachining( nNewProc, sName, sMilling)
local sName = 'Clean_' .. ( EgtGetName( nNewProc.Id) or tostring( nNewProc.Id))
local nMchId = WM.AddMachining( nNewProc.Id, sName, sMilling)
if not nMchId then
local sErr = 'Error adding machining ' .. sName .. '-' .. sMilling
EgtOutLog( sErr)
@@ -1052,26 +1054,26 @@ local function AddMillCorner( nTypeConeCut, vFace, Proc, nRawId, b3Raw,
-- verifico se ciclo chiuso
local bClosed = ( abs( vFace[1].PrevAng) > 0.1)
-- copio la feature nel layer di appoggio
local nNewProc
local nNewProc = { CutId = Proc.CutId, TaskId = Proc.TaskId}
if nMasterNewProc then
nNewProc = nMasterNewProc
nNewProc.Id = nMasterNewProc
else
nNewProc = EgtCopyGlob( Proc.Id, nAddGrpId) or GDB_ID.NULL
nNewProc.Id = EgtCopyGlob( Proc.Id, nAddGrpId) or GDB_ID.NULL
end
local nFacCnt = EgtSurfTmFacetCount( nNewProc)
local nFacCnt = EgtSurfTmFacetCount( nNewProc.Id)
local nFacInd, dDepth, nSurfInt
local bMakeLocSurf
-- RIMUOVERE
if false and nFacCnt <= 4 then
-- recupero profondità e faccia di fondo
_, _, dDepth, _, _, nSurfInt = GetTunnelDimension( nNewProc, Proc.PartId, nAddGrpId, bClosed)
_, _, dDepth, _, _, nSurfInt = GetTunnelDimension( nNewProc.Id, Proc.PartId, nAddGrpId, bClosed)
if nSurfInt then
-- aggiungo la faccia di fondo appena calcolata
nNewProc = EgtSurfTmBySewing( nAddGrpId, { nNewProc, nSurfInt}, true)
nNewProc.Id = EgtSurfTmBySewing( nAddGrpId, { nNewProc.Id, nSurfInt}, true)
-- riordino le facce
ReorderFacesFromTab( nNewProc, vFace)
ReorderFacesFromTab( nNewProc.Id, vFace)
-- aggiorno numero di facce e assegno indice di quella di fondo (sempre ultima)
nFacCnt = EgtSurfTmFacetCount( nNewProc)
nFacCnt = EgtSurfTmFacetCount( nNewProc.Id)
nFacInd = nFacCnt - 1
else
return true
@@ -1119,7 +1121,7 @@ local function AddMillCorner( nTypeConeCut, vFace, Proc, nRawId, b3Raw,
ptLoc2 = vFace[k].PPrev
end
-- ricavo i punti e l'angolo interno
local _, ptP1, ptP2, dAng = EgtSurfTmFacetsContact( nNewProc, nFace1, nFace2, GDB_ID.ROOT)
local _, ptP1, ptP2, dAng = EgtSurfTmFacetsContact( nNewProc.Id, nFace1, nFace2, GDB_ID.ROOT)
-- se punti validi e angolo è interno e non è quasi piatto e >= 90 creo istanza
local tFacAdj = {}
if ptP1 and ptP2 and dAng < 0 and dAng < -6 and dAng > EgtIf( nTypeConeCut == 1, -(90 + 10 * GEO.EPS_SMALL), -(180-dAngleSmall + 10 * GEO.EPS_SMALL)) then
@@ -1157,8 +1159,8 @@ local function AddMillCorner( nTypeConeCut, vFace, Proc, nRawId, b3Raw,
i = i + 1
end
-- cancello la copia della superfice
if nNewProc then
EgtErase( nNewProc)
if nNewProc.Id then
EgtErase( nNewProc.Id)
end
return true
end
+38 -40
View File
@@ -692,15 +692,15 @@ local function CalcInterference( nNewProc, vtExtr, ptCentr, dDiam1, dDiam2,
local ptCentrGrid1 = ptCentr + ( vtExtr * 0.01)
local frOriTool = Frame3d( ptCentrGrid1, vtExtr)
local bColl1 = EgtCDeConeSolid( frOriTool, dDiam1/2, dDiam2/2, dTall1, nNewProc, 0, GDB_RT.GLOB)
local bColl1 = EgtTestConeSurface( frOriTool, dDiam1/2, dDiam2/2, dTall1, nNewProc, 0, GDB_RT.GLOB)
if bColl1 then return true end
local ptCentrGrid2 = ptCentr + ( vtExtr * ( dTall1 + 0.01))
frOriTool = Frame3d( ptCentrGrid2, vtExtr)
local bColl2 = EgtCDeCylSolid( frOriTool, dDiam2/2, (dTall2-dTall1), nNewProc, 0, GDB_RT.GLOB)
local bColl2 = EgtTestCylSurface( frOriTool, dDiam2/2, (dTall2-dTall1), nNewProc, 0, GDB_RT.GLOB)
if bColl2 then return true end
local ptCentrGrid3 = ptCentr + ( vtExtr * ( dTall2 + 0.01))
frOriTool = Frame3d( ptCentrGrid3, vtExtr)
local bColl3 = EgtCDeCylSolid( frOriTool, dDiam3/2, (dTall3-dTall2), nNewProc, 0, GDB_RT.GLOB)
local bColl3 = EgtTestCylSurface( frOriTool, dDiam3/2, (dTall3-dTall2), nNewProc, 0, GDB_RT.GLOB)
if bColl3 then return true end
-- restituisco risultato controllo collisioni
return false
@@ -760,9 +760,9 @@ local function AddMillCornerMachining( nPartId, nNewProc, nFacInd, tFacAdj, nTyp
-- creo superfice locale o esco
local nSurfToAdd = MakeLocalSurf( tFacAdj[7], tFacAdj[8], tFacAdj[9], nAddGrpId)
if nSurfToAdd then
local nFacCntPre = EgtSurfTmFacetCount( nNewProc)
local nFacCntPre = EgtSurfTmFacetCount( nNewProc.Id)
-- creo copia del percorso principale e gli aggiungo la nuova faccia
nNewProcLoc = EgtCopyGlob( nNewProc, nAddGrpId)
nNewProcLoc = EgtCopyGlob( nNewProc.Id, nAddGrpId)
nNewProcLoc = EgtSurfTmBySewing( nAddGrpId, {nNewProcLoc,nSurfToAdd} , true)
-- riordino le facce
nNewProcLoc = ReorderFacesFromTab( nNewProcLoc, vFace)
@@ -775,7 +775,7 @@ local function AddMillCornerMachining( nPartId, nNewProc, nFacInd, tFacAdj, nTyp
return true, ''
end
else
nNewProcLoc = nNewProc
nNewProcLoc = nNewProc.Id
end
-- prendo il primo versore
local _, vtN1 = EgtSurfTmFacetCenter( nNewProcLoc, nFacInd, GDB_ID.ROOT)
@@ -829,7 +829,7 @@ local function AddMillCornerMachining( nPartId, nNewProc, nFacInd, tFacAdj, nTyp
vtCheck:rotate( Z_AX(), dOffsAng)
end
-- controllo se c'è collisione con le facce della superfice
if nTypeConeCut == 1 and CalcInterference( nNewProc, vtCheck, tFacAdj[nIdEndPoint] + Point3d( 0, 0, -dDepthMach), dDiam1, dDiam2,
if nTypeConeCut == 1 and CalcInterference( nNewProc.Id, vtCheck, tFacAdj[nIdEndPoint] + Point3d( 0, 0, -dDepthMach), dDiam1, dDiam2,
dTall1, dTall2, dDiam3, dTall3) then
local sErr = 'Collision detect from clean corner tool and surface'
EgtOutLog( sErr)
@@ -926,6 +926,8 @@ local function AddMillCornerMachining( nPartId, nNewProc, nFacInd, tFacAdj, nTyp
-- trasformo in percorso
if #pAuxId > 0 then
AuxId = EgtCurveCompo( nAddGrpId, pAuxId, true)
EgtSetInfo( AuxId, 'TASKID', nNewProc.TaskId)
EgtSetInfo( AuxId, 'CUTID', nNewProc.CutId)
end
-- se non c'é il percorso do errore
if not AuxId then
@@ -940,8 +942,8 @@ local function AddMillCornerMachining( nPartId, nNewProc, nFacInd, tFacAdj, nTyp
EgtRotate( AuxId, tFacAdj[nIdEndPoint], Z_AX(), dOffsAng, GDB_RT.GLOB)
end
-- inserisco la lavorazione
local sName = 'Clean_' .. ( EgtGetName( nNewProc) or tostring( nNewProc))
local nMchId = WM.AddMachining( nNewProc, sName, sMilling)
local sName = 'Clean_' .. ( EgtGetName( nNewProc.Id) or tostring( nNewProc.Id))
local nMchId = WM.AddMachining( nNewProc.Id, sName, sMilling)
if not nMchId then
local sErr = 'Error adding machining ' .. sName .. '-' .. sMilling
EgtOutLog( sErr)
@@ -1035,27 +1037,27 @@ local function AddMillCorner( nTypeConeCut, vFace, Proc, nRawId, b3Raw,
end
end
-- copio la feature nel layer di appoggio
local nNewProc
local nNewProc = { CutId = Proc.CutId, TaskId = Proc.TaskId}
if nMasterNewProc then
nNewProc = nMasterNewProc
nNewProc.Id = nMasterNewProc
else
nNewProc = EgtCopyGlob( Proc.Id, nAddGrpId) or GDB_ID.NULL
nNewProc.Id = EgtCopyGlob( Proc.Id, nAddGrpId) or GDB_ID.NULL
end
local nFacCnt = EgtSurfTmFacetCount( nNewProc)
local nFacCnt = EgtSurfTmFacetCount( nNewProc.Id)
local nFacInd, dDimMin, dDimMax, dDepth, nSurfInt
local bMakeLocSurf
-- RIMUOVERE
if false and nFacCnt <= 4 then
-- ottengo le dimensioni apertura, la normale e la faccia inferiore
dDimMin, dDimMax, dDepth, _, _, nSurfInt = GetTunnelDimension( nNewProc, Proc.PartId, nAddGrpId)
dDimMin, dDimMax, dDepth, _, _, nSurfInt = GetTunnelDimension( nNewProc.Id, Proc.PartId, nAddGrpId)
if nSurfInt then
-- uso la dimensione minima anche nel caso che la cava sborda perchè la lavorazione potrebbe collidere con un pezzo limitrofo
local dMinWidth = dDimMin
nNewProc = EgtSurfTmBySewing( nAddGrpId, {nNewProc,nSurfInt} , true)
nNewProc.Id = EgtSurfTmBySewing( nAddGrpId, {nNewProc.Id,nSurfInt} , true)
-- riordino le facce
nNewProc = ReorderFacesFromTab( nNewProc, vFace)
nNewProc.Id = ReorderFacesFromTab( nNewProc.Id, vFace)
-- acquisisco il numero della faccia
nFacCnt = EgtSurfTmFacetCount( nNewProc)
nFacCnt = EgtSurfTmFacetCount( nNewProc.Id)
nFacInd = nFacCnt - 1
else
local sErr = 'Error : cannot create base surface'
@@ -1107,7 +1109,7 @@ local function AddMillCorner( nTypeConeCut, vFace, Proc, nRawId, b3Raw,
ptLoc2 = vFace[k].PPrev
end
-- ricavo i punti e l'angolo interno
local _, ptP1, ptP2, dAng = EgtSurfTmFacetsContact( nNewProc, nFace1, nFace2, GDB_ID.ROOT)
local _, ptP1, ptP2, dAng = EgtSurfTmFacetsContact( nNewProc.Id, nFace1, nFace2, GDB_ID.ROOT)
-- se punti validi e angolo è interno e non è quasi piatto e >= 90 creo istanza
local tFacAdj = {}
if ptP1 and ptP2 and dAng < 0 and dAng < -6 and dAng > EgtIf( nTypeConeCut == 1, -(90 + 10 * GEO.EPS_SMALL), -(180-dAngleSmall + 10 * GEO.EPS_SMALL)) then
@@ -1145,8 +1147,8 @@ local function AddMillCorner( nTypeConeCut, vFace, Proc, nRawId, b3Raw,
i = i + 1
end
-- cancello la copia della superfice
if nNewProc then
EgtErase(nNewProc)
if nNewProc.Id then
EgtErase( nNewProc.Id)
end
return true
end
@@ -1691,13 +1693,7 @@ local function MakeSideGrooveByMill( Proc, nFacet, nRawId, b3Raw, sCustomMach, d
dExtraLongEnd = 0
end
-- se ho abilitato la lavorazione di fresatura per garantire passaggio gambo utensile, inserisco la lavorazione
local bThroughRaw = false
if bEnablePreMill then
-- verifico se feature e' passante
if ((Proc.Box:getMin():getX() < ( b3Raw:getMin():getX() + 50)) and (Proc.Box:getMax():getX() > ( b3Raw:getMax():getX() - 50))) or
((Proc.Box:getMin():getY() < ( b3Raw:getMin():getY() + 50)) and (Proc.Box:getMax():getY() > ( b3Raw:getMax():getY() - 50))) then
bThroughRaw = true
end
-- recupero la lavorazione di taglio
local sCuttingGorge = WM.FindCutting( 'Standard')
@@ -1745,7 +1741,7 @@ local function MakeSideGrooveByMill( Proc, nFacet, nRawId, b3Raw, sCustomMach, d
local bSawInvertSE = false
-- se non passante, aggiungo fresatura area della fresa
if not bThroughRaw and nNumStep - 1 > 0 then
if not Proc.IsThrough and nNumStep - 1 > 0 then
local SquareId -- Id della composita da fresare
local dSawShortening = sqrt( b3Raw:getDimZ() * ( dSawDiam - b3Raw:getDimZ())) -- da calcolare in base a raggio lama e spessore grezzo
-- gruppo ausiliario
@@ -2015,6 +2011,10 @@ local function MakeSideGrooveByMill( Proc, nFacet, nRawId, b3Raw, sCustomMach, d
local nStep = ceil( ( dThick - dMaxMat) / dStep)
dStep = max( ( dThick - dMaxMat) / max( nStep, 1), 0)
local dMaxElev = max( ( nStep + 1) * dStep - GEO.EPS_SMALL, 0)
-- tasca aperta sopra non necessita di MaxElev
if Proc.Fct == 2 and Proc.AffectedFaces.Top then
dMaxElev = nil
end
if nSinglePass and nSinglePass > 0 then
dStep = 0
if nSinglePass == 1 then
@@ -2028,7 +2028,9 @@ local function MakeSideGrooveByMill( Proc, nFacet, nRawId, b3Raw, sCustomMach, d
-- leggo eventuali note esistenti della lavorazione
local sUserNotes = EgtGetMachiningParam( MCH_MP.USERNOTES)
-- aggiungo alle note massima elevazione
sUserNotes = EgtSetValInNotes( sUserNotes, 'MaxElev', EgtNumToString( dMaxElev, 3))
if dMaxElev then
sUserNotes = EgtSetValInNotes( sUserNotes, 'MaxElev', EgtNumToString( dMaxElev, 3))
end
-- se lavorazione in doppio aggiungo le rispettive note
if Proc.Double and Proc.Double == 2 then
sUserNotes = EgtSetValInNotes( sUserNotes, 'DOUBLE', Proc.Double)
@@ -2102,15 +2104,9 @@ local function MakeSideGrooveByMill( Proc, nFacet, nRawId, b3Raw, sCustomMach, d
-- setto allungamenti iniziali e finali
EgtSetMachiningParam( MCH_MP.STARTADDLEN, dExtraLongIni)
EgtSetMachiningParam( MCH_MP.ENDADDLEN, dExtraLongEnd)
-- se ho passate orizzontali riduco l'eventuale allungamento settato dall'utente
local dLiPerp = EgtGetMachiningParam( MCH_MP.LIPERP)
local dLoPerp = EgtGetMachiningParam( MCH_MP.LOPERP)
if dLiPerp > 0 then
dLiPerp = dLiPerp - dRadialOffset
end
if dLoPerp > 0 then
dLoPerp = dLoPerp - dRadialOffset
end
-- tutte le passate partono dalla stessa distanza
local dLiPerp = dElev + WD.CUT_SIC - dRadialOffset
local dLoPerp = dElev + WD.CUT_SIC - dRadialOffset
EgtSetMachiningParam( MCH_MP.LIPERP, dLiPerp)
EgtSetMachiningParam( MCH_MP.LOPERP, dLoPerp)
-- se richiesto, setto la nota per spostare la lavorazione alla fine
@@ -2886,13 +2882,15 @@ local function MakeMoreFaces( Proc, nRawId, b3Raw)
-- se ho abilitata lavorazione di fresa di fianco
if Proc.Fct >= 3 and sMillOnSide and nUseMillOnSide >= 1 and not bIsSmallSlot then
-- cerco nei parametri utensili la nota di affondamento di fianco SIDEDEPTH
local dMaxDepthOnSide = 0
local dMaxDepthOnSide = 999
local dMillDiam = 0
local dMillDiamTh = EgtTdbGetCurrToolThDiam() or 60
if EgtMdbSetCurrMachining( sMillOnSide) then
local sTuuid = EgtMdbGetCurrMachiningParam( MCH_MP.TUUID)
if EgtTdbSetCurrTool( EgtTdbGetToolFromUUID( sTuuid) or '') then
dMillDiam = EgtTdbGetCurrToolParam( MCH_TP.DIAM) or dMillDiam
dMaxDepthOnSide = EgtTdbGetCurrToolValInNotes( MCH_TP.USERNOTES, 'SIDEDEPTH', 'd') or dMaxDepthOnSide
dMillDiamTh = EgtTdbGetCurrToolThDiam() or dMillDiamTh
dMaxDepthOnSide = min( EgtTdbGetCurrToolValInNotes( MCH_TP.USERNOTES, 'SIDEDEPTH', 'd') or dMaxDepthOnSide, 0.5 * ( dMillDiam - dMillDiamTh))
end
end
local bMakeFirstGroove
@@ -2981,7 +2979,7 @@ local function MakeMoreFaces( Proc, nRawId, b3Raw)
else
local sErr = 'Side milling not possible'
EgtOutLog( sErr)
return true, sErr
return false, sErr
end
-- fessura verticale
elseif Proc.Stype == 3 then
+29 -30
View File
@@ -1629,7 +1629,7 @@ local function AddParts(RawParts, vPartsDoneManually)
if bOnEdge or bOnAngle then
local nBoxLayerId = EgtGetFirstNameInGroup( nPartId, "Box")
local nBoxId = EgtGetFirstNameInGroup( nBoxLayerId, "Box")
local b3Part = EgtGetBBoxGlob(nBoxId, GDB_BB.STANDARD)
local b3Part = EgtGetBBoxGlob(nBoxId, GDB_BB.STANDARD)
-- punto di riferimento sul pezzo
local ptRef
@@ -1807,40 +1807,39 @@ if bNestingOk then
end
end
-- aggiungo pezzi nestati a mano
nPartCount = 0
for nInd = 1, #vDoneManually do
if vDoneManually[nInd].SheetId == nId then
vDoneManually[nInd].Done = 1
for nInd2 = 1, #(vDoneManually[nInd].Parts) do
nPartCount = nPartCount + 1
local nPartDuploId = EgtDuploNew( vDoneManually[nInd].Parts[nInd2].Id)
-- aggiungo le curve corrispondenti alle aree di lavorazione del pezzo
local sToolOutlines = EgtGetInfo( vDoneManually[nInd].Parts[nInd2].Id, "ToolOutlines", 's')
if sToolOutlines then
-- recupero o creo il gruppo per gli outlines
local nToolOutlinesGrp = EgtGetFirstNameInGroup( nPartDuploId, "ToolOutlines")
if not nToolOutlinesGrp then
nToolOutlinesGrp = EgtGroup( nPartDuploId)
EgtSetName( nToolOutlinesGrp, "ToolOutlines")
EgtSetStatus( nToolOutlinesGrp, GDB_ST.ON)
end
for str in string.gmatch(sToolOutlines, "([^"..",".."]+)") do
EgtCopyGlob( tonumber(str), nToolOutlinesGrp)
-- aggiungo pezzi nestati a mano
nPartCount = 0
for nInd = 1, #vDoneManually do
if vDoneManually[nInd].SheetId == nId then
vDoneManually[nInd].Done = 1
for nInd2 = 1, #(vDoneManually[nInd].Parts) do
nPartCount = nPartCount + 1
local nPartDuploId = EgtDuploNew( vDoneManually[nInd].Parts[nInd2].Id)
-- aggiungo le curve corrispondenti alle aree di lavorazione del pezzo
local sToolOutlines = EgtGetInfo( vDoneManually[nInd].Parts[nInd2].Id, "ToolOutlines", 's')
if sToolOutlines then
-- recupero o creo il gruppo per gli outlines
local nToolOutlinesGrp = EgtGetFirstNameInGroup( nPartDuploId, "ToolOutlines")
if not nToolOutlinesGrp then
nToolOutlinesGrp = EgtGroup( nPartDuploId)
EgtSetName( nToolOutlinesGrp, "ToolOutlines")
EgtSetStatus( nToolOutlinesGrp, GDB_ST.ON)
end
for str in string.gmatch(sToolOutlines, "([^"..",".."]+)") do
EgtCopyGlob( tonumber(str), nToolOutlinesGrp)
end
end
-- applico flip, rotazione e traslazione pezzo e box da nesting
EgtSetInfo( nMachGroup, "PART" .. nPartCount, nPartDuploId .. "," .. EgtNumToString( vDoneManually[nInd].Parts[nInd2].posX, 3) .. "," .. EgtNumToString( vDoneManually[nInd].Parts[nInd2].posY, 3) .. "," .. 0 .."," .. 0)
EgtSetInfo( nPartDuploId, "POSX", vDoneManually[nInd].Parts[nInd2].posX)
EgtSetInfo( nPartDuploId, "POSY", vDoneManually[nInd].Parts[nInd2].posY)
end
-- applico flip, rotazione e traslazione pezzo e box da nesting
EgtSetInfo( nMachGroup, "PART" .. nPartCount, nPartDuploId .. "," .. EgtNumToString( vDoneManually[nInd].Parts[nInd2].posX, 3) .. "," .. EgtNumToString( vDoneManually[nInd].Parts[nInd2].posY, 3) .. "," .. 0 .."," .. 0)
EgtSetInfo( nPartDuploId, "POSX", vDoneManually[nInd].Parts[nInd2].posX)
EgtSetInfo( nPartDuploId, "POSY", vDoneManually[nInd].Parts[nInd2].posY)
end
end
end
end
-- altrimenti pezzo
else
+11
View File
@@ -1,5 +1,16 @@
==== Wall Update Log ====
Versione 2.6k3 (27/11/2024)
- Modif : migliorato calcolo approccio e retrazione in Sidemill/Sidegroove
Versione 2.6k2 (19/11/2024)
- Modif : in Nesting riportata allo stato precedente la tolleranza posizionamento pannelli sul bordo
Versione 2.6k1 (14/11/2024)
- Added : aggiunta squadratura master panel
- Modif : L010 si inseriscono con lama anche se il percorso è breve
- Fixed : in Nesting corretto errore in posizionamento pannelli che devono stare necessariamente sul bordo della tavola
Versione 2.6j2 (04/11/2024)
- Modif : Modificato limite dimensione tasca per utilizzo lama come SideGroove
+2 -2
View File
@@ -2,5 +2,5 @@
-- Gestione della versione di Wall
NAME = 'Wall'
VERSION = '2.6j2'
MIN_EXE = '2.6h1'
VERSION = '2.6k3'
MIN_EXE = '2.6k1'