diff --git a/Designing/WinConst.lua b/Designing/WinConst.lua index efefba4..b968a68 100644 --- a/Designing/WinConst.lua +++ b/Designing/WinConst.lua @@ -193,6 +193,7 @@ WIN_THRESHOLD_PROFILE = 'ThresholdProfile' WIN_SLIDE_WINDOW = 'SlideWindow' WIN_SASH_NBR = 'SashNbr' WIN_AREA_NBR = 'AreaNbr' +WIN_AREA_PROFILES = 'AreaProfiles' -- PROFILI diff --git a/Designing/WinLib/WinCalculate.lua b/Designing/WinLib/WinCalculate.lua index 2dea869..6b6f6ec 100644 --- a/Designing/WinLib/WinCalculate.lua +++ b/Designing/WinLib/WinCalculate.lua @@ -1658,6 +1658,7 @@ local function CalculateOutlineFromAreaOutline( nAreaId) -- FRAME if nAreaType == WIN_AREATYPES.FRAME then -- sistemo le info + local vProfiles = {} local nAreaOutlineId = EgtGetFirstInGroup( nAreaOutlineLayerId) while nAreaOutlineId do local nOutlineId = EgtCopyGlob( nAreaOutlineId, nOutlineLayerId) @@ -1667,10 +1668,13 @@ local function CalculateOutlineFromAreaOutline( nAreaId) if EgtGetName( nOutlineId) == WIN_BOTTOM then CopyInfo( nOutlineId, nAreaId, WIN_BOTTOMRAIL) end + local sProfile = WIN_FRAME .. '_' .. EgtGetInfo( nOutlineId, WIN_PROFILETYPE) + table.insert( vProfiles, sProfile) nAreaOutlineId = EgtGetNext( nAreaOutlineId) end GetPrevNextOutline( nOutlineLayerId) - + -- assegno i profili all'area + EgtSetInfo( nAreaId, WIN_AREA_PROFILES, vProfiles) -- SPLIT / NULL elseif nAreaType == WIN_AREATYPES.SPLIT or nAreaType == WIN_AREATYPES.NULL then @@ -1796,10 +1800,15 @@ local function CalculateOutlineFromAreaOutline( nAreaId) nBaseOutlineId = EgtGetNext( nBaseOutlineId) end -- accorcio gli offset - TrimOrderedCurves( EgtGetAllInGroup( nOutlineLayerId), 1) + local vOutlines = TrimOrderedCurves( EgtGetAllInGroup( nOutlineLayerId), 1) -- assegno prev e next GetPrevNextOutline( nOutlineLayerId) - + -- assegno i profili all'area + local vProfiles = {} + for i = 1, #vOutlines do + vProfiles[i] = WIN_SASH .. '_' .. EgtGetInfo( vOutlines[i], WIN_PROFILETYPE) + end + EgtSetInfo( nAreaId, WIN_AREA_PROFILES, vProfiles) -- FILL elseif nAreaType == WIN_AREATYPES.FILL then @@ -2642,7 +2651,7 @@ local function CalcMixedMillings( vOutlines, nOutlineProfileId, nSplitId, nSplit local _, _, dPar4 = EgtPointCurveDist( ptEnd, nCrvFS1) local nMill2 = EgtCopyParamRange( nCrvFS1, min( dPar4, dPar3), max( dPar3, dPar4), nGrpTmp) - local nMilling + local nMilling if bPrev then nMilling = EgtCurveCompo( nGrpTmp, { nMill2, nMill1}) else diff --git a/Designing/WinProject.lua b/Designing/WinProject.lua index 504a60d..803503c 100644 --- a/Designing/WinProject.lua +++ b/Designing/WinProject.lua @@ -489,4 +489,18 @@ local function WinGetSashShape() end end end -_G.WinGetSashShape = WinGetSashShape \ No newline at end of file +_G.WinGetSashShape = WinGetSashShape + +---------------------------------------------------------------------------------- +local function WinGetAreaProfiles() + -- recupero gli id geometrici delle aree richieste + local vAreaNbrs = GetVariableList( 'AREANBR') + local vAreaIds = GetAreaIdsFromNumbers( vAreaNbrs) + -- ricavo le forme + for i = 1, #vAreaIds do + if vAreaIds[i] ~= GDB_ID.NULL then + WDG['AREAPROFILES' .. tostring( i)] = EgtGetInfo( vAreaIds[i], WIN_AREA_PROFILES, 'vs') + end + end +end +_G.WinGetAreaProfiles = WinGetAreaProfiles \ No newline at end of file