diff --git a/Profiles/WinConst.lua b/Profiles/WinConst.lua index 7abae37..55aa15b 100644 --- a/Profiles/WinConst.lua +++ b/Profiles/WinConst.lua @@ -368,6 +368,7 @@ WIN_HDW_FAVOURITE = 'HdwFavourite' WIN_HDW_HANDLE = 'HdwHandle' WIN_HDW_FRAME = 'HdwFrame' WIN_HDW_HANDLE_HEIGHT = 'HdwHandleH' +WIN_HDW_OPTIONS = 'HdwOptions' WIN_HDW_HINGES = 'HdwHinges' --------------------------------------------------------------------- return WinConst diff --git a/Profiles/WinLib/WinCalculate.lua b/Profiles/WinLib/WinCalculate.lua index 0f94f38..0c3c4e7 100644 --- a/Profiles/WinLib/WinCalculate.lua +++ b/Profiles/WinLib/WinCalculate.lua @@ -4286,7 +4286,7 @@ end --------------------------------------------------------------------- -- funzione che aggiunge l'hardware -local function AddHardwareForSash( nFrameId, bOnlyRequest) +function WinCalculate.AddHardwareForSash( nFrameId, bOnlyRequest) -- cerco ed indicizzo ante del serramento local SashList = {} SearchSash( nFrameId, SashList) @@ -4311,11 +4311,17 @@ local function AddHardwareForSash( nFrameId, bOnlyRequest) -- recupero preferito della ferramenta local nFavourite = EgtGetInfo( nFrameId, WIN_HDW_FAVOURITE) + if bOnlyRequest then + nFavourite = WDG.HDWFAVOURITE + end if not nFavourite or nFavourite == '000000' then EgtOutLog('Warning! No hardware favourite set!') return end local sHandle = EgtGetInfo( nFrameId, WIN_HDW_HANDLE) + if bOnlyRequest then + sHandle = WDG.HDWHANDLE + end if not sHandle then EgtOutLog('Warning! No hardware handle set!') return @@ -4370,11 +4376,18 @@ local function AddHardwareForSash( nFrameId, bOnlyRequest) end + sText = sText .. 'FINESTRAPORTAFINESTRA=Finestra' .. '\n' .. - 'Q=1' .. '\n' .. - 'MANOSERRAMENTO=' .. sHandle .. '\n' .. - 'CNCOUTPUT=' .. sAGBOutputLavFile .. '\n' .. - 'RUN' + 'Q=1' .. '\n' .. + 'MANOSERRAMENTO=' .. sHandle .. '\n' + + local vOptions = EgtGetInfo( nFrameId, WIN_HDW_OPTIONS, 'vs') or {} + for i = 1, #vOptions do + sText = sText .. vOptions[i] .. '\n' + end + + sText = sText .. 'CNCOUTPUT=' .. sAGBOutputLavFile .. '\n' .. + 'RUN' -- Scrittura nuova linea fhInput:write( sText .. '\n') @@ -4553,7 +4566,7 @@ function WinCalculate.AddHardware( nAreaId) end if nAreaType == WIN_AREATYPES.SASH or ( nSplitLayerId and nSplitType == WIN_SPLITTYPES.FRENCH) then -- lancio calcolo sash - return AddHardwareForSash( nAreaId) + return WinCalculate.AddHardwareForSash( nAreaId) else -- verifico se ci sono sotto-aree local nChildAreaId = EgtGetFirstNameInGroup( nAreaId, WIN_AREA .. '*') diff --git a/Profiles/WinProject.lua b/Profiles/WinProject.lua index 8ac7e3a..92ef167 100644 --- a/Profiles/WinProject.lua +++ b/Profiles/WinProject.lua @@ -35,6 +35,26 @@ local WinManageProject = require( 'WinManageProject') -- WDG -- funzioni +---------------------------------------------------------------------------------- +local function GetVariableList( sName) + local List = {} + local nIndex = 1 + while WDG[sName .. nIndex] do + table.insert(List, WDG['JOINT' .. nIndex]) + nIndex = nIndex + 1 + end + return List +end + +---------------------------------------------------------------------------------- +local function CleanVariableList( sName) + local nIndex = 1 + while WDG[sName .. nIndex] do + WDG[sName .. nIndex] = nil + nIndex = nIndex + 1 + end +end + ---------------------------------------------------------------------------------- local function WinCreate_ImportProfile() WinCreate.ImportProfile(WDG.PROFILE) @@ -43,13 +63,17 @@ _G.WinCreate_ImportProfile = WinCreate_ImportProfile ---------------------------------------------------------------------------------- local function WinCreate_CreateFrame() - WDG.AREAID = WinCreate.CreateFrame( WDG.FRAMETYPE, {WDG.JOINT1, WDG.JOINT2, WDG.JOINT3, WDG.JOINT4, WDG.JOINT1}, WDG.WIDTH, WDG.HEIGHT, WDG.HEIGHT2) + local JointList = GetVariableList('JOINT') + WDG.AREAID = WinCreate.CreateFrame(WDG.FRAMETYPE, JointList, WDG.WIDTH, WDG.HEIGHT, WDG.HEIGHT2) + CleanVariableList('JOINT') end _G.WinCreate_CreateFrame = WinCreate_CreateFrame ---------------------------------------------------------------------------------- local function WinCreate_AddSash() + local JointList = GetVariableList('JOINT') WDG.AREAID = WinCreate.AddSash( WDG.AREAID, {WDG.JOINTBL, WDG.JOINTBR, WDG.JOINTTR, WDG.JOINTTL, WDG.JOINTBL}, WDG.SASHTYPE, WDG.OPENINGTYPE) + CleanVariableList('JOINT') end _G.WinCreate_AddSash = WinCreate_AddSash