- aggiunta parametro per la creazione di splitbottom che converge su un foro circolare.

This commit is contained in:
Daniele Bariletti
2025-03-13 11:53:24 +01:00
parent 60a031c91d
commit fd2a262cb2
+10 -4
View File
@@ -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, ",")