diff --git a/TemplateTool.lua b/TemplateTool.lua index ce5e322..513363b 100644 --- a/TemplateTool.lua +++ b/TemplateTool.lua @@ -1030,7 +1030,7 @@ local function CalcNextJunction(tbInfo, nIdNext) return JunctionResult end -function TOOL.CreateParetina(nEdgeId, tbInfo, dPairAngCorr) +function TOOL.CreateParetina(nEdgeId, tbInfo, dPairAngCorr, bHole) local tbIdLoopTC = {} -- se ho chiamato la funzione senza passare direttamente gli argomenti li recupero dalla tabella principale if not tbInfo then @@ -1052,6 +1052,8 @@ function TOOL.CreateParetina(nEdgeId, tbInfo, dPairAngCorr) nEdgeId = EgtGetFirstNameInGroup(tbInfo.nLayLoopParent, "A"..tostring(tbInfo.nEdge)) end end + if not bHole then bHole = false end -- parametro che indica se il lato superiore del pezzo (A3) sarà un arco è un segmento + if #tbIdLoopTC == 0 then return end local i = tbInfo.nEdge -- posizione del lato nel layer del loop @@ -1196,7 +1198,7 @@ local function ClearPart(nPartId) EgtErase(nRef) end -local function CreateSplitBottomPart(tbInfo, i, tbIdEdges, nPrev, nNext) +local function CreateSplitBottomPart(tbInfo, i, tbIdEdges, nPrev, nNext, bHole) local Pz_Bottom = GDB_ID.NULL -- devo verificare se la paretina esiste già allora devo distruggerla e ricrearla, sennò la creo da zero -- N.B.: nEdge è riferito all'edge del parent a cui questo part andrà ad accoppiarsi @@ -1244,7 +1246,7 @@ local function CreateSplitBottomPart(tbInfo, i, tbIdEdges, nPrev, nNext) tbInfo.nLayLoop = tbLayerBottom['OutLoop'] -- nella funzione CreateParetina mi serve che tbInfo.nEdge indichi quale lato del loop ausiliario sta generando il part corrente(e non sia riferito al lato del parent) tbInfo.nEdge = i - TOOL.CreateParetina( tbInfo.nEdgeId, tbInfo, 90) + TOOL.CreateParetina( tbInfo.nEdgeId, tbInfo, 90, bHole) -- ripristino il valore di nEdge riferito al Parent tbInfo.nEdge = 3 local dLenCorr = 0 @@ -1382,6 +1384,10 @@ function TOOL.CreateSplitBottom( tbIdEdges, dOffset) -- - dHoleDimX -- - dHoleDimY -- - dTh + + -- determino se devo creare una fessura o un foro + local bHole = false + if TOOL.dDiamBore then bHole = true end for i = 1, #TOOL.tbIdLoop do tbInfo.nPrevId = nPrev tbInfo.dTh = TOOL.dTh @@ -1407,7 +1413,7 @@ function TOOL.CreateSplitBottom( tbIdEdges, dOffset) tbInfo.dH = sqrt(pow(dDist,2) + pow(TOOL.dDepth,2)) tbInfo.dSlopeAng = acos(dDist/tbInfo.dH) tbInfo.nEdge = 3 -- so già che il pezzo che creo si attaccherà al lato A3 del loop della paretina del lavandino - local nCurr = CreateSplitBottomPart(tbInfo, i, TOOL.tbIdLoop, nPrev, nFirst) + local nCurr = CreateSplitBottomPart(tbInfo, i, TOOL.tbIdLoop, nPrev, nFirst, bHole) -- aggiungo l'info addizionale, se presente if tbInfo.InfoKey then local tbKeys = EgtSplitString(tbInfo.InfoKey, ",")