From 2e01ccac6e8afb0f66d8da871f7ec2716349c352 Mon Sep 17 00:00:00 2001 From: Daniele Bariletti Date: Fri, 7 Feb 2025 14:43:20 +0100 Subject: [PATCH] - sostituita la funzione tostring con EgtNumToString - calcolo dell'atltezza dei pezzi dello splitBottom. --- TemplateTool.lua | 50 +++++++++++++++++++++++++----------------------- 1 file changed, 26 insertions(+), 24 deletions(-) diff --git a/TemplateTool.lua b/TemplateTool.lua index 6fc6059..af45b79 100644 --- a/TemplateTool.lua +++ b/TemplateTool.lua @@ -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)