3dPrinting 2.7i1 :
- corretto errore nella gestione dei setti unbounded con più percorsi.
This commit is contained in:
+15
-19
@@ -722,33 +722,26 @@ local function VerifyRibsHoles( vIds)
|
||||
local ptS2 = EgtSP( vIds[i])
|
||||
local ptE2 = EgtEP( vIds[i])
|
||||
|
||||
local bAdd1 = dist( ptS1, ptE2) < dStrand + 10 * GEO.EPS_SMALL or dist( ptS1, ptS2) < dStrand + 10 * GEO.EPS_SMALL
|
||||
local bAdd2 = dist( ptE1, ptS2) < dStrand + 10 * GEO.EPS_SMALL or dist( ptE1, ptE2) < dStrand + 10 * GEO.EPS_SMALL
|
||||
local bInvert = dist( ptE1, ptE2) < dStrand + 10 * GEO.EPS_SMALL or dist( ptS1, ptS2) < dStrand + 10 * GEO.EPS_SMALL
|
||||
|
||||
if bInvert then
|
||||
EgtInvertCurve( vIds[i])
|
||||
end
|
||||
local bAdd1 = dist( ptS1, ptE2) < dStrand + 10 * GEO.EPS_SMALL
|
||||
local bAdd2 = dist( ptE1, ptS2) < dStrand + 10 * GEO.EPS_SMALL
|
||||
bAdd = bAdd1 or bAdd2
|
||||
|
||||
if bAdd1 and bAdd2 then
|
||||
-- se da unire in setto chiuso
|
||||
bAdd = true
|
||||
EgtAddCurveCompoLine( vIds[i-1], EgtEP( vIds[i]), false)
|
||||
EgtAddCurveCompoLine( vIds[i-1], EgtSP( vIds[i]))
|
||||
-- da unire in setto chiuso
|
||||
EgtAddCurveCompoLine( vIds[i-1], ptE2, false)
|
||||
EgtAddCurveCompoLine( vIds[i-1], ptS2)
|
||||
EgtAddCurveCompoCurve( vIds[i-1], vIds[i])
|
||||
table.remove( vIds, i) -- rimuovo il setto dalla tabella
|
||||
|
||||
elseif bAdd2 then
|
||||
bAdd = true
|
||||
-- unisco il secondo tratto al primo
|
||||
EgtAddCurveCompoLine( vIds[i-1], EgtSP( vIds[i]))
|
||||
EgtAddCurveCompoLine( vIds[i-1], ptS2)
|
||||
EgtAddCurveCompoCurve( vIds[i-1], vIds[i])
|
||||
table.remove( vIds, i) -- rimuovo il setto dalla tabella
|
||||
|
||||
elseif bAdd1 then
|
||||
bAdd = true
|
||||
-- unisco il primo tratto al secondo
|
||||
EgtAddCurveCompoLine( vIds[i], EgtSP( vIds[i-1]))
|
||||
EgtAddCurveCompoLine( vIds[i], ptS1)
|
||||
EgtAddCurveCompoCurve( vIds[i], vIds[i-1])
|
||||
table.remove( vIds, i-1) -- rimuovo il setto dalla tabella
|
||||
end
|
||||
@@ -1425,7 +1418,7 @@ local function ComputeTrimSurfWithOverlapsForRibs( vIds, nGrp, nSrfInt, nSrfExt,
|
||||
|
||||
elseif nType == RIB_TYPE.EXTERNAL then
|
||||
if not nSrfExt then
|
||||
-- il setto va cancellato
|
||||
-- sono in un CrvGrp intermedio, il setto va cancellato
|
||||
elseif nSrfExt == GDB_ID.NULL then
|
||||
-- se la superficie non esiste il setto va conservato
|
||||
tSurfOffs[vIds[i]] = GDB_ID.NULL
|
||||
@@ -1444,8 +1437,11 @@ local function ComputeTrimSurfWithOverlapsForRibs( vIds, nGrp, nSrfInt, nSrfExt,
|
||||
end
|
||||
|
||||
else
|
||||
-- se unbounded non va mai trimmato
|
||||
tSurfOffs[vIds[i]] = GDB_ID.NULL
|
||||
-- il setto unbounded deve comparire solo nell'ultimo CrvGrp senza alcun trim. Se nSrfExt non è definita sono in un CrvGrp intermedio e il setto va cancellato
|
||||
-- se nSrfExt è definita allora il setto non va trimmato
|
||||
if nSrfExt then
|
||||
tSurfOffs[vIds[i]] = GDB_ID.NULL
|
||||
end
|
||||
end
|
||||
|
||||
tOffs[vIds[i]] = dOffs
|
||||
@@ -2508,7 +2504,7 @@ local function CalcRibsPaths( nSliceGrp, nRibsGrp, LayerParams, vPtStart, bIgnor
|
||||
bAllTwoStrands, vTypeSequence, nLoopGrp, tSurfOffs)
|
||||
EgtSetInfo( nRibsPathGrp or GDB_ID.NULL, KEY_RIBS_INTERS, bInters)
|
||||
EgtSetInfo( nRibsPathGrp or GDB_ID.NULL, KEY_RIBS_SPECIAL_CASE, bSpecialCase)
|
||||
|
||||
|
||||
-- riordino le costolature
|
||||
if bSpecialCase then
|
||||
-- gestione caso speciale di intersezione e 2 passate
|
||||
|
||||
@@ -1846,7 +1846,7 @@ local function CalcRibsToolPath( vEntIds, nRibsGrp, nTpathGrpId, LayerParams)
|
||||
local nGrpTmp = EgtGroup( nRibsGrp, frLoc, GDB_RT.GLOB)
|
||||
|
||||
-- aggiungo le costolature nel toolpath
|
||||
local nLastEnt = EgtGetLastInGroup( nTpathGrpId)
|
||||
local nLastEnt = EgtGetLastInGroup( nTpathGrpId) or GDB_ID.NULL
|
||||
for i = 1, #vEntIds do
|
||||
-- copio entità nel gruppo toolpath
|
||||
local nNewEntId = EgtCopyGlob( vEntIds[i], nTpathGrpId, GDB_IN.LAST_SON)
|
||||
@@ -1872,7 +1872,7 @@ local function CalcRibsToolPath( vEntIds, nRibsGrp, nTpathGrpId, LayerParams)
|
||||
|
||||
-- recupero i gruppi delle costolature
|
||||
local tabRibs = {}
|
||||
local nFirst = EgtGetNext( nLastEnt)
|
||||
local nFirst = EgtGetNext( nLastEnt) or EgtGetFirstInGroup( nTpathGrpId)
|
||||
while nFirst do
|
||||
local sName = EgtGetName( nFirst)
|
||||
local vIds = EgtGetNameInGroup( nTpathGrpId, sName)
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
-- Version.lua by Egaltech s.r.l. 2024/05/06
|
||||
-- Gestione della versione di 3dPrinting
|
||||
|
||||
VERSION = '2.7h1'
|
||||
VERSION = '2.7i1'
|
||||
Reference in New Issue
Block a user