- sostituita la funzione tostring con EgtNumToString

- calcolo dell'atltezza dei pezzi dello splitBottom.
This commit is contained in:
Daniele Bariletti
2025-02-07 14:43:20 +01:00
parent 1dd33644d8
commit 2e01ccac6e
+26 -24
View File
@@ -192,7 +192,7 @@ end
function TOOL.FindLayers( IdPart)
if not EgtIsPart( IdPart) then
CMP.ERR = 1
CMP.MSG = CMP.MSG.." In FindLayers "..tostring(IdPart).." non è un Part"
CMP.MSG = CMP.MSG.." In FindLayers "..EgtNumToString(IdPart).." non è un Part"
return nil
end
local tbLayer = {}
@@ -341,7 +341,7 @@ function TOOL.AddInLoopToPart(nLayLoop)
end
if not EgtSurfFrSubtract( IdOutRegion,IdReg) then
CMP.ERR = 5
CMP.MSG = CMP.MSG.." Sottrazione tra superficie 'OutLoop' "..tostring(IdOutRegion).." e 'InLoop' "..tostring(IdReg).." non riuscita."
CMP.MSG = CMP.MSG.." Sottrazione tra superficie 'OutLoop' "..EgtNumToString(IdOutRegion).." e 'InLoop' "..EgtNumToString(IdReg).." non riuscita."
end
EgtErase(IdReg)
end
@@ -387,7 +387,7 @@ function TOOL.CreatePart(nLayLoop, tbPart, bIsPlanar)
-- scrivo nel part le informazioni di costruzione
TOOL.WriteDataToChildPart(tbPart)
-- INFO NECESSARIA
EgtSetInfo(IdPart, 'Paired',tostring(IdPart))
EgtSetInfo(IdPart, 'Paired',EgtNumToString(IdPart))
-- inserisco le etichette del pezzo nel centro della superofocie
local ptTop = EgtCP( IdReg, GDB_RT.GLOB)
@@ -448,12 +448,12 @@ function TOOL.CreateReference( IdPart, sNameLayer,sNameEdge, nIn, dVar, sDir, sP
local IdRef = EgtCopy( IdEnt, tbLayer['Ref'])
EgtSetInfo(IdRef, "OrigEdge", EgtGetName(IdEnt))
local nNumRef = EgtGetGroupObjs(tbLayer['Ref'])
local sNameRef = "R"..tostring(nNumRef)
local sNameRef = "R"..EgtNumToString(nNumRef)
-- verifico che non esista già un altro ref con questo nome
local nIdRefDb= EgtGetFirstNameInGroup( tbLayer['Ref'], sNameRef)
while nIdRefDb do
nNumRef = nNumRef + 1
sNameRef = "R"..tostring(nNumRef)
sNameRef = "R"..EgtNumToString(nNumRef)
nIdRefDb= EgtGetFirstNameInGroup( tbLayer['Ref'], sNameRef)
end
EgtSetName( IdRef, sNameRef)
@@ -462,7 +462,7 @@ function TOOL.CreateReference( IdPart, sNameLayer,sNameEdge, nIn, dVar, sDir, sP
EgtSetInfo(IdRef, 'Dir', sDir)
end
-- salvo nel riferimento il nome dell'edge da cui discende: A1 se da un outloop, A1_I1 se dal primo Inloop
if nIn then sNameEdge = sNameEdge.."_"..tostring(nIn) end
if nIn then sNameEdge = sNameEdge.."_"..EgtNumToString(nIn) end
EgtSetInfo(IdRef, "Orig", sNameEdge)
-- salvo nel riferimento il nome del part che lo userà per associarsi ad IdPart (questa operazione la faccio solo per il riferimento del part destinatario)
if sPartPairingName then EgtSetInfo(IdRef,"PartPairing", sPartPairingName) end
@@ -570,7 +570,7 @@ end
-- local FstLayerInLstPart = EgtGetFirstGroupInGroup( LastPart)
-- local IdLoop = EgtGetFirstInGroup( FstLayerInLstPart)
-- if not EgtRelocateGlob( IdLoop, OutLayer) then
-- EgtOutLog(' RELOCATE AFLLITA MISERAMENTE: '..tostring(IdLoop)..';'..tostring(OutLayer))
-- EgtOutLog(' RELOCATE AFLLITA MISERAMENTE: '..EgtNumToString(IdLoop)..';'..EgtNumToString(OutLayer))
-- end
-- EgtErase(LastPart)
-- local tbIdLoop = ExplodeAndNameEdges( IdLoop)
@@ -654,7 +654,7 @@ function CalcDraftAngle( vtDir1, vtDir2, dPairAng1, dPairAng2, dAngBetween)
dSideAng = (180 - dAng3d) / 2
--debug
EgtOutLog(tostring(dSideAng)..' '.. tostring(dBeta1).. ' '..tostring(dBeta2))
EgtOutLog(EgtNumToString(dSideAng)..' '.. EgtNumToString(dBeta1).. ' '..EgtNumToString(dBeta2))
--debug
return dSideAng, dBeta1, dBeta2
@@ -940,7 +940,7 @@ local function CreateSplitBottomPart(tbInfo, i, tbIdEdges, ptCenter, nPrev, nFir
-- devo verificare se la paretina esiste già allora devo distruggerla e ricrearla, sennò la creo da zero
local nChildPart = EgtGetFirstNameInGroup(GDB_ID.ROOT, EgtGetInfo(tbInfo.nParent, "A"..tbInfo.nEdge))
if not nChildPart then
Pz_Bottom = TOOL.CreatePartLayer('BottomA'..tostring(i))
Pz_Bottom = TOOL.CreatePartLayer('BottomA'..EgtNumToString(i))
tbInfo.sName = EgtGetName(Pz_Bottom)
EgtSetInfo(tbInfo.nParent, "A"..tbInfo.nEdge, tbInfo.sName)
tbInfo.nPrevId = nPrev
@@ -961,8 +961,6 @@ local function CreateSplitBottomPart(tbInfo, i, tbIdEdges, ptCenter, nPrev, nFir
tbInfo.nJunctionType = 3
tbInfo.bOnLoop = true
tbInfo.bInsideLoop = false -- questo mi richiederà di prendere il complementare del side ang che risulta dal calcDraftAng
local dThParent = EgtGetInfo(tbInfo.nParent, "Th", "d") or 0
tbInfo.dH = ((EgtPointCurveDist( ptCenter, tbInfo.nEdgeId, GDB_RT.GLOB) - TOOL.dDiamBore) + dThParent) / cos(TOOL.dSlopeAng)
else
-- se esisteva già ripulisco i layer della regione e del loop ed elimino il solido
ClearPart(nChildPart)
@@ -995,7 +993,7 @@ local function CreateSplitBottomPart(tbInfo, i, tbIdEdges, ptCenter, nPrev, nFir
local nIdPrev = EgtGetFirstNameInGroup(GDB_ID.ROOT, EgtGetInfo(tbInfo.nParent, "Prev"))
local dThPrev = EgtGetInfo(nIdPrev, "Th", "d")
dLenCorr = dThPrev
tbInfo.sDestRefOff = tostring(dThPrev)..",0,-x"
tbInfo.sDestRefOff = EgtNumToString(dThPrev)..",0,-x"
tbInfo.nPairMode = 2
elseif nParentJunctionType == 2 then
-- devo recuperare lo spessore del pezzo successivo
@@ -1003,13 +1001,10 @@ local function CreateSplitBottomPart(tbInfo, i, tbIdEdges, ptCenter, nPrev, nFir
local nIdNext = EgtGetFirstNameInGroup(GDB_ID.ROOT, EgtGetInfo(tbInfo.nParent, "Next"))
local dThNext = EgtGetInfo(nIdNext, "Th", "d")
dLenCorr = dThNext
tbInfo.sDestRefOff = tostring(-dThNext)..",0,-x"
tbInfo.sDestRefOff = EgtNumToString(-dThNext)..",0,-x"
tbInfo.nPairMode = 1
end
end
if i == 2 or i == 4 then
tbInfo.dH = 134.5859034533108
end
TOOL.CreateAdjustedPart( tbInfo, dLenCorr)
TOOL.CreatePart(tbLayerBottom['OutLoop'],tbInfo)
@@ -1066,22 +1061,27 @@ function TOOL.CreateSplitBottom( tbIdEdges, dOffset)
local nLoop = EgtCurveCompoByChain(nAuxLay, tbIdEdges, EgtSP(tbIdEdges[1], GDB_RT.GLOB), false)
EgtOffsetCurve(nLoop, -dOffset, GDB_OT.EXTEND) -- N.B.: qui spero che si sia mantenuto il numero di curve e di poter ancora associare le curve di offset con quelle originali e con il relativo part di origine
local ptCenter = EgtGP(nLoop, GDB_RT.GLOB)
local dOffsetMax = EgtCurveMaxOffset(nLoop)
TOOL.tbIdLoop = TOOL.ExplodeAndNameEdges( nLoop, false)
-- creo i part con tutte le info
local nPrev = GDB_ID.NULL
local nFirst = GDB_ID.NULL
local tbInfo = TOOL.tbInfo
-- da intefaccia devo settare:-----------------------------------------------
-- - TOOL.tbIdEdges
-- - dOffset
-- - dSlopeAng
-- - dDiamBore
-- - dTh
for i = 1, #tbIdEdges do
tbInfo.dTh = TOOL.dTh
tbInfo.nParent = tbParent[i]
local dThParent = EgtGetInfo(tbInfo.nParent, "Th", "d") or 0
tbInfo.dH = ((dOffsetMax - TOOL.dDiamBore/2) + dThParent) / cos(TOOL.dSlopeAng)
tbInfo.nEdge = 3 -- so già che il pezzo che creo si attaccherà al lato A3 del loop della paretina del lavandino
nPrev = CreateSplitBottomPart(tbInfo, i, tbIdEdges, ptCenter, nPrev, nFirst)
@@ -1102,6 +1102,8 @@ function TOOL.CreateSplitBottom( tbIdEdges, dOffset)
tbInfo = {}
end
EgtErase(nAuxPart)
TOOL.SaveMePlease()
-- cancello layer ed entità che non servono più...
@@ -1146,9 +1148,9 @@ local function UpdateNeighInfo()
local nEdges = EgtGetGroupObjs(TOOL.nLayLoopParent)
-- controllo il prev
local nPrev = TOOL.tbInfo.nEdge > 1 and TOOL.tbInfo.nEdge - 1 or nEdges -- numero ordinale della paretina precedente alla corrente
local sNamePrev = "A"..tostring(nPrev)
local sNamePrev = "A"..EgtNumToString(nPrev)
-- correggo il nome in caso l'edge appartenga ad un inloop
if not TOOL.tbInfo.bOutLoop then sNamePrev = sNamePrev.."_I"..tostring(TOOL.tbInfo.nIn) end
if not TOOL.tbInfo.bOutLoop then sNamePrev = sNamePrev.."_I"..EgtNumToString(TOOL.tbInfo.nIn) end
-- in nPrevId salvo già la paretina dello stesso tipo della corrente(alzatina o frontalino)
local tbPrev = EgtGetInfo(TOOL.tbInfo.nParent, sNamePrev, "vs")
local bSameSide = false
@@ -1170,9 +1172,9 @@ local function UpdateNeighInfo()
end
-- controllo il next
local nNext = TOOL.tbInfo.nEdge == nEdges and 1 or (TOOL.tbInfo.nEdge + 1)
local sNameNext = "A"..tostring(nNext)
local sNameNext = "A"..EgtNumToString(nNext)
-- correggo il nome in caso l'edge appartenga ad un inloop
if not TOOL.tbInfo.bOutLoop then sNameNext = sNameNext.."_I"..tostring(TOOL.tbInfo.nIn) end
if not TOOL.tbInfo.bOutLoop then sNameNext = sNameNext.."_I"..EgtNumToString(TOOL.tbInfo.nIn) end
-- in nNextId salvo già la paretina dello stesso tipo della corrente(alzatina o frontalino)
local tbNext = EgtGetInfo(TOOL.tbInfo.nParent, sNameNext, "vs")
bSameSide = false
@@ -1221,7 +1223,7 @@ function TOOL.CreateParetinaFull(bPrev, bNext, bRecurs)
-- controllo nelle info del parent se era già stato creato il part associato a quel lato
local sEdgeName = EgtGetName(TOOL.tbInfo.nEdgeId)
-- se inloop correggo il nome dell'info da A1 a A1_I1, dove I1 indica il primo Inloop
if not TOOL.tbInfo.bOutLoop then sEdgeName = sEdgeName.."_I"..tostring(TOOL.tbInfo.nIn) end
if not TOOL.tbInfo.bOutLoop then sEdgeName = sEdgeName.."_I"..EgtNumToString(TOOL.tbInfo.nIn) end
if not TOOL.tbInfo.nParent or TOOL.tbInfo.nParent == GDB_ID.NULL then TOOL.tbInfo.nParent = EgtGetParent(EgtGetParent(TOOL.tbInfo.nEdgeId))end
local tbChildName = EgtGetInfo(TOOL.tbInfo.nParent, sEdgeName, "vs")
local nChildPart = nil
@@ -1288,13 +1290,13 @@ function TOOL.CreateParetinaFull(bPrev, bNext, bRecurs)
TOOL.tbInfo.dSideAngT = TOOL.dPairAng + 90
TOOL.tbInfo.dYOffset = TOOL.tbInfo.dTh * tan(TOOL.tbInfo.dSideAngT)
TOOL.tbInfo.sDestRefOff = '0,0,-x'
TOOL.tbInfo.sRefOff = '0,'..tostring(TOOL.tbInfo.dYOffset)..',0'
TOOL.tbInfo.sRefOff = '0,'..EgtNumToString(TOOL.tbInfo.dYOffset)..',0'
else
-- splashtop
TOOL.tbInfo.dSideAngT = TOOL.dPairAng - 90
TOOL.tbInfo.dYOffset = TOOL.tbInfo.dTh * tan(TOOL.tbInfo.dSideAngT)
TOOL.tbInfo.sDestRefOff = '0,0,0'
TOOL.tbInfo.sRefOff = tostring(TOOL.tbInfo.dXOffset)..','..tostring(TOOL.tbInfo.dYOffset)..',-x'
TOOL.tbInfo.sRefOff = EgtNumToString(TOOL.tbInfo.dXOffset)..','..EgtNumToString(TOOL.tbInfo.dYOffset)..',-x'
end
TOOL.tbInfo.dThParent = EgtGetInfo(TOOL.tbInfo.nParent, "Th", "d")
local nIdRefDest = TOOL.CreateReference( TOOL.tbInfo.nParent, sLayEdgeDest, sEdgeDest, TOOL.tbInfo.nIn, TOOL.tbInfo.dThParent, TOOL.tbInfo.sDestRefOff, TOOL.tbInfo.sName)