From d0398e9d5dfffd9598aba4b85d443849a1e7ce07 Mon Sep 17 00:00:00 2001 From: SaraP Date: Mon, 26 Jan 2026 15:27:01 +0100 Subject: [PATCH] DataWindow : - correzioni a WinGetAreaProfiles. --- Designing/WinProject.lua | 27 +++++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/Designing/WinProject.lua b/Designing/WinProject.lua index 803503c..e3de83d 100644 --- a/Designing/WinProject.lua +++ b/Designing/WinProject.lua @@ -493,14 +493,37 @@ _G.WinGetSashShape = WinGetSashShape ---------------------------------------------------------------------------------- local function WinGetAreaProfiles() + -- restituisce una lista dove ogni elemento รจ una tabella con le seguenti chiavi : GroupId = AREANBR corrispondente, SashId = eventuale sashnbr, + -- Profiles = lista dei profili dei pezzi di quell'area + -- recupero gli id geometrici delle aree richieste local vAreaNbrs = GetVariableList( 'AREANBR') local vAreaIds = GetAreaIdsFromNumbers( vAreaNbrs) - -- ricavo le forme + + -- ricavo i profili + local tabProfiles = {} for i = 1, #vAreaIds do if vAreaIds[i] ~= GDB_ID.NULL then - WDG['AREAPROFILES' .. tostring( i)] = EgtGetInfo( vAreaIds[i], WIN_AREA_PROFILES, 'vs') + local nAreaType = EgtGetInfo( vAreaIds[i], WIN_AREATYPE, 'i') + if nAreaType == WIN_AREATYPES.FRAME then + table.insert( tabProfiles, { GroupId = vAreaNbrs[i], Profiles = EgtGetInfo( vAreaIds[i], WIN_AREA_PROFILES, 'vs')}) + elseif nAreaType == WIN_AREATYPES.SASH then + table.insert( tabProfiles, { GroupId = vAreaNbrs[i], SashId = 1, Profiles = EgtGetInfo( vAreaIds[i], WIN_AREA_PROFILES, 'vs')}) + elseif nAreaType == WIN_AREATYPES.SPLIT then + local nSplitLayId = EgtGetFirstNameInGroup( vAreaIds[i], WIN_SPLIT) + local nSplitType = EgtGetInfo( nSplitLayId, WIN_SPLITTYPE, 'i') + if nSplitType == WIN_SPLITTYPES.FRENCH then + -- se french split devo recuperare le ante che definisce + local vSashes = EgtGetNameInGroup( vAreaIds[i], WIN_AREA .. '*') + for j = 1, #vSashes do + local nSashId = EgtGetInfo( vSashes[j], WIN_SASH_NBR, 'i') + table.insert( tabProfiles, { GroupId = vAreaNbrs[i], SashId = nSashId, Profiles = EgtGetInfo( vSashes[j], WIN_AREA_PROFILES, 'vs')}) + end + end + end + end end + WDG['AREAPROFILES'] = tabProfiles end _G.WinGetAreaProfiles = WinGetAreaProfiles \ No newline at end of file