From 348cd4401a5211a47fe973936af5723c02d035da Mon Sep 17 00:00:00 2001 From: Dario Sassi Date: Tue, 3 Mar 2026 13:11:10 +0100 Subject: [PATCH] DataDoors 3.1c1 : - aggiunti parametri per smusso/raccordo in angolo interno L di Pivot (richiesta ALS). --- LuaLibs/_PivotL.lua | 56 ++++++++++++++++++++++++++++++++++----------- Version.lua | 4 ++-- 2 files changed, 45 insertions(+), 15 deletions(-) diff --git a/LuaLibs/_PivotL.lua b/LuaLibs/_PivotL.lua index eb72c32..c37de37 100644 --- a/LuaLibs/_PivotL.lua +++ b/LuaLibs/_PivotL.lua @@ -10,22 +10,23 @@ -- EEEEEEEEEE GGGGGGGGGG wwwwwwww wwwwwwww -- EEEEEEEEEE GGGGGG wwwwwww wwwwwww -- --- _PivotL.lua by EgalWare s.r.l. 2016.07.11 +-- _PivotL.lua by EgalWare s.r.l. 2026.03.03 -- Autore: Filippo Monchi -- PivotL, componente di secondo livello, non può essere chiamato direttamente da un lua dei -- componenti di interfaccia --- 2017.09.05 V1.0a2 FM Manage lead-in on opposite side and anti-splint path V lead-in --- 2018.01.08 V1.0a3 FM Manage new R1 parameter to add a fillet on single corner --- 2018.01.12 V1.0a4 FM Manage new anti splint position path when side pivot correspond to side door ( on offset and offsetintermediate type) --- 2018.05.15 V1.0a5 FM Add manage new mode to count entity also on curvecompo path to allow assign note on connection entity --- 2019.07.29 V1.0a6 FM Manage new differents pivot models and submodels: Centerhung pivot with submodel (1), Offset pivot with submodel (1), --- OffsetInpermediate pivot with submodel (1) 4 --- the defalult and old one is submodel (1) for all model --- 2019.10.18 V2.000 FM Manage use Materials --- 2019.10.21 V2.001 FM Modify the closed path start point for steel material --- 2020.10.20 V2.002 FM Fix error on insert fillet when L = L3 --- 2024.07.19 V2.003 FM Set note 'NotCheckDir' to pocketing and antisplint paths +-- 2017.09.05 V1.0a2 FM Manage lead-in on opposite side and anti-splint path V lead-in +-- 2018.01.08 V1.0a3 FM Manage new R1 parameter to add a fillet on single corner +-- 2018.01.12 V1.0a4 FM Manage new anti splint position path when side pivot correspond to side door ( on offset and offsetintermediate type) +-- 2018.05.15 V1.0a5 FM Add manage new mode to count entity also on curvecompo path to allow assign note on connection entity +-- 2019.07.29 V1.0a6 FM Manage new differents pivot models and submodels: Centerhung pivot with submodel (1), Offset pivot with submodel (1), +-- OffsetInpermediate pivot with submodel (1) 4 +-- the defalult and old one is submodel (1) for all model +-- 2019.10.18 V2.000 FM Manage use Materials +-- 2019.10.21 V2.001 FM Modify the closed path start point for steel material +-- 2020.10.20 V2.002 FM Fix error on insert fillet when L = L3 +-- 2024.07.19 V2.003 FM Set note 'NotCheckDir' to pocketing and antisplint paths +-- 2026.03.03 v3.1c1 DS Added fillet/chamfer management on opposite corner to single L for Offset type. -- Tavola per definizione modulo (serve ma non usata) local PivotL = {} @@ -511,6 +512,35 @@ function PivotL.Draw( EC, EM, tPivotParam, bPreview, bRunByCompo, nDrawMach, Pz, DrawAddLineDrawCircle( pIni, pEnd, Lg, tPocket, bPreview, Dm, 0, false, false, RED(), RED()) pIni = pEnd + -- Eventuale raccordo/smusso su unico angolo interno di L + local dRd1 = tPivotParam.Dr2R or 0 + local dRd2 = tPivotParam.Dr2D or 0 + if dRd1 > 100 * GEO.EPS_SMALL then + local nCLpId = tPocket[#tPocket-1] + local nCLcId = tPocket[#tPocket] + local dCLp = EgtCurveLength( nCLpId) + local dCLc = EgtCurveLength( nCLcId) + if dRd2 < 100 * GEO.EPS_SMALL then + local dRad = min( dRd1, dCLp - 100 * GEO.EPS_SMALL, dCLc - 100 * GEO.EPS_SMALL) + local nFltId = EgtCurveFillet( Lg, nCLpId, EgtMP( nCLpId), nCLcId, EgtMP( nCLcId), dRad, true, GDB_RT.LOC) + if nFltId then table.insert( tPocket, #tPocket, nFltId) end + else + local dCoeff1 = min( ( dCLp - 100 * GEO.EPS_SMALL) / dRd1, 1) + local dCoeff2 = min( ( dCLc - 100 * GEO.EPS_SMALL) / dRd2, 1) + local dCoeff = min( dCoeff1, dCoeff2) + local dDist1 = dCoeff * dRd1 + local dDist2 = dCoeff * dRd2 + if dDist1 > 100 * GEO.EPS_SMALL and dDist2 > 100 * GEO.EPS_SMALL then + EgtInvertCurve( nCLpId) + EgtTrimCurveStartAtLen( nCLpId, dDist1) + EgtInvertCurve( nCLpId) + EgtTrimCurveStartAtLen( nCLcId, dDist2) + local nChmId = EgtLine( Lg, EgtEP( nCLpId), EgtSP( nCLcId), GDB_RT.LOC) + if nChmId then table.insert( tPocket, #tPocket, nChmId) end + end + end + end + -- se abilitato material steel chiudo il percorso if est then pEnd = Point3d(-((L3/2)-(d/2)-dExtraH),(H3-(H/2)+(d/2)+dExtraH),0) @@ -518,7 +548,7 @@ function PivotL.Draw( EC, EM, tPivotParam, bPreview, bRunByCompo, nDrawMach, Pz, pIni = pEnd end - hint = EgtCurveCompo( Lg, tPocket, true) + hint = EgtCurveCompo( Lg, tPocket, true) if hint then EgtModifyCurveThickness( hint, -T) EgtSetName( hint, LG or '') diff --git a/Version.lua b/Version.lua index 54971dd..9cfb19e 100644 --- a/Version.lua +++ b/Version.lua @@ -1,6 +1,6 @@ --- Version.lua by EgalWare s.r.l. 2026/01/07 +-- Version.lua by EgalWare s.r.l. 2026/03/03 -- Gestione della versione di Doors NAME = 'Doors' -VERSION = '3.1a1' +VERSION = '3.1c1' MIN_EXE = '2.6k4'