diff --git a/Profiles/Main - 2023-06-24-2.lua b/Profiles/Main - 2023-06-24-2.lua deleted file mode 100644 index e75897f..0000000 --- a/Profiles/Main - 2023-06-24-2.lua +++ /dev/null @@ -1,271 +0,0 @@ --- --- EEEEEEEEEE GGGGGG TTTTTTTTTTTTTT --- EEEEEEEEEE GGGGGGGGGG TTTTTTTTTTTTTT --- EEEE GGGG GGGG TTTT --- EEEE GGGG TTTT --- EEEEEEE GGGG GGGGGGG TTTT --- EEEEEEE GGGG GGGGGGG TTTT --- EEEE GGGG GGGG TTTT --- EEEE GGGG GGGG TTTT --- EEEEEEEEEE GGGGGGGGGG TTTT --- EEEEEEEEEE GGGGGG TTTT --- --- by Egalware s.r.l. --- Window project software by Egalware s.r.l. 2023/05/02 - -require( 'EgtBase') -_ENV = EgtProtectGlobal() -EgtEnableDebug( true) - ----- Imposto direttorio libreria specializzata per Nesting ---local sBaseDir = EgtGetSourceDir() ---EgtOutLog("BaseDir=" .. sBaseDir) ---EgtAddToPackagePath( sBaseDir .. '?.lua') - --- local Config = require( 'Config') - -------------------------------------------- PARAMETERS ------------------------------------------- -local DebugCode = false - --- Tipi di giunzioni (joint) -JNT = { - ANGLED = 1, - CP_H = 2, - CP_V = 3, - CP_M = 4 -} - --- Tipi di profilo -PRF = { - NULL = 0, - TOP = 1, - BOTTOM = 2, - LEFT = 3, - RIGHT = 4, - VERTICAL = 5, - HORIZONTAL = 6 -} - -local CUT_SURF_EPS_SMALL = 0.05 - -local PROFILE = 'Profile' -local FRAME = 'Frame' -local OUTLINE = 'Outline' -local GEO = 'Geo' -local SOLID = 'Solid' -local BOTTOM = 'Bottom' -local RIGHT = 'Right' -local TOP = 'Top' -local LEFT = 'Left' - -local SASH_TOP = 'Sash_Top' -local SASH_BOTTOM = 'Sash_Bottom' -local FIXED_TOP = 'Fixed_Top' -local FIXED_BOTTOM = 'Fixed_Bottom' - -local REF = 'Ref' -local SECTION = 'Section' -local ALU = 'Alu' -local CTRIN = 'CtrIn' -local OUT = 'Out' -local OUTOFST = 'OutOfst' - -local HoleHeight = 1200 -local HoleWidth = 1200 - -local WindowWidth = 1200 -local WindowHeight = 1200 - -local WindowTree - -local sProfilePath = 'c:\\EgtData\\Window\\Profiles\\Profilo78 - Offset.nge' - -------------------------------------------- ************** ------------------------------------------- - --- funzioni - --- funzione che restituisce BBox del Ref del profilo -local function GetRefWithBBoxFromProfile( nProfileFrameId, sProfileType) - local nProfileId = EgtGetFirstNameInGroup( nProfileFrameId, sProfileType) - local nProfileRefId = EgtGetFirstNameInGroup( nProfileId, REF) - local b3Ref = EgtGetBBox( nProfileRefId, GDB_BB.STANDARD) - return nProfileId, b3Ref -end - --- funzione che restituisce ref e calcola delta controprofilo dal profilo passatogli -local function GetDeltaProfile( nProfileFrameId, sProfileType) - local nProfileId, b3Ref = GetRefWithBBoxFromProfile( nProfileFrameId, sProfileType) - local nCPId = EgtGetFirstNameInGroup( nProfileId, CTRIN) - local b3CP = EgtGetBBox( nCPId, GDB_BB.STANDARD) - local dCPDelta = b3Ref:getDimY() - b3CP:getDimY() - return dCPDelta, b3Ref -end - --- funzione che calcola l'ingombro dei pezzi del telaio -local function CalcFrameFootPrint( nProfileFrameId, nId, nGeoId) - -- ricavo tipo dal nome - local sName = EgtGetName( nId) - local nProfileType = PRF.NULL - if sName == TOP then - nProfileType = PRF.TOP - elseif sName == BOTTOM then - nProfileType = PRF.BOTTOM - elseif sName == LEFT then - nProfileType = PRF.LEFT - elseif sName == RIGHT then - nProfileType = PRF.RIGHT - end - local p3FrameStart = EgtSP( nId) - local p3FrameEnd = EgtEP( nId) - local nNewGeoId - if nProfileType == PRF.TOP then - -- recupero ref e controprofilo del top e calcolo delta - local _, b3TopRef = GetRefWithBBoxFromProfile( nProfileFrameId, SASH_TOP) - nNewGeoId = EgtRectangle2P( nGeoId, p3FrameEnd - Y_AX() * b3TopRef:getDimY(), p3FrameStart) - EgtModifyCurveExtrusion( nNewGeoId, Z_AX()) - EgtModifyCurveThickness( nNewGeoId, -b3TopRef:getDimX()) - EgtSetName( nNewGeoId, TOP) - elseif nProfileType == PRF.BOTTOM then - local _, b3BottomRef = GetRefWithBBoxFromProfile( nProfileFrameId, SASH_BOTTOM) - nNewGeoId = EgtRectangle2P( nGeoId, p3FrameStart, p3FrameEnd + Y_AX() * b3BottomRef:getDimY()) - EgtModifyCurveExtrusion( nNewGeoId, Z_AX()) - EgtModifyCurveThickness( nNewGeoId, -b3BottomRef:getDimX()) - EgtSetName( nNewGeoId, BOTTOM) - elseif nProfileType == PRF.LEFT then - -- recupero ref e controprofilo del top e calcolo delta - local dTopCPDelta, b3TopRef = GetDeltaProfile( nProfileFrameId, SASH_TOP) - -- recupero ref e controprofilo del bottom e calcolo delta - local dBottomCPDelta, b3BottomRef = GetDeltaProfile( nProfileFrameId, SASH_BOTTOM) - -- creo rettangolo ingombro - nNewGeoId = EgtRectangle2P( nGeoId, p3FrameEnd + Y_AX() * dBottomCPDelta , p3FrameStart + X_AX() * b3TopRef:getDimY() - Y_AX() * dTopCPDelta) - EgtModifyCurveExtrusion( nNewGeoId, Z_AX()) - EgtModifyCurveThickness( nNewGeoId, -b3TopRef:getDimX()) - EgtSetName( nNewGeoId, LEFT) - elseif nProfileType == PRF.RIGHT then - -- recupero ref e controprofilo del top e calcolo delta - local dTopCPDelta, b3TopRef = GetDeltaProfile( nProfileFrameId, SASH_TOP) - -- recupero ref e controprofilo del bottom e calcolo delta - local dBottomCPDelta, b3BottomRef = GetDeltaProfile( nProfileFrameId, SASH_BOTTOM) - -- creo rettangolo ingombro - nNewGeoId = EgtRectangle2P( nGeoId, p3FrameStart - X_AX() * b3TopRef:getDimY() + Y_AX() * dBottomCPDelta , p3FrameEnd - Y_AX() * dTopCPDelta) - EgtModifyCurveExtrusion( nNewGeoId, Z_AX()) - EgtModifyCurveThickness( nNewGeoId, -b3TopRef:getDimX()) - EgtSetName( nNewGeoId, RIGHT) - end -end - -------------------------------------------- ************** ------------------------------------------- - --- ciclo principale - -EgtNewFile() - --- creo gruppo per il profilo -local nProfileId = EgtGroup( GDB_ID.ROOT) -EgtSetName( nProfileId, PROFILE) - --- importo profilo prescelto -local bOk = EgtInsertFile( sProfilePath) - -local nGroupId = EgtGetFirstInGroup( GDB_ID.ROOT) -while nGroupId do - if nGroupId ~= nProfileId then - local nCurrId = nGroupId - nGroupId = EgtGetNext( nGroupId) - EgtRelocateGlob( nCurrId, nProfileId) - EgtSetStatus( nCurrId, GDB_ST.OFF) - else - nGroupId = EgtGetNext( nGroupId) - end -end - --- creo struttura layer del frame -local nFrameLayerId = EgtGroup( GDB_ID.ROOT) -EgtSetName( nFrameLayerId, FRAME) -local nOutlineId = EgtGroup( nFrameLayerId) -EgtSetName( nOutlineId, OUTLINE) -local nGeoId = EgtGroup( nFrameLayerId) -EgtSetName( nGeoId, GEO) -local nSolidId = EgtGroup( nFrameLayerId) -EgtSetName( nSolidId, SOLID) -local nFrameProfileId = EgtGroup( nFrameLayerId) -EgtSetName( nFrameProfileId, PROFILE) - --- disegno outline -local nFrameBottomId = EgtLine( nOutlineId, Point3d( 0, 0, 0), Point3d( WindowWidth, 0, 0) ) -EgtSetName( nFrameBottomId, BOTTOM) -local nFrameRightId = EgtLine( nOutlineId, Point3d( WindowWidth, 0, 0), Point3d( WindowWidth, WindowHeight, 0) ) -EgtSetName( nFrameRightId, RIGHT) -local nFrameTopId = EgtLine( nOutlineId, Point3d( WindowWidth, WindowHeight, 0), Point3d( 0, WindowHeight, 0) ) -EgtSetName( nFrameTopId, TOP) -local nFrameLeftId = EgtLine( nOutlineId, Point3d( 0, WindowHeight, 0), Point3d( 0, 0, 0) ) -EgtSetName( nFrameLeftId, LEFT) - --- scelgo tipo di giunzioni --- per il momento faccio controprofili verticali - - --- scelgo il tipo --- per il momento faccio controprofili per anta - --- disegno ingombri frame -local nProfileFrameId = EgtGetFirstNameInGroup( nProfileId, FRAME) - -local nCurrOutlineId = EgtGetFirstInGroup( nOutlineId) -while nCurrOutlineId do - CalcFrameFootPrint( nProfileFrameId, nCurrOutlineId, nGeoId) - nCurrOutlineId = EgtGetNext( nCurrOutlineId) -end - --- posiziono profili --- bottom -local nBottomProfileId = EgtGetFirstNameInGroup( nProfileFrameId, SASH_BOTTOM) --- creo copia -local nBottomFrameProfileId = EgtCopy( nBottomProfileId, nFrameProfileId) -local b3BottomFrameProfile = EgtGetBBox( nBottomFrameProfileId, GDB_BB.STANDARD) --- recupero posizione e BBox del geo -local nBottomGeoId = EgtGetFirstNameInGroup( nGeoId, BOTTOM) -local b3BottomGeo = EgtGetBBox(nBottomGeoId, GDB_BB.STANDARD) -EgtMove( nBottomFrameProfileId, b3BottomGeo:getMin() + Z_AX() * b3BottomGeo:getDimZ() - Point3d( b3BottomFrameProfile:getMax():getX(), b3BottomFrameProfile:getMin():getY(), b3BottomGeo:getMax():getZ())) -EgtRotate( nBottomFrameProfileId, b3BottomGeo:getMin() + Z_AX() * b3BottomGeo:getDimZ(), Y_AX(), -90) --- recupero profilo outline e lo estrudo -local nBottomFrameOutlineId = EgtGetFirstNameInGroup( nBottomFrameProfileId, SECTION) -local nBottomExtrusionId = EgtSurfTmByExtrusion( nSolidId, nBottomFrameOutlineId, X_AX() * b3BottomGeo:getDimX()) -EgtInvertSurf( nBottomExtrusionId) --- copio e sposto profilo out left su start bottom per tagliarlo -local nLeftProfileId = EgtGetFirstNameInGroup( nProfileFrameId, SASH_TOP) -local nBottomOutLeftProfileId = EgtCopy( nLeftProfileId, nFrameProfileId) -EgtRotate( nBottomOutLeftProfileId, Point3d( b3BottomGeo:getMin():getX(), b3BottomGeo:getMin():getY(), b3BottomGeo:getMax():getZ()), Y_AX(), -90) -EgtRotate( nBottomOutLeftProfileId, Point3d( b3BottomGeo:getMin():getX(), b3BottomGeo:getMin():getY(), b3BottomGeo:getMax():getZ()), Z_AX(), 90) -local b3BottomOutLeftProfileId = EgtGetBBoxGlob(nBottomOutLeftProfileId, GDB_BB.STANDARD) -EgtMove( nBottomOutLeftProfileId, b3BottomGeo:getMin() - b3BottomOutLeftProfileId:getMin()) -local nOutLeftProfileId = EgtGetFirstNameInGroup( nBottomOutLeftProfileId, OUTOFST) -local nBottomOutLeftProfileExtrusionId = EgtSurfTmByExtrusion( nSolidId, nOutLeftProfileId, Y_AX() * b3BottomFrameProfile:getDimY()) -EgtInvertSurf( nBottomOutLeftProfileExtrusionId) -local nExtrCopyId = EgtCopy( nBottomExtrusionId, nSolidId) -EgtSurfTmCut( nBottomExtrusionId, nBottomOutLeftProfileExtrusionId, true, false) -EgtSurfTmCut( nBottomOutLeftProfileExtrusionId, nExtrCopyId, true, false) ---EgtErase( nExtrCopyId) --- copio e sposto profilo out left su end bottom per tagliarlo -local nRightProfileId = EgtGetFirstNameInGroup( nProfileFrameId, SASH_TOP) -local nBottomOutRightProfileId = EgtCopy( nRightProfileId, nFrameProfileId) -EgtRotate( nBottomOutRightProfileId, Point3d( b3BottomGeo:getMin():getX(), b3BottomGeo:getMin():getY(), b3BottomGeo:getMax():getZ()), Y_AX(), -90) -EgtRotate( nBottomOutRightProfileId, Point3d( b3BottomGeo:getMin():getX(), b3BottomGeo:getMin():getY(), b3BottomGeo:getMax():getZ()), Z_AX(), -90) -local b3BottomOutRightProfileId = EgtGetBBoxGlob(nBottomOutRightProfileId, GDB_BB.STANDARD) -EgtMove( nBottomOutRightProfileId, Point3d( b3BottomGeo:getMax():getX(),b3BottomGeo:getMin():getY(),b3BottomGeo:getMin():getZ()) - Point3d( b3BottomOutRightProfileId:getMax():getX(), b3BottomOutRightProfileId:getMin():getY(),b3BottomOutRightProfileId:getMin():getZ())) -local nOutRightProfileId = EgtGetFirstNameInGroup( nBottomOutRightProfileId, OUTOFST) -local nBottomOutRightProfileExtrusionId = EgtSurfTmByExtrusion( nSolidId, nOutRightProfileId, Y_AX() * b3BottomFrameProfile:getDimY()) ---EgtInvertSurf( nBottomOutLeftProfileExtrusionId) ---local nExtrCopyId = EgtCopy( nBottomExtrusionId, nSolidId) -EgtSurfTmCut( nBottomExtrusionId, nBottomOutRightProfileExtrusionId, true, false) -EgtSurfTmCut( nBottomOutRightProfileExtrusionId, nExtrCopyId, true, false) -EgtErase( nExtrCopyId) - - - - - - - - - diff --git a/Profiles/Main - 2023-06-24-3.lua b/Profiles/Main - 2023-06-24-3.lua deleted file mode 100644 index 1bc095b..0000000 --- a/Profiles/Main - 2023-06-24-3.lua +++ /dev/null @@ -1,338 +0,0 @@ --- --- EEEEEEEEEE GGGGGG TTTTTTTTTTTTTT --- EEEEEEEEEE GGGGGGGGGG TTTTTTTTTTTTTT --- EEEE GGGG GGGG TTTT --- EEEE GGGG TTTT --- EEEEEEE GGGG GGGGGGG TTTT --- EEEEEEE GGGG GGGGGGG TTTT --- EEEE GGGG GGGG TTTT --- EEEE GGGG GGGG TTTT --- EEEEEEEEEE GGGGGGGGGG TTTT --- EEEEEEEEEE GGGGGG TTTT --- --- by Egalware s.r.l. --- Window project software by Egalware s.r.l. 2023/05/02 - -require( 'EgtBase') -_ENV = EgtProtectGlobal() -EgtEnableDebug( true) - ----- Imposto direttorio libreria specializzata per Nesting ---local sBaseDir = EgtGetSourceDir() ---EgtOutLog("BaseDir=" .. sBaseDir) ---EgtAddToPackagePath( sBaseDir .. '?.lua') - --- local Config = require( 'Config') - -------------------------------------------- PARAMETERS ------------------------------------------- -local DebugCode = false - --- Tipi di giunzioni (joint) -JNT = { - ANGLED = 1, - CP_H = 2, - CP_V = 3, - CP_M = 4 -} - --- Tipi di profilo -PRF = { - NULL = 0, - TOP = 1, - BOTTOM = 2, - LEFT = 3, - RIGHT = 4, - VERTICAL = 5, - HORIZONTAL = 6 -} - -local CUT_SURF_EPS_SMALL = 0.05 - -local PROFILE = 'Profile' -local FRAME = 'Frame' -local OUTLINE = 'Outline' -local GEO = 'Geo' -local SOLID = 'Solid' -local BOTTOM = 'Bottom' -local RIGHT = 'Right' -local TOP = 'Top' -local LEFT = 'Left' - -local SASH_TOP = 'Sash_Top' -local SASH_BOTTOM = 'Sash_Bottom' -local FIXED_TOP = 'Fixed_Top' -local FIXED_BOTTOM = 'Fixed_Bottom' - -local REF = 'Ref' -local SECTION = 'Section' -local ALU = 'Alu' -local CTRIN = 'CtrIn' -local OUT = 'Out' -local OUTOFST = 'OutOfst' - -local HoleHeight = 1200 -local HoleWidth = 1200 - -local WindowWidth = 1200 -local WindowHeight = 1200 - -local WindowTree - -local sProfilePath = 'c:\\EgtData\\Window\\Profiles\\Profilo78 - Offset.nge' - -------------------------------------------- ************** ------------------------------------------- - --- funzioni - --- funzione che restituisce BBox del Ref del profilo -local function GetRefWithBBoxFromProfile( nProfileFrameLayerId, sProfileType) - local nProfileId = EgtGetFirstNameInGroup( nProfileFrameLayerId, sProfileType) - local nProfileRefId = EgtGetFirstNameInGroup( nProfileId, REF) - local b3Ref = EgtGetBBox( nProfileRefId, GDB_BB.STANDARD) - return nProfileId, b3Ref -end - --- funzione che restituisce ref e calcola delta controprofilo dal profilo passatogli -local function GetDeltaProfile( nProfileFrameLayerId, sProfileType) - local nProfileId, b3Ref = GetRefWithBBoxFromProfile( nProfileFrameLayerId, sProfileType) - local nCPId = EgtGetFirstNameInGroup( nProfileId, CTRIN) - local b3CP = EgtGetBBox( nCPId, GDB_BB.STANDARD) - local dCPDelta = b3Ref:getDimY() - b3CP:getDimY() - return dCPDelta, b3Ref -end - --- funzione che calcola l'ingombro dei pezzi del telaio -local function CalcFrameFootPrint( nProfileFrameLayerId, nId, nGeoId) - -- ricavo tipo dal nome - local sName = EgtGetName( nId) - local nProfileType = PRF.NULL - if sName == TOP then - nProfileType = PRF.TOP - elseif sName == BOTTOM then - nProfileType = PRF.BOTTOM - elseif sName == LEFT then - nProfileType = PRF.LEFT - elseif sName == RIGHT then - nProfileType = PRF.RIGHT - end - local p3FrameStart = EgtSP( nId) - local p3FrameEnd = EgtEP( nId) - local nNewGeoId - if nProfileType == PRF.TOP then - -- recupero ref e controprofilo del top e calcolo delta - local _, b3TopRef = GetRefWithBBoxFromProfile( nProfileFrameLayerId, SASH_TOP) - nNewGeoId = EgtRectangle2P( nGeoId, p3FrameEnd - Y_AX() * b3TopRef:getDimY(), p3FrameStart) - EgtModifyCurveExtrusion( nNewGeoId, Z_AX()) - EgtModifyCurveThickness( nNewGeoId, -b3TopRef:getDimX()) - EgtSetName( nNewGeoId, TOP) - elseif nProfileType == PRF.BOTTOM then - local _, b3BottomRef = GetRefWithBBoxFromProfile( nProfileFrameLayerId, SASH_BOTTOM) - nNewGeoId = EgtRectangle2P( nGeoId, p3FrameStart, p3FrameEnd + Y_AX() * b3BottomRef:getDimY()) - EgtModifyCurveExtrusion( nNewGeoId, Z_AX()) - EgtModifyCurveThickness( nNewGeoId, -b3BottomRef:getDimX()) - EgtSetName( nNewGeoId, BOTTOM) - elseif nProfileType == PRF.LEFT then - -- recupero ref e controprofilo del top e calcolo delta - local dTopCPDelta, b3TopRef = GetDeltaProfile( nProfileFrameLayerId, SASH_TOP) - -- recupero ref e controprofilo del bottom e calcolo delta - local dBottomCPDelta, b3BottomRef = GetDeltaProfile( nProfileFrameLayerId, SASH_BOTTOM) - -- creo rettangolo ingombro - nNewGeoId = EgtRectangle2P( nGeoId, p3FrameEnd + Y_AX() * dBottomCPDelta , p3FrameStart + X_AX() * b3TopRef:getDimY() - Y_AX() * dTopCPDelta) - EgtModifyCurveExtrusion( nNewGeoId, Z_AX()) - EgtModifyCurveThickness( nNewGeoId, -b3TopRef:getDimX()) - EgtSetName( nNewGeoId, LEFT) - elseif nProfileType == PRF.RIGHT then - -- recupero ref e controprofilo del top e calcolo delta - local dTopCPDelta, b3TopRef = GetDeltaProfile( nProfileFrameLayerId, SASH_TOP) - -- recupero ref e controprofilo del bottom e calcolo delta - local dBottomCPDelta, b3BottomRef = GetDeltaProfile( nProfileFrameLayerId, SASH_BOTTOM) - -- creo rettangolo ingombro - nNewGeoId = EgtRectangle2P( nGeoId, p3FrameStart - X_AX() * b3TopRef:getDimY() + Y_AX() * dBottomCPDelta , p3FrameEnd - Y_AX() * dTopCPDelta) - EgtModifyCurveExtrusion( nNewGeoId, Z_AX()) - EgtModifyCurveThickness( nNewGeoId, -b3TopRef:getDimX()) - EgtSetName( nNewGeoId, RIGHT) - end -end - --- funzione che calcola l'ingombro dei pezzi del telaio -local function CalcFrameSolid( nProfileFrameLayerId, nGeoId, nFrameProfileLayerId, nGeoLayerId, nSolidLayerId) - -- ricavo tipo dal nome - local sName = EgtGetName( nGeoId) - local nProfileType = PRF.NULL - if sName == TOP then - nProfileType = PRF.TOP - elseif sName == BOTTOM then - nProfileType = PRF.BOTTOM - elseif sName == LEFT then - nProfileType = PRF.LEFT - elseif sName == RIGHT then - nProfileType = PRF.RIGHT - end - if nProfileType == PRF.TOP then - elseif nProfileType == PRF.BOTTOM then - local nBottomProfileId = EgtGetFirstNameInGroup( nProfileFrameLayerId, SASH_BOTTOM) - -- creo copia - local nBottomFrameProfileId = EgtCopy( nBottomProfileId, nFrameProfileLayerId) - local b3BottomFrameProfile = EgtGetBBox( nBottomFrameProfileId, GDB_BB.STANDARD) - -- recupero posizione e BBox del geo - local nBottomGeoId = EgtGetFirstNameInGroup( nGeoLayerId, BOTTOM) - local b3BottomGeo = EgtGetBBox(nBottomGeoId, GDB_BB.STANDARD) - EgtMove( nBottomFrameProfileId, b3BottomGeo:getMin() + Z_AX() * b3BottomGeo:getDimZ() - Point3d( b3BottomFrameProfile:getMax():getX(), b3BottomFrameProfile:getMin():getY(), b3BottomGeo:getMax():getZ())) - EgtRotate( nBottomFrameProfileId, b3BottomGeo:getMin() + Z_AX() * b3BottomGeo:getDimZ(), Y_AX(), -90) - -- recupero profilo outline e lo estrudo - local nBottomFrameOutlineId = EgtGetFirstNameInGroup( nBottomFrameProfileId, SECTION) - local nBottomExtrusionId = EgtSurfTmByExtrusion( nSolidLayerId, nBottomFrameOutlineId, X_AX() * b3BottomGeo:getDimX()) - EgtInvertSurf( nBottomExtrusionId) - -- copio e sposto profilo out left su start bottom per tagliarlo - local nLeftProfileId = EgtGetFirstNameInGroup( nProfileFrameLayerId, SASH_TOP) - local nBottomOutLeftProfileId = EgtCopy( nLeftProfileId, nFrameProfileLayerId) - EgtRotate( nBottomOutLeftProfileId, Point3d( b3BottomGeo:getMin():getX(), b3BottomGeo:getMin():getY(), b3BottomGeo:getMax():getZ()), Y_AX(), -90) - EgtRotate( nBottomOutLeftProfileId, Point3d( b3BottomGeo:getMin():getX(), b3BottomGeo:getMin():getY(), b3BottomGeo:getMax():getZ()), Z_AX(), 90) - local b3BottomOutLeftProfileId = EgtGetBBoxGlob(nBottomOutLeftProfileId, GDB_BB.STANDARD) - EgtMove( nBottomOutLeftProfileId, b3BottomGeo:getMin() - b3BottomOutLeftProfileId:getMin()) - local nOutLeftProfileId = EgtGetFirstNameInGroup( nBottomOutLeftProfileId, OUTOFST) - local nBottomOutLeftProfileExtrusionId = EgtSurfTmByExtrusion( nSolidLayerId, nOutLeftProfileId, Y_AX() * b3BottomFrameProfile:getDimY()) - EgtInvertSurf( nBottomOutLeftProfileExtrusionId) - local nExtrCopyId = EgtCopy( nBottomExtrusionId, nSolidLayerId) - EgtSurfTmCut( nBottomExtrusionId, nBottomOutLeftProfileExtrusionId, true, false) - EgtSurfTmCut( nBottomOutLeftProfileExtrusionId, nExtrCopyId, true, false) - --EgtErase( nExtrCopyId) - -- copio e sposto profilo out left su end bottom per tagliarlo - local nRightProfileId = EgtGetFirstNameInGroup( nProfileFrameLayerId, SASH_TOP) - local nBottomOutRightProfileId = EgtCopy( nRightProfileId, nFrameProfileLayerId) - EgtRotate( nBottomOutRightProfileId, Point3d( b3BottomGeo:getMin():getX(), b3BottomGeo:getMin():getY(), b3BottomGeo:getMax():getZ()), Y_AX(), -90) - EgtRotate( nBottomOutRightProfileId, Point3d( b3BottomGeo:getMin():getX(), b3BottomGeo:getMin():getY(), b3BottomGeo:getMax():getZ()), Z_AX(), -90) - local b3BottomOutRightProfileId = EgtGetBBoxGlob(nBottomOutRightProfileId, GDB_BB.STANDARD) - EgtMove( nBottomOutRightProfileId, Point3d( b3BottomGeo:getMax():getX(),b3BottomGeo:getMin():getY(),b3BottomGeo:getMin():getZ()) - Point3d( b3BottomOutRightProfileId:getMax():getX(), b3BottomOutRightProfileId:getMin():getY(),b3BottomOutRightProfileId:getMin():getZ())) - local nOutRightProfileId = EgtGetFirstNameInGroup( nBottomOutRightProfileId, OUTOFST) - local nBottomOutRightProfileExtrusionId = EgtSurfTmByExtrusion( nSolidLayerId, nOutRightProfileId, Y_AX() * b3BottomFrameProfile:getDimY()) - --EgtInvertSurf( nBottomOutLeftProfileExtrusionId) - --local nExtrCopyId = EgtCopy( nBottomExtrusionId, nSolidLayerId) - EgtSurfTmCut( nBottomExtrusionId, nBottomOutRightProfileExtrusionId, true, false) - EgtSurfTmCut( nBottomOutRightProfileExtrusionId, nExtrCopyId, true, false) - EgtErase( nExtrCopyId) - elseif nProfileType == PRF.LEFT then - elseif nProfileType == PRF.RIGHT then - end -end - -------------------------------------------- ************** ------------------------------------------- - --- ciclo principale - -EgtNewFile() - --- creo gruppo per il profilo -local nProfileId = EgtGroup( GDB_ID.ROOT) -EgtSetName( nProfileId, PROFILE) - --- importo profilo prescelto -local bOk = EgtInsertFile( sProfilePath) - -local nGroupId = EgtGetFirstInGroup( GDB_ID.ROOT) -while nGroupId do - if nGroupId ~= nProfileId then - local nCurrId = nGroupId - nGroupId = EgtGetNext( nGroupId) - EgtRelocateGlob( nCurrId, nProfileId) - EgtSetStatus( nCurrId, GDB_ST.OFF) - else - nGroupId = EgtGetNext( nGroupId) - end -end - --- creo struttura layer del frame -local nFrameLayerId = EgtGroup( GDB_ID.ROOT) -EgtSetName( nFrameLayerId, FRAME) -local nOutlineLayerId = EgtGroup( nFrameLayerId) -EgtSetName( nOutlineLayerId, OUTLINE) -local nGeoLayerId = EgtGroup( nFrameLayerId) -EgtSetName( nGeoLayerId, GEO) -local nSolidLayerId = EgtGroup( nFrameLayerId) -EgtSetName( nSolidLayerId, SOLID) -local nFrameProfileLayerId = EgtGroup( nFrameLayerId) -EgtSetName( nFrameProfileLayerId, PROFILE) - --- disegno outline -local nFrameBottomId = EgtLine( nOutlineLayerId, Point3d( 0, 0, 0), Point3d( WindowWidth, 0, 0) ) -EgtSetName( nFrameBottomId, BOTTOM) -local nFrameRightId = EgtLine( nOutlineLayerId, Point3d( WindowWidth, 0, 0), Point3d( WindowWidth, WindowHeight, 0) ) -EgtSetName( nFrameRightId, RIGHT) -local nFrameTopId = EgtLine( nOutlineLayerId, Point3d( WindowWidth, WindowHeight, 0), Point3d( 0, WindowHeight, 0) ) -EgtSetName( nFrameTopId, TOP) -local nFrameLeftId = EgtLine( nOutlineLayerId, Point3d( 0, WindowHeight, 0), Point3d( 0, 0, 0) ) -EgtSetName( nFrameLeftId, LEFT) - --- scelgo tipo di giunzioni --- per il momento faccio controprofili verticali - - --- scelgo il tipo --- per il momento faccio controprofili per anta - --- disegno ingombri frame -local nProfileFrameLayerId = EgtGetFirstNameInGroup( nProfileId, FRAME) - -local nCurrOutlineId = EgtGetFirstInGroup( nOutlineLayerId) -while nCurrOutlineId do - CalcFrameFootPrint( nProfileFrameLayerId, nCurrOutlineId, nGeoLayerId) - nCurrOutlineId = EgtGetNext( nCurrOutlineId) -end - --- posiziono profili -local nGeoId = EgtGetFirstInGroup( nGeoLayerId) -CalcFrameSolid(nProfileFrameLayerId, nGeoId, nFrameProfileLayerId, nGeoLayerId, nSolidLayerId) - - - ----- bottom ---local nBottomProfileId = EgtGetFirstNameInGroup( nProfileFrameLayerId, SASH_BOTTOM) ----- creo copia ---local nBottomFrameProfileId = EgtCopy( nBottomProfileId, nFrameProfileLayerId) ---local b3BottomFrameProfile = EgtGetBBox( nBottomFrameProfileId, GDB_BB.STANDARD) ----- recupero posizione e BBox del geo ---local nBottomGeoId = EgtGetFirstNameInGroup( nGeoId, BOTTOM) ---local b3BottomGeo = EgtGetBBox(nBottomGeoId, GDB_BB.STANDARD) ---EgtMove( nBottomFrameProfileId, b3BottomGeo:getMin() + Z_AX() * b3BottomGeo:getDimZ() - Point3d( b3BottomFrameProfile:getMax():getX(), b3BottomFrameProfile:getMin():getY(), b3BottomGeo:getMax():getZ())) ---EgtRotate( nBottomFrameProfileId, b3BottomGeo:getMin() + Z_AX() * b3BottomGeo:getDimZ(), Y_AX(), -90) ----- recupero profilo outline e lo estrudo ---local nBottomFrameOutlineId = EgtGetFirstNameInGroup( nBottomFrameProfileId, SECTION) ---local nBottomExtrusionId = EgtSurfTmByExtrusion( nSolidLayerId, nBottomFrameOutlineId, X_AX() * b3BottomGeo:getDimX()) ---EgtInvertSurf( nBottomExtrusionId) ----- copio e sposto profilo out left su start bottom per tagliarlo ---local nLeftProfileId = EgtGetFirstNameInGroup( nProfileFrameLayerId, SASH_TOP) ---local nBottomOutLeftProfileId = EgtCopy( nLeftProfileId, nFrameProfileLayerId) ---EgtRotate( nBottomOutLeftProfileId, Point3d( b3BottomGeo:getMin():getX(), b3BottomGeo:getMin():getY(), b3BottomGeo:getMax():getZ()), Y_AX(), -90) ---EgtRotate( nBottomOutLeftProfileId, Point3d( b3BottomGeo:getMin():getX(), b3BottomGeo:getMin():getY(), b3BottomGeo:getMax():getZ()), Z_AX(), 90) ---local b3BottomOutLeftProfileId = EgtGetBBoxGlob(nBottomOutLeftProfileId, GDB_BB.STANDARD) ---EgtMove( nBottomOutLeftProfileId, b3BottomGeo:getMin() - b3BottomOutLeftProfileId:getMin()) ---local nOutLeftProfileId = EgtGetFirstNameInGroup( nBottomOutLeftProfileId, OUTOFST) ---local nBottomOutLeftProfileExtrusionId = EgtSurfTmByExtrusion( nSolidLayerId, nOutLeftProfileId, Y_AX() * b3BottomFrameProfile:getDimY()) ---EgtInvertSurf( nBottomOutLeftProfileExtrusionId) ---local nExtrCopyId = EgtCopy( nBottomExtrusionId, nSolidLayerId) ---EgtSurfTmCut( nBottomExtrusionId, nBottomOutLeftProfileExtrusionId, true, false) ---EgtSurfTmCut( nBottomOutLeftProfileExtrusionId, nExtrCopyId, true, false) -----EgtErase( nExtrCopyId) ----- copio e sposto profilo out left su end bottom per tagliarlo ---local nRightProfileId = EgtGetFirstNameInGroup( nProfileFrameLayerId, SASH_TOP) ---local nBottomOutRightProfileId = EgtCopy( nRightProfileId, nFrameProfileLayerId) ---EgtRotate( nBottomOutRightProfileId, Point3d( b3BottomGeo:getMin():getX(), b3BottomGeo:getMin():getY(), b3BottomGeo:getMax():getZ()), Y_AX(), -90) ---EgtRotate( nBottomOutRightProfileId, Point3d( b3BottomGeo:getMin():getX(), b3BottomGeo:getMin():getY(), b3BottomGeo:getMax():getZ()), Z_AX(), -90) ---local b3BottomOutRightProfileId = EgtGetBBoxGlob(nBottomOutRightProfileId, GDB_BB.STANDARD) ---EgtMove( nBottomOutRightProfileId, Point3d( b3BottomGeo:getMax():getX(),b3BottomGeo:getMin():getY(),b3BottomGeo:getMin():getZ()) - Point3d( b3BottomOutRightProfileId:getMax():getX(), b3BottomOutRightProfileId:getMin():getY(),b3BottomOutRightProfileId:getMin():getZ())) ---local nOutRightProfileId = EgtGetFirstNameInGroup( nBottomOutRightProfileId, OUTOFST) ---local nBottomOutRightProfileExtrusionId = EgtSurfTmByExtrusion( nSolidLayerId, nOutRightProfileId, Y_AX() * b3BottomFrameProfile:getDimY()) -----EgtInvertSurf( nBottomOutLeftProfileExtrusionId) -----local nExtrCopyId = EgtCopy( nBottomExtrusionId, nSolidLayerId) ---EgtSurfTmCut( nBottomExtrusionId, nBottomOutRightProfileExtrusionId, true, false) ---EgtSurfTmCut( nBottomOutRightProfileExtrusionId, nExtrCopyId, true, false) ---EgtErase( nExtrCopyId) - - - - - - - - - diff --git a/Profiles/Main - 2023-06-24.lua b/Profiles/Main - 2023-06-24.lua deleted file mode 100644 index 21ebe94..0000000 --- a/Profiles/Main - 2023-06-24.lua +++ /dev/null @@ -1,266 +0,0 @@ --- --- EEEEEEEEEE GGGGGG TTTTTTTTTTTTTT --- EEEEEEEEEE GGGGGGGGGG TTTTTTTTTTTTTT --- EEEE GGGG GGGG TTTT --- EEEE GGGG TTTT --- EEEEEEE GGGG GGGGGGG TTTT --- EEEEEEE GGGG GGGGGGG TTTT --- EEEE GGGG GGGG TTTT --- EEEE GGGG GGGG TTTT --- EEEEEEEEEE GGGGGGGGGG TTTT --- EEEEEEEEEE GGGGGG TTTT --- --- by Egalware s.r.l. --- Window project software by Egalware s.r.l. 2023/05/02 - -require( 'EgtBase') -_ENV = EgtProtectGlobal() -EgtEnableDebug( true) - ----- Imposto direttorio libreria specializzata per Nesting ---local sBaseDir = EgtGetSourceDir() ---EgtOutLog("BaseDir=" .. sBaseDir) ---EgtAddToPackagePath( sBaseDir .. '?.lua') - --- local Config = require( 'Config') - -------------------------------------------- PARAMETERS ------------------------------------------- -local DebugCode = false - --- Tipi di giunzioni (joint) -JNT = { - ANGLED = 1, - CP_H = 2, - CP_V = 3, - CP_M = 4 -} - --- Tipi di profilo -PRF = { - NULL = 0, - TOP = 1, - BOTTOM = 2, - LEFT = 3, - RIGHT = 4, - VERTICAL = 5, - HORIZONTAL = 6 -} - -local CUT_SURF_EPS_SMALL = 0.05 - -local PROFILE = 'Profile' -local FRAME = 'Frame' -local OUTLINE = 'Outline' -local GEO = 'Geo' -local SOLID = 'Solid' -local BOTTOM = 'Bottom' -local RIGHT = 'Right' -local TOP = 'Top' -local LEFT = 'Left' - -local SASH_TOP = 'Sash_Top' -local SASH_BOTTOM = 'Sash_Bottom' -local FIXED_TOP = 'Fixed_Top' -local FIXED_BOTTOM = 'Fixed_Bottom' - -local REF = 'Ref' -local SECTION = 'Section' -local ALU = 'Alu' -local CTRIN = 'CtrIn' -local OUT = 'Out' -local OUTOFST = 'OutOfst' - -local HoleHeight = 1200 -local HoleWidth = 1200 - -local WindowWidth = 1200 -local WindowHeight = 1200 - -local WindowTree - -local sProfilePath = 'c:\\EgtData\\Window\\Profiles\\Profilo78 - Offset.nge' - -------------------------------------------- ************** ------------------------------------------- - --- funzioni - --- funzione che restituisce BBox del Ref del profilo -local function GetRefWithBBoxFromProfile( nProfileFrameId, sProfileType) - local nProfileId = EgtGetFirstNameInGroup( nProfileFrameId, sProfileType) - local nProfileRefId = EgtGetFirstNameInGroup( nProfileId, REF) - local b3Ref = EgtGetBBox( nProfileRefId, GDB_BB.STANDARD) - return nProfileId, b3Ref -end - --- funzione che restituisce ref e calcola delta controprofilo dal profilo passatogli -local function GetDeltaProfile( nProfileFrameId, sProfileType) - local nProfileId, b3Ref = GetRefWithBBoxFromProfile( nProfileFrameId, sProfileType) - local nCPId = EgtGetFirstNameInGroup( nProfileId, CTRIN) - local b3CP = EgtGetBBox( nCPId, GDB_BB.STANDARD) - local dCPDelta = b3Ref:getDimY() - b3CP:getDimY() - return dCPDelta, b3Ref -end - --- funzione che calcola l'ingombro dei pezzi del telaio -local function CalcFrameFootPrint( nProfileFrameId, nId, nGeoId) - -- ricavo tipo dal nome - local sName = EgtGetName( nId) - local nProfileType = PRF.NULL - if sName == TOP then - nProfileType = PRF.TOP - elseif sName == BOTTOM then - nProfileType = PRF.BOTTOM - elseif sName == LEFT then - nProfileType = PRF.LEFT - elseif sName == RIGHT then - nProfileType = PRF.RIGHT - end - local p3FrameStart = EgtSP( nId) - local p3FrameEnd = EgtEP( nId) - local nNewGeoId - if nProfileType == PRF.TOP then - -- recupero ref e controprofilo del top e calcolo delta - local _, b3TopRef = GetRefWithBBoxFromProfile( nProfileFrameId, SASH_TOP) - nNewGeoId = EgtRectangle2P( nGeoId, p3FrameEnd - Y_AX() * b3TopRef:getDimY(), p3FrameStart) - EgtModifyCurveExtrusion( nNewGeoId, Z_AX()) - EgtModifyCurveThickness( nNewGeoId, -b3TopRef:getDimX()) - EgtSetName( nNewGeoId, TOP) - elseif nProfileType == PRF.BOTTOM then - local _, b3BottomRef = GetRefWithBBoxFromProfile( nProfileFrameId, SASH_BOTTOM) - nNewGeoId = EgtRectangle2P( nGeoId, p3FrameStart, p3FrameEnd + Y_AX() * b3BottomRef:getDimY()) - EgtModifyCurveExtrusion( nNewGeoId, Z_AX()) - EgtModifyCurveThickness( nNewGeoId, -b3BottomRef:getDimX()) - EgtSetName( nNewGeoId, BOTTOM) - elseif nProfileType == PRF.LEFT then - -- recupero ref e controprofilo del top e calcolo delta - local dTopCPDelta, b3TopRef = GetDeltaProfile( nProfileFrameId, SASH_TOP) - -- recupero ref e controprofilo del bottom e calcolo delta - local dBottomCPDelta, b3BottomRef = GetDeltaProfile( nProfileFrameId, SASH_BOTTOM) - -- creo rettangolo ingombro - nNewGeoId = EgtRectangle2P( nGeoId, p3FrameEnd + Y_AX() * dBottomCPDelta , p3FrameStart + X_AX() * b3TopRef:getDimY() - Y_AX() * dTopCPDelta) - EgtModifyCurveExtrusion( nNewGeoId, Z_AX()) - EgtModifyCurveThickness( nNewGeoId, -b3TopRef:getDimX()) - EgtSetName( nNewGeoId, LEFT) - elseif nProfileType == PRF.RIGHT then - -- recupero ref e controprofilo del top e calcolo delta - local dTopCPDelta, b3TopRef = GetDeltaProfile( nProfileFrameId, SASH_TOP) - -- recupero ref e controprofilo del bottom e calcolo delta - local dBottomCPDelta, b3BottomRef = GetDeltaProfile( nProfileFrameId, SASH_BOTTOM) - -- creo rettangolo ingombro - nNewGeoId = EgtRectangle2P( nGeoId, p3FrameStart - X_AX() * b3TopRef:getDimY() + Y_AX() * dBottomCPDelta , p3FrameEnd - Y_AX() * dTopCPDelta) - EgtModifyCurveExtrusion( nNewGeoId, Z_AX()) - EgtModifyCurveThickness( nNewGeoId, -b3TopRef:getDimX()) - EgtSetName( nNewGeoId, RIGHT) - end -end - -------------------------------------------- ************** ------------------------------------------- - --- ciclo principale - -EgtNewFile() - --- creo gruppo per il profilo -local nProfileId = EgtGroup( GDB_ID.ROOT) -EgtSetName( nProfileId, PROFILE) - --- importo profilo prescelto -local bOk = EgtInsertFile( sProfilePath) - -local nGroupId = EgtGetFirstInGroup( GDB_ID.ROOT) -while nGroupId do - if nGroupId ~= nProfileId then - local nCurrId = nGroupId - nGroupId = EgtGetNext( nGroupId) - EgtRelocateGlob( nCurrId, nProfileId) - EgtSetStatus( nCurrId, GDB_ST.OFF) - else - nGroupId = EgtGetNext( nGroupId) - end -end - --- creo struttura layer del frame -local nFrameLayerId = EgtGroup( GDB_ID.ROOT) -EgtSetName( nFrameLayerId, FRAME) -local nOutlineId = EgtGroup( nFrameLayerId) -EgtSetName( nOutlineId, OUTLINE) -local nGeoId = EgtGroup( nFrameLayerId) -EgtSetName( nGeoId, GEO) -local nSolidId = EgtGroup( nFrameLayerId) -EgtSetName( nSolidId, SOLID) -local nFrameProfileId = EgtGroup( nFrameLayerId) -EgtSetName( nFrameProfileId, PROFILE) - --- disegno outline -local nFrameBottomId = EgtLine( nOutlineId, Point3d( 0, 0, 0), Point3d( WindowWidth, 0, 0) ) -EgtSetName( nFrameBottomId, BOTTOM) -local nFrameRightId = EgtLine( nOutlineId, Point3d( WindowWidth, 0, 0), Point3d( WindowWidth, WindowHeight, 0) ) -EgtSetName( nFrameRightId, RIGHT) -local nFrameTopId = EgtLine( nOutlineId, Point3d( WindowWidth, WindowHeight, 0), Point3d( 0, WindowHeight, 0) ) -EgtSetName( nFrameTopId, TOP) -local nFrameLeftId = EgtLine( nOutlineId, Point3d( 0, WindowHeight, 0), Point3d( 0, 0, 0) ) -EgtSetName( nFrameLeftId, LEFT) - --- scelgo tipo di giunzioni --- per il momento faccio controprofili verticali - - --- scelgo il tipo --- per il momento faccio controprofili per anta - --- disegno ingombri frame -local nProfileFrameId = EgtGetFirstNameInGroup( nProfileId, FRAME) - -local nCurrOutlineId = EgtGetFirstInGroup( nOutlineId) -while nCurrOutlineId do - CalcFrameFootPrint( nProfileFrameId, nCurrOutlineId, nGeoId) - nCurrOutlineId = EgtGetNext( nCurrOutlineId) -end - --- posiziono profili --- bottom -local nBottomProfileId = EgtGetFirstNameInGroup( nProfileFrameId, SASH_BOTTOM) --- creo copia -local nBottomFrameProfileId = EgtCopy( nBottomProfileId, nFrameProfileId) -local b3BottomFrameProfile = EgtGetBBox( nBottomFrameProfileId, GDB_BB.STANDARD) --- recupero posizione e BBox del geo -local nBottomGeoId = EgtGetFirstNameInGroup( nGeoId, BOTTOM) -local b3BottomGeo = EgtGetBBox(nBottomGeoId, GDB_BB.STANDARD) -EgtMove( nBottomFrameProfileId, b3BottomGeo:getMin() + Z_AX() * b3BottomGeo:getDimZ() - Point3d( b3BottomFrameProfile:getMax():getX(), b3BottomFrameProfile:getMin():getY(), b3BottomGeo:getMax():getZ())) -EgtRotate( nBottomFrameProfileId, b3BottomGeo:getMin() + Z_AX() * b3BottomGeo:getDimZ(), Y_AX(), -90) --- recupero profilo outline e lo estrudo -local nBottomFrameOutlineId = EgtGetFirstNameInGroup( nBottomFrameProfileId, SECTION) -local nBottomExtrusionId = EgtSurfTmByExtrusion( nSolidId, nBottomFrameOutlineId, X_AX() * b3BottomGeo:getDimX()) -EgtInvertSurf( nBottomExtrusionId) --- copio e sposto profilo out left su start bottom per tagliarlo -local nLeftProfileId = EgtGetFirstNameInGroup( nProfileFrameId, SASH_TOP) -local nBottomOutLeftProfileId = EgtCopy( nLeftProfileId, nFrameProfileId) -EgtRotate( nBottomOutLeftProfileId, Point3d( b3BottomGeo:getMin():getX(), b3BottomGeo:getMin():getY(), b3BottomGeo:getMax():getZ()), Y_AX(), -90) -EgtRotate( nBottomOutLeftProfileId, Point3d( b3BottomGeo:getMin():getX(), b3BottomGeo:getMin():getY(), b3BottomGeo:getMax():getZ()), Z_AX(), 90) -local b3BottomOutLeftProfileId = EgtGetBBoxGlob(nBottomOutLeftProfileId, GDB_BB.STANDARD) -EgtMove( nBottomOutLeftProfileId, b3BottomGeo:getMin() - b3BottomOutLeftProfileId:getMin()) -local nOutLeftProfileId = EgtGetFirstNameInGroup( nBottomOutLeftProfileId, OUTOFST) -local nBottomOutLeftProfileExtrusionId = EgtSurfTmByExtrusion( nSolidId, nOutLeftProfileId, Y_AX() * b3BottomFrameProfile:getDimY()) -EgtInvertSurf( nBottomOutLeftProfileExtrusionId) -local nExtrCopyId = EgtCopy( nBottomExtrusionId, nSolidId) -EgtSurfTmCut( nBottomExtrusionId, nBottomOutLeftProfileExtrusionId, true, false) -EgtSurfTmCut( nBottomOutLeftProfileExtrusionId, nExtrCopyId, true, false) -EgtErase( nExtrCopyId) - - - - ---local nLeftProfileId = EgtGetFirstNameInGroup( nProfileFrameId, SASH_TOP) ---local nOutLeftProfileId = EgtGetFirstNameInGroup( nLeftProfileId, OUTOFST) ---local nBottomOutLeftProfileId = EgtCopy( nOutLeftProfileId, nFrameProfileId) ---EgtRotate( nBottomOutLeftProfileId, Point3d( b3BottomGeo:getMin():getX(), b3BottomGeo:getMin():getY(), b3BottomGeo:getMax():getZ()), Y_AX(), -90) ---EgtRotate( nBottomOutLeftProfileId, Point3d( b3BottomGeo:getMin():getX(), b3BottomGeo:getMin():getY(), b3BottomGeo:getMax():getZ()), Z_AX(), 90) ---local b3BottomOutLeftProfileId = EgtGetBBox(nBottomOutLeftProfileId, GDB_BB.STANDARD) ---EgtMove( nBottomOutLeftProfileId, b3BottomGeo:getMin() - b3BottomOutLeftProfileId:getMin()) ---local nBottomOutLeftProfileExtrusionId = EgtSurfTmByExtrusion( nSolidId, nBottomOutLeftProfileId, Y_AX() * b3BottomFrameProfile:getDimY()) ---EgtSurfTmCut( nBottomOutLeftProfileExtrusionId, nBottomExtrusionId, true, false) ---EgtSurfTmCut( nBottomExtrusionId, nBottomOutLeftProfileExtrusionId, false, false) - - - - diff --git a/Profiles/Main - 2023-06-26.lua b/Profiles/Main - 2023-06-26.lua deleted file mode 100644 index 487d146..0000000 --- a/Profiles/Main - 2023-06-26.lua +++ /dev/null @@ -1,337 +0,0 @@ --- --- EEEEEEEEEE GGGGGG TTTTTTTTTTTTTT --- EEEEEEEEEE GGGGGGGGGG TTTTTTTTTTTTTT --- EEEE GGGG GGGG TTTT --- EEEE GGGG TTTT --- EEEEEEE GGGG GGGGGGG TTTT --- EEEEEEE GGGG GGGGGGG TTTT --- EEEE GGGG GGGG TTTT --- EEEE GGGG GGGG TTTT --- EEEEEEEEEE GGGGGGGGGG TTTT --- EEEEEEEEEE GGGGGG TTTT --- --- by Egalware s.r.l. --- Window project software by Egalware s.r.l. 2023/05/02 - -require( 'EgtBase') -_ENV = EgtProtectGlobal() -EgtEnableDebug( true) - ----- Imposto direttorio libreria specializzata per Nesting ---local sBaseDir = EgtGetSourceDir() ---EgtOutLog("BaseDir=" .. sBaseDir) ---EgtAddToPackagePath( sBaseDir .. '?.lua') - --- local Config = require( 'Config') - -------------------------------------------- PARAMETERS ------------------------------------------- -local DebugCode = false - --- Tipi di giunzioni (joint) -JNT = { - ANGLED = 1, - CP_H = 2, - CP_V = 3, - CP_M = 4 -} - --- Tipi di profilo -PRF = { - NULL = 0, - TOP = 1, - BOTTOM = 2, - LEFT = 3, - RIGHT = 4, - VERTICAL = 5, - HORIZONTAL = 6 -} - -local CUT_SURF_EPS_SMALL = 0.05 - -local PROFILE = 'Profile' -local FRAME = 'Frame' -local OUTLINE = 'Outline' -local GEO = 'Geo' -local SOLID = 'Solid' -local BOTTOM = 'Bottom' -local RIGHT = 'Right' -local TOP = 'Top' -local LEFT = 'Left' - -local SASH_TOP = 'Sash_Top' -local SASH_BOTTOM = 'Sash_Bottom' -local FIXED_TOP = 'Fixed_Top' -local FIXED_BOTTOM = 'Fixed_Bottom' - -local REF = 'Ref' -local SECTION = 'Section' -local ALU = 'Alu' -local CTRIN = 'CtrIn' -local OUT = 'Out' -local OUTOFST = 'OutOfst' - -local HoleHeight = 1200 -local HoleWidth = 1200 - -local WindowWidth = 1200 -local WindowHeight = 1200 - -local WindowTree - -local sProfilePath = 'c:\\EgtData\\Window\\Profiles\\Profilo78 - Offset.nge' - -------------------------------------------- ************** ------------------------------------------- - --- funzioni - --- funzione che restituisce BBox del Ref del profilo -local function GetRefWithBBoxFromProfile( nProfileFrameLayerId, sProfileType) - local nProfileId = EgtGetFirstNameInGroup( nProfileFrameLayerId, sProfileType) - local nProfileRefId = EgtGetFirstNameInGroup( nProfileId, REF) - local b3Ref = EgtGetBBox( nProfileRefId, GDB_BB.STANDARD) - return nProfileId, b3Ref -end - --- funzione che restituisce ref e calcola delta controprofilo dal profilo passatogli -local function GetDeltaProfile( nProfileFrameLayerId, sProfileType) - local nProfileId, b3Ref = GetRefWithBBoxFromProfile( nProfileFrameLayerId, sProfileType) - local nCPId = EgtGetFirstNameInGroup( nProfileId, CTRIN) - local b3CP = EgtGetBBox( nCPId, GDB_BB.STANDARD) - local dCPDelta = b3Ref:getDimY() - b3CP:getDimY() - return dCPDelta, b3Ref -end - --- funzione che calcola l'ingombro dei pezzi del telaio -local function CalcFrameFootPrint( nProfileFrameLayerId, nId, nGeoId) - -- ricavo tipo dal nome - local sName = EgtGetName( nId) - local nProfileType = PRF.NULL - if sName == TOP then - nProfileType = PRF.TOP - elseif sName == BOTTOM then - nProfileType = PRF.BOTTOM - elseif sName == LEFT then - nProfileType = PRF.LEFT - elseif sName == RIGHT then - nProfileType = PRF.RIGHT - end - local p3FrameStart = EgtSP( nId) - local p3FrameEnd = EgtEP( nId) - local nNewGeoId - if nProfileType == PRF.TOP then - -- recupero ref e controprofilo del top e calcolo delta - local _, b3TopRef = GetRefWithBBoxFromProfile( nProfileFrameLayerId, SASH_TOP) - nNewGeoId = EgtRectangle2P( nGeoId, p3FrameEnd - Y_AX() * b3TopRef:getDimY(), p3FrameStart) - EgtModifyCurveExtrusion( nNewGeoId, Z_AX()) - EgtModifyCurveThickness( nNewGeoId, -b3TopRef:getDimX()) - EgtSetName( nNewGeoId, TOP) - elseif nProfileType == PRF.BOTTOM then - local _, b3BottomRef = GetRefWithBBoxFromProfile( nProfileFrameLayerId, SASH_BOTTOM) - nNewGeoId = EgtRectangle2P( nGeoId, p3FrameStart, p3FrameEnd + Y_AX() * b3BottomRef:getDimY()) - EgtModifyCurveExtrusion( nNewGeoId, Z_AX()) - EgtModifyCurveThickness( nNewGeoId, -b3BottomRef:getDimX()) - EgtSetName( nNewGeoId, BOTTOM) - elseif nProfileType == PRF.LEFT then - -- recupero ref e controprofilo del top e calcolo delta - local dTopCPDelta, b3TopRef = GetDeltaProfile( nProfileFrameLayerId, SASH_TOP) - -- recupero ref e controprofilo del bottom e calcolo delta - local dBottomCPDelta, b3BottomRef = GetDeltaProfile( nProfileFrameLayerId, SASH_BOTTOM) - -- creo rettangolo ingombro - nNewGeoId = EgtRectangle2P( nGeoId, p3FrameEnd + Y_AX() * dBottomCPDelta , p3FrameStart + X_AX() * b3TopRef:getDimY() - Y_AX() * dTopCPDelta) - EgtModifyCurveExtrusion( nNewGeoId, Z_AX()) - EgtModifyCurveThickness( nNewGeoId, -b3TopRef:getDimX()) - EgtSetName( nNewGeoId, LEFT) - elseif nProfileType == PRF.RIGHT then - -- recupero ref e controprofilo del top e calcolo delta - local dTopCPDelta, b3TopRef = GetDeltaProfile( nProfileFrameLayerId, SASH_TOP) - -- recupero ref e controprofilo del bottom e calcolo delta - local dBottomCPDelta, b3BottomRef = GetDeltaProfile( nProfileFrameLayerId, SASH_BOTTOM) - -- creo rettangolo ingombro - nNewGeoId = EgtRectangle2P( nGeoId, p3FrameStart - X_AX() * b3TopRef:getDimY() + Y_AX() * dBottomCPDelta , p3FrameEnd - Y_AX() * dTopCPDelta) - EgtModifyCurveExtrusion( nNewGeoId, Z_AX()) - EgtModifyCurveThickness( nNewGeoId, -b3TopRef:getDimX()) - EgtSetName( nNewGeoId, RIGHT) - end -end - --- funzione che calcola l'ingombro dei pezzi del telaio -local function CalcFrameSolid( nProfileFrameLayerId, nGeoId, nFrameProfileLayerId, nGeoLayerId, nSolidLayerId) - -- ricavo tipo dal nome - local sName = EgtGetName( nGeoId) - local nProfileType = PRF.NULL - if sName == TOP then - nProfileType = PRF.TOP - elseif sName == BOTTOM then - nProfileType = PRF.BOTTOM - elseif sName == LEFT then - nProfileType = PRF.LEFT - elseif sName == RIGHT then - nProfileType = PRF.RIGHT - end - if nProfileType == PRF.TOP then - elseif nProfileType == PRF.BOTTOM then - local nProfileId = EgtGetFirstNameInGroup( nProfileFrameLayerId, SASH_BOTTOM) - -- creo copia - local nFrameProfileId = EgtCopy( nProfileId, nFrameProfileLayerId) - local b3FrameProfile = EgtGetBBox( nFrameProfileId, GDB_BB.STANDARD) - -- recupero posizione e BBox del geo - local b3Geo = EgtGetBBox(nGeoId, GDB_BB.STANDARD) - EgtMove( nFrameProfileId, b3Geo:getMin() + Z_AX() * b3Geo:getDimZ() - Point3d( b3FrameProfile:getMax():getX(), b3FrameProfile:getMin():getY(), b3Geo:getMax():getZ())) - EgtRotate( nFrameProfileId, b3Geo:getMin() + Z_AX() * b3Geo:getDimZ(), Y_AX(), -90) - -- recupero profilo outline e lo estrudo - local nFrameOutlineId = EgtGetFirstNameInGroup( nFrameProfileId, SECTION) - local nExtrusionId = EgtSurfTmByExtrusion( nSolidLayerId, nFrameOutlineId, X_AX() * b3Geo:getDimX()) - EgtInvertSurf( nExtrusionId) - -- copio e sposto profilo out left su start bottom per tagliarlo - local nOrigStartProfileId = EgtGetFirstNameInGroup( nProfileFrameLayerId, SASH_TOP) - local nStartProfileId = EgtCopy( nOrigStartProfileId, nFrameProfileLayerId) - EgtRotate( nStartProfileId, Point3d( b3Geo:getMin():getX(), b3Geo:getMin():getY(), b3Geo:getMax():getZ()), Y_AX(), -90) - EgtRotate( nStartProfileId, Point3d( b3Geo:getMin():getX(), b3Geo:getMin():getY(), b3Geo:getMax():getZ()), Z_AX(), 90) - local b3StartProfileId = EgtGetBBoxGlob(nStartProfileId, GDB_BB.STANDARD) - EgtMove( nStartProfileId, b3Geo:getMin() - b3StartProfileId:getMin()) - local nOutStartProfileId = EgtGetFirstNameInGroup( nStartProfileId, OUTOFST) - local nStartExtrusionId = EgtSurfTmByExtrusion( nSolidLayerId, nOutStartProfileId, Y_AX() * b3FrameProfile:getDimY()) - EgtInvertSurf( nStartExtrusionId) - local nExtrCopyId = EgtCopy( nExtrusionId, nSolidLayerId) - EgtSurfTmCut( nExtrusionId, nStartExtrusionId, true, false) - EgtSurfTmCut( nStartExtrusionId, nExtrCopyId, true, false) - --EgtErase( nExtrCopyId) - -- copio e sposto profilo out left su end bottom per tagliarlo - local nOrigEndProfileId = EgtGetFirstNameInGroup( nProfileFrameLayerId, SASH_TOP) - local nEndProfileId = EgtCopy( nOrigEndProfileId, nFrameProfileLayerId) - EgtRotate( nEndProfileId, Point3d( b3Geo:getMin():getX(), b3Geo:getMin():getY(), b3Geo:getMax():getZ()), Y_AX(), -90) - EgtRotate( nEndProfileId, Point3d( b3Geo:getMin():getX(), b3Geo:getMin():getY(), b3Geo:getMax():getZ()), Z_AX(), -90) - local b3EndProfileId = EgtGetBBoxGlob(nEndProfileId, GDB_BB.STANDARD) - EgtMove( nEndProfileId, Point3d( b3Geo:getMax():getX(),b3Geo:getMin():getY(),b3Geo:getMin():getZ()) - Point3d( b3EndProfileId:getMax():getX(), b3EndProfileId:getMin():getY(),b3EndProfileId:getMin():getZ())) - local nOutEndProfileId = EgtGetFirstNameInGroup( nEndProfileId, OUTOFST) - local nEndExtrusionId = EgtSurfTmByExtrusion( nSolidLayerId, nOutEndProfileId, Y_AX() * b3FrameProfile:getDimY()) - --EgtInvertSurf( nBottomOutLeftProfileExtrusionId) - --local nExtrCopyId = EgtCopy( nBottomExtrusionId, nSolidLayerId) - EgtSurfTmCut( nExtrusionId, nEndExtrusionId, true, false) - EgtSurfTmCut( nEndExtrusionId, nExtrCopyId, true, false) - EgtErase( nExtrCopyId) - elseif nProfileType == PRF.LEFT then - elseif nProfileType == PRF.RIGHT then - end -end - -------------------------------------------- ************** ------------------------------------------- - --- ciclo principale - -EgtNewFile() - --- creo gruppo per il profilo -local nProfileId = EgtGroup( GDB_ID.ROOT) -EgtSetName( nProfileId, PROFILE) - --- importo profilo prescelto -local bOk = EgtInsertFile( sProfilePath) - -local nGroupId = EgtGetFirstInGroup( GDB_ID.ROOT) -while nGroupId do - if nGroupId ~= nProfileId then - local nCurrId = nGroupId - nGroupId = EgtGetNext( nGroupId) - EgtRelocateGlob( nCurrId, nProfileId) - EgtSetStatus( nCurrId, GDB_ST.OFF) - else - nGroupId = EgtGetNext( nGroupId) - end -end - --- creo struttura layer del frame -local nFrameLayerId = EgtGroup( GDB_ID.ROOT) -EgtSetName( nFrameLayerId, FRAME) -local nOutlineLayerId = EgtGroup( nFrameLayerId) -EgtSetName( nOutlineLayerId, OUTLINE) -local nGeoLayerId = EgtGroup( nFrameLayerId) -EgtSetName( nGeoLayerId, GEO) -local nSolidLayerId = EgtGroup( nFrameLayerId) -EgtSetName( nSolidLayerId, SOLID) -local nFrameProfileLayerId = EgtGroup( nFrameLayerId) -EgtSetName( nFrameProfileLayerId, PROFILE) - --- disegno outline -local nFrameBottomId = EgtLine( nOutlineLayerId, Point3d( 0, 0, 0), Point3d( WindowWidth, 0, 0) ) -EgtSetName( nFrameBottomId, BOTTOM) -local nFrameRightId = EgtLine( nOutlineLayerId, Point3d( WindowWidth, 0, 0), Point3d( WindowWidth, WindowHeight, 0) ) -EgtSetName( nFrameRightId, RIGHT) -local nFrameTopId = EgtLine( nOutlineLayerId, Point3d( WindowWidth, WindowHeight, 0), Point3d( 0, WindowHeight, 0) ) -EgtSetName( nFrameTopId, TOP) -local nFrameLeftId = EgtLine( nOutlineLayerId, Point3d( 0, WindowHeight, 0), Point3d( 0, 0, 0) ) -EgtSetName( nFrameLeftId, LEFT) - --- scelgo tipo di giunzioni --- per il momento faccio controprofili verticali - - --- scelgo il tipo --- per il momento faccio controprofili per anta - --- disegno ingombri frame -local nProfileFrameLayerId = EgtGetFirstNameInGroup( nProfileId, FRAME) - -local nCurrOutlineId = EgtGetFirstInGroup( nOutlineLayerId) -while nCurrOutlineId do - CalcFrameFootPrint( nProfileFrameLayerId, nCurrOutlineId, nGeoLayerId) - nCurrOutlineId = EgtGetNext( nCurrOutlineId) -end - --- posiziono profili -local nGeoId = EgtGetFirstInGroup( nGeoLayerId) -CalcFrameSolid(nProfileFrameLayerId, nGeoId, nFrameProfileLayerId, nGeoLayerId, nSolidLayerId) - - - ----- bottom ---local nBottomProfileId = EgtGetFirstNameInGroup( nProfileFrameLayerId, SASH_BOTTOM) ----- creo copia ---local nBottomFrameProfileId = EgtCopy( nBottomProfileId, nFrameProfileLayerId) ---local b3BottomFrameProfile = EgtGetBBox( nBottomFrameProfileId, GDB_BB.STANDARD) ----- recupero posizione e BBox del geo ---local nBottomGeoId = EgtGetFirstNameInGroup( nGeoId, BOTTOM) ---local b3BottomGeo = EgtGetBBox(nBottomGeoId, GDB_BB.STANDARD) ---EgtMove( nBottomFrameProfileId, b3BottomGeo:getMin() + Z_AX() * b3BottomGeo:getDimZ() - Point3d( b3BottomFrameProfile:getMax():getX(), b3BottomFrameProfile:getMin():getY(), b3BottomGeo:getMax():getZ())) ---EgtRotate( nBottomFrameProfileId, b3BottomGeo:getMin() + Z_AX() * b3BottomGeo:getDimZ(), Y_AX(), -90) ----- recupero profilo outline e lo estrudo ---local nBottomFrameOutlineId = EgtGetFirstNameInGroup( nBottomFrameProfileId, SECTION) ---local nBottomExtrusionId = EgtSurfTmByExtrusion( nSolidLayerId, nBottomFrameOutlineId, X_AX() * b3BottomGeo:getDimX()) ---EgtInvertSurf( nBottomExtrusionId) ----- copio e sposto profilo out left su start bottom per tagliarlo ---local nLeftProfileId = EgtGetFirstNameInGroup( nProfileFrameLayerId, SASH_TOP) ---local nBottomOutLeftProfileId = EgtCopy( nLeftProfileId, nFrameProfileLayerId) ---EgtRotate( nBottomOutLeftProfileId, Point3d( b3BottomGeo:getMin():getX(), b3BottomGeo:getMin():getY(), b3BottomGeo:getMax():getZ()), Y_AX(), -90) ---EgtRotate( nBottomOutLeftProfileId, Point3d( b3BottomGeo:getMin():getX(), b3BottomGeo:getMin():getY(), b3BottomGeo:getMax():getZ()), Z_AX(), 90) ---local b3BottomOutLeftProfileId = EgtGetBBoxGlob(nBottomOutLeftProfileId, GDB_BB.STANDARD) ---EgtMove( nBottomOutLeftProfileId, b3BottomGeo:getMin() - b3BottomOutLeftProfileId:getMin()) ---local nOutLeftProfileId = EgtGetFirstNameInGroup( nBottomOutLeftProfileId, OUTOFST) ---local nBottomOutLeftProfileExtrusionId = EgtSurfTmByExtrusion( nSolidLayerId, nOutLeftProfileId, Y_AX() * b3BottomFrameProfile:getDimY()) ---EgtInvertSurf( nBottomOutLeftProfileExtrusionId) ---local nExtrCopyId = EgtCopy( nBottomExtrusionId, nSolidLayerId) ---EgtSurfTmCut( nBottomExtrusionId, nBottomOutLeftProfileExtrusionId, true, false) ---EgtSurfTmCut( nBottomOutLeftProfileExtrusionId, nExtrCopyId, true, false) -----EgtErase( nExtrCopyId) ----- copio e sposto profilo out left su end bottom per tagliarlo ---local nRightProfileId = EgtGetFirstNameInGroup( nProfileFrameLayerId, SASH_TOP) ---local nBottomOutRightProfileId = EgtCopy( nRightProfileId, nFrameProfileLayerId) ---EgtRotate( nBottomOutRightProfileId, Point3d( b3BottomGeo:getMin():getX(), b3BottomGeo:getMin():getY(), b3BottomGeo:getMax():getZ()), Y_AX(), -90) ---EgtRotate( nBottomOutRightProfileId, Point3d( b3BottomGeo:getMin():getX(), b3BottomGeo:getMin():getY(), b3BottomGeo:getMax():getZ()), Z_AX(), -90) ---local b3BottomOutRightProfileId = EgtGetBBoxGlob(nBottomOutRightProfileId, GDB_BB.STANDARD) ---EgtMove( nBottomOutRightProfileId, Point3d( b3BottomGeo:getMax():getX(),b3BottomGeo:getMin():getY(),b3BottomGeo:getMin():getZ()) - Point3d( b3BottomOutRightProfileId:getMax():getX(), b3BottomOutRightProfileId:getMin():getY(),b3BottomOutRightProfileId:getMin():getZ())) ---local nOutRightProfileId = EgtGetFirstNameInGroup( nBottomOutRightProfileId, OUTOFST) ---local nBottomOutRightProfileExtrusionId = EgtSurfTmByExtrusion( nSolidLayerId, nOutRightProfileId, Y_AX() * b3BottomFrameProfile:getDimY()) -----EgtInvertSurf( nBottomOutLeftProfileExtrusionId) -----local nExtrCopyId = EgtCopy( nBottomExtrusionId, nSolidLayerId) ---EgtSurfTmCut( nBottomExtrusionId, nBottomOutRightProfileExtrusionId, true, false) ---EgtSurfTmCut( nBottomOutRightProfileExtrusionId, nExtrCopyId, true, false) ---EgtErase( nExtrCopyId) - - - - - - - - - diff --git a/Profiles/Main - 2023-07-05.lua b/Profiles/Main - 2023-07-05.lua deleted file mode 100644 index f83f3f7..0000000 --- a/Profiles/Main - 2023-07-05.lua +++ /dev/null @@ -1,227 +0,0 @@ --- --- EEEEEEEEEE GGGGGG TTTTTTTTTTTTTT --- EEEEEEEEEE GGGGGGGGGG TTTTTTTTTTTTTT --- EEEE GGGG GGGG TTTT --- EEEE GGGG TTTT --- EEEEEEE GGGG GGGGGGG TTTT --- EEEEEEE GGGG GGGGGGG TTTT --- EEEE GGGG GGGG TTTT --- EEEE GGGG GGGG TTTT --- EEEEEEEEEE GGGGGGGGGG TTTT --- EEEEEEEEEE GGGGGG TTTT --- --- by Egalware s.r.l. --- Window project software by Egalware s.r.l. 2023/05/02 - -require( 'EgtBase') -_ENV = EgtProtectGlobal() -EgtEnableDebug( true) ---EgtEnableDebug( false) - --- Imposto direttorio per librerie -local sBaseDir = EgtGetSourceDir() -EgtOutLog("BaseDir=" .. sBaseDir) -EgtAddToPackagePath( sBaseDir .. '?.lua') - -_G.package.loaded.WinConst = nil -require( 'WinConst') -_G.package.loaded.WinLib = nil -local WinLib = require( 'WinLib') - -------------------------------------------- PARAMETERS ------------------------------------------- -local DebugCode = false - -local HoleWidth = 1835 -local HoleHeight = 1516 - -local WindowWidth = 1800 -local WindowHeight = 1500 - -local WindowTree - -local sProfilePath = 'c:\\EgtData\\Window\\Profiles\\Profilo78 - Offset.nge' - -------------------------------------------- ************** ------------------------------------------- - --- funzioni - -local function CreatePartFromArea( nAreaId) - -- creo pezzi outline - local nOutlineLayerId = EgtGetFirstNameInGroup( nAreaId, WIN_OUTLINE) - local nOutlineId = EgtGetFirstInGroup( nOutlineLayerId) - while nOutlineId do - WinLib.CreatePartFromOutline( nAreaId, nOutlineId) - nOutlineId = EgtGetNext( nOutlineId) - end - -- verifico se c'e' uno split - local nSplitLayerId = EgtGetFirstNameInGroup( nAreaId, WIN_SPLIT) - if nSplitLayerId then - local nSplitId = EgtGetFirstInGroup( nSplitLayerId) - if nSplitId then - -- creo pezzo split - WinLib.CreatePartFromOutline( nAreaId, nSplitId) - end - end - -- verifico se ci sono aree - local nArea1Id = EgtGetFirstNameInGroup( nAreaId, WIN_AREA1) - if nArea1Id then - -- lancio costruzione pezzi di quell'area - CreatePartFromArea(nArea1Id) - end - local nArea2Id = EgtGetFirstNameInGroup( nAreaId, WIN_AREA1) - if nArea1Id then - -- lancio costruzione pezzi di quell'area - CreatePartFromArea(nArea1Id) - end -end - -------------------------------------------- ************** ------------------------------------------- - --- ciclo principale - -EgtNewFile() - --- creo gruppo per il profilo -local nProfileId = EgtGroup( GDB_ID.ROOT) -EgtSetName( nProfileId, WIN_PROFILE) - --- importo profilo prescelto -local bOk = EgtInsertFile( sProfilePath) - -local nGroupId = EgtGetFirstInGroup( GDB_ID.ROOT) -while nGroupId do - if nGroupId ~= nProfileId then - local nCurrId = nGroupId - nGroupId = EgtGetNext( nGroupId) - EgtRelocateGlob( nCurrId, nProfileId) - EgtSetStatus( nCurrId, GDB_ST.OFF) - else - nGroupId = EgtGetNext( nGroupId) - end -end - --- creo buco -local nHoleLayerId = WinLib.CreateHole( HoleWidth, HoleHeight) - --- creo frame come buco -WinLib.CreateFrameAsHole( nHoleLayerId, WIN_JNT.FULL_H) - -local nSashId = WinLib.AddSash( nHoleLayerId) - -local nFillId = WinLib.AddFill( nSashId, WIN_FILLTYPES.GLASS) --- -- creo gruppo frame --- local nFrameLayerId = EgtGroup( GDB_ID.ROOT) --- EgtSetName( nFrameLayerId, WIN_FRAME) --- local nOutlineLayerId = EgtGroup( nFrameLayerId) --- EgtSetName( nOutlineLayerId, WIN_OUTLINE) - - --- -- disegno outline --- local nFrameBottomId = EgtLine( nOutlineLayerId, Point3d( 0, 0, 0), Point3d( WindowWidth, 0, 0)) --- EgtSetName( nFrameBottomId, WIN_BOTTOM) --- local nFrameRightId = EgtLine( nOutlineLayerId, Point3d( WindowWidth, 0, 0), Point3d( WindowWidth, WindowHeight, 0)) --- EgtSetName( nFrameRightId, WIN_RIGHT) --- local nFrameTopId = EgtLine( nOutlineLayerId, Point3d( WindowWidth, WindowHeight, 0), Point3d( 0, WindowHeight, 0), Vector3d( -1, 0.5, 0)) --- EgtSetName( nFrameTopId, WIN_TOP) --- local nFrameLeftId = EgtLine( nOutlineLayerId, Point3d( 0, WindowHeight, 0), Point3d( 0, 0, 0)) --- EgtSetName( nFrameLeftId, WIN_LEFT) - --- -- cerchio --- local nFrameBottomId = EgtArcC2P( nOutlineLayerId, Point3d( WindowHeight / 2, WindowHeight / 2, 0), Point3d( 0, 0, 0), Point3d( WindowWidth, 0, 0)) --- EgtSetName( nFrameBottomId, WIN_BOTTOM) --- local nFrameRightId = EgtArcC2P( nOutlineLayerId, Point3d( WindowHeight / 2, WindowHeight / 2, 0), Point3d( WindowWidth, 0, 0), Point3d( WindowWidth, WindowHeight, 0)) --- EgtSetName( nFrameRightId, WIN_RIGHT) --- local nFrameTopId = EgtArcC2P( nOutlineLayerId, Point3d( WindowHeight / 2, WindowHeight / 2, 0), Point3d( WindowWidth, WindowHeight, 0), Point3d( 0, WindowHeight, 0)) --- EgtSetName( nFrameTopId, WIN_TOP) --- local nFrameLeftId = EgtArcC2P( nOutlineLayerId, Point3d( WindowHeight / 2, WindowHeight / 2, 0), Point3d( 0, WindowHeight, 0), Point3d( 0, 0, 0)) --- EgtSetName( nFrameLeftId, WIN_LEFT) - - - - --- -- disegno outline --- local nFrameBottomId = EgtLine( nOutlineLayerId, Point3d( 0, 0, 0), Point3d( WindowWidth, 0, 0)) --- EgtSetName( nFrameBottomId, WIN_BOTTOM) --- local nFrameRightId = EgtLine( nOutlineLayerId, Point3d( WindowWidth, 0, 0), Point3d( WindowWidth+400, WindowHeight, 0)) --- EgtSetName( nFrameRightId, WIN_RIGHT) --- local nFrameTopId = EgtLine( nOutlineLayerId, Point3d( WindowWidth+400, WindowHeight, 0), Point3d( -200, WindowHeight-300, 0)) --- --local nFrameTopId = EgtArc2PV( nOutlineLayerId, Point3d( WindowWidth+400, WindowHeight, 0), Point3d( -200, WindowHeight-300, 0), Vector3d( -1, 0.5, 0)) - --- --local nFirstArcId = EgtArc2PDEx(nOutlineLayerId,{-200,1220,0},{0,1700,0},GDB_PT.STD,-1,90,GDB_RT.GRID) -- Id=369 --- --local nFrameTopId = EgtCurveCompo(nOutlineLayerId,nFirstArcId,true) -- Id=369 --- --local nSecondArcId = EgtArc2PDEx(nOutlineLayerId,{0,1700,0},{1700,1900,0},GDB_PT.STD,-1,44.7603,GDB_RT.GRID) -- Id=370 --- --EgtAddCurveCompoCurve(nFrameTopId,nSecondArcId,true,true) -- Ok=1 --- --local nThirdArcId = EgtArc2PDEx(nOutlineLayerId,{1700,1900,0},{1930,1520,0},GDB_PT.STD,199,328.6594,GDB_RT.GRID) -- Id=370 --- --EgtAddCurveCompoCurve(nFrameTopId,nThirdArcId,true,true) -- Ok=1 --- --EgtInvertCurve( nFrameTopId) - --- --local nFrameTop1Id = EgtLine( nOutlineLayerId, Point3d( WindowWidth+400, WindowHeight, 0), Point3d( WindowWidth / 2, WindowHeight+100, 0)) --- --local nFrameTop2Id = EgtLine( nOutlineLayerId, Point3d( WindowWidth / 2, WindowHeight+100, 0), Point3d( -200, WindowHeight-300, 0)) --- --local nFrameTopId = EgtCurveCompo(nOutlineLayerId,nFrameTop1Id,true) -- Id=369 --- --EgtAddCurveCompoCurve(nFrameTopId,nFrameTop2Id,true,true) -- Ok=1 - --- EgtSetName( nFrameTopId, WIN_TOP) --- local nFrameLeftId = EgtLine( nOutlineLayerId, Point3d( -200, WindowHeight-300, 0), Point3d( 0, 0, 0)) --- EgtSetName( nFrameLeftId, WIN_LEFT) - - --- -- scelgo tipo di giunzioni --- local JointType = WIN_JNT.FULL_H --- EgtSetInfo( nOutlineLayerId, WIN_JOINT_BL, JointType) --- EgtSetInfo( nOutlineLayerId, WIN_JOINT_BR, JointType) --- EgtSetInfo( nOutlineLayerId, WIN_JOINT_TL, JointType) --- EgtSetInfo( nOutlineLayerId, WIN_JOINT_TR, JointType) - - --- -- funzione che assegna i profili serramento ai vari outline --- -- per il momento li assegno a mano --- EgtSetInfo( nFrameBottomId, WIN_PROFILETYPE, WIN_SASH_BOTTOM) --- EgtSetInfo( nFrameRightId, WIN_PROFILETYPE, WIN_SASH_TOP) --- EgtSetInfo( nFrameTopId, WIN_PROFILETYPE, WIN_SASH_TOP) --- EgtSetInfo( nFrameLeftId, WIN_PROFILETYPE, WIN_SASH_TOP) - - - --- -- definisco prima divisione --- WinLib.AddSplit( nHoleLayerId, WIN_SPLITTYPE.VERTICAL, WIN_MEASURE.ABSOLUT, WindowWidth / 2) - - --- WinLib.AddSplit( nFrameLayerId, WIN_SPLITTYPE.HORIZONTAL, WIN_MEASURE.PROPORTIONAL, 2, 3) ---WinLib.AddSplits( nFrameLayerId, WIN_SPLITTYPE.VERTICAL, WIN_MEASURE.ABSOLUT, { WindowWidth / 5, WindowWidth / 3 * 2}) ---WinLib.AddSplits( nFrameLayerId, WIN_SPLITTYPE.HORIZONTAL, WIN_MEASURE.PROPORTIONAL, { 1.5, 3}, 4.5) --- local nSplitId = EgtLine( nOutlineLayerId, Point3d( 0, WindowHeight / 2, 0), Point3d( WindowWidth, WindowHeight / 4, 0)) - --- local nArc1Id = EgtArc2PDEx( nOutlineLayerId, { 600, 1500, 0}, { 900, 800, 0}, GDB_PT.STD, -1, 270, GDB_RT.GRID) -- Id=301 --- local nSplitId = EgtCurveCompo( nOutlineLayerId, nArc1Id, true) -- Id=301 --- local nArc2Id = EgtArc2PDEx( nOutlineLayerId, { 900, 800, 0}, { 900, 0, 0}, GDB_PT.STD, -1, 316.3972, GDB_RT.GRID) -- Id=302 --- EgtAddCurveCompoCurve( nSplitId, nArc2Id, true, true) -- Ok=1 --- EgtInvertCurve( nSplitId) - --- WinLib.AddGenSplit( nFrameLayerId, nSplitId) - --- local nArea1Id = EgtGetFirstNameInGroup( nHoleLayerId, WIN_AREA1) --- WinLib.AddSplit( nArea1Id, WIN_SPLITTYPE.HORIZONTAL, WIN_MEASURE.PROPORTIONAL, 2, 3) - - --- creo pezzi per outline --- local nCurrOutlineId = EgtGetFirstInGroup( nOutlineLayerId) --- while nCurrOutlineId do --- WinLib.CreatePartFromOutline( nFrameLayerId, nCurrOutlineId) --- nCurrOutlineId = EgtGetNext( nCurrOutlineId) --- end --- local nCurrOutlineId = EgtGetFirstNameInGroup( nOutlineLayerId, WIN_SPLIT) --- WinLib.CreatePartFromOutline( nFrameLayerId, nCurrOutlineId) --- creo tutti i pezzi -CreatePartFromArea( nHoleLayerId) - - - - - - - - --- assemblo i pezzi ---WinLib.AssembleFrame() - -EgtDraw() \ No newline at end of file diff --git a/Profiles/New1.nge b/Profiles/New1.nge deleted file mode 100644 index 3d19904..0000000 Binary files a/Profiles/New1.nge and /dev/null differ diff --git a/Profiles/Profilo78 - Copy (2).nge b/Profiles/Profilo78 - Copy (2).nge deleted file mode 100644 index b2c67c8..0000000 Binary files a/Profiles/Profilo78 - Copy (2).nge and /dev/null differ diff --git a/Profiles/Profilo78 - Copy (3).nge b/Profiles/Profilo78 - Copy (3).nge deleted file mode 100644 index d4d7d96..0000000 Binary files a/Profiles/Profilo78 - Copy (3).nge and /dev/null differ diff --git a/Profiles/Profilo78 - Copy.nge b/Profiles/Profilo78 - Copy.nge deleted file mode 100644 index 9fd5a34..0000000 Binary files a/Profiles/Profilo78 - Copy.nge and /dev/null differ diff --git a/Profiles/Profilo78 - Offset - Copy (10).nge b/Profiles/Profilo78 - Offset - Copy (10).nge deleted file mode 100644 index 163d7a6..0000000 Binary files a/Profiles/Profilo78 - Offset - Copy (10).nge and /dev/null differ diff --git a/Profiles/Profilo78 - Offset - Copy (11).nge b/Profiles/Profilo78 - Offset - Copy (11).nge deleted file mode 100644 index 5b8cdae..0000000 Binary files a/Profiles/Profilo78 - Offset - Copy (11).nge and /dev/null differ diff --git a/Profiles/Profilo78 - Offset - Copy (12).nge b/Profiles/Profilo78 - Offset - Copy (12).nge deleted file mode 100644 index d6476a9..0000000 Binary files a/Profiles/Profilo78 - Offset - Copy (12).nge and /dev/null differ diff --git a/Profiles/Profilo78 - Offset - Copy (13).nge b/Profiles/Profilo78 - Offset - Copy (13).nge deleted file mode 100644 index 5f03975..0000000 Binary files a/Profiles/Profilo78 - Offset - Copy (13).nge and /dev/null differ diff --git a/Profiles/Profilo78 - Offset - Copy (14).nge b/Profiles/Profilo78 - Offset - Copy (14).nge deleted file mode 100644 index ca5ef25..0000000 Binary files a/Profiles/Profilo78 - Offset - Copy (14).nge and /dev/null differ diff --git a/Profiles/Profilo78 - Offset - Copy (15).nge b/Profiles/Profilo78 - Offset - Copy (15).nge deleted file mode 100644 index 2cf66b2..0000000 Binary files a/Profiles/Profilo78 - Offset - Copy (15).nge and /dev/null differ diff --git a/Profiles/Profilo78 - Offset - Copy (16).nge b/Profiles/Profilo78 - Offset - Copy (16).nge deleted file mode 100644 index 93f18b9..0000000 Binary files a/Profiles/Profilo78 - Offset - Copy (16).nge and /dev/null differ diff --git a/Profiles/Profilo78 - Offset - Copy (17).nge b/Profiles/Profilo78 - Offset - Copy (17).nge deleted file mode 100644 index 3ca605c..0000000 Binary files a/Profiles/Profilo78 - Offset - Copy (17).nge and /dev/null differ diff --git a/Profiles/Profilo78 - Offset - Copy (18).nge b/Profiles/Profilo78 - Offset - Copy (18).nge deleted file mode 100644 index a278554..0000000 Binary files a/Profiles/Profilo78 - Offset - Copy (18).nge and /dev/null differ diff --git a/Profiles/Profilo78 - Offset - Copy (19).nge b/Profiles/Profilo78 - Offset - Copy (19).nge deleted file mode 100644 index 79f86db..0000000 Binary files a/Profiles/Profilo78 - Offset - Copy (19).nge and /dev/null differ diff --git a/Profiles/Profilo78 - Offset - Copy (2).nge b/Profiles/Profilo78 - Offset - Copy (2).nge deleted file mode 100644 index 71ede3a..0000000 Binary files a/Profiles/Profilo78 - Offset - Copy (2).nge and /dev/null differ diff --git a/Profiles/Profilo78 - Offset - Copy (20).nge b/Profiles/Profilo78 - Offset - Copy (20).nge deleted file mode 100644 index c90b751..0000000 Binary files a/Profiles/Profilo78 - Offset - Copy (20).nge and /dev/null differ diff --git a/Profiles/Profilo78 - Offset - Copy (21).nge b/Profiles/Profilo78 - Offset - Copy (21).nge deleted file mode 100644 index f1cc3a0..0000000 Binary files a/Profiles/Profilo78 - Offset - Copy (21).nge and /dev/null differ diff --git a/Profiles/Profilo78 - Offset - Copy (22).nge b/Profiles/Profilo78 - Offset - Copy (22).nge deleted file mode 100644 index 006d3b2..0000000 Binary files a/Profiles/Profilo78 - Offset - Copy (22).nge and /dev/null differ diff --git a/Profiles/Profilo78 - Offset - Copy (23).nge b/Profiles/Profilo78 - Offset - Copy (23).nge deleted file mode 100644 index fd217e0..0000000 Binary files a/Profiles/Profilo78 - Offset - Copy (23).nge and /dev/null differ diff --git a/Profiles/Profilo78 - Offset - Copy (24).nge b/Profiles/Profilo78 - Offset - Copy (24).nge deleted file mode 100644 index eab4e24..0000000 Binary files a/Profiles/Profilo78 - Offset - Copy (24).nge and /dev/null differ diff --git a/Profiles/Profilo78 - Offset - Copy (25).nge b/Profiles/Profilo78 - Offset - Copy (25).nge deleted file mode 100644 index 52984ec..0000000 Binary files a/Profiles/Profilo78 - Offset - Copy (25).nge and /dev/null differ diff --git a/Profiles/Profilo78 - Offset - Copy (26).nge b/Profiles/Profilo78 - Offset - Copy (26).nge deleted file mode 100644 index 29183d6..0000000 Binary files a/Profiles/Profilo78 - Offset - Copy (26).nge and /dev/null differ diff --git a/Profiles/Profilo78 - Offset - Copy (27).nge b/Profiles/Profilo78 - Offset - Copy (27).nge deleted file mode 100644 index 29183d6..0000000 Binary files a/Profiles/Profilo78 - Offset - Copy (27).nge and /dev/null differ diff --git a/Profiles/Profilo78 - Offset - Copy (28).nge b/Profiles/Profilo78 - Offset - Copy (28).nge deleted file mode 100644 index 1913109..0000000 Binary files a/Profiles/Profilo78 - Offset - Copy (28).nge and /dev/null differ diff --git a/Profiles/Profilo78 - Offset - Copy (29).nge b/Profiles/Profilo78 - Offset - Copy (29).nge deleted file mode 100644 index f35288e..0000000 Binary files a/Profiles/Profilo78 - Offset - Copy (29).nge and /dev/null differ diff --git a/Profiles/Profilo78 - Offset - Copy (3).nge b/Profiles/Profilo78 - Offset - Copy (3).nge deleted file mode 100644 index 0551c82..0000000 Binary files a/Profiles/Profilo78 - Offset - Copy (3).nge and /dev/null differ diff --git a/Profiles/Profilo78 - Offset - Copy (30).nge b/Profiles/Profilo78 - Offset - Copy (30).nge deleted file mode 100644 index f35288e..0000000 Binary files a/Profiles/Profilo78 - Offset - Copy (30).nge and /dev/null differ diff --git a/Profiles/Profilo78 - Offset - Copy (31).nge b/Profiles/Profilo78 - Offset - Copy (31).nge deleted file mode 100644 index 46d4eb5..0000000 Binary files a/Profiles/Profilo78 - Offset - Copy (31).nge and /dev/null differ diff --git a/Profiles/Profilo78 - Offset - Copy (32).nge b/Profiles/Profilo78 - Offset - Copy (32).nge deleted file mode 100644 index f44be83..0000000 Binary files a/Profiles/Profilo78 - Offset - Copy (32).nge and /dev/null differ diff --git a/Profiles/Profilo78 - Offset - Copy (33).nge b/Profiles/Profilo78 - Offset - Copy (33).nge deleted file mode 100644 index e7d7bee..0000000 Binary files a/Profiles/Profilo78 - Offset - Copy (33).nge and /dev/null differ diff --git a/Profiles/Profilo78 - Offset - Copy (34).nge b/Profiles/Profilo78 - Offset - Copy (34).nge deleted file mode 100644 index 0eb915c..0000000 Binary files a/Profiles/Profilo78 - Offset - Copy (34).nge and /dev/null differ diff --git a/Profiles/Profilo78 - Offset - Copy (35).nge b/Profiles/Profilo78 - Offset - Copy (35).nge deleted file mode 100644 index aba1ec7..0000000 Binary files a/Profiles/Profilo78 - Offset - Copy (35).nge and /dev/null differ diff --git a/Profiles/Profilo78 - Offset - Copy (36).nge b/Profiles/Profilo78 - Offset - Copy (36).nge deleted file mode 100644 index dcef89e..0000000 Binary files a/Profiles/Profilo78 - Offset - Copy (36).nge and /dev/null differ diff --git a/Profiles/Profilo78 - Offset - Copy (37).nge b/Profiles/Profilo78 - Offset - Copy (37).nge deleted file mode 100644 index a1b4cd2..0000000 Binary files a/Profiles/Profilo78 - Offset - Copy (37).nge and /dev/null differ diff --git a/Profiles/Profilo78 - Offset - Copy (38).nge b/Profiles/Profilo78 - Offset - Copy (38).nge deleted file mode 100644 index e560455..0000000 Binary files a/Profiles/Profilo78 - Offset - Copy (38).nge and /dev/null differ diff --git a/Profiles/Profilo78 - Offset - Copy (39).nge b/Profiles/Profilo78 - Offset - Copy (39).nge deleted file mode 100644 index 637fca2..0000000 Binary files a/Profiles/Profilo78 - Offset - Copy (39).nge and /dev/null differ diff --git a/Profiles/Profilo78 - Offset - Copy (4).nge b/Profiles/Profilo78 - Offset - Copy (4).nge deleted file mode 100644 index 2728992..0000000 Binary files a/Profiles/Profilo78 - Offset - Copy (4).nge and /dev/null differ diff --git a/Profiles/Profilo78 - Offset - Copy (40).nge b/Profiles/Profilo78 - Offset - Copy (40).nge deleted file mode 100644 index f3fc101..0000000 Binary files a/Profiles/Profilo78 - Offset - Copy (40).nge and /dev/null differ diff --git a/Profiles/Profilo78 - Offset - Copy (41).nge b/Profiles/Profilo78 - Offset - Copy (41).nge deleted file mode 100644 index e6fce8c..0000000 Binary files a/Profiles/Profilo78 - Offset - Copy (41).nge and /dev/null differ diff --git a/Profiles/Profilo78 - Offset - Copy (42).nge b/Profiles/Profilo78 - Offset - Copy (42).nge deleted file mode 100644 index 3f71d8f..0000000 Binary files a/Profiles/Profilo78 - Offset - Copy (42).nge and /dev/null differ diff --git a/Profiles/Profilo78 - Offset - Copy (43).nge b/Profiles/Profilo78 - Offset - Copy (43).nge deleted file mode 100644 index 46c2b8d..0000000 Binary files a/Profiles/Profilo78 - Offset - Copy (43).nge and /dev/null differ diff --git a/Profiles/Profilo78 - Offset - Copy (44).nge b/Profiles/Profilo78 - Offset - Copy (44).nge deleted file mode 100644 index d107993..0000000 Binary files a/Profiles/Profilo78 - Offset - Copy (44).nge and /dev/null differ diff --git a/Profiles/Profilo78 - Offset - Copy (45).nge b/Profiles/Profilo78 - Offset - Copy (45).nge deleted file mode 100644 index 2b1ad06..0000000 Binary files a/Profiles/Profilo78 - Offset - Copy (45).nge and /dev/null differ diff --git a/Profiles/Profilo78 - Offset - Copy (46).nge b/Profiles/Profilo78 - Offset - Copy (46).nge deleted file mode 100644 index bceecb3..0000000 Binary files a/Profiles/Profilo78 - Offset - Copy (46).nge and /dev/null differ diff --git a/Profiles/Profilo78 - Offset - Copy (47).nge b/Profiles/Profilo78 - Offset - Copy (47).nge deleted file mode 100644 index 5f0a680..0000000 Binary files a/Profiles/Profilo78 - Offset - Copy (47).nge and /dev/null differ diff --git a/Profiles/Profilo78 - Offset - Copy (48).nge b/Profiles/Profilo78 - Offset - Copy (48).nge deleted file mode 100644 index 1b10c42..0000000 Binary files a/Profiles/Profilo78 - Offset - Copy (48).nge and /dev/null differ diff --git a/Profiles/Profilo78 - Offset - Copy (49).nge b/Profiles/Profilo78 - Offset - Copy (49).nge deleted file mode 100644 index 5574fd5..0000000 Binary files a/Profiles/Profilo78 - Offset - Copy (49).nge and /dev/null differ diff --git a/Profiles/Profilo78 - Offset - Copy (5).nge b/Profiles/Profilo78 - Offset - Copy (5).nge deleted file mode 100644 index a6e2cd2..0000000 Binary files a/Profiles/Profilo78 - Offset - Copy (5).nge and /dev/null differ diff --git a/Profiles/Profilo78 - Offset - Copy (50).nge b/Profiles/Profilo78 - Offset - Copy (50).nge deleted file mode 100644 index 1edd6b1..0000000 Binary files a/Profiles/Profilo78 - Offset - Copy (50).nge and /dev/null differ diff --git a/Profiles/Profilo78 - Offset - Copy (51).nge b/Profiles/Profilo78 - Offset - Copy (51).nge deleted file mode 100644 index aa6055e..0000000 Binary files a/Profiles/Profilo78 - Offset - Copy (51).nge and /dev/null differ diff --git a/Profiles/Profilo78 - Offset - Copy (52).nge b/Profiles/Profilo78 - Offset - Copy (52).nge deleted file mode 100644 index 2c8f86b..0000000 Binary files a/Profiles/Profilo78 - Offset - Copy (52).nge and /dev/null differ diff --git a/Profiles/Profilo78 - Offset - Copy (53).nge b/Profiles/Profilo78 - Offset - Copy (53).nge deleted file mode 100644 index d9b4a71..0000000 Binary files a/Profiles/Profilo78 - Offset - Copy (53).nge and /dev/null differ diff --git a/Profiles/Profilo78 - Offset - Copy (54).nge b/Profiles/Profilo78 - Offset - Copy (54).nge deleted file mode 100644 index 2b20bae..0000000 Binary files a/Profiles/Profilo78 - Offset - Copy (54).nge and /dev/null differ diff --git a/Profiles/Profilo78 - Offset - Copy (55).nge b/Profiles/Profilo78 - Offset - Copy (55).nge deleted file mode 100644 index 8f6e5b1..0000000 Binary files a/Profiles/Profilo78 - Offset - Copy (55).nge and /dev/null differ diff --git a/Profiles/Profilo78 - Offset - Copy (56).nge b/Profiles/Profilo78 - Offset - Copy (56).nge deleted file mode 100644 index 0b43bf1..0000000 Binary files a/Profiles/Profilo78 - Offset - Copy (56).nge and /dev/null differ diff --git a/Profiles/Profilo78 - Offset - Copy (6).nge b/Profiles/Profilo78 - Offset - Copy (6).nge deleted file mode 100644 index 7ca377c..0000000 Binary files a/Profiles/Profilo78 - Offset - Copy (6).nge and /dev/null differ diff --git a/Profiles/Profilo78 - Offset - Copy (7).nge b/Profiles/Profilo78 - Offset - Copy (7).nge deleted file mode 100644 index 52ee4e1..0000000 Binary files a/Profiles/Profilo78 - Offset - Copy (7).nge and /dev/null differ diff --git a/Profiles/Profilo78 - Offset - Copy (8).nge b/Profiles/Profilo78 - Offset - Copy (8).nge deleted file mode 100644 index 988fbc6..0000000 Binary files a/Profiles/Profilo78 - Offset - Copy (8).nge and /dev/null differ diff --git a/Profiles/Profilo78 - Offset - Copy (9).nge b/Profiles/Profilo78 - Offset - Copy (9).nge deleted file mode 100644 index e242eac..0000000 Binary files a/Profiles/Profilo78 - Offset - Copy (9).nge and /dev/null differ diff --git a/Profiles/Profilo78 - Offset - Copy.nge b/Profiles/Profilo78 - Offset - Copy.nge deleted file mode 100644 index 9fa9760..0000000 Binary files a/Profiles/Profilo78 - Offset - Copy.nge and /dev/null differ diff --git a/Profiles/Profilo78 - Offset.nge b/Profiles/Profilo78 - Offset.nge deleted file mode 100644 index 8851683..0000000 Binary files a/Profiles/Profilo78 - Offset.nge and /dev/null differ diff --git a/Profiles/Profilo78 - Offset.nge.no b/Profiles/Profilo78 - Offset.nge.no deleted file mode 100644 index 78ef43f..0000000 Binary files a/Profiles/Profilo78 - Offset.nge.no and /dev/null differ diff --git a/Profiles/Profilo78 - Offset.ok.nge b/Profiles/Profilo78 - Offset.ok.nge deleted file mode 100644 index d6476a9..0000000 Binary files a/Profiles/Profilo78 - Offset.ok.nge and /dev/null differ diff --git a/Profiles/Profilo78.nge b/Profiles/Profilo78.nge deleted file mode 100644 index 5461fb5..0000000 Binary files a/Profiles/Profilo78.nge and /dev/null differ diff --git a/Profiles/Test Salvataggio.nge b/Profiles/Test Salvataggio.nge deleted file mode 100644 index 29fd2b8..0000000 Binary files a/Profiles/Test Salvataggio.nge and /dev/null differ diff --git a/Profiles/Test Salvataggio2.nge b/Profiles/Test Salvataggio2.nge deleted file mode 100644 index 1b3d0f4..0000000 Binary files a/Profiles/Test Salvataggio2.nge and /dev/null differ diff --git a/Profiles/TestAreas.nge b/Profiles/TestAreas.nge deleted file mode 100644 index 597e333..0000000 Binary files a/Profiles/TestAreas.nge and /dev/null differ diff --git a/Profiles/TestLavorazioni.nge b/Profiles/TestLavorazioni.nge deleted file mode 100644 index 111386c..0000000 Binary files a/Profiles/TestLavorazioni.nge and /dev/null differ diff --git a/Profiles/WinLib - Copy.lua b/Profiles/WinLib - Copy.lua deleted file mode 100644 index c5cd787..0000000 --- a/Profiles/WinLib - Copy.lua +++ /dev/null @@ -1,625 +0,0 @@ --- --- EEEEEEEEEE GGGGGG TTTTTTTTTTTTTT --- EEEEEEEEEE GGGGGGGGGG TTTTTTTTTTTTTT --- EEEE GGGG GGGG TTTT --- EEEE GGGG TTTT --- EEEEEEE GGGG GGGGGGG TTTT --- EEEEEEE GGGG GGGGGGG TTTT --- EEEE GGGG GGGG TTTT --- EEEE GGGG GGGG TTTT --- EEEEEEEEEE GGGGGGGGGG TTTT --- EEEEEEEEEE GGGGGG TTTT --- --- by Egalware s.r.l. --- Window project software by Egalware s.r.l. 2023/05/02 - --- Tabella per definizione modulo -local WinLib = {} - --- Include -require( 'EgtBase') -_G.package.loaded.WinConst = nil -require( 'WinConst') - --- funzioni - --- funzione che crea un taglio split -function WinLib.AddSplit( nAreaLayerId, SplitType, MeasureType, nPosition, nProportion) - local nOutlineLayerId = EgtGetFirstNameInGroup( nAreaLayerId, WIN_OUTLINE) - local b3OutlineLayer = EgtGetBBox( nOutlineLayerId, GDB_BB.STANDARD) - -- recupero contorno - local OutlineIds = {} - local nOutlineId = EgtGetFirstInGroup( nOutlineLayerId) - while nOutlineId do - table.insert( OutlineIds, nOutlineId) - nOutlineId = EgtGetNext( nOutlineId) - end - if SplitType == WIN_SPLIT.VERTICAL then - -- creo linea - local nCalcPosition = 0 - if MeasureType == WIN_MEASURE.ABSOLUT then - nCalcPosition = nPosition - elseif MeasureType == WIN_MEASURE.PROPORTIONAL then - nCalcPosition = b3OutlineLayer:getDimX() / nProportion * nPosition - end - local nTotSplitId = EgtLine( nOutlineLayerId, Point3d( nCalcPosition, 0, 0), Point3d( nCalcPosition, b3OutlineLayer:getDimY(), 0)) - EgtSetName( nTotSplitId, WIN_VERTICAL) - -- la taglio con i contorni - local nCompoOutlineId = EgtCurveCompo( nOutlineLayerId, OutlineIds, false) - local nFROutlineId = EgtSurfFlatRegion( nOutlineLayerId, nCompoOutlineId) - local nSplitId, _ = EgtTrimCurveWithRegion( nTotSplitId, nFROutlineId, true, false) - EgtErase( { nCompoOutlineId, nFROutlineId}) - elseif SplitType == WIN_SPLIT.HORIZONTAL then - local nFrameSplitId = EgtLine( nOutlineLayerId, Point3d( 0, nPosition, 0), Point3d( 0, nPosition, 0)) - EgtSetName( nFrameSplitId, WIN_HORIZONTAL) - end -end - --- funzione che crea le aree da un taglio split -function WinLib.CreateAreaFromSplit( nOutlineLayerId, nFrameSplitId) - -end - --- funzione che restituisce BBox del Ref del profilo -function WinLib.GetRefWithBBoxFromProfile( nProfileFrameLayerId, sProfileType) - local nProfileId = EgtGetFirstNameInGroup( nProfileFrameLayerId, sProfileType) - local nProfileRefId = EgtGetFirstNameInGroup( nProfileId, WIN_REF) - local b3Ref = EgtGetBBox( nProfileRefId, GDB_BB.STANDARD) - return nProfileId, b3Ref - end - --- funzione che restituisce ref e calcola delta controprofilo dal profilo passatogli -function WinLib.GetDeltaProfile( nProfileFrameLayerId, sProfileType) - local nProfileId, b3Ref = WinLib.GetRefWithBBoxFromProfile( nProfileFrameLayerId, sProfileType) - local nCPId = EgtGetFirstNameInGroup( nProfileId, WIN_CTRIN) - local b3CP = EgtGetBBox( nCPId, GDB_BB.STANDARD) - local dCPDelta = b3Ref:getDimY() - b3CP:getDimY() - return dCPDelta, b3Ref -end - --- funzione che calcola l'ingombro dei pezzi del telaio -function WinLib.CalcFrameGeo( nPartId, nOutlineId) - -- recupero profilo - local nProfileLayerId = EgtGetFirstNameInGroup( GDB_ID.ROOT, WIN_PROFILE) - local nProfileFrameLayerId = EgtGetFirstNameInGroup( nProfileLayerId, WIN_FRAME) - -- creo layer per ingombro - local nGeoLayerId = EgtGroup( nPartId) - EgtSetName( nGeoLayerId, WIN_GEO) - -- ricavo tipo dal nome - local sName = EgtGetName( nOutlineId) - local nProfileType = WIN_PRF.NULL - if sName == WIN_TOP then - nProfileType = WIN_PRF.TOP - elseif sName == WIN_BOTTOM then - nProfileType = WIN_PRF.BOTTOM - elseif sName == WIN_LEFT then - nProfileType = WIN_PRF.LEFT - elseif sName == WIN_RIGHT then - nProfileType = WIN_PRF.RIGHT - end - local nOutlineLayerId = EgtGetParent( nOutlineId) - local b3OutlineId = EgtGetBBoxGlob( nOutlineId, GDB_BB.STANDARD) - local nNewGeoId - if nProfileType == WIN_PRF.TOP then - -- recupero tipo di giunzioni - local StartJointType = EgtGetInfo( nOutlineLayerId, WIN_JOINT_TR, 'i') - local EndJointType = EgtGetInfo( nOutlineLayerId, WIN_JOINT_TL, 'i') - -- recupero ref e controprofilo del top e calcolo delta - local dTopCPDelta, b3TopRef = WinLib.GetDeltaProfile( nProfileFrameLayerId, WIN_SASH_TOP) - -- recupero outline precedente - local nNextOutlineId = EgtGetFirstNameInGroup( nOutlineLayerId, WIN_LEFT) - local nPrevOutlineId = EgtGetFirstNameInGroup( nOutlineLayerId, WIN_RIGHT) - -- calcolo vettori direzione - local vtNextOutline = EgtSV( nNextOutlineId) - local vtPrevOutline = EgtSV( nPrevOutlineId) - local vtCurrOutline = EgtSV( nOutlineId) - -- calcolo punti con inclinazione - local dSenNext = ( vtCurrOutline ^ vtNextOutline):getZ() - local dSenPrev = ( vtPrevOutline ^ vtCurrOutline):getZ() - local dCosNext = ( vtCurrOutline * vtNextOutline) - local dCosPrev = ( vtCurrOutline * vtPrevOutline) - local ptBL = ORIG() - local ptBR = ptBL + X_AX() * EgtCurveLength( nOutlineId) - X_AX() * dSenPrev * EgtIf(StartJointType == WIN_JNT.FULL_V, dTopCPDelta, 0) - X_AX() * dSenNext * EgtIf(EndJointType == WIN_JNT.FULL_V, dTopCPDelta, 0) - local ptTR = ptBR + X_AX() * b3TopRef:getDimY() / dSenNext * dCosNext + Y_AX() * b3TopRef:getDimY() - local ptTL = ORIG() - X_AX() * b3TopRef:getDimY() / dSenPrev * dCosPrev + Y_AX() * b3TopRef:getDimY() - -- creo rettangolo ingombro - nNewGeoId = EgtCurveCompoFromPoints( nGeoLayerId, { ptBL, ptBR, ptTR, ptTL,ptBL}) - EgtSetInfo( nNewGeoId, WIN_GEOOUTLINEBOTTOM, EgtCurveLength( nOutlineId) - dSenPrev * EgtIf(StartJointType == WIN_JNT.FULL_V, dTopCPDelta, 0) - dSenNext * EgtIf(EndJointType == WIN_JNT.FULL_V, dTopCPDelta, 0)) - --nNewGeoId = EgtRectangle2P( nGeoLayerId, ORIG(), ORIG() + X_AX() * b3OutlineId:getDimX() - X_AX() * EgtIf(StartJointType == WIN_JNT.FULL_V, dTopCPDelta, 0) - X_AX() * EgtIf(EndJointType == WIN_JNT.FULL_V, dTopCPDelta, 0) + Y_AX() * b3TopRef:getDimY()) - if StartJointType == WIN_JNT.FULL_V then - EgtSetInfo( nNewGeoId, WIN_STARTCPDELTA, dTopCPDelta) - end - if EndJointType == WIN_JNT.FULL_V then - EgtSetInfo( nNewGeoId, WIN_ENDCPDELTA, dTopCPDelta) - end - EgtModifyCurveExtrusion( nNewGeoId, Z_AX()) - EgtModifyCurveThickness( nNewGeoId, -b3TopRef:getDimX()) - EgtSetName( nNewGeoId, WIN_TOP) - elseif nProfileType == WIN_PRF.BOTTOM then - -- recupero tipo di giunzioni - local StartJointType = EgtGetInfo( nOutlineLayerId, WIN_JOINT_BL, 'i') - local EndJointType = EgtGetInfo( nOutlineLayerId, WIN_JOINT_BR, 'i') - -- recupero ref e controprofilo del top e calcolo delta - local dTopCPDelta, b3TopRef = WinLib.GetDeltaProfile( nProfileFrameLayerId, WIN_SASH_TOP) - -- recupero ref del bottom - local _, b3BottomRef = WinLib.GetRefWithBBoxFromProfile( nProfileFrameLayerId, WIN_SASH_BOTTOM) - -- recupero outline precedente - local nNextOutlineId = EgtGetFirstNameInGroup( nOutlineLayerId, WIN_RIGHT) - local nPrevOutlineId = EgtGetFirstNameInGroup( nOutlineLayerId, WIN_LEFT) - -- calcolo vettori direzione - local vtNextOutline = EgtSV( nNextOutlineId) - local vtPrevOutline = EgtSV( nPrevOutlineId) - local vtCurrOutline = EgtSV( nOutlineId) - -- calcolo punti con inclinazione - local dSenNext = ( vtCurrOutline ^ vtNextOutline):getZ() - local dSenPrev = ( vtPrevOutline ^ vtCurrOutline):getZ() - local dCosNext = ( vtCurrOutline * vtNextOutline) - local dCosPrev = ( vtCurrOutline * vtPrevOutline) - local ptBL = ORIG() - local ptBR = ptBL + X_AX() * EgtCurveLength( nOutlineId) - X_AX() * dSenPrev * EgtIf(StartJointType == WIN_JNT.FULL_V, dTopCPDelta, 0) - X_AX() * dSenNext * EgtIf(EndJointType == WIN_JNT.FULL_V, dTopCPDelta, 0) - local ptTR = ptBR + X_AX() * b3TopRef:getDimY() / dSenNext * dCosNext + Y_AX() * b3BottomRef:getDimY() - local ptTL = ORIG() - X_AX() * b3TopRef:getDimY() / dSenPrev * dCosPrev + Y_AX() * b3BottomRef:getDimY() - -- creo rettangolo ingombro - nNewGeoId = EgtCurveCompoFromPoints( nGeoLayerId, { ptBL, ptBR, ptTR, ptTL,ptBL}) - EgtSetInfo( nNewGeoId, WIN_GEOOUTLINEBOTTOM, EgtCurveLength( nOutlineId) - dSenPrev * EgtIf(StartJointType == WIN_JNT.FULL_V, dTopCPDelta, 0) - dSenNext * EgtIf(EndJointType == WIN_JNT.FULL_V, dTopCPDelta, 0)) - --nNewGeoId = EgtRectangle2P( nGeoLayerId, ORIG(), ORIG() + X_AX() * b3OutlineId:getDimX() - X_AX() * EgtIf(StartJointType == WIN_JNT.FULL_V, dTopCPDelta, 0) - X_AX() * EgtIf(EndJointType == WIN_JNT.FULL_V, dTopCPDelta, 0) + Y_AX() * b3BottomRef:getDimY()) - if StartJointType == WIN_JNT.FULL_V then - EgtSetInfo( nNewGeoId, WIN_STARTCPDELTA, dTopCPDelta) - end - if EndJointType == WIN_JNT.FULL_V then - EgtSetInfo( nNewGeoId, WIN_ENDCPDELTA, dTopCPDelta) - end - EgtModifyCurveExtrusion( nNewGeoId, Z_AX()) - EgtModifyCurveThickness( nNewGeoId, -b3BottomRef:getDimX()) - EgtSetName( nNewGeoId, WIN_BOTTOM) - elseif nProfileType == WIN_PRF.LEFT then - -- recupero tipo di giunzioni - local StartJointType = EgtGetInfo( nOutlineLayerId, WIN_JOINT_TL, 'i') - local EndJointType = EgtGetInfo( nOutlineLayerId, WIN_JOINT_BL, 'i') - -- recupero ref e controprofilo del top e calcolo delta - local dTopCPDelta, b3TopRef = WinLib.GetDeltaProfile( nProfileFrameLayerId, WIN_SASH_TOP) - -- recupero ref e controprofilo del bottom e calcolo delta - local dBottomCPDelta, b3BottomRef = WinLib.GetDeltaProfile( nProfileFrameLayerId, WIN_SASH_BOTTOM) - -- recupero outline precedente - local nNextOutlineId = EgtGetFirstNameInGroup( nOutlineLayerId, WIN_BOTTOM) - local nPrevOutlineId = EgtGetFirstNameInGroup( nOutlineLayerId, WIN_TOP) - -- calcolo vettori direzione - local vtNextOutline = EgtSV( nNextOutlineId) - local vtPrevOutline = EgtSV( nPrevOutlineId) - local vtCurrOutline = EgtSV( nOutlineId) - -- calcolo punti con inclinazione - local dSenNext = ( vtCurrOutline ^ vtNextOutline):getZ() - local dSenPrev = ( vtPrevOutline ^ vtCurrOutline):getZ() - local dCosNext = ( vtCurrOutline * vtNextOutline) - local dCosPrev = ( vtCurrOutline * vtPrevOutline) - local ptBL = ORIG() - local ptBR = ptBL + X_AX() * EgtCurveLength( nOutlineId) - X_AX() * dSenPrev * EgtIf(StartJointType == WIN_JNT.FULL_H, dTopCPDelta, 0) - X_AX() * dSenNext * EgtIf(EndJointType == WIN_JNT.FULL_H, dBottomCPDelta, 0) - local ptTR = ptBR + X_AX() * b3TopRef:getDimY() / dSenNext * dCosNext + Y_AX() * b3TopRef:getDimY() - local ptTL = ORIG() - X_AX() * b3TopRef:getDimY() / dSenPrev * dCosPrev + Y_AX() * b3TopRef:getDimY() - -- creo rettangolo ingombro - nNewGeoId = EgtCurveCompoFromPoints( nGeoLayerId, { ptBL, ptBR, ptTR, ptTL,ptBL}) - EgtSetInfo( nNewGeoId, WIN_GEOOUTLINEBOTTOM, EgtCurveLength( nOutlineId) - dSenPrev * EgtIf(StartJointType == WIN_JNT.FULL_H, dTopCPDelta, 0) - dSenNext * EgtIf(EndJointType == WIN_JNT.FULL_H, dBottomCPDelta, 0)) - --nNewGeoId = EgtRectangle2P( nGeoLayerId, ORIG(), ORIG() + X_AX() * b3OutlineId:getDimY() - X_AX() * EgtIf(StartJointType == WIN_JNT.FULL_H, dTopCPDelta, 0) - X_AX() * EgtIf(EndJointType == WIN_JNT.FULL_H, dBottomCPDelta, 0) + Y_AX() * b3TopRef:getDimY()) - if StartJointType == WIN_JNT.FULL_H then - EgtSetInfo( nNewGeoId, WIN_STARTCPDELTA, dTopCPDelta) - end - if EndJointType == WIN_JNT.FULL_H then - EgtSetInfo( nNewGeoId, WIN_ENDCPDELTA, dBottomCPDelta) - end - EgtModifyCurveExtrusion( nNewGeoId, Z_AX()) - EgtModifyCurveThickness( nNewGeoId, -b3TopRef:getDimX()) - EgtSetName( nNewGeoId, WIN_LEFT) - elseif nProfileType == WIN_PRF.RIGHT then - -- recupero tipo di giunzioni - local StartJointType = EgtGetInfo( nOutlineLayerId, WIN_JOINT_BR, 'i') - local EndJointType = EgtGetInfo( nOutlineLayerId, WIN_JOINT_TR, 'i') - -- recupero ref e controprofilo del top e calcolo delta - local dTopCPDelta, b3TopRef = WinLib.GetDeltaProfile( nProfileFrameLayerId, WIN_SASH_TOP) - -- recupero ref e controprofilo del bottom e calcolo delta - local dBottomCPDelta, b3BottomRef = WinLib.GetDeltaProfile( nProfileFrameLayerId, WIN_SASH_BOTTOM) - -- recupero outline precedente - local nNextOutlineId = EgtGetFirstNameInGroup( nOutlineLayerId, WIN_TOP) - local nPrevOutlineId = EgtGetFirstNameInGroup( nOutlineLayerId, WIN_BOTTOM) - -- calcolo vettori direzione - local vtNextOutline = EgtSV( nNextOutlineId) - local vtPrevOutline = EgtSV( nPrevOutlineId) - local vtCurrOutline = EgtSV( nOutlineId) - -- calcolo punti con inclinazione - local dSenNext = ( vtCurrOutline ^ vtNextOutline):getZ() - local dSenPrev = ( vtPrevOutline ^ vtCurrOutline):getZ() - local dCosNext = ( vtCurrOutline * vtNextOutline) - local dCosPrev = ( vtCurrOutline * vtPrevOutline) - local ptBL = ORIG() - local ptBR = ptBL + X_AX() * EgtCurveLength( nOutlineId) - X_AX() * dSenPrev * EgtIf(StartJointType == WIN_JNT.FULL_H, dBottomCPDelta, 0) - X_AX() * dSenNext * EgtIf(EndJointType == WIN_JNT.FULL_H, dTopCPDelta, 0) - local ptTR = ptBR + X_AX() * b3TopRef:getDimY() / dSenNext * dCosNext + Y_AX() * b3TopRef:getDimY() - local ptTL = ORIG() - X_AX() * b3TopRef:getDimY() / dSenPrev * dCosPrev + Y_AX() * b3TopRef:getDimY() - -- creo rettangolo ingombro - nNewGeoId = EgtCurveCompoFromPoints( nGeoLayerId, { ptBL, ptBR, ptTR, ptTL,ptBL}) - EgtSetInfo( nNewGeoId, WIN_GEOOUTLINEBOTTOM, EgtCurveLength( nOutlineId) - dSenPrev * EgtIf(StartJointType == WIN_JNT.FULL_H, dBottomCPDelta, 0) - dSenNext * EgtIf(EndJointType == WIN_JNT.FULL_H, dTopCPDelta, 0)) - --nNewGeoId = EgtRectangle2P( nGeoLayerId, ORIG(), ORIG() + X_AX() * b3OutlineId:getDimY() - X_AX() * EgtIf(StartJointType == WIN_JNT.FULL_H, dBottomCPDelta, 0) - X_AX() * EgtIf(EndJointType == WIN_JNT.FULL_H, dTopCPDelta, 0) + Y_AX() * b3TopRef:getDimY()) - if StartJointType == WIN_JNT.FULL_H then - EgtSetInfo( nNewGeoId, WIN_STARTCPDELTA, dBottomCPDelta) - end - if EndJointType == WIN_JNT.FULL_H then - EgtSetInfo( nNewGeoId, WIN_ENDCPDELTA, dTopCPDelta) - end - EgtModifyCurveExtrusion( nNewGeoId, Z_AX()) - EgtModifyCurveThickness( nNewGeoId, -b3TopRef:getDimX()) - EgtSetName( nNewGeoId, WIN_RIGHT) - end - return nNewGeoId -end - --- funzione che posiziona i profili, li estrude e crea il solido -function WinLib.CalcStartEndProfileType(nProfileType) - local StartJointType - local EndJointType - local nFrameLayerId = EgtGetFirstNameInGroup( GDB_ID.ROOT, WIN_FRAME) - local nOutlineLayerId = EgtGetFirstNameInGroup( nFrameLayerId, WIN_OUTLINE) - local sStartProfileType - local sEndProfileType - if nProfileType == WIN_PRF.BOTTOM then - StartJointType = EgtGetInfo( nOutlineLayerId, WIN_JOINT_BL, 'i') - EndJointType = EgtGetInfo( nOutlineLayerId, WIN_JOINT_BR, 'i') - if StartJointType == WIN_JNT.FULL_H then - sStartProfileType = WIN_OUTOFST - elseif StartJointType == WIN_JNT.FULL_V then - sStartProfileType = WIN_CTRINOFST - elseif StartJointType == WIN_JNT.ANGLED then - --sStartProfileType = WIN_OUTOFST - end - if EndJointType == WIN_JNT.FULL_H then - sEndProfileType = WIN_OUTOFST - elseif EndJointType == WIN_JNT.FULL_V then - sEndProfileType = WIN_CTRINOFST - elseif EndJointType == WIN_JNT.ANGLED then - --sEndProfileType = WIN_OUTOFST - end - elseif nProfileType == WIN_PRF.RIGHT then - StartJointType = EgtGetInfo( nOutlineLayerId, WIN_JOINT_BR, 'i') - EndJointType = EgtGetInfo( nOutlineLayerId, WIN_JOINT_TR, 'i') - if StartJointType == WIN_JNT.FULL_H then - sStartProfileType = WIN_CTRINOFST - elseif StartJointType == WIN_JNT.FULL_V then - sStartProfileType = WIN_OUTOFST - elseif StartJointType == WIN_JNT.ANGLED then - --sStartProfileType = WIN_OUTOFST - end - if EndJointType == WIN_JNT.FULL_H then - sEndProfileType = WIN_CTRINOFST - elseif EndJointType == WIN_JNT.FULL_V then - sEndProfileType = WIN_OUTOFST - elseif EndJointType == WIN_JNT.ANGLED then - --sEndProfileType = WIN_OUTOFST - end - elseif nProfileType == WIN_PRF.TOP then - StartJointType = EgtGetInfo( nOutlineLayerId, WIN_JOINT_TR, 'i') - EndJointType = EgtGetInfo( nOutlineLayerId, WIN_JOINT_TL, 'i') - if StartJointType == WIN_JNT.FULL_H then - sStartProfileType = WIN_OUTOFST - elseif StartJointType == WIN_JNT.FULL_V then - sStartProfileType = WIN_CTRINOFST - elseif StartJointType == WIN_JNT.ANGLED then - --sStartProfileType = WIN_OUTOFST - end - if EndJointType == WIN_JNT.FULL_H then - sEndProfileType = WIN_OUTOFST - elseif EndJointType == WIN_JNT.FULL_V then - sEndProfileType = WIN_CTRINOFST - elseif EndJointType == WIN_JNT.ANGLED then - --sEndProfileType = WIN_OUTOFST - end - elseif nProfileType == WIN_PRF.LEFT then - StartJointType = EgtGetInfo( nOutlineLayerId, WIN_JOINT_TL, 'i') - EndJointType = EgtGetInfo( nOutlineLayerId, WIN_JOINT_BL, 'i') - if StartJointType == WIN_JNT.FULL_H then - sStartProfileType = WIN_CTRINOFST - elseif StartJointType == WIN_JNT.FULL_V then - sStartProfileType = WIN_OUTOFST - elseif StartJointType == WIN_JNT.ANGLED then - --sStartProfileType = WIN_OUTOFST - end - if EndJointType == WIN_JNT.FULL_H then - sEndProfileType = WIN_CTRINOFST - elseif EndJointType == WIN_JNT.FULL_V then - sEndProfileType = WIN_OUTOFST - elseif EndJointType == WIN_JNT.ANGLED then - --sEndProfileType = WIN_OUTOFST - end - end - return sStartProfileType, sEndProfileType, StartJointType, EndJointType -end - --- funzione che posiziona i profili, li estrude e crea il solido -function WinLib.MakeSolidByExtrusion(nGeoId, nMainProfileId, nStartProfileId, nEndProfileId, nProfileType, nSolidLayerId) - -- recupero outline - local nPartId = EgtGetParent( nSolidLayerId) - local nAreaId = EgtGetInfo( nPartId, WIN_AREA) - local nOutlineLayerId = EgtGetFirstNameInGroup( nAreaId, WIN_OUTLINE) - local sOutlineName = '' - local sPrevOutlineName = '' - local sNextOutlineName = '' - if nProfileType == WIN_PRF.BOTTOM then - sOutlineName = WIN_BOTTOM - sPrevOutlineName = WIN_LEFT - sNextOutlineName = WIN_RIGHT - elseif nProfileType == WIN_PRF.RIGHT then - sOutlineName = WIN_RIGHT - sPrevOutlineName = WIN_BOTTOM - sNextOutlineName = WIN_TOP - elseif nProfileType == WIN_PRF.TOP then - sOutlineName = WIN_TOP - sPrevOutlineName = WIN_RIGHT - sNextOutlineName = WIN_LEFT - elseif nProfileType == WIN_PRF.LEFT then - sOutlineName = WIN_LEFT - sPrevOutlineName = WIN_TOP - sNextOutlineName = WIN_BOTTOM - end - local nOutlineId = EgtGetFirstNameInGroup( nOutlineLayerId, sOutlineName) - local nPrevOutlineId = EgtGetFirstNameInGroup( nOutlineLayerId, sPrevOutlineName) - local nNextOutlineId = EgtGetFirstNameInGroup( nOutlineLayerId, sNextOutlineName) - -- calcolo vettori direzione degli outline - local vtNextOutline = EgtSV( nNextOutlineId) - local vtCurrOutline = EgtSV( nOutlineId) - local vtPrevOutline = EgtSV( nPrevOutlineId) - -- recupero posizione e BBox del geo - local b3Geo = EgtGetBBox(nGeoId, GDB_BB.STANDARD) - -- recupero BBox del profilo Main - local nRefMainProfileId = EgtGetFirstNameInGroup( nMainProfileId, WIN_REF) - local b3RefMainProfile = EgtGetBBoxGlob( nRefMainProfileId, GDB_BB.STANDARD) - -- recupero frame del profilo - local nMainProfileFrameId = EgtGetFirstNameInGroup( nMainProfileId, WIN_SECTIONFRAME) - local frInvertMainProfile = EgtFR( nMainProfileFrameId) - frInvertMainProfile:invert() - -- lo applico a tutte le geometrie del profilo - EgtTransform( EgtGetAllInGroup( nMainProfileId), frInvertMainProfile) - -- assegno come riferimento del profilo il punto start dell'outline - EgtChangeGroupFrame( nMainProfileId, Frame3d( Point3d( b3Geo:getMin():getX(), b3Geo:getMin():getY(), b3Geo:getMax():getZ()), - X_AX())) - -- recupero outline del profilo Main e lo estrudo - local nMainOutlineId = EgtGetFirstNameInGroup( nMainProfileId, WIN_SECTION) - if nProfileType == WIN_PRF.BOTTOM then - EgtInvertCurve( nMainOutlineId) - end - local nMainExtrusionId = EgtSurfTmByExtrusion( nSolidLayerId, nMainOutlineId, X_AX() * b3Geo:getDimX()) - -- posiziono il profilo Start - local nRefStartProfileId = EgtGetFirstNameInGroup( nStartProfileId, WIN_REF) - local b3RefStartProfile = EgtGetBBoxGlob(nRefStartProfileId, GDB_BB.STANDARD) - local dDelta = EgtGetInfo( nGeoId, WIN_STARTCPDELTA, 'd') or 0 - -- recupero frame del profilo - local nStartProfileFrameId = EgtGetFirstNameInGroup( nStartProfileId, WIN_SECTIONFRAME) - local frInvertStartProfile = EgtFR( nStartProfileFrameId) - frInvertStartProfile:move( - Y_AX() * dDelta) - frInvertStartProfile:invert() - -- lo applico a tutte le geometrie del profilo - EgtTransform( EgtGetAllInGroup( nStartProfileId), frInvertStartProfile) - -- assegno come riferimento del profilo il punto start dell'outline - --do return end - EgtChangeGroupFrame( nStartProfileId, Frame3d( ORIG(), - vtPrevOutline)) - local dSenNext = ( vtCurrOutline ^ vtNextOutline):getZ() - local dSenPrev = ( vtPrevOutline ^ vtCurrOutline):getZ() - local dCosNext = ( vtCurrOutline * vtNextOutline) - local dCosPrev = ( vtCurrOutline * vtPrevOutline) - local dDeltaStartAngle = b3RefStartProfile:getDimX() * dCosPrev / dSenPrev - EgtMove( nStartProfileId, vtPrevOutline * dDeltaStartAngle) - -- in base al tipo di incastro e di pezzo, ricavo i controprofili - local sStartProfileType - local sEndProfileType - -- recupero tipo di giunzioni - sStartProfileType, sEndProfileType, StartJointType, EndJointType = WinLib.CalcStartEndProfileType( nProfileType) - -- recupero outline del profilo Start e lo estrudo - local nOutStartProfileId = EgtGetFirstNameInGroup( nStartProfileId, sStartProfileType) - --if (StartJointType == WIN_JNT.FULL_H and ( nProfileType == WIN_PRF.BOTTOM or nProfileType == WIN_PRF.TOP or nProfileType == WIN_PRF.RIGHT)) or - -- (StartJointType == WIN_JNT.FULL_V and ( nProfileType == WIN_PRF.LEFT)) then - -- EgtInvertCurve( nOutStartProfileId) - --end - if StartJointType == WIN_JNT.FULL_H and nProfileType == WIN_PRF.BOTTOM then - EgtInvertCurve( nOutStartProfileId) - end - - local nStartExtrusionId = EgtSurfTmByExtrusion( nSolidLayerId, nOutStartProfileId, - vtPrevOutline * ( b3RefMainProfile:getDimY() / dSenPrev + dDeltaStartAngle)) - -- taglio estrusi per ottenere solido - local nExtrCopyId = EgtCopy( nMainExtrusionId, nSolidLayerId) - EgtSurfTmCut( nMainExtrusionId, nStartExtrusionId, true, false) - EgtSurfTmCut( nStartExtrusionId, nExtrCopyId, true, false) - -- posiziono il profilo End - --EgtRotate( EgtGetAllInGroup( nEndProfileId), ORIG(), Z_AX(), 90) - --EgtRotate( EgtGetAllInGroup( nEndProfileId), ORIG(), Y_AX(), 180) - local nRefEndProfileId = EgtGetFirstNameInGroup( nEndProfileId, WIN_REF) - local b3RefEndProfile = EgtGetBBoxGlob(nRefEndProfileId, GDB_BB.STANDARD) - local dDelta = EgtGetInfo( nGeoId, WIN_ENDCPDELTA, 'd') or 0 - --vtMove = vtMove - X_AX() * dDelta - --EgtMove( nStartProfileId, vtMove) - --EgtMove( EgtGetAllInGroup( nEndProfileId), ORIG() - Point3d( b3RefEndProfile:getMax():getX(), b3RefEndProfile:getMax():getY(), b3RefEndProfile:getMax():getZ()) + X_AX() * dDelta, GDB_RT.GLOB) - - -- recupero frame del profilo - local nEndProfileFrameId = EgtGetFirstNameInGroup( nEndProfileId, WIN_SECTIONFRAME) - local frInvertEndProfile = EgtFR( nEndProfileFrameId) - - frInvertEndProfile:move( - Y_AX() * dDelta) - EgtMove(nEndProfileFrameId, - Y_AX() * dDelta) - frInvertEndProfile:invert() - -- lo applico a tutte le geometrie del profilo - EgtTransform( EgtGetAllInGroup( nEndProfileId), frInvertEndProfile) - -- assegno come riferimento del profilo il punto start dell'outline - local b3Outline = EgtGetBBox( nOutlineId, GDB_BB.STANDARD) - local dBottomOutline = EgtGetInfo( nGeoId, WIN_GEOOUTLINEBOTTOM, 'd') - EgtChangeGroupFrame( nEndProfileId, Frame3d( ORIG() + X_AX() * dBottomOutline , - vtNextOutline)) - - --EgtChangeGroupFrame( nEndProfileId, Frame3d( Point3d( b3Outline:getMax():getX(), b3Outline:getMin():getY(), b3Outline:getMax():getZ()), - vtNextOutline)) - local dDeltaEndAngle = b3RefEndProfile:getDimX() * dCosNext / dSenNext - EgtMove( nEndProfileId, - vtNextOutline * dDeltaEndAngle) - - - --EgtRotate( nEndProfileId, Point3d( b3Geo:getMin():getX(), b3Geo:getMin():getY(), b3Geo:getMax():getZ()), Y_AX(), -90) - --local dSecondAngle = EgtIf( nProfileType == WIN_PRF.LEFT, 90, -90) - --EgtRotate( nEndProfileId, Point3d( b3Geo:getMin():getX(), b3Geo:getMin():getY(), b3Geo:getMax():getZ()), Z_AX(), dSecondAngle) - --local nRefEndProfileId = EgtGetFirstNameInGroup( nEndProfileId, WIN_REF) - --local b3RefEndProfile = EgtGetBBoxGlob(nRefEndProfileId, GDB_BB.STANDARD) - --local vtMove = Point3d( b3Geo:getMax():getX(),b3Geo:getMin():getY(),b3Geo:getMin():getZ()) - Point3d( b3RefEndProfile:getMax():getX(), b3RefEndProfile:getMin():getY(), b3RefEndProfile:getMin():getZ()) - ---- sposto del delta controprofilo se necessario - --local dDelta = EgtGetInfo( nGeoId, WIN_ENDCPDELTA, 'd') or 0 - --vtMove = vtMove + X_AX() * dDelta - --EgtMove( nEndProfileId, vtMove) - -- recupero outline del profilo End e lo estrudo - local nOutEndProfileId = EgtGetFirstNameInGroup( nEndProfileId, sEndProfileType) - if (EndJointType == WIN_JNT.FULL_H and nProfileType == WIN_PRF.RIGHT) or - (EndJointType == WIN_JNT.FULL_V and (nProfileType == WIN_PRF.BOTTOM or nProfileType == WIN_PRF.TOP or nProfileType == WIN_PRF.LEFT)) then - EgtInvertCurve( nOutEndProfileId) - end - local nEndExtrusionId = EgtSurfTmByExtrusion( nSolidLayerId, nOutEndProfileId, vtNextOutline * ( b3RefMainProfile:getDimY() / dSenNext + dDeltaEndAngle)) - -- taglio estrusi per ottenere solido - EgtSurfTmCut( nMainExtrusionId, nEndExtrusionId, true, false) - EgtSurfTmCut( nEndExtrusionId, nExtrCopyId, true, false) - EgtErase( nExtrCopyId) -end - --- funzione che crea il solido del pezzo del telaio -function WinLib.CalcFrameSolid(nPartId, nGeoId) - -- recupero profilo - local nProfileId = EgtGetFirstNameInGroup( GDB_ID.ROOT, WIN_PROFILE) - local nProfileFrameLayerId = EgtGetFirstNameInGroup( nProfileId, WIN_FRAME) - -- creo layer per solido e per profili di estrusione - local nSolidLayerId = EgtGroup( nPartId) - EgtSetName( nSolidLayerId, WIN_SOLID) - local nFrameProfileLayerId = EgtGroup( nPartId) - EgtSetName( nFrameProfileLayerId, WIN_PROFILE) - -- ricavo tipo dal nome - local sName = EgtGetName( nGeoId) - local nProfileType = WIN_PRF.NULL - if sName == WIN_TOP then - nProfileType = WIN_PRF.TOP - elseif sName == WIN_BOTTOM then - nProfileType = WIN_PRF.BOTTOM - elseif sName == WIN_LEFT then - nProfileType = WIN_PRF.LEFT - elseif sName == WIN_RIGHT then - nProfileType = WIN_PRF.RIGHT - end - local nOrigMainProfileId = GDB_ID.NULL - local nMainProfileId = GDB_ID.NULL - local nOrigStartProfileId = GDB_ID.NULL - local nStartProfileId = GDB_ID.NULL - local nOrigEndProfileId = GDB_ID.NULL - local nEndProfileId = GDB_ID.NULL - -- recupero profilo e controprofili per tipo - if nProfileType == WIN_PRF.BOTTOM then - nOrigMainProfileId = EgtGetFirstNameInGroup( nProfileFrameLayerId, WIN_SASH_BOTTOM) - nOrigStartProfileId = EgtGetFirstNameInGroup( nProfileFrameLayerId, WIN_SASH_TOP) - nOrigEndProfileId = EgtGetFirstNameInGroup( nProfileFrameLayerId, WIN_SASH_TOP) - elseif nProfileType == WIN_PRF.RIGHT then - nOrigMainProfileId = EgtGetFirstNameInGroup( nProfileFrameLayerId, WIN_SASH_TOP) - nOrigStartProfileId = EgtGetFirstNameInGroup( nProfileFrameLayerId, WIN_SASH_BOTTOM) - nOrigEndProfileId = EgtGetFirstNameInGroup( nProfileFrameLayerId, WIN_SASH_TOP) - elseif nProfileType == WIN_PRF.TOP then - nOrigMainProfileId = EgtGetFirstNameInGroup( nProfileFrameLayerId, WIN_SASH_TOP) - nOrigStartProfileId = EgtGetFirstNameInGroup( nProfileFrameLayerId, WIN_SASH_TOP) - nOrigEndProfileId = EgtGetFirstNameInGroup( nProfileFrameLayerId, WIN_SASH_TOP) - elseif nProfileType == WIN_PRF.LEFT then - nOrigMainProfileId = EgtGetFirstNameInGroup( nProfileFrameLayerId, WIN_SASH_TOP) - nOrigStartProfileId = EgtGetFirstNameInGroup( nProfileFrameLayerId, WIN_SASH_TOP) - nOrigEndProfileId = EgtGetFirstNameInGroup( nProfileFrameLayerId, WIN_SASH_BOTTOM) - end - -- creo copie di profilo e controprofili - nMainProfileId = EgtCopy( nOrigMainProfileId, nFrameProfileLayerId) - nStartProfileId = EgtCopy( nOrigStartProfileId, nFrameProfileLayerId) - nEndProfileId = EgtCopy( nOrigEndProfileId, nFrameProfileLayerId) - -- creo solido dai profili - WinLib.MakeSolidByExtrusion(nGeoId, nMainProfileId, nStartProfileId, nEndProfileId, nProfileType, nSolidLayerId) - end - - -- funzione che calcola l'ingombro dei pezzi del telaio -function WinLib.CreatePartFromOutline( nFrameLayerId, nOutlineId) - -- ricavo tipo dal nome - local sName = EgtGetName( nOutlineId) - local nProfileType = WIN_PRF.NULL - if sName == WIN_TOP then - nProfileType = WIN_PRF.TOP - elseif sName == WIN_BOTTOM then - nProfileType = WIN_PRF.BOTTOM - elseif sName == WIN_LEFT then - nProfileType = WIN_PRF.LEFT - elseif sName == WIN_RIGHT then - nProfileType = WIN_PRF.RIGHT - end - -- creo pezzo - local nPartId = EgtGroup( GDB_ID.ROOT) - EgtSetName( nPartId, sName) - if nProfileType == WIN_PRF.BOTTOM or nProfileType == WIN_PRF.TOP then - EgtSetColor( nPartId, Color3d( 204, 102, 0)) - elseif nProfileType == WIN_PRF.RIGHT or nProfileType == WIN_PRF.LEFT then - EgtSetColor( nPartId, Color3d( 251, 128, 4)) - end - - -- inserisco riferimento alla sua area - EgtSetInfo( nPartId, WIN_AREA, nFrameLayerId) - - -- disegno ingombro - local nGeoId = WinLib.CalcFrameGeo( nPartId, nOutlineId) - - -- disegno solido - WinLib.CalcFrameSolid(nPartId, nGeoId) - - -- offset per distanziare i pezzi - local dYPosOffset = 300 * ( nProfileType - 1) - EgtChangeGroupFrame( nPartId, Frame3d( Point3d( 0, dYPosOffset, 0))) - -end - --- funzione che posiziona un pezzo -function WinLib.PositionPart(nPartId) - -- ricavo tipo dal nome - local sName = EgtGetName( nPartId) - local sDelta = '' - if sName == WIN_BOTTOM then - sDelta = WIN_STARTCPDELTA - elseif sName == WIN_RIGHT then - sDelta = WIN_STARTCPDELTA - elseif sName == WIN_TOP then - sDelta = WIN_STARTCPDELTA - elseif sName == WIN_LEFT then - sDelta = WIN_STARTCPDELTA - end - -- calcolo nuovo riferimento - local nGeoPartLayerId = EgtGetFirstNameInGroup( nPartId, WIN_GEO) - local nGeoPartId = EgtGetFirstNameInGroup( nGeoPartLayerId, sName) - local dDelta = EgtGetInfo( nGeoPartId, sDelta, 'd') or 0 - local nFrameLayerId = EgtGetFirstNameInGroup( GDB_ID.ROOT, WIN_FRAME) - local nOutlineLayerId = EgtGetFirstNameInGroup( nFrameLayerId, WIN_OUTLINE) - local nFramePartId = EgtGetFirstNameInGroup( nOutlineLayerId, sName) - local vtStart = EgtSV( nFramePartId) - local ptStart = EgtSP( nFramePartId) + vtStart * dDelta - local _, _, dAngRight = SphericalFromVector(vtStart) - local frStart = Frame3d( ptStart) - frStart:rotate( frStart:getOrigin(), Z_AX(), dAngRight) - EgtChangeGroupFrame( nPartId, frStart) -end - --- funzione che assembla i pezzi -function WinLib.AssembleFrame() - local nBottomPartId = EgtGetFirstNameInGroup( GDB_ID.ROOT, WIN_BOTTOM) - WinLib.PositionPart(nBottomPartId) - local nRightPartId = EgtGetFirstNameInGroup( GDB_ID.ROOT, WIN_RIGHT) - WinLib.PositionPart(nRightPartId) - local nTopPartId = EgtGetFirstNameInGroup( GDB_ID.ROOT, WIN_TOP) - WinLib.PositionPart(nTopPartId) - local nLeftPartId = EgtGetFirstNameInGroup( GDB_ID.ROOT, WIN_LEFT) - WinLib.PositionPart(nLeftPartId) - -- assemblo i pezzi - --local nRightPartId = EgtGetFirstNameInGroup( GDB_ID.ROOT, WIN_RIGHT) - --local nGeoRightLayerId = EgtGetFirstNameInGroup( nRightPartId, WIN_GEO) - --local nGeoRightId = EgtGetFirstNameInGroup( nGeoRightLayerId, WIN_RIGHT) - --local dDelta = EgtGetInfo( nGeoRightId, WIN_BOTTOMCPDELTA, 'd') - --local nFrameLayerId = EgtGetFirstNameInGroup( GDB_ID.ROOT, WIN_FRAME) - --local nOutlineLayerId = EgtGetFirstNameInGroup( nFrameLayerId, WIN_OUTLINE) - --local nFrameRightId = EgtGetFirstNameInGroup( nOutlineLayerId, WIN_RIGHT) - --local vtRight = EgtSV( nFrameRightId) - --local ptRight = EgtSP( nFrameRightId) + vtRight * dDelta - --local _, _, dAngRight = SphericalFromVector(vtRight) - --local frRight = Frame3d( ptRight) - --frRight:rotate( frRight:getOrigin(), Z_AX(), dAngRight) - --EgtChangeGroupFrame( nRightPartId, frRight) -end - ---------------------------------------------------------------------- -return WinLib diff --git a/Profiles/WinLib.lua b/Profiles/WinLib.lua deleted file mode 100644 index 419803a..0000000 --- a/Profiles/WinLib.lua +++ /dev/null @@ -1,958 +0,0 @@ --- --- EEEEEEEEEE GGGGGG TTTTTTTTTTTTTT --- EEEEEEEEEE GGGGGGGGGG TTTTTTTTTTTTTT --- EEEE GGGG GGGG TTTT --- EEEE GGGG TTTT --- EEEEEEE GGGG GGGGGGG TTTT --- EEEEEEE GGGG GGGGGGG TTTT --- EEEE GGGG GGGG TTTT --- EEEE GGGG GGGG TTTT --- EEEEEEEEEE GGGGGGGGGG TTTT --- EEEEEEEEEE GGGGGG TTTT --- --- by Egalware s.r.l. --- Window project software by Egalware s.r.l. 2023/05/02 - --- Tabella per definizione modulo -local WinLib = {} - --- Include -require( 'EgtBase') -_G.package.loaded.WinConst = nil -require( 'WinConst') - --- funzioni - --- funzione che crea il buco per la finestra -function WinLib.CreateHole( dWidth, dHeight) - -- creo gruppo per buco - local nAreaLayerId = EgtGroup( GDB_ID.ROOT) - EgtSetName( nAreaLayerId, WIN_FRAME) - local nAreaOutlineLayerId = EgtGroup( nAreaLayerId) - EgtSetName( nAreaOutlineLayerId, WIN_AREAOUTLINE) - -- disegno outline - local nHoleBottomId = EgtLine( nAreaOutlineLayerId, Point3d( 0, 0, 0), Point3d( dWidth, 0, 0)) - EgtSetName( nHoleBottomId, WIN_BOTTOM) - local nHoleRightId = EgtLine( nAreaOutlineLayerId, Point3d( dWidth, 0, 0), Point3d( dWidth, dHeight, 0)) - EgtSetName( nHoleRightId, WIN_RIGHT) - local nHoleTopId = EgtLine( nAreaOutlineLayerId, Point3d( dWidth, dHeight, 0), Point3d( 0, dHeight, 0)) - EgtSetName( nHoleTopId, WIN_TOP) - local nHoleLeftId = EgtLine( nAreaOutlineLayerId, Point3d( 0, dHeight, 0), Point3d( 0, 0, 0)) - EgtSetName( nHoleLeftId, WIN_LEFT) - return nAreaLayerId -end - --- funzione che crea il telaio a partire dal buco -function WinLib.CreateFrameOnHole( nHoleLayerId, dWidth, dHeight) - local nAreaOutlineLayerId = EgtGroup( nHoleLayerId) - EgtSetName( nAreaOutlineLayerId, WIN_OUTLINE) - -- disegno outline - local nHoleBottomId = EgtLine( nAreaOutlineLayerId, Point3d( 0, 0, 0), Point3d( dWidth, 0, 0)) - EgtSetName( nHoleBottomId, WIN_BOTTOM) - local nHoleRightId = EgtLine( nAreaOutlineLayerId, Point3d( dWidth, 0, 0), Point3d( dWidth, dHeight, 0)) - EgtSetName( nHoleRightId, WIN_RIGHT) - local nHoleTopId = EgtLine( nAreaOutlineLayerId, Point3d( dWidth, dHeight, 0), Point3d( 0, dHeight, 0)) - EgtSetName( nHoleTopId, WIN_TOP) - local nHoleLeftId = EgtLine( nAreaOutlineLayerId, Point3d( 0, dHeight, 0), Point3d( 0, 0, 0)) - EgtSetName( nHoleLeftId, WIN_LEFT) -end - --- funzione che crea il telaio a partire dal buco -function WinLib.CreateFrameAsHole( nAreaLayerId, JointType) - -- creo layer outline del frame - local nOutlineLayerId = EgtGroup( nAreaLayerId) - EgtSetName( nOutlineLayerId, WIN_OUTLINE) - -- recupero outline del buco - local nAreaOutlineLayerId = EgtGetFirstNameInGroup( nAreaLayerId, WIN_AREAOUTLINE) - -- lo copio - local nHoleOutlineId = EgtGetFirstInGroup( nAreaOutlineLayerId) - while nHoleOutlineId do - local nOutlineId = EgtCopy( nHoleOutlineId, nOutlineLayerId) - -- da modificare!!! - -- funzione che assegna i profili serramento ai vari outline - local sName = EgtGetName( nHoleOutlineId) - if sName == WIN_BOTTOM then - EgtSetInfo( nOutlineId, WIN_PROFILETYPE, WIN_SASH_BOTTOM) - elseif sName == WIN_RIGHT then - EgtSetInfo( nOutlineId, WIN_PROFILETYPE, WIN_SASH_TOP) - elseif sName == WIN_TOP then - EgtSetInfo( nOutlineId, WIN_PROFILETYPE, WIN_SASH_TOP) - elseif sName == WIN_LEFT then - EgtSetInfo( nOutlineId, WIN_PROFILETYPE, WIN_SASH_TOP) - end - nHoleOutlineId = EgtGetNext( nHoleOutlineId) - end - EgtSetInfo( nOutlineLayerId, WIN_JOINT_BL, JointType) - EgtSetInfo( nOutlineLayerId, WIN_JOINT_BR, JointType) - EgtSetInfo( nOutlineLayerId, WIN_JOINT_TL, JointType) - EgtSetInfo( nOutlineLayerId, WIN_JOINT_TR, JointType) -end - --- funzione che aggiunge una anta -function WinLib.AddSash( nAreaId) - -- creo nuova area - local nSashAreaId = EgtGroup( nAreaId) - EgtSetName( nSashAreaId, WIN_SASH) - EgtSetInfo( nSashAreaId, WIN_AREATYPE, WIN_AREATYPES.SASH) - -- recupero outline area precedente - local nPrevAreaOutlineId = EgtGetFirstNameInGroup( nAreaId, WIN_AREAOUTLINE) - -- lo copio per outline area dell'anta - local nAreaOutlineId = EgtCopy( nPrevAreaOutlineId, nSashAreaId) - return nSashAreaId -end - --- funzione che aggiunge un riempimento -function WinLib.AddFill( nAreaId, FillType) - -- creo nuova area - local nFillAreaId = EgtGroup( nAreaId) - EgtSetName( nFillAreaId, WIN_FILL) - EgtSetInfo( nFillAreaId, WIN_AREATYPE, WIN_AREATYPES.FILL) - -- recupero outline area precedente - local nPrevAreaOutlineId = EgtGetFirstNameInGroup( nAreaId, WIN_AREAOUTLINE) - -- lo copio per outline area dell'anta - local nAreaOutlineId = EgtCopy( nPrevAreaOutlineId, nFillAreaId) - -- imposto tipo di fill - EgtSetInfo( nFillAreaId, WIN_FILLTYPE, FillType) - return nFillAreaId -end - --- funzione che restituisce un outline dato un pezzo -function WinLib.GetOutlineFromPart( nPartId) - local nAreaId = EgtGetInfo( nPartId, WIN_AREA) - local nOutlineLayerId = EgtGetFirstNameInGroup( nAreaId, WIN_OUTLINE) - local sName = EgtGetName( nPartId) - return EgtGetFirstNameInGroup( nOutlineLayerId, sName) -end - --- funzione che crea un taglio split -function WinLib.AddSplit( nAreaLayerId, SplitType, MeasureType, nPosition, nProportion) - -- creo layer per split - local nSplitLayerId = EgtGroup( nAreaLayerId) - EgtSetName( nSplitLayerId, WIN_SPLIT) - -- recupero contorno area precedente - local nOutlineLayerId = EgtGetFirstNameInGroup( nAreaLayerId, WIN_AREAOUTLINE) - local b3OutlineLayer = EgtGetBBox( nOutlineLayerId, GDB_BB.STANDARD) - local OutlineIds = {} - local nOutlineId = EgtGetFirstInGroup( nOutlineLayerId) - while nOutlineId do - local sName = EgtGetName( nOutlineId) - table.insert( OutlineIds, nOutlineId) - nOutlineId = EgtGetNext( nOutlineId) - end - local nSplitId - if SplitType == WIN_SPLITTYPE.VERTICAL then - -- creo linea - local nCalcPosition = 0 - if MeasureType == WIN_MEASURE.ABSOLUT then - nCalcPosition = nPosition - elseif MeasureType == WIN_MEASURE.PROPORTIONAL then - nCalcPosition = b3OutlineLayer:getDimX() / nProportion * nPosition - end - local nTotSplitId = EgtLine( nSplitLayerId, Point3d( nCalcPosition, 0, 0), Point3d( nCalcPosition, b3OutlineLayer:getDimY(), 0)) - -- la taglio con i contorni - local nCompoOutlineId = EgtCurveCompo( nSplitLayerId, OutlineIds, false) - local nFROutlineId = EgtSurfFlatRegion( nSplitLayerId, nCompoOutlineId) - nSplitId = EgtTrimCurveWithRegion( nTotSplitId, nFROutlineId, true, false) - EgtSetName( nSplitId, WIN_VERTICAL) - EgtErase( { nCompoOutlineId, nFROutlineId}) - EgtSetInfo( nSplitId, WIN_PROFILETYPE, WIN_SASH_VERTICAL) - elseif SplitType == WIN_SPLITTYPE.HORIZONTAL then - -- creo linea - local nCalcPosition = 0 - if MeasureType == WIN_MEASURE.ABSOLUT then - nCalcPosition = nPosition - elseif MeasureType == WIN_MEASURE.PROPORTIONAL then - nCalcPosition = b3OutlineLayer:getDimY() / nProportion * nPosition - end - local nTotSplitId = EgtLine( nSplitLayerId, Point3d( 0, nCalcPosition, 0), Point3d( b3OutlineLayer:getDimX(), nCalcPosition, 0)) - -- la taglio con i contorni - local nCompoOutlineId = EgtCurveCompo( nSplitLayerId, OutlineIds, false) - local nFROutlineId = EgtSurfFlatRegion( nSplitLayerId, nCompoOutlineId) - nSplitId = EgtTrimCurveWithRegion( nTotSplitId, nFROutlineId, true, false) - EgtSetName( nSplitId, WIN_HORIZONTAL) - EgtErase( { nCompoOutlineId, nFROutlineId}) - EgtSetInfo( nSplitId, WIN_PROFILETYPE, WIN_SASH_HORIZONTAL) - end - -- creo aree - WinLib.CreateAreaFromSplit( nAreaLayerId, nSplitId) -end - --- funzione che crea tagli split multipli -function WinLib.AddSplits( nAreaLayerId, SplitType, MeasureType, PositionList, nProportion) - if MeasureType == WIN_MEASURE.ABSOLUT then - for nIndex = 1, #PositionList do - WinLib.AddSplit( nAreaLayerId, SplitType, MeasureType, PositionList[nIndex], nProportion) - end - elseif MeasureType == WIN_MEASURE.PROPORTIONAL then - for nIndex = 1, #PositionList do - WinLib.AddSplit( nAreaLayerId, SplitType, MeasureType, PositionList[nIndex], nProportion) - end - end -end - --- funzione che crea un taglio split da una curva generica -function WinLib.AddGenSplit( nAreaLayerId, nSplitId) - local nOutlineLayerId = EgtGetFirstNameInGroup( nAreaLayerId, WIN_OUTLINE) - local b3OutlineLayer = EgtGetBBox( nOutlineLayerId, GDB_BB.STANDARD) - -- allungo curva split per cercare intersezioni - EgtExtendCurveStartByLen( nSplitId, 10) - EgtExtendCurveEndByLen( nSplitId, 10) - -- recupero lista intersezioni - local OutlineInters = {} - local nOutlineId = EgtGetFirstInGroup( nOutlineLayerId) - while nOutlineId do - local sName = EgtGetName( nOutlineId) - -- verifico se ci siano intersezioni con questo outline - local ptInters = EgtIP( nSplitId, nOutlineId, EgtSP( nSplitId)) - if ptInters then - table.insert( OutlineInters, { Id = nOutlineId, IntersPoint = ptInters}) - end - nOutlineId = EgtGetNext( nOutlineId) - end - local ptStartSplit = EgtSP( nSplitId) - local ptEndSplit = EgtEP( nSplitId) - local StartInters - local EndInters - for nIndex = 1, #OutlineInters do - local CurrOutInters = OutlineInters[nIndex] - CurrOutInters.StartDistance = (CurrOutInters.IntersPoint - ptStartSplit):sqlen() - CurrOutInters.EndDistance = (CurrOutInters.IntersPoint - ptEndSplit):sqlen() - if not StartInters or CurrOutInters.StartDistance < StartInters.StartDistance then - StartInters = CurrOutInters - end - if not EndInters or CurrOutInters.EndDistance < EndInters.EndDistance then - EndInters = CurrOutInters - end - end - -- accorcio la curva split su intersezione outline - local dStartSplitInters = EgtCurveParamAtPoint( nSplitId, StartInters.IntersPoint) - EgtTrimCurveStartAtParam( nSplitId, dStartSplitInters) - local dEndSplitInters = EgtCurveParamAtPoint( nSplitId, EndInters.IntersPoint) - EgtTrimCurveEndAtParam( nSplitId, dEndSplitInters) - EgtSetInfo( nSplitId, WIN_SPLIT_STARTINTERS, StartInters.Id) - EgtSetInfo( nSplitId, WIN_SPLIT_ENDINTERS, EndInters.Id) - -- assegno nome e tipo profilo - EgtSetName( nSplitId, WIN_SPLIT) - EgtSetInfo( nSplitId, WIN_PROFILETYPE, WIN_SASH_HORIZONTAL) - -- creo aree - WinLib.CreateAreaFromSplit( nAreaLayerId, nSplitId) -end - --- funzione che crea tagli split da curve generiche -function WinLib.AddGenSplits( nAreaLayerId, SplitList) - for nIndex = 1, #SplitList do - WinLib.AddSplit( nAreaLayerId, SplitList[nIndex]) - end -end - --- funzione che crea le aree da un taglio split -function WinLib.CreateAreaFromSplit( nAreaLayerId, nSplitId) - -- creo layer per le due aree - local nArea1Id = EgtGroup( nAreaLayerId) - local nArea2Id = EgtGroup( nAreaLayerId) - EgtSetInfo( nArea1Id, 'SOU', nSplitId) - EgtSetName( nArea1Id , 'Area' .. 1) - local nArea1OutlineLayerId = EgtGroup( nArea1Id) - EgtSetName( nArea1OutlineLayerId , WIN_AREAOUTLINE) - EgtSetInfo( nArea2Id, 'SOU', nSplitId) - EgtSetName( nArea2Id , 'Area' .. 2) - local nArea2OutlineLayerId = EgtGroup( nArea2Id) - EgtSetName( nArea2OutlineLayerId , WIN_AREAOUTLINE) - local nOutlineLayerId = EgtGetFirstNameInGroup( nAreaLayerId, WIN_OUTLINE) - --local Outlines = {} - local nOutlineId = EgtGetFirstInGroup( nOutlineLayerId) - local nInters = 0 - while nOutlineId and nInters ~= 3 do - local sName = EgtGetName( nOutlineId) - -- calcolo intersezioni con questo outline - local ptInters = EgtIP( nSplitId, nOutlineId, EgtSP( nSplitId)) - if ptInters then - if nInters == 0 then - -- trovato primo punto di intersezione - inizio area 2 - nInters = 1 - local nCopyId = EgtCopy( nOutlineId, nArea2OutlineLayerId) - local dStartIntersParam = EgtCurveParamAtPoint( nCopyId, ptInters) - EgtTrimCurveStartAtParam( nCopyId, dStartIntersParam) - elseif nInters == 1 then - -- trovato secondo punto di intersezione - fine area 2 - nInters = 2 - local nCopyId = EgtCopy( nOutlineId, nArea2OutlineLayerId) - local dEndIntersParam = EgtCurveParamAtPoint( nCopyId, ptInters) - EgtTrimCurveEndAtParam( nCopyId, dEndIntersParam) - -- copio anche split - local nSplitCopyId = EgtCopy( nSplitId, nArea2OutlineLayerId) - if not AreSamePointExact( EgtEP( nCopyId), EgtSP( nSplitCopyId)) then - EgtInvertCurve( nSplitCopyId) - end - -- inizio area 1 - local nCopyId = EgtCopy( nOutlineId, nArea1OutlineLayerId) - local dStartIntersParam = EgtCurveParamAtPoint( nCopyId, ptInters) - EgtTrimCurveStartAtParam( nCopyId, dStartIntersParam) - elseif nInters == 2 then - -- trovato secondo punto di intersezione - fine area 1 - nInters = 3 - local nCopyId = EgtCopy( nOutlineId, nArea1OutlineLayerId) - local dEndIntersParam = EgtCurveParamAtPoint( nCopyId, ptInters) - EgtTrimCurveEndAtParam( nCopyId, dEndIntersParam) - -- copio anche split - local nSplitCopyId = EgtCopy( nSplitId, nArea1OutlineLayerId) - if not AreSamePointExact( EgtEP( nCopyId), EgtSP( nSplitCopyId)) then - EgtInvertCurve( nSplitCopyId) - end - end - elseif nInters == 1 then - -- copio nel profilo 2 - EgtCopy( nOutlineId, nArea2OutlineLayerId) - elseif nInters == 2 then - -- copio nel profilo 1 - EgtCopy( nOutlineId, nArea1OutlineLayerId) - end - -- aggiorno indice - nOutlineId = EgtGetNext( nOutlineId) - -- se arrivato alla fine riparto - if not nOutlineId then - nOutlineId = EgtGetFirstInGroup( nOutlineLayerId) - end - end -end - --- funzione che restituisce BBox del Ref del profilo -function WinLib.GetRefWithBBoxFromProfile( nProfileFrameLayerId, sProfileType) - local nProfileId = EgtGetFirstNameInGroup( nProfileFrameLayerId, sProfileType) - local nProfileRefId = EgtGetFirstNameInGroup( nProfileId, WIN_REF) - local b3Ref = EgtGetBBox( nProfileRefId, GDB_BB.STANDARD) - return nProfileId, b3Ref, nProfileRefId - end - --- funzione che restituisce ref e calcola delta controprofilo dal profilo passatogli -function WinLib.GetDeltaProfile( nProfileFrameLayerId, sProfileType) - local nProfileId, b3Ref, nProfileRefId = WinLib.GetRefWithBBoxFromProfile( nProfileFrameLayerId, sProfileType) - local nCPId = EgtGetFirstNameInGroup( nProfileId, WIN_CTRIN) - local b3CP = EgtGetBBox( nCPId, GDB_BB.STANDARD) - local dCPDelta = b3Ref:getDimY() - b3CP:getDimY() - return dCPDelta, b3Ref, nProfileId, nProfileRefId -end - --- funzione che crea le curve del geo -function WinLib.CreateFrameGeo( nOutlineId, nPrevOutlineId, nNextOutlineId, StartJointType, EndJointType, nProfileType, nGeoLayerId, nProfileFrameLayerId) - local nCurrCurveId - local nCurrOffsetId - local nPrevCurveId - local nNextCurveId - local dGeoWidth - -- recupero ref e controprofilo e calcolo delta del top, prev e next - local sCurrProfileType = EgtGetInfo( nOutlineId, WIN_PROFILETYPE) - local _, b3CurrRef, nCurrProfileId, nCurrProfileRefId = WinLib.GetDeltaProfile( nProfileFrameLayerId, sCurrProfileType) - local sPrevProfileType = EgtGetInfo( nPrevOutlineId, WIN_PROFILETYPE) - local dPrevCPDelta, _ = WinLib.GetDeltaProfile( nProfileFrameLayerId, sPrevProfileType) - local sNextProfileType = EgtGetInfo( nNextOutlineId, WIN_PROFILETYPE) - local dNextCPDelta, _ = WinLib.GetDeltaProfile( nProfileFrameLayerId, sNextProfileType) - -- calcolo spostamento della curva iniziale dovuto a posizione riferimento - local nProfileFrameId = EgtGetFirstNameInGroup( nCurrProfileId, WIN_SECTIONFRAME) - local frProfile = EgtFR( nProfileFrameId) - local b3CurrProfileFrame = EgtGetBBoxRef( nCurrProfileRefId, GDB_BB.STANDARD, frProfile) - local dCurrOffset = b3CurrProfileFrame:getMax():getX() - -- creo copie degli outline e li offsetto opportunamente - nCurrCurveId = EgtCopy( nOutlineId, nGeoLayerId) - EgtOffsetCurve( nCurrCurveId, dCurrOffset) - nCurrOffsetId = EgtCopy( nOutlineId, nGeoLayerId) - EgtOffsetCurve( nCurrOffsetId, dCurrOffset - b3CurrProfileFrame:getDimX()) - EgtInvertCurve( nCurrOffsetId) - if StartJointType == WIN_JNT.ANGLED then - -- calcolo la bisettrice - local vtMedia = ( ( EgtSV( nOutlineId) - EgtEV( nPrevOutlineId)) / 2) - if not vtMedia:normalize() then - vtMedia = EgtSV( nOutlineId) - vtMedia:rotate(Z_AX(), 90) - end - nPrevCurveId = EgtLinePVL( nGeoLayerId, EgtSP( nOutlineId), vtMedia, 3 * b3CurrProfileFrame:getDimX()) - EgtInvertCurve( nPrevCurveId) - else - nPrevCurveId = EgtCopy( nPrevOutlineId, nGeoLayerId) - end - if ( StartJointType == WIN_JNT.FULL_V and ( nProfileType == WIN_PRF.BOTTOM or nProfileType == WIN_PRF.TOP or nProfileType == WIN_PRF.HORIZONTAL)) or - ( StartJointType == WIN_JNT.FULL_H and ( nProfileType == WIN_PRF.RIGHT or nProfileType == WIN_PRF.LEFT or nProfileType == WIN_PRF.VERTICAL)) or - nProfileType == WIN_PRF.SPLIT then - EgtOffsetCurve( nPrevCurveId, - dPrevCPDelta) - EgtSetInfo( nGeoLayerId, WIN_STARTCPDELTA, dPrevCPDelta) - end - if EndJointType == WIN_JNT.ANGLED then - -- calcolo la bisettrice - local vtMedia = ( ( EgtSV( nNextOutlineId) - EgtEV( nOutlineId)) / 2) - if not vtMedia:normalize() then - vtMedia = EgtEV( nOutlineId) - vtMedia:rotate(Z_AX(), 90) - end - nNextCurveId = EgtLinePVL( nGeoLayerId, EgtEP( nOutlineId), vtMedia, 3 * b3CurrProfileFrame:getDimX()) - EgtInvertCurve( nNextCurveId) - else - nNextCurveId = EgtCopy( nNextOutlineId, nGeoLayerId) - end - if ( StartJointType == WIN_JNT.FULL_V and ( nProfileType == WIN_PRF.BOTTOM or nProfileType == WIN_PRF.TOP or nProfileType == WIN_PRF.HORIZONTAL)) or - ( StartJointType == WIN_JNT.FULL_H and ( nProfileType == WIN_PRF.RIGHT or nProfileType == WIN_PRF.LEFT or nProfileType == WIN_PRF.VERTICAL)) or - nProfileType == WIN_PRF.SPLIT then - EgtOffsetCurve( nNextCurveId, - dNextCPDelta) - EgtSetInfo( nGeoLayerId, WIN_ENDCPDELTA, dNextCPDelta) - end - dGeoWidth = b3CurrProfileFrame:getDimX() - -- salvo delta controprofilo - if StartJointType == WIN_JNT.FULL_V then - end - if EndJointType == WIN_JNT.FULL_V then - end - return nCurrCurveId, nCurrOffsetId, nPrevCurveId, nNextCurveId, dGeoWidth -end - --- funzione che calcola l'ingombro dei pezzi del telaio -function WinLib.CalcFrameGeo( nPartId, nOutlineId, nOutlineLayerId) - -- recupero profilo - local nProfileLayerId = EgtGetFirstNameInGroup( GDB_ID.ROOT, WIN_PROFILE) - local nProfileFrameLayerId = EgtGetFirstNameInGroup( nProfileLayerId, WIN_FRAME) - -- creo layer per ingombro - local nGeoLayerId = EgtGroup( nPartId) - EgtSetName( nGeoLayerId, WIN_GEO) - -- ricavo tipo dal nome - local sName = EgtGetName( nOutlineId) - local nProfileType = WIN_PRF.NULL - if sName == WIN_TOP then - nProfileType = WIN_PRF.TOP - elseif sName == WIN_BOTTOM then - nProfileType = WIN_PRF.BOTTOM - elseif sName == WIN_LEFT then - nProfileType = WIN_PRF.LEFT - elseif sName == WIN_RIGHT then - nProfileType = WIN_PRF.RIGHT - elseif sName == WIN_VERTICAL then - nProfileType = WIN_PRF.VERTICAL - elseif sName == WIN_HORIZONTAL then - nProfileType = WIN_PRF.HORIZONTAL - elseif sName == WIN_SPLIT then - nProfileType = WIN_PRF.SPLIT - end - local StartJointType - local EndJointType - local nNextOutlineId - local nPrevOutlineId - local nCurrCurveId - local nCurrOffsetId - local nPrevCurveId - local nNextCurveId - local dGeoWidth - if nProfileType == WIN_PRF.TOP then - -- recupero tipo di giunzioni - StartJointType = EgtGetInfo( nOutlineLayerId, WIN_JOINT_TR, 'i') - EndJointType = EgtGetInfo( nOutlineLayerId, WIN_JOINT_TL, 'i') - -- recupero outline precedente e successivo - nPrevOutlineId = EgtGetFirstNameInGroup( nOutlineLayerId, WIN_RIGHT) - nNextOutlineId = EgtGetFirstNameInGroup( nOutlineLayerId, WIN_LEFT) - elseif nProfileType == WIN_PRF.BOTTOM then - -- recupero tipo di giunzioni - StartJointType = EgtGetInfo( nOutlineLayerId, WIN_JOINT_BL, 'i') - EndJointType = EgtGetInfo( nOutlineLayerId, WIN_JOINT_BR, 'i') - -- recupero outline precedente - nPrevOutlineId = EgtGetFirstNameInGroup( nOutlineLayerId, WIN_LEFT) - nNextOutlineId = EgtGetFirstNameInGroup( nOutlineLayerId, WIN_RIGHT) - elseif nProfileType == WIN_PRF.LEFT then - -- recupero tipo di giunzioni - StartJointType = EgtGetInfo( nOutlineLayerId, WIN_JOINT_TL, 'i') - EndJointType = EgtGetInfo( nOutlineLayerId, WIN_JOINT_BL, 'i') - -- recupero outline precedente - nPrevOutlineId = EgtGetFirstNameInGroup( nOutlineLayerId, WIN_TOP) - nNextOutlineId = EgtGetFirstNameInGroup( nOutlineLayerId, WIN_BOTTOM) - elseif nProfileType == WIN_PRF.RIGHT then - -- recupero tipo di giunzioni - StartJointType = EgtGetInfo( nOutlineLayerId, WIN_JOINT_BR, 'i') - EndJointType = EgtGetInfo( nOutlineLayerId, WIN_JOINT_TR, 'i') - -- recupero outline precedente - nPrevOutlineId = EgtGetFirstNameInGroup( nOutlineLayerId, WIN_BOTTOM) - nNextOutlineId = EgtGetFirstNameInGroup( nOutlineLayerId, WIN_TOP) - elseif nProfileType == WIN_PRF.VERTICAL then - -- recupero tipo di giunzioni - StartJointType = WIN_JNT.FULL_H - EndJointType = WIN_JNT.FULL_H - -- recupero outline precedente - nPrevOutlineId = EgtGetFirstNameInGroup( nOutlineLayerId, WIN_BOTTOM) - nNextOutlineId = EgtGetFirstNameInGroup( nOutlineLayerId, WIN_TOP) - elseif nProfileType == WIN_PRF.HORIZONTAL then - -- recupero tipo di giunzioni - StartJointType = WIN_JNT.FULL_V - EndJointType = WIN_JNT.FULL_V - -- recupero outline precedente - nPrevOutlineId = EgtGetFirstNameInGroup( nOutlineLayerId, WIN_LEFT) - nNextOutlineId = EgtGetFirstNameInGroup( nOutlineLayerId, WIN_RIGHT) - elseif nProfileType == WIN_PRF.SPLIT then - local nStartId = EgtGetInfo( nOutlineId, WIN_SPLIT_STARTINTERS, 'i') - local nEndId = EgtGetInfo( nOutlineId, WIN_SPLIT_ENDINTERS, 'i') - local sStartName = EgtGetName( nStartId) - local sEndName = EgtGetName( nEndId) - -- recupero tipo di giunzioni - if sStartName == WIN_BOTTOM or sStartName == WIN_TOP then - StartJointType = WIN_JNT.FULL_H - else - StartJointType = WIN_JNT.FULL_V - end - if sEndName == WIN_BOTTOM or sEndName == WIN_TOP then - EndJointType = WIN_JNT.FULL_H - else - EndJointType = WIN_JNT.FULL_V - end - -- recupero outline precedente - nPrevOutlineId = EgtGetFirstNameInGroup( nOutlineLayerId, sStartName) - nNextOutlineId = EgtGetFirstNameInGroup( nOutlineLayerId, sEndName) - end - -- creo lati dell'outline - nCurrCurveId, nCurrOffsetId, nPrevCurveId, nNextCurveId, dGeoWidth = WinLib.CreateFrameGeo( nOutlineId, nPrevOutlineId, nNextOutlineId, StartJointType, EndJointType, nProfileType, nGeoLayerId, nProfileFrameLayerId) - -- calcolo punti di intersezione - local ptIntersCurrPrev = EgtIP( nCurrCurveId, nPrevCurveId, EgtSP( nCurrCurveId)) - if not ptIntersCurrPrev then - -- allungo per intersecare - EgtExtendCurveStartByLen( nCurrCurveId, 200) - EgtExtendCurveEndByLen( nPrevCurveId, 200) - ptIntersCurrPrev = EgtIP( nCurrCurveId, nPrevCurveId, EgtSP( nCurrCurveId)) - end - local ptIntersCurrNext = EgtIP( nCurrCurveId, nNextCurveId, EgtEP( nCurrCurveId)) - if not ptIntersCurrNext then - -- allungo per intersecare - EgtExtendCurveEndByLen( nCurrCurveId, 200) - EgtExtendCurveStartByLen( nNextCurveId, 200) - ptIntersCurrNext = EgtIP( nCurrCurveId, nNextCurveId, EgtEP( nCurrCurveId)) - end - local ptIntersCurrOffsetPrev = EgtIP( nCurrOffsetId, nPrevCurveId, EgtEP( nCurrOffsetId)) - if not ptIntersCurrOffsetPrev then - -- allungo per intersecare - EgtExtendCurveEndByLen( nCurrOffsetId, 1000) - EgtExtendCurveStartByLen( nPrevCurveId, 200) - ptIntersCurrOffsetPrev = EgtIP( nCurrOffsetId, nPrevCurveId, EgtEP( nCurrOffsetId)) - end - local ptIntersCurrOffsetNext = EgtIP( nCurrOffsetId, nNextCurveId, EgtSP( nCurrOffsetId)) - if not ptIntersCurrOffsetNext then - -- allungo per intersecare - EgtExtendCurveStartByLen( nCurrOffsetId, 1000) - EgtExtendCurveStartByLen( nNextCurveId, 200) - ptIntersCurrOffsetNext = EgtIP( nCurrOffsetId, nNextCurveId, EgtSP( nCurrOffsetId)) - end - -- calcolo accorciamenti dei lati copiati alle intersezioni - local dIntersCurrPrevParam = EgtCurveParamAtPoint( nCurrCurveId, ptIntersCurrPrev) - EgtTrimCurveStartAtParam( nCurrCurveId, dIntersCurrPrevParam) - local dIntersCurrNextParam = EgtCurveParamAtPoint( nCurrCurveId, ptIntersCurrNext) - EgtTrimCurveEndAtParam( nCurrCurveId, dIntersCurrNextParam) - local dIntersCurrOffsetNextParam = EgtCurveParamAtPoint( nCurrOffsetId, ptIntersCurrOffsetNext) - EgtTrimCurveStartAtParam( nCurrOffsetId, dIntersCurrOffsetNextParam) - local dIntersCurrOffsetPrevParam = EgtCurveParamAtPoint( nCurrOffsetId, ptIntersCurrOffsetPrev) - EgtTrimCurveEndAtParam( nCurrOffsetId, dIntersCurrOffsetPrevParam) - local dIntersPrevOffsetParam = EgtCurveParamAtPoint( nPrevCurveId, ptIntersCurrOffsetPrev) - EgtTrimCurveStartAtParam( nPrevCurveId, dIntersPrevOffsetParam) - local dIntersPrevCurrParam = EgtCurveParamAtPoint( nPrevCurveId, ptIntersCurrPrev) - EgtTrimCurveEndAtParam( nPrevCurveId, dIntersPrevCurrParam) - local dIntersNextCurrParam = EgtCurveParamAtPoint( nNextCurveId, ptIntersCurrNext) - EgtTrimCurveStartAtParam( nNextCurveId, dIntersNextCurrParam) - local dIntersNextOffsetParam = EgtCurveParamAtPoint( nNextCurveId, ptIntersCurrOffsetNext) - EgtTrimCurveEndAtParam( nNextCurveId, dIntersNextOffsetParam) - -- creo composita dai lati - EgtSetName( nCurrCurveId, WIN_GEO_OUT) - EgtSetName( nCurrOffsetId, WIN_GEO_IN) - EgtSetName( nNextCurveId, WIN_GEO_RIGHT) - EgtSetName( nPrevCurveId, WIN_GEO_LEFT) - -- salvo spessore serramento in geo - EgtSetInfo( nCurrCurveId, WIN_GEOWIDTH, dGeoWidth) - - return nCurrCurveId -end - --- funzione che posiziona i profili, li estrude e crea il solido -function WinLib.CalcStartEndProfileType(nProfileType, nOutlineId) - local StartJointType - local EndJointType - local nFrameLayerId = EgtGetFirstNameInGroup( GDB_ID.ROOT, WIN_FRAME) - local nOutlineLayerId = EgtGetFirstNameInGroup( nFrameLayerId, WIN_OUTLINE) - local sStartProfileType - local sEndProfileType - if nProfileType == WIN_PRF.BOTTOM then - StartJointType = EgtGetInfo( nOutlineLayerId, WIN_JOINT_BL, 'i') - EndJointType = EgtGetInfo( nOutlineLayerId, WIN_JOINT_BR, 'i') - if StartJointType == WIN_JNT.FULL_H then - sStartProfileType = WIN_OUTOFST - elseif StartJointType == WIN_JNT.FULL_V then - sStartProfileType = WIN_CTRINOFST - elseif StartJointType == WIN_JNT.ANGLED then - sStartProfileType = WIN_MINIZINKEN - end - if EndJointType == WIN_JNT.FULL_H then - sEndProfileType = WIN_OUTOFST - elseif EndJointType == WIN_JNT.FULL_V then - sEndProfileType = WIN_CTRINOFST - elseif EndJointType == WIN_JNT.ANGLED then - sEndProfileType = WIN_MINIZINKEN - end - elseif nProfileType == WIN_PRF.RIGHT then - StartJointType = EgtGetInfo( nOutlineLayerId, WIN_JOINT_BR, 'i') - EndJointType = EgtGetInfo( nOutlineLayerId, WIN_JOINT_TR, 'i') - if StartJointType == WIN_JNT.FULL_H then - sStartProfileType = WIN_CTRINOFST - elseif StartJointType == WIN_JNT.FULL_V then - sStartProfileType = WIN_OUTOFST - elseif StartJointType == WIN_JNT.ANGLED then - sStartProfileType = WIN_MINIZINKEN - end - if EndJointType == WIN_JNT.FULL_H then - sEndProfileType = WIN_CTRINOFST - elseif EndJointType == WIN_JNT.FULL_V then - sEndProfileType = WIN_OUTOFST - elseif EndJointType == WIN_JNT.ANGLED then - sEndProfileType = WIN_MINIZINKEN - end - elseif nProfileType == WIN_PRF.TOP then - StartJointType = EgtGetInfo( nOutlineLayerId, WIN_JOINT_TR, 'i') - EndJointType = EgtGetInfo( nOutlineLayerId, WIN_JOINT_TL, 'i') - if StartJointType == WIN_JNT.FULL_H then - sStartProfileType = WIN_OUTOFST - elseif StartJointType == WIN_JNT.FULL_V then - sStartProfileType = WIN_CTRINOFST - elseif StartJointType == WIN_JNT.ANGLED then - sStartProfileType = WIN_MINIZINKEN - end - if EndJointType == WIN_JNT.FULL_H then - sEndProfileType = WIN_OUTOFST - elseif EndJointType == WIN_JNT.FULL_V then - sEndProfileType = WIN_CTRINOFST - elseif EndJointType == WIN_JNT.ANGLED then - sEndProfileType = WIN_MINIZINKEN - end - elseif nProfileType == WIN_PRF.LEFT then - StartJointType = EgtGetInfo( nOutlineLayerId, WIN_JOINT_TL, 'i') - EndJointType = EgtGetInfo( nOutlineLayerId, WIN_JOINT_BL, 'i') - if StartJointType == WIN_JNT.FULL_H then - sStartProfileType = WIN_CTRINOFST - elseif StartJointType == WIN_JNT.FULL_V then - sStartProfileType = WIN_OUTOFST - elseif StartJointType == WIN_JNT.ANGLED then - sStartProfileType = WIN_MINIZINKEN - end - if EndJointType == WIN_JNT.FULL_H then - sEndProfileType = WIN_CTRINOFST - elseif EndJointType == WIN_JNT.FULL_V then - sEndProfileType = WIN_OUTOFST - elseif EndJointType == WIN_JNT.ANGLED then - sEndProfileType = WIN_MINIZINKEN - end - elseif nProfileType == WIN_PRF.VERTICAL then - StartJointType = WIN_JNT.FULL_H - EndJointType = WIN_JNT.FULL_H - sStartProfileType = WIN_CTRINOFST - sEndProfileType = WIN_CTRINOFST - elseif nProfileType == WIN_PRF.HORIZONTAL then - StartJointType = WIN_JNT.FULL_V - EndJointType = WIN_JNT.FULL_V - sStartProfileType = WIN_CTRINOFST - sEndProfileType = WIN_CTRINOFST - elseif nProfileType == WIN_PRF.SPLIT then - local nStartId = EgtGetInfo( nOutlineId, WIN_SPLIT_STARTINTERS, 'i') - local nEndId = EgtGetInfo( nOutlineId, WIN_SPLIT_ENDINTERS, 'i') - local sStartName = EgtGetName( nStartId) - local sEndName = EgtGetName( nEndId) - -- recupero tipo di giunzioni - if sStartName == WIN_BOTTOM or sStartName == WIN_TOP then - StartJointType = WIN_JNT.FULL_H - else - StartJointType = WIN_JNT.FULL_V - end - if sEndName == WIN_BOTTOM or sEndName == WIN_TOP then - EndJointType = WIN_JNT.FULL_H - else - EndJointType = WIN_JNT.FULL_V - end - sStartProfileType = WIN_CTRINOFST - sEndProfileType = WIN_CTRINOFST - end - return sStartProfileType, sEndProfileType, StartJointType, EndJointType -end - --- funzione che posiziona i profili, li estrude e crea il solido -function WinLib.MakeSolidByExtrusion(nGeoId, nOutlineId, nMainProfileId, nStartProfileId, nEndProfileId, nProfileType, nSolidLayerId) - -- recupero outline - local nPartId = EgtGetParent( nSolidLayerId) - local nAreaId = EgtGetInfo( nPartId, WIN_AREA) - local nGeoLayerId = EgtGetParent( nGeoId) - -- recupero geo - local nPrevGeoId = EgtGetFirstNameInGroup( nGeoLayerId, WIN_GEO_LEFT) - local nNextGeoId = EgtGetFirstNameInGroup( nGeoLayerId, WIN_GEO_RIGHT) - -- recupero BBox e larghezza del geo - local dGeoWidth = EgtGetInfo( nGeoId, WIN_GEOWIDTH, 'd') - -- creo guida Main - local nGuideId = EgtCopy( nOutlineId, nSolidLayerId) - EgtExtendCurveStartByLen( nGuideId, 2 * dGeoWidth) - EgtExtendCurveEndByLen( nGuideId, 2 * dGeoWidth) - -- recupero frame del profilo - local nMainProfileFrameId = EgtGetFirstNameInGroup( nMainProfileId, WIN_SECTIONFRAME) - local frInvertMainProfile = EgtFR( nMainProfileFrameId) - frInvertMainProfile:invert() - -- lo applico a tutte le geometrie del profilo - EgtTransform( EgtGetAllInGroup( nMainProfileId), frInvertMainProfile) - -- assegno come riferimento del profilo il punto start dell'outline - EgtChangeGroupFrame( nMainProfileId, Frame3d( EgtSP( nGuideId), - EgtSV( nGuideId))) - -- recupero outline del profilo Main e lo estrudo - local nMainOutlineId = EgtGetFirstNameInGroup( nMainProfileId, WIN_SECTION) - local nMainExtrusionId = EgtSurfTmSwept( nSolidLayerId, nMainOutlineId, nGuideId, false) - -- posiziono il profilo Start - local nRefStartProfileId = EgtGetFirstNameInGroup( nStartProfileId, WIN_REF) - local b3RefStartProfile = EgtGetBBoxGlob(nRefStartProfileId, GDB_BB.STANDARD) - local dStartDelta = EgtGetInfo( nGeoLayerId, WIN_STARTCPDELTA, 'd') or 0 - -- creo guida per estrusione - local nStartGuideId = EgtCopy( nPrevGeoId, nSolidLayerId) - EgtExtendCurveStartByLen( nStartGuideId, 2 * dGeoWidth) - EgtExtendCurveEndByLen( nStartGuideId, 2 * dGeoWidth) - -- recupero frame del profilo - local nStartProfileFrameId = EgtGetFirstNameInGroup( nStartProfileId, WIN_SECTIONFRAME) - local frStartProfile = EgtFR( nStartProfileFrameId) - -- lo sposto se controprofilo - frStartProfile:move( - frStartProfile:getVersX() * dStartDelta) - frStartProfile:invert() - -- lo applico a tutte le geometrie del profilo - EgtTransform( EgtGetAllInGroup( nStartProfileId), frStartProfile) - -- assegno come riferimento del profilo il punto start dell'outline - EgtChangeGroupFrame( nStartProfileId, Frame3d( EgtSP( nStartGuideId), - EgtSV( nStartGuideId))) - -- in base al tipo di incastro e di pezzo, ricavo i controprofili - local sStartProfileType - local sEndProfileType - -- recupero tipo di giunzioni - sStartProfileType, sEndProfileType, StartJointType, EndJointType = WinLib.CalcStartEndProfileType( nProfileType, nOutlineId) - -- recupero outline del profilo Start e lo estrudo - local nOutStartProfileId - if sStartProfileType == WIN_MINIZINKEN then - nOutStartProfileId = EgtLine( nStartProfileId, EgtSP( nPrevGeoId), EgtSP( nPrevGeoId) - Z_AX() * b3RefStartProfile:getDimY(), GDB_RT.GLOB) - EgtInvertCurve( nOutStartProfileId) - else - nOutStartProfileId = EgtGetFirstNameInGroup( nStartProfileId, sStartProfileType) - end - local nStartExtrusionId = EgtSurfTmSwept( nSolidLayerId, nOutStartProfileId, nStartGuideId, false) - -- taglio estrusi per ottenere solido - local nExtrCopyId = EgtCopy( nMainExtrusionId, nSolidLayerId) - EgtSurfTmCut( nMainExtrusionId, nStartExtrusionId, true, false) - EgtSurfTmCut( nStartExtrusionId, nExtrCopyId, true, false) - -- posiziono il profilo End - local nRefEndProfileId = EgtGetFirstNameInGroup( nEndProfileId, WIN_REF) - local b3RefEndProfile = EgtGetBBoxGlob(nRefEndProfileId, GDB_BB.STANDARD) - local dEndDelta = EgtGetInfo( nGeoLayerId, WIN_ENDCPDELTA, 'd') or 0 - -- creo guida per estrusione - local nEndGuideId = EgtCopy( nNextGeoId, nSolidLayerId) - EgtExtendCurveStartByLen( nEndGuideId, 2 * dGeoWidth) - EgtExtendCurveEndByLen( nEndGuideId, 2 * dGeoWidth) - -- recupero frame del profilo - local nEndProfileFrameId = EgtGetFirstNameInGroup( nEndProfileId, WIN_SECTIONFRAME) - local frEndProfile = EgtFR( nEndProfileFrameId) - frEndProfile:move( - frEndProfile:getVersX() * dEndDelta) - frEndProfile:invert() - -- lo applico a tutte le geometrie del profilo - EgtTransform( EgtGetAllInGroup( nEndProfileId), frEndProfile) - -- assegno come riferimento del profilo il punto start dell'outline - EgtChangeGroupFrame( nEndProfileId, Frame3d( EgtSP( nEndGuideId), - EgtSV( nEndGuideId))) - -- recupero outline del profilo End e lo estrudo - local nOutEndProfileId - if sEndProfileType == WIN_MINIZINKEN then - nOutEndProfileId = EgtLine( nEndProfileId, EgtSP( nNextGeoId), EgtSP( nNextGeoId) - Z_AX() * b3RefEndProfile:getDimY(), GDB_RT.GLOB) - else - nOutEndProfileId = EgtGetFirstNameInGroup( nEndProfileId, sEndProfileType) - end - -- if (EndJointType == WIN_JNT.FULL_H and ( nProfileType == WIN_PRF.BOTTOM or nProfileType == WIN_PRF.TOP or nProfileType == WIN_PRF.LEFT)) or - -- (EndJointType == WIN_JNT.FULL_V and ( nProfileType == WIN_PRF.RIGHT)) then - -- EgtInvertCurve( nOutEndProfileId) - -- end - local nEndExtrusionId = EgtSurfTmSwept( nSolidLayerId, nOutEndProfileId, nEndGuideId, false) - -- taglio estrusi per ottenere solido - EgtSurfTmCut( nMainExtrusionId, nEndExtrusionId, true, false) - EgtSurfTmCut( nEndExtrusionId, nExtrCopyId, true, false) - EgtErase( nExtrCopyId) -end - --- funzione che crea il solido del pezzo del telaio -function WinLib.CalcFrameSolid(nPartId, nOutlineId, nGeoId, nOutlineLayerId) - -- recupero profilo - local nProfileId = EgtGetFirstNameInGroup( GDB_ID.ROOT, WIN_PROFILE) - local nProfileFrameLayerId = EgtGetFirstNameInGroup( nProfileId, WIN_FRAME) - -- creo layer per solido e per profili di estrusione - local nSolidLayerId = EgtGroup( nPartId) - EgtSetName( nSolidLayerId, WIN_SOLID) - local nFrameProfileLayerId = EgtGroup( nPartId) - EgtSetName( nFrameProfileLayerId, WIN_PROFILE) - -- ricavo tipo dal nome - local sName = EgtGetName( nPartId) - local nProfileType = WIN_PRF.NULL - if sName == WIN_TOP then - nProfileType = WIN_PRF.TOP - elseif sName == WIN_BOTTOM then - nProfileType = WIN_PRF.BOTTOM - elseif sName == WIN_LEFT then - nProfileType = WIN_PRF.LEFT - elseif sName == WIN_RIGHT then - nProfileType = WIN_PRF.RIGHT - elseif sName == WIN_VERTICAL then - nProfileType = WIN_PRF.VERTICAL - elseif sName == WIN_HORIZONTAL then - nProfileType = WIN_PRF.HORIZONTAL - elseif sName == WIN_SPLIT then - nProfileType = WIN_PRF.SPLIT - end - local nPrevOutlineId - local nNextOutlineId - local nOrigMainProfileId = GDB_ID.NULL - local nMainProfileId = GDB_ID.NULL - local nOrigStartProfileId = GDB_ID.NULL - local nStartProfileId = GDB_ID.NULL - local nOrigEndProfileId = GDB_ID.NULL - local nEndProfileId = GDB_ID.NULL - -- recupero outline precedente e successivo - if nProfileType == WIN_PRF.BOTTOM then - nPrevOutlineId = EgtGetFirstNameInGroup( nOutlineLayerId, WIN_LEFT) - nNextOutlineId = EgtGetFirstNameInGroup( nOutlineLayerId, WIN_RIGHT) - elseif nProfileType == WIN_PRF.RIGHT then - nPrevOutlineId = EgtGetFirstNameInGroup( nOutlineLayerId, WIN_BOTTOM) - nNextOutlineId = EgtGetFirstNameInGroup( nOutlineLayerId, WIN_TOP) - elseif nProfileType == WIN_PRF.TOP then - nPrevOutlineId = EgtGetFirstNameInGroup( nOutlineLayerId, WIN_RIGHT) - nNextOutlineId = EgtGetFirstNameInGroup( nOutlineLayerId, WIN_LEFT) - elseif nProfileType == WIN_PRF.LEFT then - nPrevOutlineId = EgtGetFirstNameInGroup( nOutlineLayerId, WIN_TOP) - nNextOutlineId = EgtGetFirstNameInGroup( nOutlineLayerId, WIN_BOTTOM) - elseif nProfileType == WIN_PRF.VERTICAL then - nPrevOutlineId = EgtGetFirstNameInGroup( nOutlineLayerId, WIN_BOTTOM) - nNextOutlineId = EgtGetFirstNameInGroup( nOutlineLayerId, WIN_TOP) - elseif nProfileType == WIN_PRF.HORIZONTAL then - nPrevOutlineId = EgtGetFirstNameInGroup( nOutlineLayerId, WIN_LEFT) - nNextOutlineId = EgtGetFirstNameInGroup( nOutlineLayerId, WIN_RIGHT) - elseif nProfileType == WIN_PRF.SPLIT then - local nStartId = EgtGetInfo( nOutlineId, WIN_SPLIT_STARTINTERS, 'i') - local nEndId = EgtGetInfo( nOutlineId, WIN_SPLIT_ENDINTERS, 'i') - local sStartName = EgtGetName( nStartId) - local sEndName = EgtGetName( nEndId) - nPrevOutlineId = EgtGetFirstNameInGroup( nOutlineLayerId, sStartName) - nNextOutlineId = EgtGetFirstNameInGroup( nOutlineLayerId, sEndName) - end - -- recupero profilo e controprofili - local sCurrProfileType = EgtGetInfo( nOutlineId, WIN_PROFILETYPE) - local sPrevProfileType = EgtGetInfo( nPrevOutlineId, WIN_PROFILETYPE) - local sNextProfileType = EgtGetInfo( nNextOutlineId, WIN_PROFILETYPE) - nOrigMainProfileId = EgtGetFirstNameInGroup( nProfileFrameLayerId, sCurrProfileType) - nOrigStartProfileId = EgtGetFirstNameInGroup( nProfileFrameLayerId, sPrevProfileType) - nOrigEndProfileId = EgtGetFirstNameInGroup( nProfileFrameLayerId, sNextProfileType) - -- creo copie di profilo e controprofili - nMainProfileId = EgtCopy( nOrigMainProfileId, nFrameProfileLayerId) - EgtSetName( nMainProfileId, WIN_PRF_MAIN) - nStartProfileId = EgtCopy( nOrigStartProfileId, nFrameProfileLayerId) - EgtSetName( nStartProfileId, WIN_PRF_START) - nEndProfileId = EgtCopy( nOrigEndProfileId, nFrameProfileLayerId) - EgtSetName( nEndProfileId, WIN_PRF_END) - -- creo solido dai profili - WinLib.MakeSolidByExtrusion(nGeoId, nOutlineId, nMainProfileId, nStartProfileId, nEndProfileId, nProfileType, nSolidLayerId) - end - - -- funzione che calcola l'ingombro dei pezzi del telaio -function WinLib.CreatePartFromOutline( nAreaLayerId, nOutlineId) - local nOutlineLayerId = EgtGetFirstNameInGroup( nAreaLayerId, WIN_OUTLINE) - -- se area senza outline, cerco quella superiore - if not nOutlineLayerId then - local nParentAreaLayerId = EgtGetParent( nAreaLayerId) - if nParentAreaLayerId then - nOutlineLayerId = EgtGetFirstNameInGroup( nParentAreaLayerId, WIN_OUTLINE) - end - end - -- ricavo tipo dal nome - local sName = EgtGetName( nOutlineId) - local nProfileType = WIN_PRF.NULL - if sName == WIN_TOP then - nProfileType = WIN_PRF.TOP - elseif sName == WIN_BOTTOM then - nProfileType = WIN_PRF.BOTTOM - elseif sName == WIN_LEFT then - nProfileType = WIN_PRF.LEFT - elseif sName == WIN_RIGHT then - nProfileType = WIN_PRF.RIGHT - elseif sName == WIN_VERTICAL then - nProfileType = WIN_PRF.VERTICAL - elseif sName == WIN_HORIZONTAL then - nProfileType = WIN_PRF.HORIZONTAL - elseif sName == WIN_SPLIT then - nProfileType = WIN_PRF.SPLIT - end - -- creo pezzo - local nPartId = EgtGroup( GDB_ID.ROOT) - EgtSetName( nPartId, sName) - if nProfileType == WIN_PRF.BOTTOM or nProfileType == WIN_PRF.TOP or nProfileType == WIN_PRF.HORIZONTAL then - EgtSetColor( nPartId, Color3d( 204, 102, 0)) - elseif nProfileType == WIN_PRF.RIGHT or nProfileType == WIN_PRF.LEFT or nProfileType == WIN_PRF.VERTICAL then - EgtSetColor( nPartId, Color3d( 251, 128, 4)) - else - EgtSetColor( nPartId, Color3d( 255, 159, 57)) - end - - -- inserisco riferimento alla sua area - EgtSetInfo( nPartId, WIN_AREA, nAreaLayerId) - - -- disegno ingombro - local nGeoId = WinLib.CalcFrameGeo( nPartId, nOutlineId, nOutlineLayerId) - - -- disegno solido - WinLib.CalcFrameSolid(nPartId, nOutlineId, nGeoId, nOutlineLayerId) - - -- offset per distanziare i pezzi - --local dYPosOffset = 300 * ( nProfileType - 1) - --EgtChangeGroupFrame( nPartId, Frame3d( Point3d( 0, dYPosOffset, 0))) - -end - --- funzione che posiziona un pezzo -function WinLib.PositionPart(nPartId) - -- ricavo tipo dal nome - local sName = EgtGetName( nPartId) - local sDelta = '' - if sName == WIN_BOTTOM then - sDelta = WIN_STARTCPDELTA - elseif sName == WIN_RIGHT then - sDelta = WIN_STARTCPDELTA - elseif sName == WIN_TOP then - sDelta = WIN_STARTCPDELTA - elseif sName == WIN_LEFT then - sDelta = WIN_STARTCPDELTA - end - -- calcolo nuovo riferimento - local nGeoPartLayerId = EgtGetFirstNameInGroup( nPartId, WIN_GEO) - local nGeoPartId = EgtGetFirstNameInGroup( nGeoPartLayerId, sName) - local dDelta = EgtGetInfo( nGeoPartId, sDelta, 'd') or 0 - local nFrameLayerId = EgtGetFirstNameInGroup( GDB_ID.ROOT, WIN_FRAME) - local nOutlineLayerId = EgtGetFirstNameInGroup( nFrameLayerId, WIN_OUTLINE) - local nFramePartId = EgtGetFirstNameInGroup( nOutlineLayerId, sName) - local vtStart = EgtSV( nFramePartId) - local ptStart = EgtSP( nFramePartId) + vtStart * dDelta - local _, _, dAngRight = SphericalFromVector(vtStart) - local frStart = Frame3d( ptStart) - frStart:rotate( frStart:getOrigin(), Z_AX(), dAngRight) - EgtChangeGroupFrame( nPartId, frStart) -end - --- funzione che assembla i pezzi -function WinLib.AssembleFrame() - local nBottomPartId = EgtGetFirstNameInGroup( GDB_ID.ROOT, WIN_BOTTOM) - WinLib.PositionPart(nBottomPartId) - local nRightPartId = EgtGetFirstNameInGroup( GDB_ID.ROOT, WIN_RIGHT) - WinLib.PositionPart(nRightPartId) - local nTopPartId = EgtGetFirstNameInGroup( GDB_ID.ROOT, WIN_TOP) - WinLib.PositionPart(nTopPartId) - local nLeftPartId = EgtGetFirstNameInGroup( GDB_ID.ROOT, WIN_LEFT) - WinLib.PositionPart(nLeftPartId) - -- assemblo i pezzi - --local nRightPartId = EgtGetFirstNameInGroup( GDB_ID.ROOT, WIN_RIGHT) - --local nGeoRightLayerId = EgtGetFirstNameInGroup( nRightPartId, WIN_GEO) - --local nGeoRightId = EgtGetFirstNameInGroup( nGeoRightLayerId, WIN_RIGHT) - --local dDelta = EgtGetInfo( nGeoRightId, WIN_BOTTOMCPDELTA, 'd') - --local nFrameLayerId = EgtGetFirstNameInGroup( GDB_ID.ROOT, WIN_FRAME) - --local nOutlineLayerId = EgtGetFirstNameInGroup( nFrameLayerId, WIN_OUTLINE) - --local nFrameRightId = EgtGetFirstNameInGroup( nOutlineLayerId, WIN_RIGHT) - --local vtRight = EgtSV( nFrameRightId) - --local ptRight = EgtSP( nFrameRightId) + vtRight * dDelta - --local _, _, dAngRight = SphericalFromVector(vtRight) - --local frRight = Frame3d( ptRight) - --frRight:rotate( frRight:getOrigin(), Z_AX(), dAngRight) - --EgtChangeGroupFrame( nRightPartId, frRight) -end - ---------------------------------------------------------------------- -return WinLib diff --git a/Projects/Rect_DoubleHorizontalSash_Mullion.jwd b/Projects/Rect_DoubleHorizontalSash_Mullion.jwd deleted file mode 100644 index 2b45d92..0000000 --- a/Projects/Rect_DoubleHorizontalSash_Mullion.jwd +++ /dev/null @@ -1,66 +0,0 @@ -{ - "Area1": { - "Area1": { - "Area1": { - "Area1": { - "AreaType": 3, - "FillType": 1 - }, - "AreaType": 2, - "Joint": { - "JointBL": 3, - "JointBR": 3, - "JointTL": 3, - "JointTR": 3 - } - }, - "AreaType": 0 - }, - "Area2": { - "Area1": { - "Area1": { - "AreaType": 3, - "FillType": 1 - }, - "AreaType": 2, - "Joint": { - "JointBL": 3, - "JointBR": 3, - "JointTL": 3, - "JointTR": 3 - } - }, - "AreaType": 0 - }, - "AreaType": 1, - "Joint": { - "JointBL": 2, - "JointBR": 2, - "JointTL": 2, - "JointTR": 2 - }, - "Outline": [ { - "CurveType": 256, - "ptEnd": [ 1800.0, 0.0, 0.0 ], - "ptStart": [ 0.0, 0.0, 0.0 ] - }, { - "CurveType": 256, - "ptEnd": [ 1800.0, 1500.0, 0.0 ], - "ptStart": [ 1800.0, 0.0, 0.0 ] - }, { - "CurveType": 256, - "ptEnd": [ 0.0, 1500.0, 0.0 ], - "ptStart": [ 1800.0, 1500.0, 0.0 ] - }, { - "CurveType": 256, - "ptEnd": [ 0.0, 0.0, 0.0 ], - "ptStart": [ 0.0, 1500.0, 0.0 ] - } ], - "Split": [ { - "CurveType": 256, - "ptEnd": [ 1800.0, 750.0, 0.0 ], - "ptStart": [ 0.0, 750.0, 0.0 ] - } ] - }, - "ProfilePath": "c:\\EgtData\\EgwWindowLua\\Profiles\\Profilo78 - Offset.nge" -} \ No newline at end of file diff --git a/Projects/Rect_DoubleVerticalSash_French.jwd b/Projects/Rect_DoubleVerticalSash_French.jwd deleted file mode 100644 index bf89396..0000000 --- a/Projects/Rect_DoubleVerticalSash_French.jwd +++ /dev/null @@ -1,68 +0,0 @@ -{ - "Area1": { - "Area1": { - "Area1": { - "Area1": { - "AreaType": 3, - "FillType": 1 - }, - "AreaType": 2, - "Joint": { - "JointBL": 3, - "JointBR": 3, - "JointTL": 3, - "JointTR": 3 - }, - "SashType": 2 - }, - "AreaType": 0 - }, - "Area2": { - "Area1": { - "Area1": { - "AreaType": 3, - "FillType": 1 - }, - "AreaType": 2, - "Joint": { - "JointBL": 3, - "JointBR": 3, - "JointTL": 3, - "JointTR": 3 - }, - "SashType": 1 - }, - "AreaType": 0 - }, - "AreaType": 1, - "Joint": { - "JointBL": 2, - "JointBR": 2, - "JointTL": 2, - "JointTR": 2 - }, - "Outline": [ { - "CurveType": 256, - "ptEnd": [ 1800.0, 0.0, 0.0 ], - "ptStart": [ 0.0, 0.0, 0.0 ] - }, { - "CurveType": 256, - "ptEnd": [ 1800.0, 1500.0, 0.0 ], - "ptStart": [ 1800.0, 0.0, 0.0 ] - }, { - "CurveType": 256, - "ptEnd": [ 0.0, 1500.0, 0.0 ], - "ptStart": [ 1800.0, 1500.0, 0.0 ] - }, { - "CurveType": 256, - "ptEnd": [ 0.0, 0.0, 0.0 ], - "ptStart": [ 0.0, 1500.0, 0.0 ] - } ], - "Split": [ { - "CurveType": 256, - "ptEnd": [ 900.0, 1500.0, 0.0 ], - "ptStart": [ 900.0, 0.0, 0.0 ] - } ] - }, - "ProfilePath": "c:\\EgtData\\EgwWindowLua\\Profiles\\Profilo78 - Offset.nge" -} \ No newline at end of file diff --git a/Projects/Rect_DoubleVerticalSash_Mullion.jwd b/Projects/Rect_DoubleVerticalSash_Mullion.jwd deleted file mode 100644 index 0e78c02..0000000 --- a/Projects/Rect_DoubleVerticalSash_Mullion.jwd +++ /dev/null @@ -1,66 +0,0 @@ -{ - "Area1": { - "Area1": { - "Area1": { - "Area1": { - "AreaType": 3, - "FillType": 1 - }, - "AreaType": 2, - "Joint": { - "JointBL": 3, - "JointBR": 3, - "JointTL": 3, - "JointTR": 3 - } - }, - "AreaType": 0 - }, - "Area2": { - "Area1": { - "Area1": { - "AreaType": 3, - "FillType": 1 - }, - "AreaType": 2, - "Joint": { - "JointBL": 3, - "JointBR": 3, - "JointTL": 3, - "JointTR": 3 - } - }, - "AreaType": 0 - }, - "AreaType": 1, - "Joint": { - "JointBL": 2, - "JointBR": 2, - "JointTL": 2, - "JointTR": 2 - }, - "Outline": [ { - "CurveType": 256, - "ptEnd": [ 1800.0, 0.0, 0.0 ], - "ptStart": [ 0.0, 0.0, 0.0 ] - }, { - "CurveType": 256, - "ptEnd": [ 1800.0, 1500.0, 0.0 ], - "ptStart": [ 1800.0, 0.0, 0.0 ] - }, { - "CurveType": 256, - "ptEnd": [ 0.0, 1500.0, 0.0 ], - "ptStart": [ 1800.0, 1500.0, 0.0 ] - }, { - "CurveType": 256, - "ptEnd": [ 0.0, 0.0, 0.0 ], - "ptStart": [ 0.0, 1500.0, 0.0 ] - } ], - "Split": [ { - "CurveType": 256, - "ptEnd": [ 900.0, 1500.0, 0.0 ], - "ptStart": [ 900.0, 0.0, 0.0 ] - } ] - }, - "ProfilePath": "c:\\EgtData\\EgwWindowLua\\Profiles\\Profilo78 - Offset.nge" -} \ No newline at end of file diff --git a/Projects/Rect_FixedGlass.jwd b/Projects/Rect_FixedGlass.jwd deleted file mode 100644 index ce03528..0000000 --- a/Projects/Rect_FixedGlass.jwd +++ /dev/null @@ -1,34 +0,0 @@ -{ - "Area1": { - "Area1": { - "AreaType": 3, - "FillType": 1 - }, - "AreaType": 1, - "BottomRail": 1, - "Joint": { - "JointBL": 2, - "JointBR": 2, - "JointTL": 2, - "JointTR": 2 - }, - "Outline": [ { - "CurveType": 256, - "ptEnd": [ 1800.0, 0.0, 0.0 ], - "ptStart": [ 0.0, 0.0, 0.0 ] - }, { - "CurveType": 256, - "ptEnd": [ 1800.0, 1500.0, 0.0 ], - "ptStart": [ 1800.0, 0.0, 0.0 ] - }, { - "CurveType": 256, - "ptEnd": [ 0.0, 1500.0, 0.0 ], - "ptStart": [ 1800.0, 1500.0, 0.0 ] - }, { - "CurveType": 256, - "ptEnd": [ 0.0, 0.0, 0.0 ], - "ptStart": [ 0.0, 1500.0, 0.0 ] - } ] - }, - "ProfilePath": "c:\\EgtData\\EgwWindowLua\\Profiles\\Profilo78 - Offset.nge" -} \ No newline at end of file diff --git a/Projects/Rect_FixedGlass_Vertical&HorizontalSplit.jwd b/Projects/Rect_FixedGlass_Vertical&HorizontalSplit.jwd deleted file mode 100644 index 185752f..0000000 --- a/Projects/Rect_FixedGlass_Vertical&HorizontalSplit.jwd +++ /dev/null @@ -1,79 +0,0 @@ -{ - "Area1": { - "Area1": { - "Area1": { - "Area1": { - "AreaType": 3, - "FillType": 1 - }, - "AreaType": 0 - }, - "Area2": { - "Area1": { - "AreaType": 3, - "FillType": 1 - }, - "AreaType": 0 - }, - "AreaType": 4, - "Split": [ { - "CurveType": 256, - "ptEnd": [ 900.0, 750.0, 0.0 ], - "ptStart": [ 0.0, 750.0, 0.0 ] - } ] - }, - "Area2": { - "Area1": { - "Area1": { - "AreaType": 3, - "FillType": 1 - }, - "AreaType": 0 - }, - "Area2": { - "Area1": { - "AreaType": 3, - "FillType": 1 - }, - "AreaType": 0 - }, - "AreaType": 4, - "Split": [ { - "CurveType": 256, - "ptEnd": [ 1800.0, 750.0, 0.0 ], - "ptStart": [ 900.0, 750.0, 0.0 ] - } ] - }, - "AreaType": 1, - "BottomRail": 1, - "Joint": { - "JointBL": 2, - "JointBR": 2, - "JointTL": 2, - "JointTR": 2 - }, - "Outline": [ { - "CurveType": 256, - "ptEnd": [ 1800.0, 0.0, 0.0 ], - "ptStart": [ 0.0, 0.0, 0.0 ] - }, { - "CurveType": 256, - "ptEnd": [ 1800.0, 1500.0, 0.0 ], - "ptStart": [ 1800.0, 0.0, 0.0 ] - }, { - "CurveType": 256, - "ptEnd": [ 0.0, 1500.0, 0.0 ], - "ptStart": [ 1800.0, 1500.0, 0.0 ] - }, { - "CurveType": 256, - "ptEnd": [ 0.0, 0.0, 0.0 ], - "ptStart": [ 0.0, 1500.0, 0.0 ] - } ], - "Split": [ { - "CurveType": 256, - "ptEnd": [ 900.0, 1500.0, 0.0 ], - "ptStart": [ 900.0, 0.0, 0.0 ] - } ] - }, - "ProfilePath": "c:\\EgtData\\EgwWindowLua\\Profiles\\Profilo78 - Offset.nge" -} \ No newline at end of file diff --git a/Projects/Rect_Sash.jwd b/Projects/Rect_Sash.jwd deleted file mode 100644 index a7dd877..0000000 --- a/Projects/Rect_Sash.jwd +++ /dev/null @@ -1,42 +0,0 @@ -{ - "Area1": { - "Area1": { - "Area1": { - "AreaType": 3, - "FillType": 1 - }, - "AreaType": 2, - "Joint": { - "JointBL": 3, - "JointBR": 3, - "JointTL": 3, - "JointTR": 3 - } - }, - "AreaType": 1, - "Joint": { - "JointBL": 2, - "JointBR": 2, - "JointTL": 2, - "JointTR": 2 - }, - "Outline": [ { - "CurveType": 256, - "ptEnd": [ 1800.0, 0.0, 0.0 ], - "ptStart": [ 0.0, 0.0, 0.0 ] - }, { - "CurveType": 256, - "ptEnd": [ 1800.0, 1500.0, 0.0 ], - "ptStart": [ 1800.0, 0.0, 0.0 ] - }, { - "CurveType": 256, - "ptEnd": [ 0.0, 1500.0, 0.0 ], - "ptStart": [ 1800.0, 1500.0, 0.0 ] - }, { - "CurveType": 256, - "ptEnd": [ 0.0, 0.0, 0.0 ], - "ptStart": [ 0.0, 1500.0, 0.0 ] - } ] - }, - "ProfilePath": "c:\\EgtData\\EgwWindowLua\\Profiles\\Profilo78 - Offset.nge" -} \ No newline at end of file diff --git a/Projects/Rect_Sash_Vertical&HorizontalSplit.jwd b/Projects/Rect_Sash_Vertical&HorizontalSplit.jwd deleted file mode 100644 index 4f9ae17..0000000 --- a/Projects/Rect_Sash_Vertical&HorizontalSplit.jwd +++ /dev/null @@ -1,87 +0,0 @@ -{ - "Area1": { - "Area1": { - "Area1": { - "Area1": { - "Area1": { - "AreaType": 3, - "FillType": 1 - }, - "AreaType": 0 - }, - "Area2": { - "Area1": { - "AreaType": 3, - "FillType": 1 - }, - "AreaType": 0 - }, - "AreaType": 4, - "Split": [ { - "CurveType": 256, - "ptEnd": [ 900.0, 750.0, 0.0 ], - "ptStart": [ 0.0, 750.0, 0.0 ] - } ] - }, - "Area2": { - "Area1": { - "Area1": { - "AreaType": 3, - "FillType": 1 - }, - "AreaType": 0 - }, - "Area2": { - "Area1": { - "AreaType": 3, - "FillType": 1 - }, - "AreaType": 0 - }, - "AreaType": 4, - "Split": [ { - "CurveType": 256, - "ptEnd": [ 1800.0, 750.0, 0.0 ], - "ptStart": [ 900.0, 750.0, 0.0 ] - } ] - }, - "AreaType": 2, - "Joint": { - "JointBL": 3, - "JointBR": 3, - "JointTL": 3, - "JointTR": 3 - }, - "Split": [ { - "CurveType": 256, - "ptEnd": [ 900.0, 1500.0, 0.0 ], - "ptStart": [ 900.0, 0.0, 0.0 ] - } ] - }, - "AreaType": 1, - "Joint": { - "JointBL": 2, - "JointBR": 2, - "JointTL": 2, - "JointTR": 2 - }, - "Outline": [ { - "CurveType": 256, - "ptEnd": [ 1800.0, 0.0, 0.0 ], - "ptStart": [ 0.0, 0.0, 0.0 ] - }, { - "CurveType": 256, - "ptEnd": [ 1800.0, 1500.0, 0.0 ], - "ptStart": [ 1800.0, 0.0, 0.0 ] - }, { - "CurveType": 256, - "ptEnd": [ 0.0, 1500.0, 0.0 ], - "ptStart": [ 1800.0, 1500.0, 0.0 ] - }, { - "CurveType": 256, - "ptEnd": [ 0.0, 0.0, 0.0 ], - "ptStart": [ 0.0, 1500.0, 0.0 ] - } ] - }, - "ProfilePath": "c:\\EgtData\\EgwWindowLua\\Profiles\\Profilo78 - Offset.nge" -} \ No newline at end of file diff --git a/Projects/Rect_SixSash_Horizontal&VerticalSplit_Mullion.jwd b/Projects/Rect_SixSash_Horizontal&VerticalSplit_Mullion.jwd deleted file mode 100644 index 4e61fcc..0000000 --- a/Projects/Rect_SixSash_Horizontal&VerticalSplit_Mullion.jwd +++ /dev/null @@ -1,162 +0,0 @@ -{ - "Area1": { - "Area1": { - "Area1": { - "Area1": { - "Area1": { - "AreaType": 3, - "FillType": 1 - }, - "AreaType": 2, - "Joint": { - "JointBL": 3, - "JointBR": 3, - "JointTL": 3, - "JointTR": 3 - } - }, - "AreaType": 0 - }, - "Area2": { - "Area1": { - "Area1": { - "Area1": { - "AreaType": 3, - "FillType": 1 - }, - "AreaType": 2, - "Joint": { - "JointBL": 3, - "JointBR": 3, - "JointTL": 3, - "JointTR": 3 - } - }, - "AreaType": 0 - }, - "Area2": { - "Area1": { - "Area1": { - "AreaType": 3, - "FillType": 1 - }, - "AreaType": 2, - "Joint": { - "JointBL": 3, - "JointBR": 3, - "JointTL": 3, - "JointTR": 3 - } - }, - "AreaType": 0 - }, - "AreaType": 4, - "Split": [ { - "CurveType": 256, - "ptEnd": [ 1200.0, 750.0, 0.0 ], - "ptStart": [ 1200.0, 0.0, 0.0 ] - } ] - }, - "AreaType": 4, - "Split": [ { - "CurveType": 256, - "ptEnd": [ 600.0, 750.0, 0.0 ], - "ptStart": [ 600.0, 0.0, 0.0 ] - } ] - }, - "Area2": { - "Area1": { - "Area1": { - "Area1": { - "AreaType": 3, - "FillType": 1 - }, - "AreaType": 2, - "Joint": { - "JointBL": 3, - "JointBR": 3, - "JointTL": 3, - "JointTR": 3 - } - }, - "AreaType": 0 - }, - "Area2": { - "Area1": { - "Area1": { - "Area1": { - "AreaType": 3, - "FillType": 1 - }, - "AreaType": 2, - "Joint": { - "JointBL": 3, - "JointBR": 3, - "JointTL": 3, - "JointTR": 3 - } - }, - "AreaType": 0 - }, - "Area2": { - "Area1": { - "Area1": { - "AreaType": 3, - "FillType": 1 - }, - "AreaType": 2, - "Joint": { - "JointBL": 3, - "JointBR": 3, - "JointTL": 3, - "JointTR": 3 - } - }, - "AreaType": 0 - }, - "AreaType": 4, - "Split": [ { - "CurveType": 256, - "ptEnd": [ 1200.0, 1500.0, 0.0 ], - "ptStart": [ 1200.0, 750.0, 0.0 ] - } ] - }, - "AreaType": 4, - "Split": [ { - "CurveType": 256, - "ptEnd": [ 600.0, 1500.0, 0.0 ], - "ptStart": [ 600.0, 750.0, 0.0 ] - } ] - }, - "AreaType": 1, - "Joint": { - "JointBL": 2, - "JointBR": 2, - "JointTL": 2, - "JointTR": 2 - }, - "Outline": [ { - "CurveType": 256, - "ptEnd": [ 1800.0, 0.0, 0.0 ], - "ptStart": [ 0.0, 0.0, 0.0 ] - }, { - "CurveType": 256, - "ptEnd": [ 1800.0, 1500.0, 0.0 ], - "ptStart": [ 1800.0, 0.0, 0.0 ] - }, { - "CurveType": 256, - "ptEnd": [ 0.0, 1500.0, 0.0 ], - "ptStart": [ 1800.0, 1500.0, 0.0 ] - }, { - "CurveType": 256, - "ptEnd": [ 0.0, 0.0, 0.0 ], - "ptStart": [ 0.0, 1500.0, 0.0 ] - } ], - "Split": [ { - "CurveType": 256, - "ptEnd": [ 1800.0, 750.0, 0.0 ], - "ptStart": [ 0.0, 750.0, 0.0 ] - } ] - }, - "ProfilePath": "c:\\EgtData\\EgwWindowLua\\Profiles\\Profilo78 - Offset.nge" -} \ No newline at end of file diff --git a/Projects/Rect_SixSash_Vertical&HorizontalSplit_Mullion.jwd b/Projects/Rect_SixSash_Vertical&HorizontalSplit_Mullion.jwd deleted file mode 100644 index c16d352..0000000 --- a/Projects/Rect_SixSash_Vertical&HorizontalSplit_Mullion.jwd +++ /dev/null @@ -1,162 +0,0 @@ -{ - "Area1": { - "Area1": { - "Area1": { - "Area1": { - "Area1": { - "AreaType": 3, - "FillType": 1 - }, - "AreaType": 2, - "Joint": { - "JointBL": 3, - "JointBR": 3, - "JointTL": 3, - "JointTR": 3 - } - }, - "AreaType": 0 - }, - "Area2": { - "Area1": { - "Area1": { - "AreaType": 3, - "FillType": 1 - }, - "AreaType": 2, - "Joint": { - "JointBL": 3, - "JointBR": 3, - "JointTL": 3, - "JointTR": 3 - } - }, - "AreaType": 0 - }, - "AreaType": 4, - "Split": [ { - "CurveType": 256, - "ptEnd": [ 600.0, 750.0, 0.0 ], - "ptStart": [ 0.0, 750.0, 0.0 ] - } ] - }, - "Area2": { - "Area1": { - "Area1": { - "Area1": { - "Area1": { - "AreaType": 3, - "FillType": 1 - }, - "AreaType": 2, - "Joint": { - "JointBL": 3, - "JointBR": 3, - "JointTL": 3, - "JointTR": 3 - } - }, - "AreaType": 0 - }, - "Area2": { - "Area1": { - "Area1": { - "AreaType": 3, - "FillType": 1 - }, - "AreaType": 2, - "Joint": { - "JointBL": 3, - "JointBR": 3, - "JointTL": 3, - "JointTR": 3 - } - }, - "AreaType": 0 - }, - "AreaType": 4, - "Split": [ { - "CurveType": 256, - "ptEnd": [ 1200.0, 750.0, 0.0 ], - "ptStart": [ 600.0, 750.0, 0.0 ] - } ] - }, - "Area2": { - "Area1": { - "Area1": { - "Area1": { - "AreaType": 3, - "FillType": 1 - }, - "AreaType": 2, - "Joint": { - "JointBL": 3, - "JointBR": 3, - "JointTL": 3, - "JointTR": 3 - } - }, - "AreaType": 0 - }, - "Area2": { - "Area1": { - "Area1": { - "AreaType": 3, - "FillType": 1 - }, - "AreaType": 2, - "Joint": { - "JointBL": 3, - "JointBR": 3, - "JointTL": 3, - "JointTR": 3 - } - }, - "AreaType": 0 - }, - "AreaType": 4, - "Split": [ { - "CurveType": 256, - "ptEnd": [ 1800.0, 750.0, 0.0 ], - "ptStart": [ 1200.0, 750.0, 0.0 ] - } ] - }, - "AreaType": 4, - "Split": [ { - "CurveType": 256, - "ptEnd": [ 1200.0, 1500.0, 0.0 ], - "ptStart": [ 1200.0, 0.0, 0.0 ] - } ] - }, - "AreaType": 1, - "Joint": { - "JointBL": 2, - "JointBR": 2, - "JointTL": 2, - "JointTR": 2 - }, - "Outline": [ { - "CurveType": 256, - "ptEnd": [ 1800.0, 0.0, 0.0 ], - "ptStart": [ 0.0, 0.0, 0.0 ] - }, { - "CurveType": 256, - "ptEnd": [ 1800.0, 1500.0, 0.0 ], - "ptStart": [ 1800.0, 0.0, 0.0 ] - }, { - "CurveType": 256, - "ptEnd": [ 0.0, 1500.0, 0.0 ], - "ptStart": [ 1800.0, 1500.0, 0.0 ] - }, { - "CurveType": 256, - "ptEnd": [ 0.0, 0.0, 0.0 ], - "ptStart": [ 0.0, 1500.0, 0.0 ] - } ], - "Split": [ { - "CurveType": 256, - "ptEnd": [ 600.0, 1500.0, 0.0 ], - "ptStart": [ 600.0, 0.0, 0.0 ] - } ] - }, - "ProfilePath": "c:\\EgtData\\EgwWindowLua\\Profiles\\Profilo78 - Offset.nge" -} \ No newline at end of file diff --git a/Projects/Rect_TripleVertical&HorizontalSash_Mullion.jwd b/Projects/Rect_TripleVertical&HorizontalSash_Mullion.jwd deleted file mode 100644 index a5f3415..0000000 --- a/Projects/Rect_TripleVertical&HorizontalSash_Mullion.jwd +++ /dev/null @@ -1,90 +0,0 @@ -{ - "Area1": { - "Area1": { - "Area1": { - "Area1": { - "AreaType": 3, - "FillType": 1 - }, - "AreaType": 2, - "Joint": { - "JointBL": 3, - "JointBR": 3, - "JointTL": 3, - "JointTR": 3 - } - }, - "AreaType": 0 - }, - "Area2": { - "Area1": { - "Area1": { - "Area1": { - "AreaType": 3, - "FillType": 1 - }, - "AreaType": 2, - "Joint": { - "JointBL": 3, - "JointBR": 3, - "JointTL": 3, - "JointTR": 3 - } - }, - "AreaType": 0 - }, - "Area2": { - "Area1": { - "Area1": { - "AreaType": 3, - "FillType": 1 - }, - "AreaType": 2, - "Joint": { - "JointBL": 3, - "JointBR": 3, - "JointTL": 3, - "JointTR": 3 - } - }, - "AreaType": 0 - }, - "AreaType": 4, - "Split": [ { - "CurveType": 256, - "ptEnd": [ 900.0, 1500.0, 0.0 ], - "ptStart": [ 900.0, 750.0, 0.0 ] - } ] - }, - "AreaType": 1, - "Joint": { - "JointBL": 2, - "JointBR": 2, - "JointTL": 2, - "JointTR": 2 - }, - "Outline": [ { - "CurveType": 256, - "ptEnd": [ 1800.0, 0.0, 0.0 ], - "ptStart": [ 0.0, 0.0, 0.0 ] - }, { - "CurveType": 256, - "ptEnd": [ 1800.0, 1500.0, 0.0 ], - "ptStart": [ 1800.0, 0.0, 0.0 ] - }, { - "CurveType": 256, - "ptEnd": [ 0.0, 1500.0, 0.0 ], - "ptStart": [ 1800.0, 1500.0, 0.0 ] - }, { - "CurveType": 256, - "ptEnd": [ 0.0, 0.0, 0.0 ], - "ptStart": [ 0.0, 1500.0, 0.0 ] - } ], - "Split": [ { - "CurveType": 256, - "ptEnd": [ 1800.0, 750.0, 0.0 ], - "ptStart": [ 0.0, 750.0, 0.0 ] - } ] - }, - "ProfilePath": "c:\\EgtData\\EgwWindowLua\\Profiles\\Profilo78 - Offset.nge" -} \ No newline at end of file diff --git a/Projects/Rect_TripleVerticalSash_Mullion&French.jwd b/Projects/Rect_TripleVerticalSash_Mullion&French.jwd deleted file mode 100644 index 32af9ea..0000000 --- a/Projects/Rect_TripleVerticalSash_Mullion&French.jwd +++ /dev/null @@ -1,92 +0,0 @@ -{ - "Area1": { - "Area1": { - "Area1": { - "Area1": { - "AreaType": 3, - "FillType": 1 - }, - "AreaType": 2, - "Joint": { - "JointBL": 3, - "JointBR": 3, - "JointTL": 3, - "JointTR": 3 - } - }, - "AreaType": 0 - }, - "Area2": { - "Area1": { - "Area1": { - "Area1": { - "AreaType": 3, - "FillType": 1 - }, - "AreaType": 2, - "Joint": { - "JointBL": 3, - "JointBR": 3, - "JointTL": 3, - "JointTR": 3 - }, - "SashType": 2 - }, - "AreaType": 0 - }, - "Area2": { - "Area1": { - "Area1": { - "AreaType": 3, - "FillType": 1 - }, - "AreaType": 2, - "Joint": { - "JointBL": 3, - "JointBR": 3, - "JointTL": 3, - "JointTR": 3 - }, - "SashType": 1 - }, - "AreaType": 0 - }, - "AreaType": 4, - "Split": [ { - "CurveType": 256, - "ptEnd": [ 1200.0, 1500.0, 0.0 ], - "ptStart": [ 1200.0, 0.0, 0.0 ] - } ] - }, - "AreaType": 1, - "Joint": { - "JointBL": 2, - "JointBR": 2, - "JointTL": 2, - "JointTR": 2 - }, - "Outline": [ { - "CurveType": 256, - "ptEnd": [ 1800.0, 0.0, 0.0 ], - "ptStart": [ 0.0, 0.0, 0.0 ] - }, { - "CurveType": 256, - "ptEnd": [ 1800.0, 1500.0, 0.0 ], - "ptStart": [ 1800.0, 0.0, 0.0 ] - }, { - "CurveType": 256, - "ptEnd": [ 0.0, 1500.0, 0.0 ], - "ptStart": [ 1800.0, 1500.0, 0.0 ] - }, { - "CurveType": 256, - "ptEnd": [ 0.0, 0.0, 0.0 ], - "ptStart": [ 0.0, 1500.0, 0.0 ] - } ], - "Split": [ { - "CurveType": 256, - "ptEnd": [ 600.0, 1500.0, 0.0 ], - "ptStart": [ 600.0, 0.0, 0.0 ] - } ] - }, - "ProfilePath": "c:\\EgtData\\EgwWindowLua\\Profiles\\Profilo78 - Offset.nge" -} \ No newline at end of file diff --git a/Projects/Rect_TripleVerticalSash_Mullion.jwd b/Projects/Rect_TripleVerticalSash_Mullion.jwd deleted file mode 100644 index 195e4ef..0000000 --- a/Projects/Rect_TripleVerticalSash_Mullion.jwd +++ /dev/null @@ -1,90 +0,0 @@ -{ - "Area1": { - "Area1": { - "Area1": { - "Area1": { - "AreaType": 3, - "FillType": 1 - }, - "AreaType": 2, - "Joint": { - "JointBL": 3, - "JointBR": 3, - "JointTL": 3, - "JointTR": 3 - } - }, - "AreaType": 0 - }, - "Area2": { - "Area1": { - "Area1": { - "Area1": { - "AreaType": 3, - "FillType": 1 - }, - "AreaType": 2, - "Joint": { - "JointBL": 3, - "JointBR": 3, - "JointTL": 3, - "JointTR": 3 - } - }, - "AreaType": 0 - }, - "Area2": { - "Area1": { - "Area1": { - "AreaType": 3, - "FillType": 1 - }, - "AreaType": 2, - "Joint": { - "JointBL": 3, - "JointBR": 3, - "JointTL": 3, - "JointTR": 3 - } - }, - "AreaType": 0 - }, - "AreaType": 4, - "Split": [ { - "CurveType": 256, - "ptEnd": [ 1200.0, 1500.0, 0.0 ], - "ptStart": [ 1200.0, 0.0, 0.0 ] - } ] - }, - "AreaType": 1, - "Joint": { - "JointBL": 2, - "JointBR": 2, - "JointTL": 2, - "JointTR": 2 - }, - "Outline": [ { - "CurveType": 256, - "ptEnd": [ 1800.0, 0.0, 0.0 ], - "ptStart": [ 0.0, 0.0, 0.0 ] - }, { - "CurveType": 256, - "ptEnd": [ 1800.0, 1500.0, 0.0 ], - "ptStart": [ 1800.0, 0.0, 0.0 ] - }, { - "CurveType": 256, - "ptEnd": [ 0.0, 1500.0, 0.0 ], - "ptStart": [ 1800.0, 1500.0, 0.0 ] - }, { - "CurveType": 256, - "ptEnd": [ 0.0, 0.0, 0.0 ], - "ptStart": [ 0.0, 1500.0, 0.0 ] - } ], - "Split": [ { - "CurveType": 256, - "ptEnd": [ 600.0, 1500.0, 0.0 ], - "ptStart": [ 600.0, 0.0, 0.0 ] - } ] - }, - "ProfilePath": "c:\\EgtData\\EgwWindowLua\\Profiles\\Profilo78 - Offset.nge" -} \ No newline at end of file diff --git a/Projects/RoundArc_DoubleVerticalSash.jwd b/Projects/RoundArc_DoubleVerticalSash.jwd deleted file mode 100644 index 1d4fe2f..0000000 --- a/Projects/RoundArc_DoubleVerticalSash.jwd +++ /dev/null @@ -1,67 +0,0 @@ -{ - "Area1": { - "Area1": { - "Area1": { - "Area1": { - "AreaType": 3, - "FillType": 1 - }, - "AreaType": 2, - "Joint": { - "JointBL": 3, - "JointBR": 3, - "JointTL": 3, - "JointTR": 3 - } - }, - "AreaType": 0 - }, - "Area2": { - "Area1": { - "Area1": { - "AreaType": 3, - "FillType": 1 - }, - "AreaType": 2, - "Joint": { - "JointBL": 3, - "JointBR": 3, - "JointTL": 3, - "JointTR": 3 - } - }, - "AreaType": 0 - }, - "AreaType": 1, - "Joint": { - "JointBL": 2, - "JointBR": 2, - "JointTL": 2, - "JointTR": 2 - }, - "Outline": [ { - "CurveType": 256, - "ptEnd": [ 1800.0, 0.0, 0.0 ], - "ptStart": [ 0.0, 0.0, 0.0 ] - }, { - "CurveType": 256, - "ptEnd": [ 1800.0, 1500.0, 0.0 ], - "ptStart": [ 1800.0, 0.0, 0.0 ] - }, { - "CurveType": 257, - "ptEnd": [ 0.0, 1500.0, 0.0 ], - "ptMid": [ 900.0, 2400.0, 0.0 ], - "ptStart": [ 1800.0, 1500.0, 0.0 ] - }, { - "CurveType": 256, - "ptEnd": [ 0.0, 0.0, 0.0 ], - "ptStart": [ 0.0, 1500.0, 0.0 ] - } ], - "Split": [ { - "CurveType": 256, - "ptEnd": [ 900.0, 2400.0, 0.0 ], - "ptStart": [ 900.0, 0.0, 0.0 ] - } ] - }, - "ProfilePath": "c:\\EgtData\\EgwWindowLua\\Profiles\\Profilo78 - Offset.nge" -} \ No newline at end of file diff --git a/Projects/RoundArc_FixedGlass_Vertical&HorizontalSplit.jwd b/Projects/RoundArc_FixedGlass_Vertical&HorizontalSplit.jwd deleted file mode 100644 index 6bb356c..0000000 --- a/Projects/RoundArc_FixedGlass_Vertical&HorizontalSplit.jwd +++ /dev/null @@ -1,80 +0,0 @@ -{ - "Area1": { - "Area1": { - "Area1": { - "Area1": { - "AreaType": 3, - "FillType": 1 - }, - "AreaType": 0 - }, - "Area2": { - "Area1": { - "AreaType": 3, - "FillType": 1 - }, - "AreaType": 0 - }, - "AreaType": 4, - "Split": [ { - "CurveType": 256, - "ptEnd": [ 900.0, 750.0, 0.0 ], - "ptStart": [ 0.0, 750.0, 0.0 ] - } ] - }, - "Area2": { - "Area1": { - "Area1": { - "AreaType": 3, - "FillType": 1 - }, - "AreaType": 0 - }, - "Area2": { - "Area1": { - "AreaType": 3, - "FillType": 1 - }, - "AreaType": 0 - }, - "AreaType": 4, - "Split": [ { - "CurveType": 256, - "ptEnd": [ 1800.0, 750.0, 0.0 ], - "ptStart": [ 900.0, 750.0, 0.0 ] - } ] - }, - "AreaType": 1, - "BottomRail": 1, - "Joint": { - "JointBL": 2, - "JointBR": 2, - "JointTL": 2, - "JointTR": 2 - }, - "Outline": [ { - "CurveType": 256, - "ptEnd": [ 1800.0, 0.0, 0.0 ], - "ptStart": [ 0.0, 0.0, 0.0 ] - }, { - "CurveType": 256, - "ptEnd": [ 1800.0, 1500.0, 0.0 ], - "ptStart": [ 1800.0, 0.0, 0.0 ] - }, { - "CurveType": 257, - "ptEnd": [ 0.0, 1500.0, 0.0 ], - "ptMid": [ 900.0, 2400.0, 0.0 ], - "ptStart": [ 1800.0, 1500.0, 0.0 ] - }, { - "CurveType": 256, - "ptEnd": [ 0.0, 0.0, 0.0 ], - "ptStart": [ 0.0, 1500.0, 0.0 ] - } ], - "Split": [ { - "CurveType": 256, - "ptEnd": [ 900.0, 2400.0, 0.0 ], - "ptStart": [ 900.0, 0.0, 0.0 ] - } ] - }, - "ProfilePath": "c:\\EgtData\\EgwWindowLua\\Profiles\\Profilo78 - Offset.nge" -} \ No newline at end of file diff --git a/Projects/RoundArc_French.jwd b/Projects/RoundArc_French.jwd deleted file mode 100644 index af421b3..0000000 --- a/Projects/RoundArc_French.jwd +++ /dev/null @@ -1,69 +0,0 @@ -{ - "Area1": { - "Area1": { - "Area1": { - "Area1": { - "AreaType": 3, - "FillType": 1 - }, - "AreaType": 2, - "Joint": { - "JointBL": 3, - "JointBR": 3, - "JointTL": 3, - "JointTR": 3 - }, - "SashType": 2 - }, - "AreaType": 0 - }, - "Area2": { - "Area1": { - "Area1": { - "AreaType": 3, - "FillType": 1 - }, - "AreaType": 2, - "Joint": { - "JointBL": 3, - "JointBR": 3, - "JointTL": 3, - "JointTR": 3 - }, - "SashType": 1 - }, - "AreaType": 0 - }, - "AreaType": 1, - "Joint": { - "JointBL": 2, - "JointBR": 2, - "JointTL": 2, - "JointTR": 2 - }, - "Outline": [ { - "CurveType": 256, - "ptEnd": [ 1800.0, 0.0, 0.0 ], - "ptStart": [ 0.0, 0.0, 0.0 ] - }, { - "CurveType": 256, - "ptEnd": [ 1800.0, 1500.0, 0.0 ], - "ptStart": [ 1800.0, 0.0, 0.0 ] - }, { - "CurveType": 257, - "ptEnd": [ 0.0, 1500.0, 0.0 ], - "ptMid": [ 900.0, 2400.0, 0.0 ], - "ptStart": [ 1800.0, 1500.0, 0.0 ] - }, { - "CurveType": 256, - "ptEnd": [ 0.0, 0.0, 0.0 ], - "ptStart": [ 0.0, 1500.0, 0.0 ] - } ], - "Split": [ { - "CurveType": 256, - "ptEnd": [ 900.0, 2400.0, 0.0 ], - "ptStart": [ 900.0, 0.0, 0.0 ] - } ] - }, - "ProfilePath": "c:\\EgtData\\EgwWindowLua\\Profiles\\Profilo78 - Offset.nge" -} \ No newline at end of file diff --git a/Projects/RoundArc_Sash.jwd b/Projects/RoundArc_Sash.jwd deleted file mode 100644 index 2222040..0000000 --- a/Projects/RoundArc_Sash.jwd +++ /dev/null @@ -1,43 +0,0 @@ -{ - "Area1": { - "Area1": { - "Area1": { - "AreaType": 3, - "FillType": 1 - }, - "AreaType": 2, - "Joint": { - "JointBL": 3, - "JointBR": 3, - "JointTL": 3, - "JointTR": 3 - } - }, - "AreaType": 1, - "Joint": { - "JointBL": 2, - "JointBR": 2, - "JointTL": 2, - "JointTR": 2 - }, - "Outline": [ { - "CurveType": 256, - "ptEnd": [ 1800.0, 0.0, 0.0 ], - "ptStart": [ 0.0, 0.0, 0.0 ] - }, { - "CurveType": 256, - "ptEnd": [ 1800.0, 1500.0, 0.0 ], - "ptStart": [ 1800.0, 0.0, 0.0 ] - }, { - "CurveType": 257, - "ptEnd": [ 0.0, 1500.0, 0.0 ], - "ptMid": [ 900.0, 2400.0, 0.0 ], - "ptStart": [ 1800.0, 1500.0, 0.0 ] - }, { - "CurveType": 256, - "ptEnd": [ 0.0, 0.0, 0.0 ], - "ptStart": [ 0.0, 1500.0, 0.0 ] - } ] - }, - "ProfilePath": "c:\\EgtData\\EgwWindowLua\\Profiles\\Profilo78 - Offset.nge" -} \ No newline at end of file diff --git a/Projects/RoundArc_Sash_Vertical&HorizontalSplit.jwd b/Projects/RoundArc_Sash_Vertical&HorizontalSplit.jwd deleted file mode 100644 index da920e3..0000000 --- a/Projects/RoundArc_Sash_Vertical&HorizontalSplit.jwd +++ /dev/null @@ -1,88 +0,0 @@ -{ - "Area1": { - "Area1": { - "Area1": { - "Area1": { - "Area1": { - "AreaType": 3, - "FillType": 1 - }, - "AreaType": 0 - }, - "Area2": { - "Area1": { - "AreaType": 3, - "FillType": 1 - }, - "AreaType": 0 - }, - "AreaType": 4, - "Split": [ { - "CurveType": 256, - "ptEnd": [ 900.0, 750.0, 0.0 ], - "ptStart": [ 0.0, 750.0, 0.0 ] - } ] - }, - "Area2": { - "Area1": { - "Area1": { - "AreaType": 3, - "FillType": 1 - }, - "AreaType": 0 - }, - "Area2": { - "Area1": { - "AreaType": 3, - "FillType": 1 - }, - "AreaType": 0 - }, - "AreaType": 4, - "Split": [ { - "CurveType": 256, - "ptEnd": [ 1800.0, 750.0, 0.0 ], - "ptStart": [ 900.0, 750.0, 0.0 ] - } ] - }, - "AreaType": 2, - "Joint": { - "JointBL": 3, - "JointBR": 3, - "JointTL": 3, - "JointTR": 3 - }, - "Split": [ { - "CurveType": 256, - "ptEnd": [ 900.0, 2400.0, 0.0 ], - "ptStart": [ 900.0, 0.0, 0.0 ] - } ] - }, - "AreaType": 1, - "Joint": { - "JointBL": 2, - "JointBR": 2, - "JointTL": 2, - "JointTR": 2 - }, - "Outline": [ { - "CurveType": 256, - "ptEnd": [ 1800.0, 0.0, 0.0 ], - "ptStart": [ 0.0, 0.0, 0.0 ] - }, { - "CurveType": 256, - "ptEnd": [ 1800.0, 1500.0, 0.0 ], - "ptStart": [ 1800.0, 0.0, 0.0 ] - }, { - "CurveType": 257, - "ptEnd": [ 0.0, 1500.0, 0.0 ], - "ptMid": [ 900.0, 2400.0, 0.0 ], - "ptStart": [ 1800.0, 1500.0, 0.0 ] - }, { - "CurveType": 256, - "ptEnd": [ 0.0, 0.0, 0.0 ], - "ptStart": [ 0.0, 1500.0, 0.0 ] - } ] - }, - "ProfilePath": "c:\\EgtData\\EgwWindowLua\\Profiles\\Profilo78 - Offset.nge" -} \ No newline at end of file diff --git a/Projects/RoundArc_TripleVerticalSash.jwd b/Projects/RoundArc_TripleVerticalSash.jwd deleted file mode 100644 index 62d849f..0000000 --- a/Projects/RoundArc_TripleVerticalSash.jwd +++ /dev/null @@ -1,91 +0,0 @@ -{ - "Area1": { - "Area1": { - "Area1": { - "Area1": { - "AreaType": 3, - "FillType": 1 - }, - "AreaType": 2, - "Joint": { - "JointBL": 3, - "JointBR": 3, - "JointTL": 3, - "JointTR": 3 - } - }, - "AreaType": 0 - }, - "Area2": { - "Area1": { - "Area1": { - "Area1": { - "AreaType": 3, - "FillType": 1 - }, - "AreaType": 2, - "Joint": { - "JointBL": 3, - "JointBR": 3, - "JointTL": 3, - "JointTR": 3 - } - }, - "AreaType": 0 - }, - "Area2": { - "Area1": { - "Area1": { - "AreaType": 3, - "FillType": 1 - }, - "AreaType": 2, - "Joint": { - "JointBL": 3, - "JointBR": 3, - "JointTL": 3, - "JointTR": 3 - } - }, - "AreaType": 0 - }, - "AreaType": 4, - "Split": [ { - "CurveType": 256, - "ptEnd": [ 1200.0, 2348.5281374239, 0.0 ], - "ptStart": [ 1200.0, 0.0, 0.0 ] - } ] - }, - "AreaType": 1, - "Joint": { - "JointBL": 2, - "JointBR": 2, - "JointTL": 2, - "JointTR": 2 - }, - "Outline": [ { - "CurveType": 256, - "ptEnd": [ 1800.0, 0.0, 0.0 ], - "ptStart": [ 0.0, 0.0, 0.0 ] - }, { - "CurveType": 256, - "ptEnd": [ 1800.0, 1500.0, 0.0 ], - "ptStart": [ 1800.0, 0.0, 0.0 ] - }, { - "CurveType": 257, - "ptEnd": [ 0.0, 1500.0, 0.0 ], - "ptMid": [ 900.0, 2400.0, 0.0 ], - "ptStart": [ 1800.0, 1500.0, 0.0 ] - }, { - "CurveType": 256, - "ptEnd": [ 0.0, 0.0, 0.0 ], - "ptStart": [ 0.0, 1500.0, 0.0 ] - } ], - "Split": [ { - "CurveType": 256, - "ptEnd": [ 600.0, 2348.5281374239, 0.0 ], - "ptStart": [ 600.0, 0.0, 0.0 ] - } ] - }, - "ProfilePath": "c:\\EgtData\\EgwWindowLua\\Profiles\\Profilo78 - Offset.nge" -} \ No newline at end of file diff --git a/Projects/TestJson.jwd b/Projects/TestJson.jwd deleted file mode 100644 index 8d58e85..0000000 --- a/Projects/TestJson.jwd +++ /dev/null @@ -1,78 +0,0 @@ -{ - "ProfilePath": "c:\\EgtData\\EgwWindowLua\\Profiles\\Profilo78 - Offset.nge", - "Area1": { - "Area1": { - "Area1": null, - "Area2": null, - "AreaType": 3, - "FillType": 1, - "BottomRail": false, - "Outline": null, - "Joint": null - }, - "Area2": null, - "AreaType": 1, - "FillType": 0, - "BottomRail": true, - "Outline": [ - { - "CurveType": 256, - "ptStart": { - "x": 0.0, - "y": 0.0, - "z": 0.0 - }, - "ptEnd": { - "x": 1800.0, - "y": 0.0, - "z": 0.0 - } - }, - { - "CurveType": 256, - "ptStart": { - "x": 1800.0, - "y": 0.0, - "z": 0.0 - }, - "ptEnd": { - "x": 1800.0, - "y": 1500.0, - "z": 0.0 - } - }, - { - "CurveType": 256, - "ptStart": { - "x": 1800.0, - "y": 1500.0, - "z": 0.0 - }, - "ptEnd": { - "x": 0.0, - "y": 1500.0, - "z": 0.0 - } - }, - { - "CurveType": 256, - "ptStart": { - "x": 0.0, - "y": 1500.0, - "z": 0.0 - }, - "ptEnd": { - "x": 0.0, - "y": 0.0, - "z": 0.0 - } - } - ], - "Joint": [ - 2, - 2, - 2, - 2 - ] - } -} \ No newline at end of file diff --git a/Test/Data/Rect_FixedGlass.jwd b/Test/Data/Rect_FixedGlass.jwd deleted file mode 100644 index 3b6ca4f..0000000 --- a/Test/Data/Rect_FixedGlass.jwd +++ /dev/null @@ -1,34 +0,0 @@ -{ - "Area1": { - "Area1": { - "AreaType": 3, - "FillType": 1 - }, - "AreaType": 1, - "BottomRail": 1, - "Joint": { - "JointBL": 2, - "JointBR": 2, - "JointTL": 2, - "JointTR": 2 - }, - "Outline": [ { - "CurveType": 256, - "ptEnd": [ 1800.0, 0.0, 0.0 ], - "ptStart": [ 0.0, 0.0, 0.0 ] - }, { - "CurveType": 256, - "ptEnd": [ 1800.0, 1500.0, 0.0 ], - "ptStart": [ 1800.0, 0.0, 0.0 ] - }, { - "CurveType": 256, - "ptEnd": [ 0.0, 1500.0, 0.0 ], - "ptStart": [ 1800.0, 1500.0, 0.0 ] - }, { - "CurveType": 256, - "ptEnd": [ 0.0, 0.0, 0.0 ], - "ptStart": [ 0.0, 1500.0, 0.0 ] - } ] - }, - "ProfilePath": "c:\\EgtData\\Window\\Profiles\\Profilo78 - Offset.nge" -} \ No newline at end of file diff --git a/Test/Result.ok/Rect_FixedGlass.nge b/Test/Result.ok/Rect_FixedGlass.nge deleted file mode 100644 index 8676ea2..0000000 Binary files a/Test/Result.ok/Rect_FixedGlass.nge and /dev/null differ