diff --git a/Designing/Main.lua b/Designing/Main.lua deleted file mode 100644 index d40624c..0000000 --- a/Designing/Main.lua +++ /dev/null @@ -1,836 +0,0 @@ --- --- EEEEEEEEEE GGGGGG WW WW WW --- EEEEEEEEEE GGGGGGGGGG WW WW WW --- EEEE GGGG GGGG WW WW WW --- EEEE GGGG WWW WWWW WWW --- EEEEEEE GGGG GGGGGGG WW WWWW WW --- EEEEEEE GGGG GGGGGGG WWW WWWW WWW --- EEEE GGGG GGGG WWWW WWWW --- EEEE GGGG GGGG WWWW WWWW --- EEEEEEEEEE GGGGGGGGGG WWW WWW --- EEEEEEEEEE GGGGGG WW WW --- --- by Egalware s.r.l. --- Window project software by Egalware s.r.l. 2023/05/02 - -require( 'EgtBase') -_ENV = EgtProtectGlobal() -EgtEnableDebug( false) - --- Imposto direttorio per librerie -local sBaseDir = EgtGetSourceDir() -EgtOutLog("BaseDir=" .. sBaseDir) -EgtAddToPackagePath( sBaseDir .. '?.lua') -EgtAddToPackagePath( sBaseDir .. 'WinLib\\' .. '?.lua') - -_G.package.loaded.WinConst = nil -_G.package.loaded.WinJWDConst = nil -_G.package.loaded.WinCreate = nil -_G.package.loaded.WinCalculate = nil -_G.package.loaded.WinManageProject = nil -_G.package.loaded.JSON = nil -_G.package.loaded.xml2lua = nil -_G.package.loaded.xml2lua_tree = nil - -require( 'WinConst') -local WinCreate = require( 'WinCreate') -local WinCalculate = require( 'WinCalculate') - - -------------------------------------------- PARAMETERS ------------------------------------------- -local WindowWidth = 1500 -local WindowHeight = 1800 - - -local FrameJointType = WIN_JNT.FULL_H -local SashJointType = WIN_JNT.FULL_V -local vFrameJoints = { FrameJointType, FrameJointType, FrameJointType, FrameJointType} -local vSashJoints = { SashJointType, SashJointType, SashJointType, SashJointType} - -local dFrameDim = 78 -local dSashDim = 78 -local vFrameDims = { dFrameDim, dFrameDim, dFrameDim, dFrameDim} -local vSashDims = { dSashDim, dSashDim, dSashDim, dSashDim} - -local bDaylight = true -- true = dimensione luce / false = dimensione esterno anta - -local sProfilePath = 'C:\\EgtData\\EgtWindowMaker\\Profiles\\Profilo78.nge' --- local sProfilePath = 'C:\\EgtData\\EgtWindowMaker\\Profiles\\ProfiloSaomad.nge' - -------------------------------------------- ************** ------------------------------------------- - -EgtNewFile() -EgtStartCounter() - - --- importo profilo prescelto -WinCreate.ImportProfile( sProfilePath) - --- creo telaio - --- local nFrameId = WinCreate.CreateFrame( WIN_FRAME_TYPES.RECT, { WindowWidth, WindowHeight}, vFrameJoints, vFrameDims) --- local nFrameId = WinCreate.CreateFrame( WIN_FRAME_TYPES.CHAMFER_SIDE, { WindowWidth, WindowHeight, WindowHeight + 800}, vFrameJoints, vFrameDims) --- local nFrameId = WinCreate.CreateFrame( WIN_FRAME_TYPES.CHAMFER_SIDE, { WindowWidth, WindowHeight + 500, WindowHeight}, vFrameJoints, vFrameDims) --- local nFrameId = WinCreate.CreateFrame( WIN_FRAME_TYPES.ROUND_ARC, { WindowWidth, WindowHeight}, vFrameJoints, vFrameDims) --- local nFrameId = WinCreate.CreateFrame( WIN_FRAME_TYPES.SEGMENTAL_ARC, { 1500, 1800, 2200}, vFrameJoints, vFrameDims) --- local nFrameId = WinCreate.CreateFrame( WIN_FRAME_TYPES.CHAMFER, { WindowWidth, WindowHeight, WindowHeight + 500}, vFrameJoints, { dFrameDim, dFrameDim, dFrameDim, dFrameDim, dFrameDim}) --- local nFrameId = WinCreate.CreateFrame( WIN_FRAME_TYPES.POINTED_ARC, { 1200, 1500, 2400}, vFrameJoints, { dFrameDim, dFrameDim, dFrameDim, dFrameDim, dFrameDim}) --- local nFrameId = WinCreate.CreateFrame( WIN_FRAME_TYPES.TRG, { 1500, 1500, 500}, { FrameJointType, FrameJointType, FrameJointType}, { dFrameDim, dFrameDim, dFrameDim}) --- local nFrameId = WinCreate.CreateFrame( WIN_FRAME_TYPES.THREE_CENTER_ARC, { 1500, 1500, 1800, 200}, vFrameJoints, { dFrameDim, dFrameDim, dFrameDim, dFrameDim, dFrameDim, dFrameDim}) - - - ------------------------- Aggiunta split a griglia ------------------------ - --- WinCreate.AddGridSplits( nFrameId, { WIN_MEASURE.ABSOLUTE, WIN_MEASURE.ABSOLUTE, WIN_MEASURE.ABSOLUTE, WIN_MEASURE.ABSOLUTE}, { 150, 300, 150, 900}, --- { WIN_MEASURE.ABSOLUTE, WIN_MEASURE.ABSOLUTE, WIN_MEASURE.ABSOLUTE}, { 500, 600, 850}, false) --- WinCreate.AddGridSplits( nFrameId, { WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE}, { 25, 75}, { WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE}, { 50, 30, 20}, false) --- WinCreate.AddGridSplits( nFrameId, { WIN_MEASURE.PROPORTIONAL, WIN_MEASURE.PROPORTIONAL, WIN_MEASURE.PROPORTIONAL, WIN_MEASURE.PROPORTIONAL, WIN_MEASURE.PROPORTIONAL}, { 1, 4, 1, 2, 1}, --- { WIN_MEASURE.PROPORTIONAL, WIN_MEASURE.PROPORTIONAL, WIN_MEASURE.PROPORTIONAL, WIN_MEASURE.PROPORTIONAL, WIN_MEASURE.PROPORTIONAL}, { 1, 2, 1, 2, 1}, false) --- WinCreate.AddGridSplits( nFrameId, { WIN_MEASURE.PROPORTIONAL, WIN_MEASURE.PROPORTIONAL, WIN_MEASURE.ABSOLUTE}, { 2, 1, 200}, --- { WIN_MEASURE.PROPORTIONAL, WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PROPORTIONAL}, { 1, 50, 1}, false) - - - ------------------------- Cambi profilo ------------------------ - --- vetro / anta --- local vAreas = WinCreate.AddSplits( nFrameId, WIN_SPLITORIENTATION.VERTICAL, { WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE}, { 50, 50}, { 120}) --- WinCreate.AddFill( vAreas[1], WIN_FILLTYPES.GLASS) --- local nSashId = WinCreate.AddSash( vAreas[2], vSashJoints, vSashDims, WIN_OPENING_TYPES.TILTTURN_RIGHT) --- WinCreate.AddFill( nSashId, WIN_FILLTYPES.GLASS) - --- vetro / anta in orizzontale --- local vAreas = WinCreate.AddSplits( nFrameId, WIN_SPLITORIENTATION.HORIZONTAL, { WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE}, { 50, 50}, { 120}) --- local nSashId = WinCreate.AddSash( vAreas[1], vSashJoints, vSashDims, WIN_OPENING_TYPES.TILTTURN_LEFT) --- WinCreate.AddFill( nSashId, WIN_FILLTYPES.GLASS) --- WinCreate.AddFill( vAreas[2], WIN_FILLTYPES.GLASS) - --- anta / vetro --- local vAreas = WinCreate.AddSplits( nFrameId, WIN_SPLITORIENTATION.VERTICAL, { WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE}, { 50, 50}) --- local nSashId = WinCreate.AddSash( vAreas[1], vSashJoints, vSashDims, WIN_OPENING_TYPES.TILTTURN_LEFT) --- WinCreate.AddFill( nSashId, WIN_FILLTYPES.GLASS) --- WinCreate.AddFill( vAreas[2], WIN_FILLTYPES.GLASS) - --- vetro / anta / vetro --- local vAreas = WinCreate.AddSplits( nFrameId, WIN_SPLITORIENTATION.VERTICAL, { WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE}, { 33.3333, 33.3333, 33.3333}, { 90, 120}) --- WinCreate.AddFill( vAreas[1], WIN_FILLTYPES.GLASS) --- local nSashId = WinCreate.AddSash( vAreas[2], vSashJoints, vSashDims) --- WinCreate.AddFill( nSashId, WIN_FILLTYPES.GLASS) --- WinCreate.AddFill( vAreas[3], WIN_FILLTYPES.GLASS) - --- vetro / anta / anta --- local vAreas = WinCreate.AddSplits( nFrameId, WIN_SPLITORIENTATION.VERTICAL, { WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE}, { 33, 33, 34}) --- WinCreate.AddFill( vAreas[1], WIN_FILLTYPES.GLASS) --- local nSashId1 = WinCreate.AddSash( vAreas[2], vSashJoints, vSashDims) --- local nSashId2 = WinCreate.AddSash( vAreas[3], vSashJoints, vSashDims) --- WinCreate.AddFill( nSashId1, WIN_FILLTYPES.GLASS) --- WinCreate.AddFill( nSashId2, WIN_FILLTYPES.GLASS) - --- anta battente / anta ricevente / vetro --- local vAreas = WinCreate.AddSplits( nFrameId, WIN_SPLITORIENTATION.VERTICAL, { WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE}, { 66, 34}, { 90}) --- local vSashes = WinCreate.AddSashGroup( vAreas[1], { WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE}, { 50, 50}, bDaylight, --- { vSashJoints, vSashJoints}, { vSashDims, vSashDims}, { WIN_SASHTYPES.ACTIVE, WIN_SASHTYPES.INACTIVE}, --- { WIN_OPENING_TYPES.TURNONLY_LEFT, WIN_OPENING_TYPES.TURNONLY_RIGHT}) --- WinCreate.AddFill( vSashes[1], WIN_FILLTYPES.GLASS) --- WinCreate.AddFill( vSashes[2], WIN_FILLTYPES.GLASS) --- WinCreate.AddFill( vAreas[2], WIN_FILLTYPES.GLASS) - --- vetro / anta / vetro / anta (1) --- local vAreas = WinCreate.AddSplits( nFrameId, WIN_SPLITORIENTATION.VERTICAL, { WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE}, { 50, 50}) --- local vAreas2 = WinCreate.AddSplits( vAreas[1], WIN_SPLITORIENTATION.VERTICAL, { WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE}, { 50, 50}) --- local vAreas3 = WinCreate.AddSplits( vAreas[2], WIN_SPLITORIENTATION.VERTICAL, { WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE}, { 50, 50}) --- WinCreate.AddFill( vAreas2[1], WIN_FILLTYPES.GLASS) --- WinCreate.AddFill( vAreas3[1], WIN_FILLTYPES.GLASS) --- local nSashId1 = WinCreate.AddSash( vAreas2[2], vSashJoints) --- local nSashId2 = WinCreate.AddSash( vAreas3[2], vSashJoints) --- WinCreate.AddFill( nSashId1, WIN_FILLTYPES.GLASS) --- WinCreate.AddFill( nSashId2, WIN_FILLTYPES.GLASS) - --- vetro / anta / vetro / anta (2) --- local vAreas = WinCreate.AddSplits( nFrameId, WIN_SPLITORIENTATION.VERTICAL, { WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE}, --- { 25, 25, 25, 25}, { 90, 120, 90}) --- WinCreate.AddFill( vAreas[1], WIN_FILLTYPES.GLASS) --- local nSashId1 = WinCreate.AddSash( vAreas[2], vSashJoints, vSashDims) --- WinCreate.AddFill( nSashId1, WIN_FILLTYPES.GLASS) --- WinCreate.AddFill( vAreas[3], WIN_FILLTYPES.GLASS) --- local nSashId2 = WinCreate.AddSash( vAreas[4], vSashJoints, vSashDims) --- WinCreate.AddFill( nSashId2, WIN_FILLTYPES.GLASS) - --- vetro / vetro / anta / anta --- local vAreas = WinCreate.AddSplits( nFrameId, WIN_SPLITORIENTATION.VERTICAL, { WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE}, --- { 25, 25, 25, 25}, { 90, 90, 90}) --- WinCreate.AddFill( vAreas[1], WIN_FILLTYPES.GLASS) --- WinCreate.AddFill( vAreas[2], WIN_FILLTYPES.GLASS) --- local nSashId1 = WinCreate.AddSash( vAreas[3], vSashJoints, vSashDims) --- WinCreate.AddFill( nSashId1, WIN_FILLTYPES.GLASS) --- local nSashId2 = WinCreate.AddSash( vAreas[4], vSashJoints, vSashDims) --- WinCreate.AddFill( nSashId2, WIN_FILLTYPES.GLASS) - --- anta / vetro con split --- local vAreas = WinCreate.AddSplits( nFrameId, WIN_SPLITORIENTATION.VERTICAL, { WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE}, { 50, 50}, { 90}) --- local nSashId = WinCreate.AddSash( vAreas[1], vSashJoints, vSashDims) --- WinCreate.AddFill( nSashId, WIN_FILLTYPES.GLASS) --- local vAreas2 = WinCreate.AddSplits( vAreas[2], WIN_SPLITORIENTATION.HORIZONTAL, { WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE}, { 50, 50}, { 60}) --- WinCreate.AddFill( vAreas2[1], WIN_FILLTYPES.GLASS) --- WinCreate.AddFill( vAreas2[2], WIN_FILLTYPES.GLASS) - --- anta con split / vetro --- local vAreas = WinCreate.AddSplits( nFrameId, WIN_SPLITORIENTATION.VERTICAL, { WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE}, { 50, 50}, { 90}) --- local nSashId = WinCreate.AddSash( vAreas[1], vSashJoints, vSashDims) --- local vAreasSash = WinCreate.AddSplits( nSashId, WIN_SPLITORIENTATION.HORIZONTAL, { WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE}, { 50, 50}, { 80}) --- WinCreate.AddFill( vAreasSash[1], WIN_FILLTYPES.GLASS) --- WinCreate.AddFill( vAreasSash[2], WIN_FILLTYPES.GLASS) --- WinCreate.AddFill( vAreas[2], WIN_FILLTYPES.GLASS) - --- ante ( divise da split orizzontale) / vetro --- local vAreas = WinCreate.AddSplits( nFrameId, WIN_SPLITORIENTATION.VERTICAL, { WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE}, { 50, 50}, { 90}) --- local vAreas2 = WinCreate.AddSplits( vAreas[1], WIN_SPLITORIENTATION.HORIZONTAL, { WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE}, { 30, 70}, { 95}) --- local nSashId1 = WinCreate.AddSash( vAreas2[1], vSashJoints, vSashDims) --- WinCreate.AddFill( nSashId1, WIN_FILLTYPES.GLASS) --- local nSashId2 = WinCreate.AddSash( vAreas2[2], vSashJoints, vSashDims) --- WinCreate.AddFill( nSashId2, WIN_FILLTYPES.GLASS) --- WinCreate.AddFill( vAreas[2], WIN_FILLTYPES.GLASS) - - - ------------------------- Cambi profilo su split ------------------------ - --- sotto: vetro / anta | sopra: vetro --- local vAreas = WinCreate.AddSplits( nFrameId, WIN_SPLITORIENTATION.HORIZONTAL, {WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE}, { 50, 50}, {}) --- local nFill1 = WinCreate.AddFill( vAreas[2], WIN_FILLTYPES.GLASS) --- local vAreas2 = WinCreate.AddSplits( vAreas[1], WIN_SPLITORIENTATION.VERTICAL, {WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE}, { 50, 50}, {}) --- local nFill3 = WinCreate.AddFill( vAreas2[1], WIN_FILLTYPES.GLASS) --- local nSash = WinCreate.AddSash( vAreas2[2], vSashJoints) --- local nFill2 = WinCreate.AddFill( nSash, WIN_FILLTYPES.GLASS) - --- sotto: vetro / anta / vetro | sopra: anta / vetro --- local vAreas = WinCreate.AddSplits( nFrameId, WIN_SPLITORIENTATION.HORIZONTAL, {WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE}, { 50, 50}) --- local vAreas1 = WinCreate.AddSplits( vAreas[1], WIN_SPLITORIENTATION.VERTICAL, {WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE}, { 100/3, 100/3, 100/3}) --- local nFill1 = WinCreate.AddFill( vAreas1[1], WIN_FILLTYPES.GLASS) --- local nSash1 = WinCreate.AddSash( vAreas1[2], vSashJoints) --- local nFill2 = WinCreate.AddFill( nSash1, WIN_FILLTYPES.GLASS) --- local nFill3 = WinCreate.AddFill( vAreas1[3], WIN_FILLTYPES.GLASS) --- local vAreas2 = WinCreate.AddSplits( vAreas[2], WIN_SPLITORIENTATION.VERTICAL, {WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE}, { 50, 50}) --- local nSash2 = WinCreate.AddSash( vAreas2[1], vSashJoints) --- local nFill4 = WinCreate.AddFill( nSash2, WIN_FILLTYPES.GLASS) --- local nFill5 = WinCreate.AddFill( vAreas2[2], WIN_FILLTYPES.GLASS) --- -- WinCreate.AddSplits( nFill1, WIN_SPLITORIENTATION.VERTICAL, { WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE}, { 100/3, 100/3, 100/3}, nil, false, false, WIN_MUNTINFILL_SIDES.BOTH) --- -- WinCreate.AddSplits( nFill2, WIN_SPLITORIENTATION.VERTICAL, { WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE}, { 100/3, 100/3, 100/3}, nil, false, false, WIN_MUNTINFILL_SIDES.BOTH) --- -- WinCreate.AddSplits( nFill3, WIN_SPLITORIENTATION.VERTICAL, { WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE}, { 100/3, 100/3, 100/3}, nil, false, false, WIN_MUNTINFILL_SIDES.BOTH) --- -- WinCreate.AddSplits( nFill4, WIN_SPLITORIENTATION.VERTICAL, { WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE}, { 100/3, 100/3, 100/3}, nil, false, false, WIN_MUNTINFILL_SIDES.BOTH) --- -- WinCreate.AddSplits( nFill5, WIN_SPLITORIENTATION.VERTICAL, { WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE}, { 100/3, 100/3, 100/3}, nil, false, false, WIN_MUNTINFILL_SIDES.BOTH) - --- sotto: vetro / anta / vetro | sopra: vetro / vetro --- local vAreas = WinCreate.AddSplits( nFrameId, WIN_SPLITORIENTATION.HORIZONTAL, {WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE}, { 70, 30}, {80}) --- local vAreas1 = WinCreate.AddSplits( vAreas[1], WIN_SPLITORIENTATION.VERTICAL, {WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE}, { 33.3333, 33.33333, 33.33333}, {80,80}) --- local nFill1 = WinCreate.AddFill( vAreas1[1], WIN_FILLTYPES.GLASS) --- local nSash = WinCreate.AddSash( vAreas1[2], vSashJoints) --- local nFill2 = WinCreate.AddFill( nSash, WIN_FILLTYPES.GLASS) --- local nFill3 = WinCreate.AddFill( vAreas1[3], WIN_FILLTYPES.GLASS) --- local vAreas2 = WinCreate.AddSplits( vAreas[2], WIN_SPLITORIENTATION.VERTICAL, {WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE}, { 50, 50}, {80,80}) --- local nFill4 = WinCreate.AddFill( vAreas2[1], WIN_FILLTYPES.GLASS) --- local nFill5 = WinCreate.AddFill( vAreas2[2], WIN_FILLTYPES.GLASS) - --- sotto: anta-vetro / anta / vetro | sopra: vetro --- local vAreas = WinCreate.AddSplits( nFrameId, WIN_SPLITORIENTATION.HORIZONTAL, {WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE}, { 70, 30}) --- local vAreas1 = WinCreate.AddSplits( vAreas[1], WIN_SPLITORIENTATION.VERTICAL, {WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE}, { 33.3333, 33.33333, 33.33333}) --- local vAreas2 = WinCreate.AddSplits( vAreas1[1], WIN_SPLITORIENTATION.HORIZONTAL, {WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE}, { 50, 50}) --- local nFill1 = WinCreate.AddFill( vAreas2[1], WIN_FILLTYPES.GLASS) --- local nSash1 = WinCreate.AddSash( vAreas2[2], vSashJoints) --- local nFill2 = WinCreate.AddFill( nSash1, WIN_FILLTYPES.GLASS) --- local nSash = WinCreate.AddSash( vAreas1[2], vSashJoints) --- local nFill3 = WinCreate.AddFill( nSash, WIN_FILLTYPES.GLASS) --- local nFill4 = WinCreate.AddFill( vAreas1[3], WIN_FILLTYPES.GLASS) --- local nFill5 = WinCreate.AddFill( vAreas[2], WIN_FILLTYPES.GLASS) - --- sotto: vetro | sopra: anta / vetro - vetro / anta --- local vAreas = WinCreate.AddSplits( nFrameId, WIN_SPLITORIENTATION.HORIZONTAL, {WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE}, { 70, 30}) --- WinCreate.AddFill( vAreas[1], WIN_FILLTYPES.GLASS) --- local vAreas1 = WinCreate.AddSplits( vAreas[2], WIN_SPLITORIENTATION.VERTICAL, {WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE}, { 33.3333, 33.33333, 33.33333}, {80,80}) --- local nSash1 = WinCreate.AddSash( vAreas1[1], vSashJoints) --- WinCreate.AddFill( nSash1, WIN_FILLTYPES.GLASS) --- local nSash2 = WinCreate.AddSash( vAreas1[3], vSashJoints) --- WinCreate.AddFill( nSash2, WIN_FILLTYPES.GLASS) --- local vAreas2 = WinCreate.AddSplits( vAreas1[2], WIN_SPLITORIENTATION.HORIZONTAL, {WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE}, { 50, 50}) --- WinCreate.AddFill( vAreas2[2], WIN_FILLTYPES.GLASS) --- WinCreate.AddFill( vAreas2[1], WIN_FILLTYPES.GLASS) - --- sotto: vetro / anta | sopra: anta / vetro --- local vAreas = WinCreate.AddGridSplits( nFrameId, { WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE}, { 50, 50}, { WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE}, { 50, 50}, true) --- WinCreate.AddFill( vAreas[1], WIN_FILLTYPES.GLASS) --- local nSash1 = WinCreate.AddSash( vAreas[2], vSashJoints) --- WinCreate.AddFill( nSash1, WIN_FILLTYPES.GLASS) --- local nSash2 = WinCreate.AddSash( vAreas[3], vSashJoints) --- WinCreate.AddFill( nSash2, WIN_FILLTYPES.GLASS) --- WinCreate.AddFill( vAreas[4], WIN_FILLTYPES.GLASS) - - - ------------------------- Alzante Scorrevole ------------------------ - --- vFrameDims = { 55, 55, 55, 55} --- vSashDims = { 135, 80, 80, 80} --- local nFrameId = WinCreate.CreateFrame( WIN_FRAME_TYPES.RECT, { WindowWidth, WindowHeight}, vFrameJoints, vFrameDims) --- WinCreate.AddThreshold( nFrameId, 'Threshold') - --- anta mobile a sx --- local vSash = WinCreate.AddSashGroup( nFrameId, { WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE}, { 50, 50}, bDaylight, { vSashJoints, vSashJoints}, { vSashDims, vSashDims}, --- { WIN_SASHTYPES.SLIDE_MOVABLE, WIN_SASHTYPES.SLIDE_FIXED}, { WIN_OPENING_TYPES.COPLANARSLIDE_RIGHT, WIN_OPENING_TYPES.FIXED}) --- local nFill1 = WinCreate.AddFill( vSash[1], WIN_FILLTYPES.GLASS) --- local nFill2 = WinCreate.AddFill( vSash[2], WIN_FILLTYPES.GLASS) --- -- WinCreate.AddSplits( nFill1, WIN_SPLITORIENTATION.HORIZONTAL, { WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE}, { 50, 50}, nil, false, false, WIN_MUNTINFILL_SIDES.BOTH) --- -- WinCreate.AddSplits( nFill2, WIN_SPLITORIENTATION.HORIZONTAL, { WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE}, { 50, 50}, nil, false, false, WIN_MUNTINFILL_SIDES.BOTH) --- -- local nSashGrpId = EgtGetParent( vSash[1]) --- -- WinCreate.AddHardware( nSashGrpId, '000592', 'Sx') - --- anta mobile a dx --- local vSash = WinCreate.AddSashGroup( nFrameId, { WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE}, { 50, 50}, bDaylight, { vSashJoints, vSashJoints}, { vSashDims, vSashDims}, --- { WIN_SASHTYPES.SLIDE_FIXED, WIN_SASHTYPES.SLIDE_MOVABLE}, { WIN_OPENING_TYPES.FIXED, WIN_OPENING_TYPES.COPLANARSLIDE_LEFT}) --- WinCreate.AddFill( vSash[1], WIN_FILLTYPES.GLASS) --- WinCreate.AddFill( vSash[2], WIN_FILLTYPES.GLASS) --- -- local nSashGrpId = EgtGetParent( vSash[1]) --- -- WinCreate.AddHardware( nSashGrpId, '000592', 'Dx') - --- 2 ante mobili, sx davanti --- local vSash = WinCreate.AddSashGroup( nFrameId, { WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE}, { 50, 50}, bDaylight, { vSashJoints, vSashJoints}, { vSashDims, vSashDims}, --- { WIN_SASHTYPES.SLIDE_MOVABLE, WIN_SASHTYPES.SLIDE_MOVABLE_BACK}, { WIN_OPENING_TYPES.COPLANARSLIDE_RIGHT, WIN_OPENING_TYPES.COPLANARSLIDE_LEFT}) --- WinCreate.AddFill( vSash[1], WIN_FILLTYPES.GLASS) --- WinCreate.AddFill( vSash[2], WIN_FILLTYPES.GLASS) --- -- local nSashGrpId = EgtGetParent( vSash[1]) --- -- WinCreate.AddHardware( nSashGrpId, '000593', 'Sx') - --- 2 ante mobili, dx davanti --- local vSash = WinCreate.AddSashGroup( nFrameId, { WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE}, { 50, 50}, bDaylight, { vSashJoints, vSashJoints}, { vSashDims, vSashDims}, --- { WIN_SASHTYPES.SLIDE_MOVABLE_BACK, WIN_SASHTYPES.SLIDE_MOVABLE}, { WIN_OPENING_TYPES.COPLANARSLIDE_RIGHT, WIN_OPENING_TYPES.COPLANARSLIDE_LEFT}) --- WinCreate.AddFill( vSash[1], WIN_FILLTYPES.GLASS) --- WinCreate.AddFill( vSash[2], WIN_FILLTYPES.GLASS) --- local nSashGrpId = EgtGetParent( vSash[1]) --- WinCreate.AddHardware( nSashGrpId, '000593', 'Dx') - --- 4 ante, le centrali sono mobili --- local nFrameId = WinCreate.CreateFrame( WIN_FRAME_TYPES.RECT, { 4500, 2100}, vFrameJoints, vFrameDims) --- WinCreate.AddThreshold( nFrameId, 'Threshold') --- local vSash = WinCreate.AddSashGroup( nFrameId, { WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE}, { 25, 25, 25, 25}, bDaylight, --- { vSashJoints, vSashJoints, vSashJoints, vSashJoints}, { vSashDims, vSashDims, vSashDims, vSashDims}, --- { WIN_SASHTYPES.SLIDE_FIXED, WIN_SASHTYPES.SLIDE_MOVABLE, WIN_SASHTYPES.SLIDE_MOVABLE, WIN_SASHTYPES.SLIDE_FIXED}, --- { WIN_OPENING_TYPES.FIXED, WIN_OPENING_TYPES.COPLANARSLIDE_LEFT, WIN_OPENING_TYPES.COPLANARSLIDE_RIGHT, WIN_OPENING_TYPES.FIXED}) --- WinCreate.AddFill( vSash[1], WIN_FILLTYPES.GLASS) --- WinCreate.AddFill( vSash[2], WIN_FILLTYPES.GLASS) --- WinCreate.AddFill( vSash[3], WIN_FILLTYPES.GLASS) --- WinCreate.AddFill( vSash[4], WIN_FILLTYPES.GLASS) --- -- local nSashGrpId = EgtGetParent( vSash[1]) --- -- WinCreate.AddHardware( nSashGrpId, '000594', 'Dx') - --- 4 ante mobili --- local nFrameId = WinCreate.CreateFrame( WIN_FRAME_TYPES.RECT, { 4500, 2100}, vFrameJoints, vFrameDims) --- -- WinCreate.AddThreshold( nFrameId, 'Threshold') --- local vSash = WinCreate.AddSashGroup( nFrameId, { WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE}, { 25, 25, 25, 25}, bDaylight, --- { vSashJoints, vSashJoints, vSashJoints, vSashJoints}, { vSashDims, vSashDims, vSashDims, vSashDims}, --- { WIN_SASHTYPES.SLIDE_MOVABLE_BACK, WIN_SASHTYPES.SLIDE_MOVABLE, WIN_SASHTYPES.SLIDE_MOVABLE, WIN_SASHTYPES.SLIDE_MOVABLE_BACK}, --- { WIN_OPENING_TYPES.COPLANARSLIDE_RIGHT, WIN_OPENING_TYPES.COPLANARSLIDE_LEFT, WIN_OPENING_TYPES.COPLANARSLIDE_RIGHT, WIN_OPENING_TYPES.COPLANARSLIDE_LEFT}) --- local nFill1 = WinCreate.AddFill( vSash[1], WIN_FILLTYPES.GLASS) --- local nFill2 = WinCreate.AddFill( vSash[2], WIN_FILLTYPES.GLASS) --- local nFill3 = WinCreate.AddFill( vSash[3], WIN_FILLTYPES.GLASS) --- local nFill4 = WinCreate.AddFill( vSash[4], WIN_FILLTYPES.GLASS) --- WinCreate.AddGridSplits( nFill1, { WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE}, { 50, 50}, --- { WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE}, { 33.333, 33.333, 33.333}, true, nil, nil, WIN_MUNTINFILL_SIDES.BOTH) --- WinCreate.AddGridSplits( nFill2, { WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE}, { 50, 50}, --- { WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE}, { 33.333, 33.333, 33.333}, true, nil, nil, WIN_MUNTINFILL_SIDES.BOTH) --- WinCreate.AddGridSplits( nFill3, { WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE}, { 50, 50}, --- { WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE}, { 33.333, 33.333, 33.333}, true, nil, nil, WIN_MUNTINFILL_SIDES.BOTH) --- WinCreate.AddGridSplits( nFill4, { WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE}, { 50, 50}, --- { WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE}, { 33.333, 33.333, 33.333}, true, nil, nil, WIN_MUNTINFILL_SIDES.BOTH) --- -- local nSashGrpId = EgtGetParent( vSash[1]) --- -- WinCreate.AddHardware( nSashGrpId, '000595', 'Dx') - - - ------------------------- Finestre vetro fisso ------------------------ - --- standard --- WinCreate.AddBottomRail( nFrameId, 2, { 90, 78}) --- WinCreate.AddFill( nFrameId, WIN_FILLTYPES.GLASS) - --- divisione orizzontale / verticale --- WinCreate.AddBottomRail( nFrameId, 3, {}) --- local vAreas = WinCreate.AddSplits( nFrameId, WIN_SPLITORIENTATION.HORIZONTAL, { WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE}, { 70, 30}, { 70}) --- -- local vAreas = WinCreate.AddSplits( nFrameId, WIN_SPLITORIENTATION.VERTICAL, { WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE}, { 70, 30}, { 60}) --- WinCreate.AddFill( vAreas[1], WIN_FILLTYPES.GLASS) --- WinCreate.AddFill( vAreas[2], WIN_FILLTYPES.GLASS) - --- divisione verticale ed orizzontale (1) --- WinCreate.AddBottomRail( nFrameId, 1, { 60}) --- local vAreas1 = WinCreate.AddSplits( nFrameId, WIN_SPLITORIENTATION.VERTICAL, { WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE}, { 50, 50}, { 100}) --- local vAreas2 = WinCreate.AddSplits( vAreas1[1], WIN_SPLITORIENTATION.HORIZONTAL, { WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE}, { 50, 50}, { 60}) --- local vAreas3 = WinCreate.AddSplits( vAreas1[2], WIN_SPLITORIENTATION.HORIZONTAL, { WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE}, { 50, 50}, { 60}) --- WinCreate.AddFill( vAreas2[1], WIN_FILLTYPES.GLASS) --- WinCreate.AddFill( vAreas2[2], WIN_FILLTYPES.GLASS) --- WinCreate.AddFill( vAreas3[1], WIN_FILLTYPES.GLASS) --- WinCreate.AddFill( vAreas3[2], WIN_FILLTYPES.GLASS) - --- divisione verticale ed orizzontale (2) --- WinCreate.AddBottomRail( nFrameId, 2) --- local vAreas = WinCreate.AddGridSplits( nFrameId, { WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE}, { 50, 50}, { WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE}, { 70, 30}, --- true, { 100}, { 60}) --- WinCreate.AddFill( vAreas[1], WIN_FILLTYPES.GLASS) --- WinCreate.AddFill( vAreas[2], WIN_FILLTYPES.GLASS) --- WinCreate.AddFill( vAreas[3], WIN_FILLTYPES.GLASS) --- WinCreate.AddFill( vAreas[4], WIN_FILLTYPES.GLASS) - - - ------------------------- Finestre con anta singola ------------------------ - --- standard --- WinCreate.AddThreshold( nFrameId, 'Threshold') --- local nSashId = WinCreate.AddSash( nFrameId, vSashJoints, vSashDims, WIN_OPENING_TYPES.TILTTURN_LEFT) --- WinCreate.AddBottomRail( nSashId, 2, { 90, 60}) --- WinCreate.AddFill( nSashId, WIN_FILLTYPES.GLASS) - --- divisione orizzontale / verticale --- local nSashId = WinCreate.AddSash( nFrameId, vSashJoints, vSashDims, WIN_OPENING_TYPES.TILTTURN_LEFT) --- WinCreate.AddBottomRail( nSashId, 1, { 100}) --- -- local vAreas = WinCreate.AddSplits( nSashId, WIN_SPLITORIENTATION.HORIZONTAL, { WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE}, { 70, 30}) --- local vAreas = WinCreate.AddSplits( nSashId, WIN_SPLITORIENTATION.VERTICAL, { WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE}, { 50, 50}) --- WinCreate.AddFill( vAreas[1], WIN_FILLTYPES.GLASS) --- WinCreate.AddFill( vAreas[2], WIN_FILLTYPES.GLASS) - --- divisione verticale e orizzontale --- local nSashId = WinCreate.AddSash( nFrameId, vSashJoints, vSashDims, WIN_OPENING_TYPES.TILTTURN_LEFT) --- local vAreas1 = WinCreate.AddSplits( nSashId, WIN_SPLITORIENTATION.VERTICAL, { WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE}, { 50, 50}, { 100}) --- local vAreas2 = WinCreate.AddSplits( vAreas1[1], WIN_SPLITORIENTATION.HORIZONTAL, { WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE}, { 50, 50}, { 60}) --- local vAreas3 = WinCreate.AddSplits( vAreas1[2], WIN_SPLITORIENTATION.HORIZONTAL, { WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE}, { 50, 50}, { 60}) --- WinCreate.AddFill( vAreas2[1], WIN_FILLTYPES.GLASS) --- WinCreate.AddFill( vAreas2[2], WIN_FILLTYPES.GLASS) --- WinCreate.AddFill( vAreas3[1], WIN_FILLTYPES.GLASS) --- WinCreate.AddFill( vAreas3[2], WIN_FILLTYPES.GLASS) - - - ------------------------- Finestre con più ante singole ------------------------ - --- due ante divisione verticale --- local vAreas = WinCreate.AddSplits( nFrameId, WIN_SPLITORIENTATION.VERTICAL, { WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE}, { 50, 50}, { 120}) --- local nSash1Id = WinCreate.AddSash( vAreas[1], vSashJoints, vSashDims, WIN_OPENING_TYPES.TILTTURN_LEFT) --- WinCreate.AddFill( nSash1Id, WIN_FILLTYPES.GLASS) --- local nSash2Id = WinCreate.AddSash( vAreas[2], vSashJoints, vSashDims, WIN_OPENING_TYPES.TILTTURN_RIGHT) --- WinCreate.AddFill( nSash2Id, WIN_FILLTYPES.GLASS) - --- due ante divisione orizzontale --- local vAreas = WinCreate.AddSplits( nFrameId, WIN_SPLITORIENTATION.HORIZONTAL, { WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE}, { 50, 50}, { 120}) --- local nSash1Id = WinCreate.AddSash( vAreas[1], vSashJoints, vSashDims, WIN_OPENING_TYPES.TILTONLY_TOP) --- WinCreate.AddFill( nSash1Id, WIN_FILLTYPES.GLASS) --- local nSash2Id = WinCreate.AddSash( vAreas[2], vSashJoints, vSashDims, WIN_OPENING_TYPES.TILTONLY_TOP) --- WinCreate.AddFill( nSash2Id, WIN_FILLTYPES.GLASS) - --- tre ante --- -- local vAreas = WinCreate.AddSplits( nFrameId, WIN_SPLITORIENTATION.VERTICAL, { WIN_MEASURE.ABSOLUTE, WIN_MEASURE.ABSOLUTE, WIN_MEASURE.PROPORTIONAL}, { 500, 200, 1}, { 95, 95}) --- -- local vAreas = WinCreate.AddSplits( nFrameId, WIN_SPLITORIENTATION.VERTICAL, { WIN_MEASURE.PROPORTIONAL, WIN_MEASURE.PROPORTIONAL, WIN_MEASURE.PROPORTIONAL}, { 1, 1, 1}, { 95, 95}) --- local vAreas = WinCreate.AddSplits( nFrameId, WIN_SPLITORIENTATION.VERTICAL, { WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE}, { 33.333, 33.333, 33.333}, { 95, 95}) --- local nSash1Id = WinCreate.AddSash( vAreas[1], vSashJoints, vSashDims) --- WinCreate.AddFill( nSash1Id, WIN_FILLTYPES.GLASS) --- local nSash2Id = WinCreate.AddSash( vAreas[2], vSashJoints, vSashDims) --- WinCreate.AddFill( nSash2Id, WIN_FILLTYPES.GLASS) --- local nSash3Id = WinCreate.AddSash( vAreas[3], vSashJoints, vSashDims) --- WinCreate.AddFill( nSash3Id, WIN_FILLTYPES.GLASS) - --- tre ante : una sopra e due sotto --- local vAreas1 = WinCreate.AddSplits( nFrameId, WIN_SPLITORIENTATION.HORIZONTAL, { WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE}, { 50, 50}, { 115}) --- local vAreas2 = WinCreate.AddSplits( vAreas1[1], WIN_SPLITORIENTATION.VERTICAL, { WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE}, { 50, 50}, { 95}) --- local nSash1Id = WinCreate.AddSash( vAreas1[2], vSashJoints, vSashDims, WIN_OPENING_TYPES.FIXED) --- WinCreate.AddFill( nSash1Id, WIN_FILLTYPES.GLASS) --- local nSash2Id = WinCreate.AddSash( vAreas2[1], vSashJoints, vSashDims, WIN_OPENING_TYPES.TILTTURN_LEFT) --- WinCreate.AddFill( nSash2Id, WIN_FILLTYPES.GLASS) --- local nSash3Id = WinCreate.AddSash( vAreas2[2], vSashJoints, vSashDims, WIN_OPENING_TYPES.TILTTURN_RIGHT) --- WinCreate.AddFill( nSash3Id, WIN_FILLTYPES.GLASS) - --- sei ante (1) --- local vAreas = WinCreate.AddSplits( nFrameId, WIN_SPLITORIENTATION.HORIZONTAL, { WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE}, { 50, 50}, { 105}) --- local vAreas1 = WinCreate.AddSplits( vAreas[1], WIN_SPLITORIENTATION.VERTICAL, { WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE}, { 33.333, 33.333, 33.333}, { 95, 95}) --- local vAreas2 = WinCreate.AddSplits( vAreas[2], WIN_SPLITORIENTATION.VERTICAL, { WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE}, { 33.333, 33.333, 33.333}, { 95, 95}) --- local nSash1Id = WinCreate.AddSash( vAreas1[1], vSashJoints, vSashDims) --- WinCreate.AddFill( nSash1Id, WIN_FILLTYPES.GLASS) --- local nSash2Id = WinCreate.AddSash( vAreas1[2], vSashJoints, vSashDims) --- WinCreate.AddFill( nSash2Id, WIN_FILLTYPES.GLASS) --- local nSash3Id = WinCreate.AddSash( vAreas1[3], vSashJoints, vSashDims) --- WinCreate.AddFill( nSash3Id, WIN_FILLTYPES.GLASS) --- local nSash4Id = WinCreate.AddSash( vAreas2[1], vSashJoints, vSashDims) --- WinCreate.AddFill( nSash4Id, WIN_FILLTYPES.GLASS) --- local nSash5Id = WinCreate.AddSash( vAreas2[2], vSashJoints, vSashDims) --- WinCreate.AddFill( nSash5Id, WIN_FILLTYPES.GLASS) --- local nSash6Id = WinCreate.AddSash( vAreas2[3], vSashJoints, vSashDims) --- WinCreate.AddFill( nSash6Id, WIN_FILLTYPES.GLASS) - --- sei ante (2) --- local vAreas = WinCreate.AddGridSplits( nFrameId, { WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE}, { 33.333, 33.333, 33.333}, --- { WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE}, { 50, 50}, false, { 100, 85}, { 120}) --- local nSash1Id = WinCreate.AddSash( vAreas[1], vSashJoints, vSashDims) --- WinCreate.AddFill( nSash1Id, WIN_FILLTYPES.GLASS) --- local nSash2Id = WinCreate.AddSash( vAreas[2], vSashJoints, vSashDims) --- WinCreate.AddFill( nSash2Id, WIN_FILLTYPES.GLASS) --- local nSash3Id = WinCreate.AddSash( vAreas[3], vSashJoints, vSashDims) --- WinCreate.AddFill( nSash3Id, WIN_FILLTYPES.GLASS) --- local nSash4Id = WinCreate.AddSash( vAreas[4], vSashJoints, vSashDims) --- WinCreate.AddFill( nSash4Id, WIN_FILLTYPES.GLASS) --- local nSash5Id = WinCreate.AddSash( vAreas[5], vSashJoints, vSashDims) --- WinCreate.AddFill( nSash5Id, WIN_FILLTYPES.GLASS) --- local nSash6Id = WinCreate.AddSash( vAreas[6], vSashJoints, vSashDims) --- WinCreate.AddFill( nSash6Id, WIN_FILLTYPES.GLASS) - - - ------------------------- Finestre con ante battenti e riceventi ------------------------ - --- battente / ricevente --- local vSashes = WinCreate.AddSashGroup( nFrameId, { WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE}, { 50, 50}, bDaylight, --- { vSashJoints, vSashJoints}, { vSashDims, vSashDims}, { WIN_SASHTYPES.ACTIVE, WIN_SASHTYPES.INACTIVE}, --- { WIN_OPENING_TYPES.TURNONLY_LEFT, WIN_OPENING_TYPES.TURNONLY_RIGHT}) --- WinCreate.AddFill( vSashes[1], WIN_FILLTYPES.GLASS) --- WinCreate.AddFill( vSashes[2], WIN_FILLTYPES.GLASS) - --- battente / ricevente / ricevente --- local vSashes = WinCreate.AddSashGroup( nFrameId, { WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE}, { 100/3, 100/3, !00/3}, bDaylight, --- { vSashJoints, vSashJoints, vSashJoints}, { vSashDims, vSashDims, vSashDims}, --- { WIN_SASHTYPES.ACTIVE, WIN_SASHTYPES.INACTIVE_IN, WIN_SASHTYPES.INACTIVE_OUT}, --- { WIN_OPENING_TYPES.TURNONLY_LEFT, WIN_OPENING_TYPES.TURNONLY_RIGHT, WIN_OPENING_TYPES.TURNONLY_RIGHT}) --- WinCreate.AddFill( vSashes[1], WIN_FILLTYPES.GLASS) --- WinCreate.AddFill( vSashes[2], WIN_FILLTYPES.GLASS) --- WinCreate.AddFill( vSashes[3], WIN_FILLTYPES.GLASS) - --- battente / battente / ricevente --- local vSashes = WinCreate.AddSashGroup( nFrameId, { WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE}, { 33.333, 33.333, 33.333}, bDaylight, --- { vSashJoints, vSashJoints, vSashJoints}, { vSashDims, vSashDims, vSashDims}, --- { WIN_SASHTYPES.ACTIVE_OUT, WIN_SASHTYPES.ACTIVE_IN, WIN_SASHTYPES.INACTIVE}, --- { WIN_OPENING_TYPES.TURNONLY_LEFT, WIN_OPENING_TYPES.TURNONLY_LEFT, WIN_OPENING_TYPES.TURNONLY_RIGHT}) --- WinCreate.AddFill( vSashes[1], WIN_FILLTYPES.GLASS) --- WinCreate.AddFill( vSashes[2], WIN_FILLTYPES.GLASS) --- WinCreate.AddFill( vSashes[3], WIN_FILLTYPES.GLASS) - --- battente / battente / ricevente / ricevente --- local vSashes = WinCreate.AddSashGroup( nFrameId, { WIN_MEASURE.PROPORTIONAL, WIN_MEASURE.PROPORTIONAL, WIN_MEASURE.PROPORTIONAL, WIN_MEASURE.PROPORTIONAL}, { 1, 1, 1, 1}, bDaylight, --- { vSashJoints, vSashJoints, vSashJoints, vSashJoints}, { vSashDims, vSashDims, vSashDims, vSashDims}, --- { WIN_SASHTYPES.ACTIVE_OUT, WIN_SASHTYPES.ACTIVE_IN, WIN_SASHTYPES.INACTIVE_IN, WIN_SASHTYPES.INACTIVE_OUT}, --- { WIN_OPENING_TYPES.TURNONLY_LEFT, WIN_OPENING_TYPES.TURNONLY_LEFT, WIN_OPENING_TYPES.TURNONLY_RIGHT, WIN_OPENING_TYPES.TURNONLY_RIGHT}) --- WinCreate.AddFill( vSashes[1], WIN_FILLTYPES.GLASS) --- WinCreate.AddFill( vSashes[2], WIN_FILLTYPES.GLASS) --- WinCreate.AddFill( vSashes[3], WIN_FILLTYPES.GLASS) --- WinCreate.AddFill( vSashes[4], WIN_FILLTYPES.GLASS) - - - ------------------------- Finestre con ante singole e ante battenti/riceventi ------------------------ - --- tre ante : singola / ricevente / battente --- local vAreas = WinCreate.AddSplits( nFrameId, WIN_SPLITORIENTATION.VERTICAL, { WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE}, { 33, 67}, { 115}) --- local nSash1Id = WinCreate.AddSash( vAreas[1], vSashJoints, vSashDims, WIN_OPENING_TYPES.TILTTURN_LEFT) --- WinCreate.AddFill( nSash1Id, WIN_FILLTYPES.GLASS) --- local vSashes = WinCreate.AddSashGroup( vAreas[2], { WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE}, { 50, 50}, bDaylight, --- { vSashJoints, vSashJoints}, { vSashDims, vSashDims}, { WIN_SASHTYPES.INACTIVE, WIN_SASHTYPES.ACTIVE}, --- { WIN_OPENING_TYPES.TURNONLY_LEFT, WIN_OPENING_TYPES.TURNONLY_RIGHT}) --- WinCreate.AddFill( vSashes[1], WIN_FILLTYPES.GLASS) --- WinCreate.AddFill( vSashes[2], WIN_FILLTYPES.GLASS) - --- tre ante ( singola / ricevente/ battente) con split nelle ante --- local vAreas = WinCreate.AddSplits( nFrameId, WIN_SPLITORIENTATION.VERTICAL, { WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE}, { 33, 67}, { 95}) --- local nSash1Id = WinCreate.AddSash( vAreas[1], vSashJoints, vSashDims, WIN_OPENING_TYPES.TILTTURN_LEFT) --- local vAreasSash1 = WinCreate.AddSplits( nSash1Id, WIN_SPLITORIENTATION.HORIZONTAL, { WIN_MEASURE.ABSOLUTE, WIN_MEASURE.PROPORTIONAL}, { WindowHeight / 5, 1}, { 60}) --- WinCreate.AddFill( vAreasSash1[1], WIN_FILLTYPES.GLASS) --- WinCreate.AddFill( vAreasSash1[2], WIN_FILLTYPES.GLASS) --- local vSashes2 = WinCreate.AddSashGroup( vAreas[2], { WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE}, { 50, 50}, bDaylight, --- { vSashJoints, vSashJoints}, { vSashDims, vSashDims}, { WIN_SASHTYPES.INACTIVE, WIN_SASHTYPES.ACTIVE}, --- { WIN_OPENING_TYPES.TURNONLY_LEFT, WIN_OPENING_TYPES.TURNONLY_RIGHT}) --- local vAreasSash2 = WinCreate.AddSplits( vSashes2[1], WIN_SPLITORIENTATION.HORIZONTAL, { WIN_MEASURE.ABSOLUTE, WIN_MEASURE.PROPORTIONAL}, { WindowHeight / 5, 1}, { 60}) --- WinCreate.AddFill( vAreasSash2[1], WIN_FILLTYPES.GLASS) --- WinCreate.AddFill( vAreasSash2[2], WIN_FILLTYPES.GLASS) --- local vAreasSash3 = WinCreate.AddSplits( vSashes2[2], WIN_SPLITORIENTATION.HORIZONTAL, { WIN_MEASURE.ABSOLUTE, WIN_MEASURE.PROPORTIONAL}, { WindowHeight / 5, 1}, { 60}) --- WinCreate.AddFill( vAreasSash3[1], WIN_FILLTYPES.GLASS) --- WinCreate.AddFill( vAreasSash3[2], WIN_FILLTYPES.GLASS) - --- 3 ante : sopra battente / ricevente, sotto singola --- local vAreas = WinCreate.AddSplits( nFrameId, WIN_SPLITORIENTATION.HORIZONTAL, { WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE}, { 30, 70}, { 105}) --- local nSash0Id = WinCreate.AddSash( vAreas[1], vSashJoints, vSashDims, WIN_OPENING_TYPES.FIXED) --- WinCreate.AddFill( nSash0Id, WIN_FILLTYPES.GLASS) --- local vSashes = WinCreate.AddSashGroup( vAreas[2], { WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE}, { 50, 50}, bDaylight, --- { vSashJoints, vSashJoints}, { vSashDims, vSashDims}, { WIN_SASHTYPES.ACTIVE, WIN_SASHTYPES.INACTIVE}, --- { WIN_OPENING_TYPES.TURNONLY_LEFT, WIN_OPENING_TYPES.TURNONLY_RIGHT}) --- WinCreate.AddFill( vSashes[1], WIN_FILLTYPES.GLASS) --- WinCreate.AddFill( vSashes[2], WIN_FILLTYPES.GLASS) - --- 4 ante : sopra anta singola e sotto singola ( con split) / battente / ricevente --- local vAreas = WinCreate.AddSplits( nFrameId, WIN_SPLITORIENTATION.HORIZONTAL, { WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE}, { 70, 30}, { 95}) --- local vAreas1 = WinCreate.AddSplits( vAreas[1], WIN_SPLITORIENTATION.VERTICAL, { WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE}, { 30, 70}, { 95}) --- local nSash0Id = WinCreate.AddSash( vAreas[2], vSashJoints, vSashDims, WIN_OPENING_TYPES.TILTONLY_TOP) --- WinCreate.AddFill( nSash0Id, WIN_FILLTYPES.GLASS) --- local nSash1Id = WinCreate.AddSash( vAreas1[1], vSashJoints, vSashDims, WIN_OPENING_TYPES.TILTTURN_LEFT) --- local vSashAreas = WinCreate.AddSplits( nSash1Id, WIN_SPLITORIENTATION.HORIZONTAL, { WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE}, { 60, 40}, { 60}) --- WinCreate.AddFill( vSashAreas[1], WIN_FILLTYPES.GLASS) --- WinCreate.AddFill( vSashAreas[2], WIN_FILLTYPES.GLASS) --- local vSashes = WinCreate.AddSashGroup( vAreas1[2], { WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE}, { 50, 50}, bDaylight, --- { vSashJoints, vSashJoints}, { vSashDims, vSashDims}, { WIN_SASHTYPES.ACTIVE, WIN_SASHTYPES.INACTIVE}, --- { WIN_OPENING_TYPES.TURNONLY_LEFT, WIN_OPENING_TYPES.TURNONLY_RIGHT}) --- WinCreate.AddFill( vSashes[1], WIN_FILLTYPES.GLASS) --- WinCreate.AddFill( vSashes[2], WIN_FILLTYPES.GLASS) - --- sei ante : divisione orizzontale e per ogni divisione anta singola / battente/ ricevente --- local vAreas = WinCreate.AddGridSplits( nFrameId, { WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE}, { 33, 67}, { WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE}, { 50, 50}, false, { 95}, { 115}) --- local nSash1Id = WinCreate.AddSash( vAreas[1], vSashJoints, vSashDims,WIN_OPENING_TYPES.TILTTURN_LEFT) --- WinCreate.AddFill( nSash1Id, WIN_FILLTYPES.GLASS) --- local nSash2Id = WinCreate.AddSash( vAreas[3], vSashJoints, vSashDims, WIN_OPENING_TYPES.TILTTURN_LEFT) --- WinCreate.AddFill( nSash2Id, WIN_FILLTYPES.GLASS) --- local vSashes1 = WinCreate.AddSashGroup( vAreas[2], { WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE}, { 50, 50}, bDaylight, --- { vSashJoints, vSashJoints}, { vSashDims, vSashDims}, { WIN_SASHTYPES.ACTIVE, WIN_SASHTYPES.INACTIVE}, --- { WIN_OPENING_TYPES.TURNONLY_LEFT, WIN_OPENING_TYPES.TURNONLY_RIGHT}) --- WinCreate.AddFill( vSashes1[1], WIN_FILLTYPES.GLASS) --- WinCreate.AddFill( vSashes1[2], WIN_FILLTYPES.GLASS) --- local vSashes2 = WinCreate.AddSashGroup( vAreas[4], { WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE}, { 50, 50}, bDaylight, --- { vSashJoints, vSashJoints}, { vSashDims, vSashDims}, { WIN_SASHTYPES.ACTIVE, WIN_SASHTYPES.INACTIVE}, --- { WIN_OPENING_TYPES.TURNONLY_LEFT, WIN_OPENING_TYPES.TURNONLY_RIGHT}) --- WinCreate.AddFill( vSashes2[1], WIN_FILLTYPES.GLASS) --- WinCreate.AddFill( vSashes2[2], WIN_FILLTYPES.GLASS) - - - ------------------------- Inglesine ------------------------ - --- vetro fisso con inglesina interna --- WinCreate.AddBottomRail( nFrameId, 2, { 90, 78}) --- local nFill = WinCreate.AddFill( nFrameId, WIN_FILLTYPES.GLASS) --- WinCreate.AddSplits( nFill, WIN_SPLITORIENTATION.VERTICAL, { WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE}, { 33.3333, 33.3333, 33.33333}, --- nil, false, false, WIN_MUNTINFILL_SIDES.IN) - --- vetro fisso con inglesine a griglia (1) --- WinCreate.AddBottomRail( nFrameId, 2) --- local nFill = WinCreate.AddFill( nFrameId, WIN_FILLTYPES.GLASS) --- WinCreate.AddGridSplits( nFill, { WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE}, { 50, 50}, --- { WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE}, { 33.333, 33.333, 33.333}, true, { 50}, { 30, 30}, WIN_MUNTINFILL_SIDES.BOTH) - --- vetro fisso con inglesine a griglia (2) --- WinCreate.AddBottomRail( nFrameId, 2) --- local nFill = WinCreate.AddFill( nFrameId, WIN_FILLTYPES.GLASS) --- local vAreas = WinCreate.AddSplits( nFill, WIN_SPLITORIENTATION.VERTICAL, { WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE}, { 50, 50}, nil, false, false, 3) --- WinCreate.AddSplits( vAreas[1], WIN_SPLITORIENTATION.HORIZONTAL, { WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE}, { 33.3333, 33.3333, 33.3333}, --- nil, false, false, WIN_MUNTINFILL_SIDES.BOTH) --- WinCreate.AddSplits( vAreas[2], WIN_SPLITORIENTATION.HORIZONTAL, { WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE}, { 33.3333, 33.3333, 33.3333}, --- nil, false, false, WIN_MUNTINFILL_SIDES.BOTH) - --- 4 vetri fissi con inglesine --- local vAreas = WinCreate.AddGridSplits( nFrameId, { WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE}, { 50, 50}, --- { WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE}, { 50, 50}, true) --- local nFill1 = WinCreate.AddFill( vAreas[1], WIN_FILLTYPES.GLASS) --- WinCreate.AddGridSplits( nFill1, { WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE}, { 50, 50}, --- { WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE}, { 50, 50}, false, nil, nil, WIN_MUNTINFILL_SIDES.BOTH) --- local nFill2 = WinCreate.AddFill( vAreas[2], WIN_FILLTYPES.GLASS) --- WinCreate.AddSplits( nFill2, WIN_SPLITORIENTATION.HORIZONTAL, { WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE}, { 33.3333, 33.3333, 33.33333}, --- { 40, 50}, false, false, WIN_MUNTINFILL_SIDES.IN) --- local nFill3 = WinCreate.AddFill( vAreas[3], WIN_FILLTYPES.GLASS) --- WinCreate.AddGridSplits( nFill3, { WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE}, { 50, 50}, --- { WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE}, { 50, 50}, --- true, nil, nil, WIN_MUNTINFILL_SIDES.BOTH) --- local nFill4 = WinCreate.AddFill( vAreas[4], WIN_FILLTYPES.GLASS) --- WinCreate.AddSplits( nFill4, WIN_SPLITORIENTATION.VERTICAL, { WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE}, { 33.3333, 33.3333, 33.33333}, --- nil, false, false, WIN_MUNTINFILL_SIDES.OUT) - --- anta con inglesine --- local nSash = WinCreate.AddSash( nFrameId, vSashJoints, vSashDims) --- local nFill = WinCreate.AddFill( nSash, WIN_FILLTYPES.GLASS) --- WinCreate.AddSplits( nFill, WIN_SPLITORIENTATION.HORIZONTAL, { WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE}, --- { 33.3333, 33.3333, 33.33333}, nil, false, false, WIN_MUNTINFILL_SIDES.BOTH) - - - ------------------------- Ferramenta ------------------------ - --- local nFrameId = WinCreate.CreateFrame( WIN_FRAME_TYPES.RECT, { 1500, 2100}, vFrameJoints, vFrameDims) --- local nFrameId = WinCreate.CreateFrame( WIN_FRAME_TYPES.ROUND_ARC, { 1500, 2100}, vFrameJoints, vFrameDims) --- local nFrameId = WinCreate.CreateFrame( WIN_FRAME_TYPES.SEGMENTAL_ARC, { 1500, 1500, 1700}, vFrameJoints, vFrameDims) --- local nFrameId = WinCreate.CreateFrame( WIN_FRAME_TYPES.CHAMFER_SIDE, { 1500, 1800 + 1200, 1800}, vFrameJoints, vFrameDims) --- local nFrameId = WinCreate.CreateFrame( WIN_FRAME_TYPES.CHAMFER, { 1500, 1500, 1800}, vFrameJoints, vFrameDims) - --- anta singola --- local nSashId = WinCreate.AddSash( nFrameId, vSashJoints, vSashDims, WIN_OPENING_TYPES.TILTTURN_LEFT) --- WinCreate.AddFill( nSashId, WIN_FILLTYPES.GLASS) --- WinCreate.AddHardware( nSashId, '000558', 'Sx') --- WinCreate.AddHardware( nSashId, '000545', 'Sx') -- aria 4, errato ma crea alcune lavorazioni in più --- -- WinCreate.AddHardware( nSashId, '000596', 'Sx') -- arco a tutto sesto --- -- WinCreate.AddHardware( nSashId, '000597', 'Sx') -- arco ribassato --- -- WinCreate.AddHardware( nSashId, '000604', 'Sx') -- trapezio - --- 2 ante singole --- local vAreas = WinCreate.AddSplits( nFrameId, WIN_SPLITORIENTATION.VERTICAL, { WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE}, { 50, 50}, { 95}) --- local nSash1Id = WinCreate.AddSash( vAreas[1], vSashJoints, vSashDims, WIN_OPENING_TYPES.TILTTURN_LEFT) --- local nSash2Id = WinCreate.AddSash( vAreas[2], vSashJoints, vSashDims, WIN_OPENING_TYPES.TILTTURN_RIGHT) --- WinCreate.AddFill( nSash1Id, WIN_FILLTYPES.GLASS) --- WinCreate.AddFill( nSash2Id, WIN_FILLTYPES.GLASS) --- WinCreate.AddHardware( nSash1Id, '000558', 'Sx') --- WinCreate.AddHardware( nSash2Id, '000558', 'Dx') --- -- WinCreate.AddHardware( nSash1Id, '000610', 'Sx') -- arco a tutto sesto --- -- WinCreate.AddHardware( nSash2Id, '000610', 'Dx') --- -- WinCreate.AddHardware( nSash1Id, '000611', 'Sx') -- arco ribassato --- -- WinCreate.AddHardware( nSash2Id, '000611', 'Dx') --- -- WinCreate.AddHardware( nSash1Id, '000604', 'Sx') -- trapezio --- -- WinCreate.AddHardware( nSash2Id, '000604', 'Dx') - --- 2 ante singole con apertura sul montante --- local vAreas = WinCreate.AddSplits( nFrameId, WIN_SPLITORIENTATION.VERTICAL, { WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE}, { 50, 50}, { 120}) --- local nSash1Id = WinCreate.AddSash( vAreas[1], vSashJoints, vSashDims, WIN_OPENING_TYPES.TILTTURN_LEFT) --- local nSash2Id = WinCreate.AddSash( vAreas[2], vSashJoints, vSashDims, WIN_OPENING_TYPES.TILTTURN_LEFT) --- WinCreate.AddFill( nSash1Id, WIN_FILLTYPES.GLASS) --- WinCreate.AddFill( nSash2Id, WIN_FILLTYPES.GLASS) --- WinCreate.AddHardware( nSash1Id, '000558', 'Sx') --- WinCreate.AddHardware( nSash2Id, '000558', 'Sx') - --- 3 ante : sotto singola, sopra battente / ricevente --- local vAreas = WinCreate.AddSplits( nFrameId, WIN_SPLITORIENTATION.HORIZONTAL, { WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE}, { 60, 40}, { 95}) --- local nSash1Id = WinCreate.AddSash( vAreas[1], vSashJoints, vSashDims, WIN_OPENING_TYPES.TILTTURN_LEFT) --- WinCreate.AddFill( nSash1Id, WIN_FILLTYPES.GLASS) --- WinCreate.AddHardware( nSash1Id, '000558', 'Sx') --- local vSashes = WinCreate.AddSashGroup( vAreas[2], { WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE}, { 50, 50}, bDaylight, --- { vSashJoints, vSashJoints}, { vSashDims, vSashDims}, { WIN_SASHTYPES.ACTIVE, WIN_SASHTYPES.INACTIVE}, --- { WIN_OPENING_TYPES.TURNONLY_LEFT, WIN_OPENING_TYPES.TURNONLY_RIGHT}) --- WinCreate.AddFill( vSashes[1], WIN_FILLTYPES.GLASS) --- WinCreate.AddFill( vSashes[2], WIN_FILLTYPES.GLASS) --- local nSashGrpId = EgtGetParent( vSashes[1]) --- WinCreate.AddHardware( nSashGrpId, '000559', 'Sx') - --- 2 ante : battente / ricevente --- local vSashes = WinCreate.AddSashGroup( nFrameId, { WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE}, { 50, 50}, bDaylight, --- { vSashJoints, vSashJoints}, { vSashDims, vSashDims}, { WIN_SASHTYPES.ACTIVE, WIN_SASHTYPES.INACTIVE}, --- { WIN_OPENING_TYPES.TURNONLY_LEFT, WIN_OPENING_TYPES.TURNONLY_RIGHT}) --- WinCreate.AddFill( vSashes[1], WIN_FILLTYPES.GLASS) --- WinCreate.AddFill( vSashes[2], WIN_FILLTYPES.GLASS) --- local nSashGrpId = EgtGetParent( vSashes[1]) --- WinCreate.AddHardware( nSashGrpId, '000559', 'Sx') --- -- WinCreate.AddHardware( nSashGrpId, '000598', 'Sx') -- arco tutto sesto --- -- WinCreate.AddHardware( nSashGrpId, '000599', 'Sx') -- arco ribassato - --- 2 ante : ricevente / battente --- local vSashes = WinCreate.AddSashGroup( nFrameId, { WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE}, { 50, 50}, bDaylight, --- { vSashJoints, vSashJoints}, { vSashDims, vSashDims}, { WIN_SASHTYPES.INACTIVE, WIN_SASHTYPES.ACTIVE}, --- { WIN_OPENING_TYPES.TURNONLY_LEFT, WIN_OPENING_TYPES.TURNONLY_RIGHT}) --- WinCreate.AddFill( vSashes[1], WIN_FILLTYPES.GLASS) --- WinCreate.AddFill( vSashes[2], WIN_FILLTYPES.GLASS) --- local nSashGrpId = EgtGetParent( vSashes[1]) --- WinCreate.AddHardware( nSashGrpId, '000559', 'Dx') - --- 3 ante : battente / battente / ricevente --- local vSashes = WinCreate.AddSashGroup( nFrameId, { WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE}, { 33.333, 33.333, 33.333}, bDaylight, --- { vSashJoints, vSashJoints, vSashJoints}, { vSashDims, vSashDims, vSashDims}, --- { WIN_SASHTYPES.ACTIVE_OUT, WIN_SASHTYPES.ACTIVE_IN, WIN_SASHTYPES.INACTIVE}, --- { WIN_OPENING_TYPES.TURNONLY_LEFT, WIN_OPENING_TYPES.TURNONLY_LEFT, WIN_OPENING_TYPES.TURNONLY_RIGHT}) --- WinCreate.AddFill( vSashes[1], WIN_FILLTYPES.GLASS) --- WinCreate.AddFill( vSashes[2], WIN_FILLTYPES.GLASS) --- WinCreate.AddFill( vSashes[3], WIN_FILLTYPES.GLASS) --- local nSashGrpId = EgtGetParent( vSashes[1]) --- WinCreate.AddHardware( nSashGrpId, '000564', 'Sx') - --- 3 ante : ricevente / battente / battente --- local vSashes = WinCreate.AddSashGroup( nFrameId, { WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE}, { 33.333, 33.333, 33.333}, bDaylight, --- { vSashJoints, vSashJoints, vSashJoints}, { vSashDims, vSashDims, vSashDims}, --- { WIN_SASHTYPES.INACTIVE, WIN_SASHTYPES.ACTIVE_IN, WIN_SASHTYPES.ACTIVE_OUT}, --- { WIN_OPENING_TYPES.TURNONLY_LEFT, WIN_OPENING_TYPES.TURNONLY_RIGHT, WIN_OPENING_TYPES.TURNONLY_RIGHT}) --- WinCreate.AddFill( vSashes[1], WIN_FILLTYPES.GLASS) --- WinCreate.AddFill( vSashes[2], WIN_FILLTYPES.GLASS) --- WinCreate.AddFill( vSashes[3], WIN_FILLTYPES.GLASS) --- local nSashGrpId = EgtGetParent( vSashes[1]) --- WinCreate.AddHardware( nSashGrpId, '000564', 'Dx') - --- 3 ante : battente / ricevente / ricevente --- local vSashes = WinCreate.AddSashGroup( nFrameId, { WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE}, { 33.33333, 33.33333, 33.3333}, bDaylight, --- { vSashJoints, vSashJoints, vSashJoints}, { vSashDims, vSashDims, vSashDims}, --- { WIN_SASHTYPES.ACTIVE, WIN_SASHTYPES.INACTIVE_IN, WIN_SASHTYPES.INACTIVE_OUT}, --- { WIN_OPENING_TYPES.TURNONLY_LEFT, WIN_OPENING_TYPES.TURNONLY_RIGHT, WIN_OPENING_TYPES.TURNONLY_RIGHT}) --- WinCreate.AddFill( vSashes[1], WIN_FILLTYPES.GLASS) --- WinCreate.AddFill( vSashes[2], WIN_FILLTYPES.GLASS) --- WinCreate.AddFill( vSashes[3], WIN_FILLTYPES.GLASS) --- local nSashGrpId = EgtGetParent( vSashes[1]) --- WinCreate.AddHardware( nSashGrpId, '000565', 'Sx') - --- 3 ante : ricevente / ricevente / battente --- local vSashes = WinCreate.AddSashGroup( nFrameId, { WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE}, { 33.333, 33.333, 33.333}, bDaylight, --- { vSashJoints, vSashJoints, vSashJoints}, { vSashDims, vSashDims, vSashDims}, --- { WIN_SASHTYPES.INACTIVE_OUT, WIN_SASHTYPES.INACTIVE_IN, WIN_SASHTYPES.ACTIVE}, --- { WIN_OPENING_TYPES.TURNONLY_LEFT, WIN_OPENING_TYPES.TURNONLY_LEFT, WIN_OPENING_TYPES.TURNONLY_RIGHT}) --- WinCreate.AddFill( vSashes[1], WIN_FILLTYPES.GLASS) --- WinCreate.AddFill( vSashes[2], WIN_FILLTYPES.GLASS) --- WinCreate.AddFill( vSashes[3], WIN_FILLTYPES.GLASS) --- local nSashGrpId = EgtGetParent( vSashes[1]) --- WinCreate.AddHardware( nSashGrpId, '000565', 'Dx') - --- 4 ante : battente / battente / ricevente / ricevente --- local vSashes = WinCreate.AddSashGroup( nFrameId, { WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE}, { 25, 25, 25, 25}, bDaylight, --- { vSashJoints, vSashJoints, vSashJoints, vSashJoints}, { vSashDims, vSashDims, vSashDims, vSashDims}, --- { WIN_SASHTYPES.ACTIVE_OUT, WIN_SASHTYPES.ACTIVE_IN, WIN_SASHTYPES.INACTIVE_IN, WIN_SASHTYPES.INACTIVE_OUT}, --- { WIN_OPENING_TYPES.TURNONLY_LEFT, WIN_OPENING_TYPES.TURNONLY_LEFT, WIN_OPENING_TYPES.TURNONLY_RIGHT, WIN_OPENING_TYPES.TURNONLY_RIGHT}) --- WinCreate.AddFill( vSashes[1], WIN_FILLTYPES.GLASS) --- WinCreate.AddFill( vSashes[2], WIN_FILLTYPES.GLASS) --- WinCreate.AddFill( vSashes[3], WIN_FILLTYPES.GLASS) --- WinCreate.AddFill( vSashes[4], WIN_FILLTYPES.GLASS) --- local nSashGrpId = EgtGetParent( vSashes[1]) --- WinCreate.AddHardware( nSashGrpId, '000575', 'Sx') - --- 4 ante : ricevente / ricevente / battente / battente --- local vSashes = WinCreate.AddSashGroup( nFrameId, { WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE, WIN_MEASURE.PERCENTAGE}, { 25, 25, 25, 25}, bDaylight, --- { vSashJoints, vSashJoints, vSashJoints, vSashJoints}, { vSashDims, vSashDims, vSashDims, vSashDims}, --- { WIN_SASHTYPES.INACTIVE_OUT, WIN_SASHTYPES.INACTIVE_IN, WIN_SASHTYPES.ACTIVE_IN, WIN_SASHTYPES.ACTIVE_OUT}, --- { WIN_OPENING_TYPES.TURNONLY_LEFT, WIN_OPENING_TYPES.TURNONLY_LEFT, WIN_OPENING_TYPES.TURNONLY_RIGHT, WIN_OPENING_TYPES.TURNONLY_RIGHT}) --- WinCreate.AddFill( vSashes[1], WIN_FILLTYPES.GLASS) --- WinCreate.AddFill( vSashes[2], WIN_FILLTYPES.GLASS) --- WinCreate.AddFill( vSashes[3], WIN_FILLTYPES.GLASS) --- WinCreate.AddFill( vSashes[4], WIN_FILLTYPES.GLASS) --- local nSashGrpId = EgtGetParent( vSashes[1]) --- WinCreate.AddHardware( nSashGrpId, '000575', 'Dx') - --- vasistas --- local nSashId = WinCreate.AddSash( nFrameId, vSashJoints, vSashDims, WIN_OPENING_TYPES.TILTONLY_TOP) --- WinCreate.AddFill( nSashId, WIN_FILLTYPES.GLASS) --- WinCreate.AddHardware( nSashId, '000573', 'Sx') - - - ------------------------------------------------------------------------------------ - --- imposto se calcolare solidi/preview o meno -WinCalculate.SetCalcSolid( true) -WinCalculate.SetCalcPreview( true) - --- creo i pezzi -WinCalculate.CreatePartFromArea( nFrameId) --- WinCalculate.AddHardware( nFrameId, true, false, false, false) --- WinCalculate.AddAccessories( nFrameId, true) - - --- tronchetti --- local nLogsNbr = 7 --- local vSections = { 100, 150, 80, 130, 120, 180} --- local nLogsNbr = 0 -- numero minimo --- local vSections = { 120} --- local bAlign = false --- local dOverMatOut = 10 --- local dOverMatIn = 7 --- local dOverMatExt = 5 --- local dOverMatInt = 3 --- local bCutExtremities = true --- -- cerco i pezzi ad arco --- local vParts = EgtGetAllInGroup( 0) --- for i = 1, #vParts do --- local nOutline = EgtGetInfo( vParts[i], WIN_REF_OUTLINE, 'i') or GDB_ID.NULL --- if EgtGetType( nOutline) == GDB_TY.CRV_ARC then --- -- se anta richiedo allineamento con telaio --- local nAreaId = EgtGetParent( EgtGetParent( nOutline)) --- local nAreaType = EgtGetInfo( nAreaId, WIN_AREATYPE, 'i') --- if nAreaType == WIN_AREATYPES.SASH then --- bAlign = true --- nLogsNbr = 0 --- end --- WinCalculate.CreateArcLogs( vParts[i], nLogsNbr, vSections, bAlign, dOverMatOut, dOverMatIn, dOverMatExt, dOverMatInt, bCutExtremities) --- end --- end - - - -EgtZoom( SCE_ZM.ALL) - --- riporto tempi di esecuzione -local sOut = string.format( ' ExecTime = %.2f ms', EgtStopCounter()) -EgtOutLog( sOut) diff --git a/Designing/WinConst.lua b/Designing/WinConst.lua index 0d55d8d..5741fe7 100644 --- a/Designing/WinConst.lua +++ b/Designing/WinConst.lua @@ -453,7 +453,7 @@ WIN_PRC_PROFILE_IN = 'PROFILE_IN' WIN_PRC_PROFILE_OUT = 'PROFILE_OUT' WIN_PRC_PROFILE_LEFT = 'PROFILE_LEFT' WIN_PRC_PROFILE_RIGHT = 'PROFILE_RIGHT' - +WIN_PRC_HDW = 'Hardware' -- SPINE WIN_DOWEL = 'Dowel' @@ -490,7 +490,6 @@ WIN_HDW_FRAME = 'HdwFrame' WIN_HDW_HANDLE_HEIGHT = 'HMan' WIN_HDW_OPTIONS = 'HdwOptions' WIN_HDW_HINGES = 'HdwHinges' - -- Return mode WIN_HDW_RETURNMODE = { HARDWARELIST = 1, @@ -498,5 +497,14 @@ WIN_HDW_RETURNMODE = { MACHININGLIST = 4, OPTIONLIST = 8 } + +--------------------------------------------------------------------- + +WIN_COLOR_PART = Color3d( 204, 102, 0) +WIN_COLOR_GLASS = Color3d( 71, 161, 255) +WIN_COLOR_WOOD = Color3d( 194, 148, 103) +WIN_COLOR_HDW = Color3d( 128, 128, 128) +WIN_COLOR_ACCESSORY = Color3d( 128, 128, 128) + --------------------------------------------------------------------- return WinConst diff --git a/Designing/WinLib/WinCalculate.lua b/Designing/WinLib/WinCalculate.lua index b91a1f0..f05ace8 100644 --- a/Designing/WinLib/WinCalculate.lua +++ b/Designing/WinLib/WinCalculate.lua @@ -3710,7 +3710,7 @@ local function CreateOutlinePart( nOutlineId, sName, dDim, nBottomRail) EgtSetName( nPartId, sPartName) -- imposto colore - EgtSetColor( nPartId, Color3d( 204, 102, 0)) + EgtSetColor( nPartId, WIN_COLOR_PART) --if sOutlineName == WIN_BOTTOM or sOutlineName == WIN_TOP or nBottomRail then -- EgtSetColor( nPartId, Color3d( 204, 102, 0)) --elseif sOutlineName == WIN_RIGHT or sOutlineName == WIN_LEFT then @@ -3762,11 +3762,11 @@ local function CreateFillPartFromArea( nAreaId, sName) -- imposto colore e tipologia local nFillType = EgtGetInfo( nAreaId, WIN_FILLTYPE, 'i') if nFillType == WIN_FILLTYPES.GLASS then - EgtSetColor( nPartId, Color3d( 71, 161, 255)) + EgtSetColor( nPartId, WIN_COLOR_GLASS) EgtSetAlpha( nPartId, 30) EgtSetInfo( nPartId, WIN_FILLTYPE, WIN_GLASS) elseif nFillType == WIN_FILLTYPES.WOOD then - EgtSetColor( nPartId, Color3d( 194, 148, 103)) + EgtSetColor( nPartId, WIN_COLOR_WOOD) EgtSetInfo( nPartId, WIN_FILLTYPE, WIN_WOOD) end @@ -6844,7 +6844,6 @@ local function CreateDowel( nOrigDowelId, nLayerId, frOrig, frDest, vtDir, nTest -- vtDir rivolta verso interno del pezzo local nDowelId = EgtCopyGlob( nOrigDowelId, nLayerId) - EgtSetColor( nDowelId, Color3d( 128, 128, 128)) -- posiziono il dowel PositionDowel( nDowelId, frOrig, frDest, vtDir, nTestSurfId) @@ -7979,7 +7978,7 @@ local function CalcLogParts( nOrigPartId, bFinishedLogs) -- creo il pezzo per il trochetto local nPartId = EgtGroup( GDB_ID.ROOT) EgtSetName( nPartId, WIN_LOGS) - EgtSetColor( nPartId, Color3d( 204, 102, 0)) + EgtSetColor( nPartId, WIN_COLOR_PART) EgtSetStatus( nPartId, GDB_ST.OFF) table.insert( vLogs, nPartId) @@ -8285,294 +8284,171 @@ end ---------------------------------- FERRAMENTA ---------------------------------- ---------------------------------------------------------------------------------- -- funzione che disegna le cerniere -local function DrawHingesStd( nOutlineId, nSolidLayerId) - - -- dimensioni cerniere - local dDimH = 16 - local dDimV = 70 - local dFilletRad = 5 - - local nFrameOutlineId = abs( EgtGetInfo( nOutlineId, WIN_SOU_OUTLINE, 'i')) - local dDelta = ( EgtSP( nOutlineId) - EgtSP( nFrameOutlineId)) * Z_AX() - if dDelta < GEO.EPS_SMALL then - return - end - local vtDir = EgtSV( nOutlineId) - local vtDirIn = Vector3d( vtDir) - vtDirIn:rotate( Z_AX(), -90) - - -- prima cerniera - local pt1 = EgtSP( nOutlineId) - dDelta * Z_AX() - local nCompo = EgtCurveCompoFromPoints( nSolidLayerId, { pt1 + dFilletRad * vtDir, pt1 + ( dDimV - dFilletRad) * vtDir}) - EgtAddCurveCompoArcTg( nCompo, pt1 + dDimV * vtDir + dFilletRad * vtDirIn) - EgtAddCurveCompoLine( nCompo, pt1 + dDimV * vtDir + ( dDimH - dFilletRad) * vtDirIn) - EgtAddCurveCompoArcTg( nCompo, pt1 + ( dDimV - dFilletRad) * vtDir + dDimH * vtDirIn) - EgtAddCurveCompoLine( nCompo, pt1 + dFilletRad * vtDir + dDimH * vtDirIn) - EgtAddCurveCompoArcTg( nCompo, pt1 + ( dDimH - dFilletRad) * vtDirIn) - EgtAddCurveCompoLine( nCompo, pt1 + dFilletRad * vtDirIn) - EgtAddCurveCompoArcTg( nCompo, EgtSP( nCompo)) - local nStm1 = EgtSurfTmByRegionExtrusion( nSolidLayerId, nCompo, dDelta * Z_AX()) - EgtSetColor( nStm1, Color3d( 128, 128, 128)) - EgtSetName( nStm1, WIN_HDW_HINGES) - EgtErase( nCompo) - - -- seconda cerniera - local pt2 = EgtEP( nOutlineId) - dDelta * Z_AX() - dDimV * vtDir - local nStm2 = EgtCopyGlob( nStm1, nSolidLayerId) - EgtMove( nStm2, pt2 - pt1) - - -- correzioni per telai non rettangolari - local nFrameAreaId = EgtGetFirstNameInGroup( GDB_ID.ROOT, WIN_AREA .. '*') - local nFrameType = EgtGetInfo( nFrameAreaId, WIN_FRAME_TYPE, 'i') - - -- a) arco - if nFrameType == WIN_FRAME_TYPES.ROUND_ARC or nFrameType == WIN_FRAME_TYPES.SEGMENTAL_ARC then - local sName = EgtGetName( nOutlineId) - -- calcolo il delta da applicare ( euristico, calcolato in base ai risultati ferramenta) - local dDelta = 24 -- caso di arco a tutto sesto - local dDeltaSegArc = 54.7 -- caso di arco ribassato - if nFrameType == WIN_FRAME_TYPES.SEGMENTAL_ARC then - -- nel caso di arco ribassato il delta va calcolato rispetto al frame della ferramenta - local nAreaId = EgtGetParent( EgtGetParent( nOutlineId)) - local nHdwFramesId = EgtGetFirstNameInGroup( nAreaId, WIN_HDW_FRAME) - local sFrameName = EgtIf( sName == WIN_LEFT, 'B*', 'C*') - local nFrameId = EgtGetFirstNameInGroup( nHdwFramesId, sFrameName) - if sName == WIN_LEFT then - dDelta = ( EgtSP( nFrameId) - EgtSP( nOutlineId)) * vtDir - else - dDelta = ( EgtEP( nOutlineId) - EgtSP( nFrameId)) * vtDir - end - dDelta = dDelta + dDeltaSegArc - end - - -- traslazione - if sName == WIN_LEFT then - EgtMove( nStm1, dDelta * vtDir) - else - EgtMove( nStm2, - dDelta * vtDir) - end - - -- b) trapezio - elseif nFrameType == WIN_FRAME_TYPES.CHAMFER_SIDE then - -- calcolo il delta da applicare. Euristico. Dal calcolo della ferramenta si vede che la cerniera si trova circa nel punto di intersezione tra nOutlineId e una retta inclinata - -- come il top e passante per il frame della ferramenta - local sName = EgtGetName( nOutlineId) - local nOutlineLayId = EgtGetParent( nOutlineId) - local nAreaId = EgtGetParent( nOutlineLayId) - local nHdwFramesId = EgtGetFirstNameInGroup( nAreaId, WIN_HDW_FRAME) - local sFrameName = EgtIf( sName == WIN_LEFT, 'B*', 'C*') - local nFrameId = EgtGetFirstNameInGroup( nHdwFramesId , sFrameName) - local nTopId = EgtGetFirstNameInGroup( nOutlineLayId, WIN_TOP) - local vtTop = EgtSV( nTopId) - local ptRef = EgtIf( sName == WIN_LEFT, EgtSP( nOutlineId), EgtEP( nOutlineId)) - local vtDist = EgtSP( nFrameId) - ptRef - local dDelta = ( vtDist ^ vtTop):len() / ( vtTop ^ vtDir):len() - - if sName == WIN_LEFT then - EgtMove( nStm1, dDelta * vtDir) - else - EgtMove( nStm2, - dDelta * vtDir) - end - end -end - ---------------------------------------------------------------------- --- funzione che disegna le cerniere per la preview ( posizionamento più grossolano e disegno 2d) -local function DrawHingesPreview( nOutlineId, nLayerId) - - -- dimensioni cerniere - local dDimL = 80 - local dDimW = 20 - - local nFrameOutlineId = abs( EgtGetInfo( nOutlineId, WIN_SOU_OUTLINE, 'i')) - local dDelta = ( EgtSP( nOutlineId) - EgtSP( nFrameOutlineId)) * Z_AX() - if dDelta < GEO.EPS_SMALL then - return - end - - local vtDir = EgtSV( nOutlineId) - local vtDirIn = Vector3d( vtDir) - vtDirIn:rotate( Z_AX(), -90) - -- alzo leggermente la quota in z per evitare sovrapposizioni problematiche nell'eportazione svg - local frHinge = Frame3d( EgtSP( nOutlineId) + Z_AX(), vtDir, vtDirIn, - Z_AX()) - - -- prima cerniera - local nSfr1 = EgtSurfFrStadium( nLayerId, ORIG(), Point3d( dDimL, dDimW, 0)) - EgtSetColor( nSfr1, Color3d( 128, 128, 128)) - EgtTransform( nSfr1, frHinge) - EgtInvertSurf( nSfr1) - - -- seconda cerniera - local pt2 = EgtEP( nOutlineId) - dDimL * vtDir - local nSfr2 = EgtCopyGlob( nSfr1, nLayerId) - EgtMove( nSfr2, pt2 - EgtSP( nOutlineId)) - - -- contorni - local nLoop1 = EgtExtractSurfFrChunkLoops( nSfr1, 0, nLayerId) - EgtSetColor( nLoop1, EgtStdColor( 'BLACK')) - local nLoop2 = EgtExtractSurfFrChunkLoops( nSfr2, 0, nLayerId) - EgtSetColor( nLoop2, EgtStdColor( 'BLACK')) -end - ---------------------------------------------------------------------- local function DrawHinges( nOutlineId, nLayerId, bPreview) - if bPreview then - DrawHingesPreview( nOutlineId, nLayerId) - else - DrawHingesStd( nOutlineId, nLayerId) + + local nFrameOutlineId = abs( EgtGetInfo( nOutlineId, WIN_SOU_OUTLINE, 'i')) + local dDelta = ( EgtSP( nOutlineId) - EgtSP( nFrameOutlineId)) * Z_AX() + if dDelta < GEO.EPS_SMALL then + return + end + + local vtDir = EgtSV( nFrameOutlineId) + local ptRef = EgtSP( nFrameOutlineId) + -- calcolo il versore diretto dall'anta al telaio + local vtDirIn = ( ptRef - EgtSP( nOutlineId)) + vtDirIn = vtDirIn - ( vtDirIn * vtDir) * vtDir + vtDirIn[3] = 0 + vtDirIn:normalize() + -- recupero dimensione profilo anta + local nProfileId = GetOutlineProfileId( nOutlineId) + local b3Profile = GetProfileLocalBox( nProfileId) + + -- recupero dal telaio le lavorazioni delle cerniere ( lavorazioni di tipologia foro su faccia top) + local nFramePartId = EgtGetInfo( nFrameOutlineId, WIN_REF_PART, 'i') + local nPrcLayerId = EgtGetFirstNameInGroup( nFramePartId, WIN_PRC) + local vPrcHdw = EgtGetNameInGroup( nPrcLayerId, WIN_PRC_HDW) + local tPrc = {} + for i = 1, #vPrcHdw do + if AreSameVectorApprox( EgtCurveExtrusion( vPrcHdw[i]), Z_AX()) then + local nType = EgtGetInfo( vPrcHdw[i], WIN_PRC_FEATURE_TYPE) + if nType == WIN_PRC_TYPE.HOLE then + local ptC = EgtCP( vPrcHdw[i]) + local dDist = ( ptC - ptRef) * vtDir + table.insert( tPrc, { nId = vPrcHdw[i], ptC = ptC, dDist = dDist}) + end + end + end + + -- ordino le lavorazioni e le scorro a coppie per costruire le cerniere + table.sort( tPrc, function ( a, b) return a.dDist < b.dDist end) + for i = 1, #tPrc, 2 do + local dRad = EgtArcRadius( tPrc[i].nId) + local dDim = ( tPrc[i].ptC - EgtSP( nOutlineId)) * vtDirIn - b3Profile:getMax():getX() + local dFilletRad = ( dDim + dRad) / 3 + local pt1 = tPrc[i].ptC - dRad * vtDir - dDim * vtDirIn + local pt2 = tPrc[i+1].ptC + dRad * vtDir - dDim * vtDirIn + + local nCompo = EgtCurveCompoFromPoints( nLayerId, { pt1, pt2}) + EgtAddCurveCompoArcTg( nCompo, pt2 + dFilletRad * vtDir + dFilletRad * vtDirIn) + EgtAddCurveCompoLineTg( nCompo, dFilletRad) + EgtAddCurveCompoArcTg( nCompo, pt2 + ( dRad + dDim) * vtDirIn) + EgtAddCurveCompoLine( nCompo, pt1 + ( dRad + dDim) * vtDirIn) + EgtAddCurveCompoArcTg( nCompo, pt1 - dFilletRad * vtDir + 2 * dFilletRad * vtDirIn) + EgtAddCurveCompoLineTg( nCompo, dFilletRad) + EgtAddCurveCompoArcTg( nCompo, pt1) + + if bPreview then + -- piccolo spostamento per evitare sovrapposizione con pezzo del telaio + EgtMove( nCompo, Z_AX()) + local nSfr = EgtSurfFlatRegion( nLayerId, nCompo) + if AreOppositeVectorApprox( EgtSurfFrNormVersor( nSfr), Z_AX()) then + EgtInvertSurf( nSfr) + end + EgtSetColor( nSfr, WIN_COLOR_HDW) + EgtSetColor( nCompo, EgtStdColor( 'BLACK')) + + else + local nStm = EgtSurfTmByRegionExtrusion( nLayerId, nCompo, dDelta * Z_AX()) + EgtSetColor( nStm, WIN_COLOR_HDW) + EgtSetName( nStm, WIN_HDW_HINGES) + EgtSurfTmSetShowEdges( nStm, true) + EgtErase( nCompo) + end end end --------------------------------------------------------------------- -- funzione che disegna la maniglia -local function DrawHandleStd( nOutlineId, sHandleSide, dHandleH, nSolidLayerId, bSlide) +local function DrawHandle( nOutlineId, sHandleSide, nLayerId, bSlide, bPreview) + + local vtDir = EgtIf( sHandleSide == 'Sx', EgtSV( nOutlineId), - EgtEV( nOutlineId)) + local ptRef = EgtIf( sHandleSide == 'Sx', EgtSP( nOutlineId), EgtEP( nOutlineId)) + local vtDirIn = VectorFromRotated( vtDir, Z_AX(), 90) + + -- recupero dall'anta le lavorazioni della maniglia ( lavorazioni di tipo foro sulla faccia top) + local nPartId = EgtGetInfo( nOutlineId, WIN_REF_PART, 'i') + local nPrcLayerId = EgtGetFirstNameInGroup( nPartId, WIN_PRC) + local vPrcHdw = EgtGetNameInGroup( nPrcLayerId, WIN_PRC_HDW) + local tPrc = {} + for i = 1, #vPrcHdw do + if AreSameVectorApprox( EgtCurveExtrusion( vPrcHdw[i]), Z_AX()) then + local nType = EgtGetInfo( vPrcHdw[i], WIN_PRC_FEATURE_TYPE) + if nType == WIN_PRC_TYPE.HOLE then + local ptC = EgtCP( vPrcHdw[i]) + local dDist = ( ptC - ptRef) * vtDir + table.insert( tPrc, { nId = vPrcHdw[i], ptC = ptC, dDist = dDist}) + end + end + end + + if #tPrc ~= 3 and #tPrc ~= 5 then + return false + end + + -- ordino le lavorazioni + table.sort( tPrc, function ( a, b) return a.dDist < b.dDist end) + + -- elemento di riferimento per la maniglia + local nRefIdx = EgtIf( #tPrc == 3, 2, 4) + local ptC = EgtCP( tPrc[nRefIdx].nId) + local dRad = EgtArcRadius( tPrc[nRefIdx].nId) -- dati della maniglia - local dBase1T = 40 - local dBase1B = 40 - local dBase2 = 18 local dH = 9 + local dExtraH = dRad + 3 + local dExtraV = dRad + 10 local dLen1 = 53 local dLen2 = 115 - local dRadH = 12.5 + local dLen3 = 150 local dFillet = 10 - local dExtraGapDelta = 15 - if bSlide then - dBase1T = 50 - dBase1B = 100 - dBase2 = 18 - dLen2 = 155 - dRadH = 10 - dExtraGapDelta = 35.5 - end - - local nPartId = EgtGetInfo( nOutlineId, WIN_REF_PART, 'i') - local ptRef = EgtIf( sHandleSide == 'Sx', EgtSP( nOutlineId), EgtEP( nOutlineId)) - local vtDir = EgtIf( sHandleSide == 'Sx', EgtSV( nOutlineId), - EgtEV( nOutlineId)) - local vtDirIn = Vector3d( vtDir) - vtDirIn:rotate( Z_AX(), EgtIf( sHandleSide == 'Sx', 90, -90)) - -- recupero il riferimento rispetto a cui leggere l'altezza maniglia - local nProfileLayId = EgtGetFirstNameInGroup( nPartId, WIN_PROFILE) - local nProfileId = EgtGetFirstNameInGroup( nProfileLayId, EgtIf( sHandleSide == 'Sx', WIN_PRF_START, WIN_PRF_END)) - local dGapHardware = EgtGetInfo( nProfileId, WIN_GAPDELTA, 'd') - -- recupero di quanto spostare la maniglia rispetto all'outline - local nMainProfileId = EgtGetFirstNameInGroup( nProfileLayId, WIN_PRF_MAIN) - local dGapDelta = EgtGetInfo( nMainProfileId, WIN_GAPDELTA, 'd') - local dDeltaIn = dGapDelta + dExtraGapDelta - - -- punto su cui centrare la maniglia - local ptC = ptRef + ( dHandleH + dGapHardware) * vtDir + dDeltaIn * vtDirIn - - local nCrv1 = EgtRectangle2P( nSolidLayerId, ptC - dBase1B * vtDir - dBase2 * vtDirIn, ptC + dBase1T * vtDir + dBase2 * vtDirIn) - local nStm1 = EgtSurfTmByRegionExtrusion( nSolidLayerId, {nCrv1}, dH * Z_AX()) + -- base della maniglia + local pt1 = EgtCP( tPrc[1].nId) + local pt2 = EgtCP( tPrc[#tPrc].nId) + local nCrv1 = EgtRectangle2P( nLayerId, pt1 - dExtraV * vtDir - dExtraH * vtDirIn, pt2 + dExtraV * vtDir + dExtraH * vtDirIn) - local nCrv2 = EgtLinePVL( nSolidLayerId, ORIG(), X_AX(), dLen1 - dFillet) - local nCrv4 = EgtLinePVL( nSolidLayerId, Point3d( dLen1, -dFillet, 0), - Y_AX(), dLen2 - dFillet) - local nCrv3 = EgtArc2PR( nSolidLayerId, EgtEP( nCrv2), EgtSP( nCrv4), dFillet, false) - local nGuide = EgtCurveCompo( nSolidLayerId, { nCrv2, nCrv3, nCrv4}) - local frTransf = Frame3d( ptC, Z_AX(), vtDir, Z_AX() ^ vtDir) - EgtTransform( nGuide, frTransf) - local nSection = EgtCircle( nSolidLayerId, EgtSP( nGuide), dRadH) - local nStm2 = EgtSurfTmSwept( nSolidLayerId, nSection, nGuide, true) - - EgtSurfTmAdd( nStm1, nStm2) - EgtSetName( nStm1, WIN_HDW_HANDLE) - EgtSetColor( nStm1, Color3d( 128, 128, 128)) - EgtErase( { nCrv1, nGuide, nSection, nStm2}) -end - ---------------------------------------------------------------------- --- disegno della maniglia per preview -local function DrawHandlePreview( nOutlineId, sHandleSide, dHandleH, nLayerId, bSlide) - - -- dati della maniglia - local dRad = 20 - local dDimW = 20 - local dDimH = 100 - - local ptRef = EgtIf( sHandleSide == 'Sx', EgtSP( nOutlineId), EgtEP( nOutlineId)) - local vtDir = EgtIf( sHandleSide == 'Sx', - EgtSV( nOutlineId), EgtEV( nOutlineId)) - local vtDirIn = Vector3d( vtDir) - vtDirIn:rotate( Z_AX(), EgtIf( sHandleSide == 'Sx', -90, 90)) - - -- recupero dati del profilo per centrare la maniglia sul pezzo - local nPartId = EgtGetInfo( nOutlineId, WIN_REF_PART, 'i') - local nProfileLayId = EgtGetFirstNameInGroup( nPartId, WIN_PROFILE) - local nMainProfileId = EgtGetFirstNameInGroup( nProfileLayId, WIN_PRF_MAIN) - local b3Profile = GetProfileLocalBox( nMainProfileId) - local dSide = abs( b3Profile:getMin():getX() + 0.5 * b3Profile:getDimX()) - -- correzione per caso speciale di telaio e ante allineate ( euristica) - local nParentAreaId = EgtGetParent( EgtGetParent( nOutlineId)) - local nSashType = EgtGetInfo( nParentAreaId, WIN_SASHTYPE, 'i') or WIN_SASHTYPES.NULL - if nSashType == WIN_SASHTYPES.NULL then - local nFrameOutlineId = abs( EgtGetInfo( nOutlineId, WIN_SOU_OUTLINE, 'i')) - local dDelta = ( EgtSP( nOutlineId) - EgtSP( nFrameOutlineId)) * Z_AX() - if dDelta < GEO.EPS_SMALL then - dSide = dSide + 9 - end - end - - -- punto su cui centrare la maniglia - local ptC = ptRef - dHandleH * vtDir + dSide * vtDirIn + Z_AX() - - local nSfr1 = EgtSurfFrDisk( nLayerId, ptC, dRad) - EgtSetColor( nSfr1, Color3d( 128, 128, 128)) - local nLoop = EgtExtractSurfFrChunkLoops( nSfr1, 0, nLayerId) - EgtSetColor( nLoop, EgtStdColor( 'BLACK')) - local nSfr2 = EgtSurfFrStadium( nLayerId, ORIG(), Point3d( dDimH, dDimW, 0)) - local ptFrame = ptC + EgtIf( sHandleSide == 'Sx', 1, -1) * 0.5 * dDimW * vtDirIn + Z_AX() - local frHandle = Frame3d( ptFrame, vtDir, EgtIf( sHandleSide == 'Sx', - vtDirIn, vtDirIn), Z_AX()) - EgtTransform( nSfr2, frHandle) - EgtSetColor( nSfr2, Color3d( 128, 128, 128)) - local nLoop2 = EgtExtractSurfFrChunkLoops( nSfr2, 0, nLayerId) - EgtSetColor( nLoop2, EgtStdColor( 'BLACK')) -end - ---------------------------------------------------------------------- -local function DrawHandle( nOutlineId, sHandleSide, dHandleH, nLayerId, bSlide, bPreview) if bPreview then - DrawHandlePreview( nOutlineId, sHandleSide, dHandleH, nLayerId, bSlide) - else - DrawHandleStd( nOutlineId, sHandleSide, dHandleH, nLayerId, bSlide) - end -end + + EgtMove( nCrv1, Z_AX()) + local nSfr1 = EgtSurfFlatRegion( nLayerId, nCrv1) + EgtSetColor( nSfr1, WIN_COLOR_HDW) + EgtSetColor( nCrv1, EgtStdColor( 'BLACK')) + + local nSfr2 = EgtSurfFrStadium( nLayerId, ORIG(), Point3d( dLen3, 2 * dRad, 0)) + local frHandle = Frame3d( ptC + dRad * vtDirIn + 2 * Z_AX(), Z_AX(), - vtDir) + EgtTransform( nSfr2, frHandle) + if bSlide then + -- se scorrevole maniglia verso l'alto + EgtRotate( nSfr2, ptC, Z_AX(), 180) + end + EgtSetColor( nSfr2, WIN_COLOR_HDW) + local nLoop2 = EgtExtractSurfFrChunkLoops( nSfr2, 0, nLayerId) + EgtSetColor( nLoop2, EgtStdColor( 'BLACK')) ---------------------------------------------------------------------- -local function GetHandleHeight( nAreaId) + else - -- verifico se è definita tra le opzioni - local vOptions = EgtGetInfo( nAreaId, WIN_HDW_OPTIONS, 'vs') or {} - for i = 1, #vOptions do - local vString = EgtSplitString( vOptions[i], '=') - if #vString == 2 and vString[1] == WIN_HDW_HANDLE_HEIGHT then - local dVal = tonumber( vString[2]) - if dVal then - return dVal - else - break - end + local nStm1 = EgtSurfTmByRegionExtrusion( nLayerId, nCrv1, dH * Z_AX()) + + -- maniglia + local nCrv2 = EgtLinePVL( nLayerId, ORIG(), X_AX(), dLen1 - dFillet) + local nCrv4 = EgtLinePVL( nLayerId, Point3d( dLen1, - dFillet, 0), - Y_AX(), dLen2 - dFillet) + local nCrv3 = EgtArc2PR( nLayerId, EgtEP( nCrv2), EgtSP( nCrv4), dFillet, false) + local nGuide = EgtCurveCompo( nLayerId, { nCrv2, nCrv3, nCrv4}) + local frTransf = Frame3d( ptC + 0.5 * dH * Z_AX(), Z_AX(), vtDir, Z_AX() ^ vtDir) + EgtTransform( nGuide, frTransf) + local nSection = EgtCircle( nLayerId, EgtSP( nGuide), dRad) + local nStm2 = EgtSurfTmSwept( nLayerId, nSection, nGuide, true) + if bSlide then + -- se scorrevole maniglia verso alto + EgtRotate( nStm2, ptC, Z_AX(), 180) end - end - -- chiedo il file di opzioni dalla ferramenta - local _, _, tOptions = WinCalculate.AddHardware( nAreaId, false, false, false, true) - if #tOptions > 0 then - -- lettura della stringa xml delle opzioni - local handler = XMLHandler:new() - local parser = XML.parser( handler) - parser:parse( tOptions[1]) - local tabOptions = handler.root - -- cerco parametro altezza maniglia - for i = 1, #tabOptions['ParametriOpzioni']['Parametri'] do - if tabOptions['ParametriOpzioni']['Parametri'][i]['NomeParametro'] == WIN_HDW_HANDLE_HEIGHT then - local sHandleH = tabOptions['ParametriOpzioni']['Parametri'][i]['ValoreCorrente'] - return tonumber( sHandleH) - end - end + EgtSurfTmAdd( nStm1, nStm2) + EgtSetName( nStm1, WIN_HDW_HANDLE) + EgtSetColor( nStm1, WIN_COLOR_HDW) + EgtSurfTmSetShowEdges( nStm1, true) + EgtErase( { nCrv1, nGuide, nSection, nStm2}) end - - return 500 -- restituisco valore di default end --------------------------------------------------------------------- @@ -8601,7 +8477,7 @@ local function DrawSashHardware( nAreaId, nRefAreaId, nLayerId, bPreview) break end end - -- se non ho trovato l'opzione la recupero dalle opzioni di default ( simile a GetHandleHeigt) + -- se non ho trovato l'opzione la recupero dalle opzioni di default if not sOptionHandleSide then local _, _, tOptions = WinCalculate.AddHardware( nAreaId, false, false, false, true) if #tOptions > 0 then @@ -8626,16 +8502,9 @@ local function DrawSashHardware( nAreaId, nRefAreaId, nLayerId, bPreview) elseif sOptionHandleSide == 'sopra' then nOutlineId = EgtGetFirstNameInGroup( nOutlineLayId, WIN_TOP) end - - -- altezza maniglia è fissata a metà del lato ( con compensazione per frame di riferimento della ferramenta) - local nPartId = EgtGetInfo( nOutlineId, WIN_REF_PART, 'i') - local nProfileLayId = EgtGetFirstNameInGroup( nPartId, WIN_PROFILE) - local nProfileId = EgtGetFirstNameInGroup( nProfileLayId, EgtIf( sHandleSide == 'Sx', WIN_PRF_START, WIN_PRF_END)) - local dGapHardware = EgtGetInfo( nProfileId, WIN_GAPDELTA, 'd') - local dHandleH = 0.5 * EgtCurveLength( nOutlineId) - dGapHardware -- disegno maniglia - DrawHandle( nOutlineId, sHandleSide, dHandleH, nLayerId, false, bPreview) + DrawHandle( nOutlineId, sHandleSide, nLayerId, false, bPreview) -- Alzante scorrevole elseif nOpeningType == WIN_OPENING_TYPES.COPLANARSLIDE_LEFT or nOpeningType == WIN_OPENING_TYPES.COPLANARSLIDE_RIGHT or @@ -8645,10 +8514,7 @@ local function DrawSashHardware( nAreaId, nRefAreaId, nLayerId, bPreview) local nOutlineId = EgtGetFirstNameInGroup( nOutlineLayId, EgtIf( bLeftSlide, WIN_RIGHT, WIN_LEFT)) local sHandleSide = EgtIf( bLeftSlide, 'Sx', 'Dx') - -- recupero altezza maniglia dalle opzioni - local dHandleH = GetHandleHeight( nRefAreaId) - - DrawHandle( nOutlineId, sHandleSide, dHandleH, nLayerId, true, bPreview) + DrawHandle( nOutlineId, sHandleSide, nLayerId, true, bPreview) -- Standard else @@ -8679,12 +8545,10 @@ local function DrawSashHardware( nAreaId, nRefAreaId, nLayerId, bPreview) -- maniglia if nSashType == WIN_SASHTYPES.ACTIVE or nSashType == WIN_SASHTYPES.ACTIVE_IN or nSashType == WIN_SASHTYPES.NULL then - -- recupero altezza maniglia - local dHandleH = GetHandleHeight( nRefAreaId) if sHandleSide == 'Sx' then - DrawHandle( nRightId, sHandleSide, dHandleH, nLayerId, false, bPreview) + DrawHandle( nRightId, sHandleSide, nLayerId, false, bPreview) else - DrawHandle( nLeftId, sHandleSide, dHandleH, nLayerId, false, bPreview) + DrawHandle( nLeftId, sHandleSide, nLayerId, false, bPreview) end end end @@ -8959,6 +8823,7 @@ local function CalcHdwMachining( tMachining, SashList) EgtModifyCurveThickness( nPocketOutlineId, - dHeight) -- porto la lavorazione in globale EgtTransform( nPocketOutlineId, frHdw) + EgtSetName( nPocketOutlineId, WIN_PRC_HDW) -- aggiornamento del solido if s_bCalcSolid then UpdateSolidWithProcessingCrv( nPocketOutlineId, nMainExtrusionId, nSolidLayerId) @@ -8981,6 +8846,7 @@ local function CalcHdwMachining( tMachining, SashList) EgtModifyCurveThickness( nHoleId, - ( dDepth + 1)) EgtTransform( nHoleId, frHdw) EgtSetInfo( nHoleId, WIN_PRC_FEATURE_TYPE, WIN_PRC_TYPE.HOLE) + EgtSetName( nHoleId, WIN_PRC_HDW) elseif vMacro[1] == 'FORO' then local sDiameter = EgtReplaceString( vMacro[2], 'D', '') @@ -8996,6 +8862,7 @@ local function CalcHdwMachining( tMachining, SashList) EgtModifyCurveThickness( nHoleId, - dDepth) EgtSetColor( nHoleId, EgtStdColor( 'GRAY')) EgtSetInfo( nHoleId, WIN_PRC_FEATURE_TYPE, WIN_PRC_TYPE.HOLE) + EgtSetName( nHoleId, WIN_PRC_HDW) -- porto la lavorazione in globale EgtTransform( nHoleId, frHdw) -- aggiornamento del solido @@ -9106,7 +8973,7 @@ local function AddHardwareForSash( nFrameId, nReturnMode, OutputKitList, OutputP if nOpeningType ~= WIN_OPENING_TYPES.TILTONLY_TOP then sText = sText .. 'MANOSERRAMENTO=' .. sHandle .. '\n' end - + local vOptions = EgtGetInfo( nFrameId, WIN_HDW_OPTIONS, 'vs') or {} for i = 1, #vOptions do sText = sText .. vOptions[i] .. '\n' @@ -9161,7 +9028,7 @@ local function AddHardwareForSash( nFrameId, nReturnMode, OutputKitList, OutputP if ( nReturnMode & WIN_HDW_RETURNMODE.MACHININGLIST) ~= 0 then local tMachining = JSON:decode( AnswerArgs.MachiningList) CalcHdwMachining( tMachining, SashList) - -- disegno la ferramenta + -- disegno if s_bCalcSolid then -- recupero o creo il gruppo per disegno ferramenta local nAuxLayerId = GetAuxLayer() @@ -9169,6 +9036,14 @@ local function AddHardwareForSash( nFrameId, nReturnMode, OutputKitList, OutputP DrawSashHardware( SashList[i].nAreaId, nFrameId, nAuxLayerId) end end + -- preview + if s_bCalcPreview then + local nPreviewLayerId = EgtGetFirstNameInGroup( GDB_ID.ROOT, WIN_PREVIEW) + for i = 1, #SashList do + DrawSashHardware( SashList[i].nAreaId, nFrameId, nPreviewLayerId, true) + end + end + end if ( nReturnMode & WIN_HDW_RETURNMODE.OPTIONLIST) ~= 0 then table.insert( OutputOptionList, AnswerArgs.OptionList) @@ -9238,52 +9113,6 @@ function WinCalculate.AddHardware( nAreaId, bMachiningList, bHardwareList, bPosi return OutputKitList, OutputPositionList, OutputOptionList end ---------------------------------------------------------------------- --- funzione che disegna l'hardware -local function DrawHardware( nAreaId, nAuxLayerId) - -- verifico il tipo - local nAreaType = EgtGetInfo( nAreaId, WIN_AREATYPE, 'i') - - if nAreaType == WIN_AREATYPES.SASH then - -- se anta disegno la ferramenta se è stato definito un preferito - local sFavourite = EgtGetInfo( nAreaId, WIN_HDW_FAVOURITE) - if sFavourite and sFavourite ~= WIN_HDW_NULL then - DrawSashHardware( nAreaId, nAreaId, nAuxLayerId) - end - return - - elseif nAreaType == WIN_AREATYPES.SPLIT then - local nSplitType = EgtGetInfo( nAreaId, WIN_SPLITTYPE, 'i') or WIN_SPLITTYPES.NULL - if nSplitType == WIN_SPLITTYPES.FRENCH then - local sHdwFavourite = EgtGetInfo( nAreaId, WIN_HDW_FAVOURITE) - if sHdwFavourite and sHdwFavourite ~= WIN_HDW_NULL then - -- disegno ferramenta per tutte le ante avendo come gruppo di riferimento delle info il parent dell'area split french - local vSashes = EgtGetNameInGroup( nAreaId, WIN_AREA .. '*') - for j = 1, #vSashes do - DrawSashHardware( vSashes[j], nAreaId, nAuxLayerId) - end - end - return - else - local nChildAreaId = EgtGetFirstNameInGroup( nAreaId, WIN_AREA .. '*') - while nChildAreaId do - -- lancio verifica di quell'area - DrawHardware( nChildAreaId, nAuxLayerId) - nChildAreaId = EgtGetNextName( nChildAreaId, WIN_AREA .. '*') - end - end - - else - -- verifico se ci sono sotto-aree - local nChildAreaId = EgtGetFirstNameInGroup( nAreaId, WIN_AREA .. '*') - while nChildAreaId do - -- lancio verifica di quell'area - DrawHardware( nChildAreaId, nAuxLayerId) - nChildAreaId = EgtGetNextName( nChildAreaId, WIN_AREA .. '*') - end - end -end - ---------------------------------------------------------------------------------- @@ -9316,7 +9145,7 @@ local function CalcThreshold( nOutlineId, nAreaId) local nAuxGrp = GetAuxLayer() local nStm = CreateProfileSurf( nOutlineId, nProfileId, WIN_SECTION, 0, nAuxGrp) if nStm then - EgtSetColor( nStm, Color3d( 128, 128, 128)) + EgtSetColor( nStm, WIN_COLOR_ACCESSORY) EgtSetName( nStm, WIN_THRESHOLD) dLenTot = EgtCurveLength( nOutlineId) end @@ -9338,7 +9167,7 @@ local function CalcThreshold( nOutlineId, nAreaId) local vMovableSections = EgtGetNameInGroup( nProfileId, WIN_MOVABLE .. WIN_SECTION) for i = 1, #vMovableSections do local nStmExtra = CreateProfileSurfById( nGuideId, nProfileId, vMovableSections[i], 0, nAuxGrp) - EgtSetColor( nStmExtra, Color3d( 128, 128, 128)) + EgtSetColor( nStmExtra, WIN_COLOR_ACCESSORY) EgtSetName( nStmExtra, WIN_MOVABLE .. WIN_SECTION) end dLenTot = dLenTot + #vMovableSections * EgtCurveLength( nGuideId) @@ -9366,7 +9195,7 @@ local function CalcThreshold( nOutlineId, nAreaId) for j = 1, #vExtraSections do local nStmExtra = CreateProfileSurfById( nGuideId, nProfileId, vExtraSections[j], 0, nAuxGrp) - EgtSetColor( nStmExtra, Color3d( 128, 128, 128)) + EgtSetColor( nStmExtra, WIN_COLOR_ACCESSORY) EgtSetName( nStmExtra, WIN_FIXED .. WIN_THRESHOLD) end @@ -9466,7 +9295,7 @@ local function CalcWaterdrip( nPartId, nOutlineId, nAreaId, bDraw) if bDraw and s_bCalcSolid then -- estrudo la superficie local nStm = CreateProfileSurf( nGuideId, nProfileId, WIN_WATERDRIP, 0, nSolidLayId) - EgtSetColor( nStm, Color3d( 128, 128, 128)) + EgtSetColor( nStm, WIN_COLOR_ACCESSORY) EgtSetName( nStm, WIN_WATERDRIP) end EgtErase( nGuideId) @@ -9575,7 +9404,7 @@ local function CalcGaskets( nAreaId, bDraw) if tParts[i].sGasket then -- estrusione principale della giunzione local nGasketStm = CreateProfileSurf( vOutlines[i], tParts[i].nProfileId, tParts[i].sGasket, 100, nSolidLayerId) - EgtSetColor( nGasketStm, Color3d( 128, 128, 128)) + EgtSetColor( nGasketStm, WIN_COLOR_ACCESSORY) EgtSetName( nGasketStm, sGasket) -- trim start @@ -9724,7 +9553,7 @@ local function CalcBottomRailPreview( nPreviewGrp, nOutlineId, nBottomRail, nGeo -- creo la regione e ne estraggo il bordo local nAreaId = CalcIntersectionRegion( vCrvs, nPreviewGrp) - EgtSetColor( nAreaId, Color3d( 251, 128, 4)) + EgtSetColor( nAreaId, WIN_COLOR_PART) local nCrvId = EgtExtractSurfFrChunkLoops( nAreaId, 0, nPreviewGrp) EgtSetColor( nCrvId, EgtStdColor( 'BLACK')) EgtModifyCurveThickness( nCrvId, 0) @@ -9957,7 +9786,7 @@ local function CalcPartPreview( nPartId, nPreviewGrp) EgtMove( nAreaId, Vector3d( 0, 0, - 1000)) end end - EgtSetColor( nAreaId, Color3d( 251, 128, 4)) + EgtSetColor( nAreaId, WIN_COLOR_PART) -- estraggo il contorno local nCompoId = EgtExtractSurfFrChunkLoops( nAreaId, 0, nPreviewGrp) EgtSetColor( nCompoId, EgtStdColor( 'BLACK')) @@ -9994,52 +9823,12 @@ local function CalcThresholdPreview( nAreaId, nPreviewGrp) -- creo il rettangolo della soglia e lo posiziono sullo sfondo local ptOrig = EgtSP( nBottomId) local nSurfId = EgtSurfFrRectangle( nPreviewGrp, ptOrig, ptOrig + EgtCurveLength( nBottomId) * X_AX() + b3Profile:getDimX() * Y_AX()) - EgtSetColor( nSurfId, Color3d( 128, 128, 128)) + EgtSetColor( nSurfId, WIN_COLOR_ACCESSORY) EgtMove( nSurfId, - 500 * Z_AX()) local nCompoId = EgtExtractSurfFrChunkLoops( nSurfId, 0, nPreviewGrp) EgtSetColor( nCompoId, EgtStdColor( 'BLACK')) end ----------------------------------------------------------------------------------- -local function CalcHardwarePreview( nAreaId, nPreviewGrp) - - local nAreaType = EgtGetInfo( nAreaId, WIN_AREATYPE, 'i') - if nAreaType == WIN_AREATYPES.SASH then - -- se anta disegno la ferramenta se è definita - local sHdwFavourite = EgtGetInfo( nAreaId, WIN_HDW_FAVOURITE) - if sHdwFavourite and sHdwFavourite ~= WIN_HDW_NULL then - DrawSashHardware( nAreaId, nAreaId, nPreviewGrp, true) - end - return - - elseif nAreaType == WIN_AREATYPES.SPLIT then - local nSplitType = EgtGetInfo( nAreaId, WIN_SPLITTYPE, 'i') or WIN_SPLITTYPES.NULL - if nSplitType == WIN_SPLITTYPES.FRENCH then - local sHdwFavourite = EgtGetInfo( nAreaId, WIN_HDW_FAVOURITE) - if sHdwFavourite and sHdwFavourite ~= WIN_HDW_NULL then - -- disegno ferramenta per tutte le ante avendo come gruppo di riferimento delle info il parent dell'area split french - local vSashes = EgtGetNameInGroup( nAreaId, WIN_AREA .. '*') - for j = 1, #vSashes do - DrawSashHardware( vSashes[j], nAreaId, nPreviewGrp, true) - end - end - return - else - -- se non è split french devo controllare le sue sottoaree - local vChildrenAreas = EgtGetNameInGroup( nAreaId, WIN_AREA .. '*') or {} - for i = 1, #vChildrenAreas do - CalcHardwarePreview( vChildrenAreas[i], nPreviewGrp) - end - end - else - -- controllo le sue sottoaree - local vChildrenAreas = EgtGetNameInGroup( nAreaId, WIN_AREA .. '*') or {} - for i = 1, #vChildrenAreas do - CalcHardwarePreview( vChildrenAreas[i], nPreviewGrp) - end - end -end - ---------------------------------------------------------------------------------- local function CalcPreview( nFrameId) @@ -10090,9 +9879,6 @@ local function CalcPreview( nFrameId) end i = i + 1 end - - -- preview ferramenta - CalcHardwarePreview( nFrameId, nPreviewGrp) end