3dPrinting :
- modifiche e correzioni per Costolature (Setti -> Ribs).
This commit is contained in:
+53
-12
@@ -1,4 +1,4 @@
|
||||
-- RunViewManager.lua by Egaltech s.r.l. 2022/04/05
|
||||
-- RunViewManager.lua by Egaltech s.r.l. 2022/07/03
|
||||
-- Gestione visualizzazione per Stampa 3d
|
||||
|
||||
-- Tabella per definizione modulo
|
||||
@@ -12,9 +12,35 @@ EgtOutLog( ' RunViewManager started', 1)
|
||||
-- Costanti generali
|
||||
local AMD = require( 'AddManData')
|
||||
|
||||
---------------------------------------------------------------------
|
||||
local function CalcShow( nShellView, nType)
|
||||
if nShellView == SHELL_VIEW_TYPE.OUTER then
|
||||
return ( nType == TYPE.OUTER_SHELL)
|
||||
elseif nShellView == SHELL_VIEW_TYPE.INNER then
|
||||
return ( nType == TYPE.INNER_SHELL)
|
||||
elseif nShellView == SHELL_VIEW_TYPE.INFILL then
|
||||
return ( nType == TYPE.INFILL)
|
||||
else --nShellView == SHELL_VIEW_TYPE.ALL
|
||||
return true
|
||||
end
|
||||
end
|
||||
|
||||
---------------------------------------------------------------------
|
||||
local function CalcType( nEntId, nOldType)
|
||||
local nType = EgtGetInfo( nEntId, KEY_TYPE, 'i')
|
||||
if not nType or nType == TYPE.LINK or nType == TYPE.COASTING or nType == TYPE.WIPE then
|
||||
nType = nOldType
|
||||
end
|
||||
if nType == TYPE.RIB then
|
||||
nType = TYPE.INFILL
|
||||
end
|
||||
return nType
|
||||
end
|
||||
|
||||
---------------------------------------------------------------------
|
||||
function RunViewManager.Exec()
|
||||
local nVisibilityMode = LAYER_VIEW_TYPE.ALL -- 1 = All, 2 = Till Selected, 3 = Only Selected
|
||||
local nShellType = SHELL_VIEW_TYPE.ALL -- 1 = All, 2 = Outer, 3 = Inner, 4 = infill
|
||||
local nVisibilityMode = LAYER_VIEW_TYPE.ALL -- 1 = All, 2 = Till Selected, 3 = Only Selected, 4 = From Selected
|
||||
local nShellType = SHELL_VIEW_TYPE.ALL -- 1 = All, 2 = Outer, 3 = Inner, 4 = infill
|
||||
local nOldSelLayerId = GDB_ID.NULL
|
||||
|
||||
-- leggo ultimi valori
|
||||
@@ -26,11 +52,13 @@ function RunViewManager.Exec()
|
||||
end
|
||||
local sLayerViewCombo = ''
|
||||
if nVisibilityMode == LAYER_VIEW_TYPE.TILL_SEL then
|
||||
sLayerViewCombo = 'CB:All,*Till Selected,Only Selected'
|
||||
sLayerViewCombo = 'CB:All,*Till Selected,Only Selected,From Selected'
|
||||
elseif nVisibilityMode == LAYER_VIEW_TYPE.ONLY_SEL then
|
||||
sLayerViewCombo = 'CB:All,Till Selected,*Only Selected'
|
||||
sLayerViewCombo = 'CB:All,Till Selected,*Only Selected,From Selected'
|
||||
elseif nVisibilityMode == LAYER_VIEW_TYPE.FROM_SEL then
|
||||
sLayerViewCombo = 'CB:All,Till Selected,Only Selected,*From Selected'
|
||||
else
|
||||
sLayerViewCombo = 'CB:*All,Till Selected,Only Selected'
|
||||
sLayerViewCombo = 'CB:*All,Till Selected,Only Selected,From Selected'
|
||||
end
|
||||
local sShellViewCombo = ''
|
||||
if nShellType == SHELL_VIEW_TYPE.OUTER then
|
||||
@@ -53,6 +81,8 @@ function RunViewManager.Exec()
|
||||
nVisibilityMode = LAYER_VIEW_TYPE.TILL_SEL
|
||||
elseif ViewValues[1] == 'Only Selected' then
|
||||
nVisibilityMode = LAYER_VIEW_TYPE.ONLY_SEL
|
||||
elseif ViewValues[1] == 'From Selected' then
|
||||
nVisibilityMode = LAYER_VIEW_TYPE.FROM_SEL
|
||||
end
|
||||
if ViewValues[2] == 'All' then
|
||||
nShellType = SHELL_VIEW_TYPE.ALL
|
||||
@@ -105,28 +135,39 @@ function RunViewManager.Exec()
|
||||
EgtSetStatus( nLayerId, EgtIf( nLayerId <= nSelLayerId, GDB_ST.ON, GDB_ST.OFF))
|
||||
elseif nVisibilityMode == LAYER_VIEW_TYPE.ONLY_SEL then
|
||||
EgtSetStatus( nLayerId, EgtIf( nLayerId == nSelLayerId, GDB_ST.ON, GDB_ST.OFF))
|
||||
elseif nVisibilityMode == LAYER_VIEW_TYPE.FROM_SEL then
|
||||
EgtSetStatus( nLayerId, EgtIf( nLayerId >= nSelLayerId, GDB_ST.ON, GDB_ST.OFF))
|
||||
end
|
||||
local nCrvId = EgtGetFirstGroupInGroup( nLayerId)
|
||||
while nCrvId do
|
||||
----
|
||||
local nOldType = TYPE.OUTER_SHELL
|
||||
local nPathId = EgtGetFirstNameInGroup( nCrvId, PATH_GRP)
|
||||
local nShellId = EgtGetFirstInGroup( nPathId)
|
||||
while nShellId do
|
||||
local nType = EgtGetInfo( nShellId, KEY_TYPE, 'i')
|
||||
EgtSetStatus( nShellId, EgtIf( nShellType == SHELL_VIEW_TYPE.ALL or ( nShellType == SHELL_VIEW_TYPE.OUTER and nType == TYPE.OUTER_SHELL) or (nShellType == SHELL_VIEW_TYPE.INNER and nType == TYPE.INNER_SHELL), GDB_ST.ON, GDB_ST.OFF))
|
||||
local nType = CalcType( nShellId, nOldType)
|
||||
nOldType = nType
|
||||
EgtSetStatus( nShellId, EgtIf( CalcShow( nShellType, nType), GDB_ST.ON, GDB_ST.OFF))
|
||||
nShellId = EgtGetNext( nShellId)
|
||||
end
|
||||
----
|
||||
nOldType = TYPE.OUTER_SHELL
|
||||
local nSolidId = EgtGetFirstNameInGroup( nCrvId, SOLID_GRP)
|
||||
local nSurfId = EgtGetFirstInGroup( nSolidId)
|
||||
while nSurfId do
|
||||
local nType = EgtGetInfo( nSurfId, KEY_TYPE, 'i')
|
||||
EgtSetStatus( nSurfId, EgtIf( nShellType == SHELL_VIEW_TYPE.ALL or ( nShellType == SHELL_VIEW_TYPE.OUTER and nType == TYPE.OUTER_SHELL) or (nShellType == SHELL_VIEW_TYPE.INNER and nType == TYPE.INNER_SHELL), GDB_ST.ON, GDB_ST.OFF))
|
||||
local nType = CalcType( nSurfId, nOldType)
|
||||
nOldType = nType
|
||||
EgtSetStatus( nSurfId, EgtIf( CalcShow( nShellType, nType), GDB_ST.ON, GDB_ST.OFF))
|
||||
nSurfId = EgtGetNext( nSurfId)
|
||||
end
|
||||
----
|
||||
nOldType = TYPE.OUTER_SHELL
|
||||
local nToolPathId = EgtGetFirstNameInGroup( nCrvId, TOOLPATH_GRP)
|
||||
nShellId = EgtGetFirstInGroup( nToolPathId)
|
||||
while nShellId do
|
||||
local nType = EgtGetInfo( nShellId, KEY_TYPE, 'i')
|
||||
EgtSetStatus( nShellId, EgtIf( nType and ( nShellType == SHELL_VIEW_TYPE.ALL or ( nShellType == SHELL_VIEW_TYPE.OUTER and nType == TYPE.OUTER_SHELL) or (nShellType == SHELL_VIEW_TYPE.INNER and nType == TYPE.INNER_SHELL)), GDB_ST.ON, GDB_ST.OFF))
|
||||
local nType = CalcType( nShellId, nOldType)
|
||||
nOldType = nType
|
||||
EgtSetStatus( nShellId, EgtIf( CalcShow( nShellType, nType), GDB_ST.ON, GDB_ST.OFF))
|
||||
nShellId = EgtGetNext( nShellId)
|
||||
end
|
||||
nCrvId = EgtGetNext( nCrvId)
|
||||
|
||||
Reference in New Issue
Block a user