1a5d6a5ab5
- aggiunta la possibilità di aggiungere un numero indefinito di info ad un pezzo durante la sua creazione.
481 lines
24 KiB
VB.net
481 lines
24 KiB
VB.net
Imports EgtUILib.EgtInterface
|
|
|
|
Public Class NewPanelVM
|
|
Inherits SceneUserControlVM
|
|
|
|
#Region "FIELDS & PROPERTIES"
|
|
|
|
Private Enum ParamEnum
|
|
MSG_ISTRUZ = 0
|
|
TY_PANEL = 1
|
|
PARAG_PANEL = 2
|
|
PANEL_H = 3
|
|
PANEL_TH = 4
|
|
PANEL_J = 5
|
|
PARAG_BOTTOM = 6
|
|
BOTTOM_H = 7
|
|
BOTTOM_TH = 8
|
|
BOTTOM_DEPTH = 9
|
|
BOTTOM_HOLE_X = 10
|
|
BOTTOM_HOLE_Y = 11
|
|
BOTTOM_HOLE_TYPE = 12
|
|
BOTTOM_DIAM = 13
|
|
BOTTOM_HOLE_DIMX = 14
|
|
BOTTOM_HOLE_DIMY = 15
|
|
BOTTOM_ALPHA = 16
|
|
End Enum
|
|
|
|
Private ReadOnly m_MsgList As New List(Of String)({TopBar_Msg_Stg0, TopBar_Msg_Stg1, TopBar_Msg_Stg2})
|
|
Public ReadOnly Property MsgList As List(Of String)
|
|
Get
|
|
Return m_MsgList
|
|
End Get
|
|
End Property
|
|
|
|
Private m_Stage As NewPanelStage = NewPanelStage.InsertParam
|
|
Private Property Stage As NewPanelStage
|
|
Get
|
|
Return m_Stage
|
|
End Get
|
|
Set(value As NewPanelStage)
|
|
m_Stage = value
|
|
DirectCast(ParamList(ParamEnum.MSG_ISTRUZ), _TextBlockParam).MsgValue = MsgList(m_Stage)
|
|
End Set
|
|
End Property
|
|
|
|
#Region "Messages"
|
|
|
|
Public ReadOnly Property TopBar_Msg_Stg0 As String
|
|
Get
|
|
Return EgtMsg(110030) ' Clicca sull'edge di un pezzo per aggiungere una paretina del tipo selezionato
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property TopBar_Msg_Stg1 As String
|
|
Get
|
|
Return EgtMsg(110038) ' frontalino
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property TopBar_Msg_Stg2 As String
|
|
Get
|
|
Return EgtMsg(110039) ' fondo
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property TopBar_Msg_Bottom As String
|
|
Get
|
|
Return EgtMsg(110043) ' seleziona le paretine che fanno da contorno al fondo che vuoi creare
|
|
End Get
|
|
End Property
|
|
|
|
#End Region ' Messages
|
|
|
|
#End Region ' Fields & Properties
|
|
|
|
#Region "CONSTRUCTOR"
|
|
|
|
Public Sub New()
|
|
MyBase.New()
|
|
Title = "Aggiungi Paretina".ToUpper()
|
|
DirectCast(Map.refSceneButtonVM.m_NewPanelUC, SceneUserControlV).Annulla.Visibility = Visibility.Hidden
|
|
DirectCast(Map.refSceneButtonVM.m_NewPanelUC, SceneUserControlV).Preview.Visibility = Visibility.Hidden
|
|
LoadParamList()
|
|
End Sub
|
|
|
|
#End Region ' Constructor
|
|
|
|
#Region "METHODS"
|
|
|
|
Public Overrides Sub LoadParamList()
|
|
AddGenericParam(New _TextBlockParam(EGT_MESSAGE, MsgList(0), ParamType.STR, Visibility.Visible))
|
|
Dim PanelType As New List(Of ParamCmBx)({New ParamCmBx(EGT_SPLASHTOP), New ParamCmBx(EGT_WATERFALL), New ParamCmBx(EGT_SPLITBOTTOM),
|
|
New ParamCmBx(EGT_SINK_SPLITBOTTOM), New ParamCmBx(EGT_SINK), New ParamCmBx(EGT_BOTTOM)})
|
|
AddGenericParam(New _ComboBoxParam("TipoParetina", PanelType, 0, Visibility.Visible))
|
|
' sezione paretina
|
|
AddGenericParam(New _TextBlockParam(EGT_MESSAGE, MsgList(1), ParamType.STR, Visibility.Collapsed))
|
|
AddGenericParam(New _TextBoxParam("Altezza", 100, ParamType.LEN, Visibility.Visible))
|
|
AddGenericParam(New _TextBoxParam("Spessore", 10, ParamType.LEN, Visibility.Visible))
|
|
Dim JunctionType As New List(Of ParamCmBx)({New ParamCmBx("Trim Start"), New ParamCmBx("Trim End"), New ParamCmBx("Trim Angled")})
|
|
AddGenericParam(New _ComboBoxParam("TipoGiunzione", JunctionType, 0, Visibility.Visible))
|
|
|
|
' sezione fondello
|
|
AddGenericParam(New _TextBlockParam(EGT_MESSAGE, MsgList(2), ParamType.STR, Visibility.Collapsed))
|
|
AddGenericParam(New _TextBoxParam("Altezza", 100, ParamType.LEN, Visibility.Collapsed))
|
|
AddGenericParam(New _TextBoxParam("Spessore", 10, ParamType.LEN, Visibility.Collapsed))
|
|
AddGenericParam(New _TextBoxParam("Profondità", 1, ParamType.LEN, Visibility.Collapsed))
|
|
AddGenericParam(New _TextBoxParam("Posizione X foro", 50, ParamType.LEN, Visibility.Collapsed))
|
|
AddGenericParam(New _TextBoxParam("Posizione Y foro", 50, ParamType.LEN, Visibility.Collapsed))
|
|
Dim HoleType As New List(Of ParamCmBx)({New ParamCmBx("Fessura"), New ParamCmBx("Foro")})
|
|
AddGenericParam(New _ComboBoxParam("TipoBuco", HoleType, 0, Visibility.Collapsed))
|
|
AddGenericParam(New _TextBoxParam("Diametro foro", 30, ParamType.LEN, Visibility.Collapsed))
|
|
AddGenericParam(New _TextBoxParam("Dimensione X foro", 25, ParamType.LEN, Visibility.Collapsed))
|
|
AddGenericParam(New _TextBoxParam("Dimensione Y foro", 25, ParamType.LEN, Visibility.Collapsed))
|
|
AddGenericParam(New _TextBoxParam("Inclinazione", 2, ParamType.DOUB, Visibility.Collapsed))
|
|
End Sub
|
|
|
|
Public Sub AdvanceStage()
|
|
Stage += 1
|
|
End Sub
|
|
|
|
Public Function AtStage()
|
|
Return Stage
|
|
End Function
|
|
|
|
Public Overrides Sub OnComboboxSelectionChanged(sender As Object, Selection As ParamCmBx)
|
|
' quando viene selezionato lo split bottom devo mostrare le opzioni per il fondello
|
|
If DirectCast(sender, _ComboBoxParam).Name = "TipoParetina" Then
|
|
Dim sType As String = DirectCast(Selection, ParamCmBx).Name
|
|
If sType = EGT_SPLITBOTTOM Then
|
|
DirectCast(Map.refSceneButtonVM.m_NewPanelUC, SceneUserControlV).Preview.Visibility = Visibility.Visible
|
|
|
|
ParamList(ParamEnum.PANEL_H).nVisibility = Visibility.Collapsed
|
|
ParamList(ParamEnum.PANEL_TH).nVisibility = Visibility.Collapsed
|
|
ParamList(ParamEnum.PANEL_J).nVisibility = Visibility.Collapsed
|
|
|
|
ParamList(ParamEnum.PARAG_BOTTOM).nVisibility = Visibility.Visible
|
|
ParamList(ParamEnum.BOTTOM_H).nVisibility = Visibility.Visible
|
|
ParamList(ParamEnum.BOTTOM_TH).nVisibility = Visibility.Visible
|
|
ParamList(ParamEnum.BOTTOM_DEPTH).nVisibility = Visibility.Visible
|
|
ParamList(ParamEnum.BOTTOM_HOLE_TYPE).nVisibility = Visibility.Visible
|
|
DirectCast(ParamList(ParamEnum.BOTTOM_HOLE_TYPE), _ComboBoxParam).IndexSelParamCmBx = 0
|
|
ParamList(ParamEnum.BOTTOM_HOLE_X).nVisibility = Visibility.Visible
|
|
ParamList(ParamEnum.BOTTOM_HOLE_Y).nVisibility = Visibility.Visible
|
|
ParamList(ParamEnum.BOTTOM_DIAM).nVisibility = Visibility.Collapsed
|
|
ParamList(ParamEnum.BOTTOM_HOLE_DIMX).nVisibility = Visibility.Visible
|
|
ParamList(ParamEnum.BOTTOM_HOLE_DIMY).nVisibility = Visibility.Visible
|
|
Map.refSceneHostVM.m_SelType = GDB_TY.SRF_MESH
|
|
ElseIf sType = EGT_SINK_SPLITBOTTOM Then
|
|
DirectCast(Map.refSceneButtonVM.m_NewPanelUC, SceneUserControlV).Preview.Visibility = Visibility.Visible
|
|
|
|
DirectCast(ParamList(ParamEnum.PANEL_J), _ComboBoxParam).IndexSelParamCmBx = 2
|
|
ParamList(ParamEnum.PARAG_PANEL).nVisibility = Visibility.Visible
|
|
ParamList(ParamEnum.PANEL_H).nVisibility = Visibility.Visible
|
|
ParamList(ParamEnum.PANEL_TH).nVisibility = Visibility.Visible
|
|
ParamList(ParamEnum.PANEL_J).nVisibility = Visibility.Visible
|
|
|
|
ParamList(ParamEnum.PARAG_BOTTOM).nVisibility = Visibility.Visible
|
|
ParamList(ParamEnum.BOTTOM_H).nVisibility = Visibility.Visible
|
|
ParamList(ParamEnum.BOTTOM_TH).nVisibility = Visibility.Visible
|
|
ParamList(ParamEnum.BOTTOM_DEPTH).nVisibility = Visibility.Visible
|
|
ParamList(ParamEnum.BOTTOM_HOLE_TYPE).nVisibility = Visibility.Visible
|
|
DirectCast(ParamList(ParamEnum.BOTTOM_HOLE_TYPE), _ComboBoxParam).IndexSelParamCmBx = 0
|
|
ParamList(ParamEnum.BOTTOM_HOLE_X).nVisibility = Visibility.Visible
|
|
ParamList(ParamEnum.BOTTOM_HOLE_Y).nVisibility = Visibility.Visible
|
|
ParamList(ParamEnum.BOTTOM_DIAM).nVisibility = Visibility.Collapsed
|
|
ParamList(ParamEnum.BOTTOM_HOLE_DIMX).nVisibility = Visibility.Visible
|
|
ParamList(ParamEnum.BOTTOM_HOLE_DIMY).nVisibility = Visibility.Visible
|
|
Map.refSceneHostVM.m_SelType = GDB_TY.CRV_LINE
|
|
ElseIf sType = EGT_SINK Then
|
|
DirectCast(Map.refSceneButtonVM.m_NewPanelUC, SceneUserControlV).Preview.Visibility = Visibility.Visible
|
|
|
|
DirectCast(ParamList(ParamEnum.PANEL_J), _ComboBoxParam).IndexSelParamCmBx = 2
|
|
ParamList(ParamEnum.PARAG_PANEL).nVisibility = Visibility.Visible
|
|
ParamList(ParamEnum.PANEL_H).nVisibility = Visibility.Visible
|
|
ParamList(ParamEnum.PANEL_TH).nVisibility = Visibility.Visible
|
|
ParamList(ParamEnum.PANEL_J).nVisibility = Visibility.Visible
|
|
|
|
ParamList(ParamEnum.PARAG_BOTTOM).nVisibility = Visibility.Visible
|
|
ParamList(ParamEnum.BOTTOM_H).nVisibility = Visibility.Visible
|
|
ParamList(ParamEnum.BOTTOM_TH).nVisibility = Visibility.Visible
|
|
ParamList(ParamEnum.BOTTOM_DEPTH).nVisibility = Visibility.Visible
|
|
ParamList(ParamEnum.BOTTOM_HOLE_TYPE).nVisibility = Visibility.Visible
|
|
DirectCast(ParamList(ParamEnum.BOTTOM_HOLE_TYPE), _ComboBoxParam).IndexSelParamCmBx = 1
|
|
ParamList(ParamEnum.BOTTOM_HOLE_X).nVisibility = Visibility.Collapsed
|
|
ParamList(ParamEnum.BOTTOM_HOLE_Y).nVisibility = Visibility.Collapsed
|
|
ParamList(ParamEnum.BOTTOM_DIAM).nVisibility = Visibility.Visible
|
|
ParamList(ParamEnum.BOTTOM_HOLE_DIMX).nVisibility = Visibility.Collapsed
|
|
ParamList(ParamEnum.BOTTOM_HOLE_DIMY).nVisibility = Visibility.Collapsed
|
|
Map.refSceneHostVM.m_SelType = GDB_TY.CRV_LINE
|
|
ElseIf sType = EGT_SPLASHTOP Or sType = EGT_WATERFALL Then
|
|
DirectCast(Map.refSceneButtonVM.m_NewPanelUC, SceneUserControlV).Preview.Visibility = Visibility.Hidden
|
|
|
|
ParamList(ParamEnum.PARAG_PANEL).nVisibility = Visibility.Collapsed
|
|
ParamList(ParamEnum.PANEL_H).nVisibility = Visibility.Visible
|
|
ParamList(ParamEnum.PANEL_TH).nVisibility = Visibility.Visible
|
|
ParamList(ParamEnum.PANEL_J).nVisibility = Visibility.Visible
|
|
If DirectCast(Selection, ParamCmBx).Name = EGT_SPLASHTOP Then
|
|
DirectCast(ParamList(ParamEnum.PANEL_J), _ComboBoxParam).IndexSelParamCmBx = 0
|
|
ElseIf DirectCast(Selection, ParamCmBx).Name = EGT_WATERFALL Then
|
|
DirectCast(ParamList(ParamEnum.PANEL_J), _ComboBoxParam).IndexSelParamCmBx = 2
|
|
End If
|
|
|
|
ParamList(ParamEnum.PARAG_BOTTOM).nVisibility = Visibility.Collapsed
|
|
ParamList(ParamEnum.BOTTOM_H).nVisibility = Visibility.Collapsed
|
|
ParamList(ParamEnum.BOTTOM_TH).nVisibility = Visibility.Collapsed
|
|
ParamList(ParamEnum.BOTTOM_DEPTH).nVisibility = Visibility.Collapsed
|
|
ParamList(ParamEnum.BOTTOM_HOLE_TYPE).nVisibility = Visibility.Collapsed
|
|
ParamList(ParamEnum.BOTTOM_HOLE_X).nVisibility = Visibility.Collapsed
|
|
ParamList(ParamEnum.BOTTOM_HOLE_Y).nVisibility = Visibility.Collapsed
|
|
ParamList(ParamEnum.BOTTOM_DIAM).nVisibility = Visibility.Collapsed
|
|
ParamList(ParamEnum.BOTTOM_HOLE_DIMX).nVisibility = Visibility.Collapsed
|
|
ParamList(ParamEnum.BOTTOM_HOLE_DIMY).nVisibility = Visibility.Collapsed
|
|
Map.refSceneHostVM.m_SelType = GDB_TY.CRV_LINE
|
|
ElseIf sType = EGT_BOTTOM Then
|
|
DirectCast(Map.refSceneButtonVM.m_NewPanelUC, SceneUserControlV).Preview.Visibility = Visibility.Visible
|
|
|
|
DirectCast(ParamList(ParamEnum.MSG_ISTRUZ), _TextBlockParam).MsgValue = TopBar_Msg_Bottom
|
|
ParamList(ParamEnum.PARAG_PANEL).nVisibility = Visibility.Collapsed
|
|
ParamList(ParamEnum.PANEL_H).nVisibility = Visibility.Collapsed
|
|
ParamList(ParamEnum.PANEL_TH).nVisibility = Visibility.Collapsed
|
|
ParamList(ParamEnum.PANEL_J).nVisibility = Visibility.Collapsed
|
|
|
|
ParamList(ParamEnum.PARAG_BOTTOM).nVisibility = Visibility.Collapsed
|
|
ParamList(ParamEnum.BOTTOM_H).nVisibility = Visibility.Collapsed
|
|
ParamList(ParamEnum.BOTTOM_TH).nVisibility = Visibility.Visible
|
|
ParamList(ParamEnum.BOTTOM_DEPTH).nVisibility = Visibility.Collapsed
|
|
ParamList(ParamEnum.BOTTOM_HOLE_TYPE).nVisibility = Visibility.Visible
|
|
DirectCast(ParamList(ParamEnum.BOTTOM_HOLE_TYPE), _ComboBoxParam).IndexSelParamCmBx = 1
|
|
ParamList(ParamEnum.BOTTOM_HOLE_X).nVisibility = Visibility.Visible
|
|
ParamList(ParamEnum.BOTTOM_HOLE_Y).nVisibility = Visibility.Visible
|
|
ParamList(ParamEnum.BOTTOM_DIAM).nVisibility = Visibility.Visible
|
|
ParamList(ParamEnum.BOTTOM_HOLE_DIMX).nVisibility = Visibility.Collapsed
|
|
ParamList(ParamEnum.BOTTOM_HOLE_DIMY).nVisibility = Visibility.Collapsed
|
|
|
|
Map.refSceneHostVM.m_SelType = GDB_TY.SRF_MESH
|
|
End If
|
|
End If
|
|
|
|
If DirectCast(sender, _ComboBoxParam).Name = "TipoBuco" Then
|
|
Dim sType As String = DirectCast(Selection, ParamCmBx).Name
|
|
If sType = EGT_SLOT Then
|
|
ParamList(ParamEnum.BOTTOM_DIAM).nVisibility = Visibility.Collapsed
|
|
ParamList(ParamEnum.BOTTOM_HOLE_DIMX).nVisibility = Visibility.Visible
|
|
ParamList(ParamEnum.BOTTOM_HOLE_DIMY).nVisibility = Visibility.Visible
|
|
ElseIf sType = EGT_BORE Then
|
|
ParamList(ParamEnum.BOTTOM_DIAM).nVisibility = Visibility.Visible
|
|
ParamList(ParamEnum.BOTTOM_HOLE_DIMX).nVisibility = Visibility.Collapsed
|
|
ParamList(ParamEnum.BOTTOM_HOLE_DIMY).nVisibility = Visibility.Collapsed
|
|
End If
|
|
End If
|
|
End Sub
|
|
|
|
Public Overrides Sub Conferma()
|
|
''debug
|
|
'DirectCast(ParamList(ParamEnum.PANEL_J), _ComboBoxParam).IndexSelParamCmBx = 2
|
|
'AddWaterfallAndSplitBottom(105)
|
|
''debug
|
|
|
|
' se sono in modalità fondello allora devo creare il pezzo
|
|
Dim sType As String = DirectCast(ParamList(ParamEnum.TY_PANEL), _ComboBoxParam).SelParamCmBx.Name
|
|
If sType = EGT_SPLITBOTTOM Then
|
|
AddSplitBottom(Map.refSceneHostVM.m_PanelPartList)
|
|
ElseIf sType = EGT_BOTTOM Then
|
|
AddBottom(Map.refSceneHostVM.m_PanelPartList)
|
|
End If
|
|
' resetto la lista dei part selezionati per la creazione di uno splitBottom
|
|
Map.refSceneHostVM.m_PanelPartList.Clear()
|
|
' resetto il tipo di elementi da evidenziare
|
|
Map.refSceneHostVM.m_SelType = GDB_TY.NONE
|
|
|
|
' chiudo lo user control
|
|
Close()
|
|
End Sub
|
|
|
|
Public Overrides Sub ShowPreview()
|
|
|
|
End Sub
|
|
|
|
Private Sub Close()
|
|
SolidManagerM.ResetOperationMarks(Map.refSceneHostVM.m_nIdPart)
|
|
EgtDraw()
|
|
Dim Btn As SceneBtn = Map.refSceneButtonVM.GetButton(EGT_ADD_PANEL)
|
|
If TypeOf (Btn) Is _ToggleButton Then
|
|
DirectCast(Btn, _ToggleButton).IsChecked = False
|
|
Else
|
|
EgtOutLog("CONFIG ERR: Il pulsante di Panel è stato definito come Button anziché ToggleButton")
|
|
End If
|
|
' ricostruisco l'elenco dei part solid
|
|
SolidManagerM.CreatePartSolid()
|
|
' rimuovo lo UC dalla griglia
|
|
Map.refSceneButtonVM.RemoveUC(Map.refSceneButtonVM.m_NewPanelUC)
|
|
' gestisco le attivazioni di undo/redo
|
|
SolidManagerM.ManageUndoRedo()
|
|
End Sub
|
|
|
|
Public Sub AddPanel(nId As Integer)
|
|
Dim ComboBoxParam As _ComboBoxParam = DirectCast(ParamList(ParamEnum.TY_PANEL), _ComboBoxParam)
|
|
If ComboBoxParam.SelParamCmBx.Name = EGT_SPLASHTOP Then
|
|
AddSplashTop(nId)
|
|
ElseIf ComboBoxParam.SelParamCmBx.Name = EGT_WATERFALL Then
|
|
AddWaterfall(nId)
|
|
ElseIf ComboBoxParam.SelParamCmBx.Name = EGT_SINK Then
|
|
AddWaterfallAndBottom(nId)
|
|
ElseIf ComboBoxParam.SelParamCmBx.Name = EGT_SINK_SPLITBOTTOM Then
|
|
AddWaterfallAndSplitBottom(nId)
|
|
End If
|
|
End Sub
|
|
|
|
Public Function GetPanelType()
|
|
Return DirectCast(ParamList(ParamEnum.TY_PANEL), _ComboBoxParam).SelParamCmBx.Name
|
|
End Function
|
|
|
|
Private Sub AddSplashTop(nId As Integer)
|
|
Dim nPartId As Integer = EgtGetParent(EgtGetParent(nId))
|
|
' setto l'indice del lato e il parent
|
|
If EgtLuaSetGlobIntVar("TOOL.nEdgeId", nId) Then AssLog("TOOL.nEdgeId = " & nId.ToString())
|
|
If EgtLuaSetGlobIntVar("TOOL.nParent", nPartId) Then AssLog("TOOL.nParent = " & nPartId.ToString())
|
|
' setto le variabili per l'alzatina
|
|
Dim dAngAlzatina As Double = 90
|
|
If EgtLuaSetGlobNumVar("TOOL.dPairAng", dAngAlzatina) Then AssLog("TOOL.dPairAng = " & dAngAlzatina.ToString())
|
|
Dim nJunctionType As Integer = DirectCast(ParamList(ParamEnum.PANEL_J), _ComboBoxParam).IndexSelParamCmBx + 1
|
|
If EgtLuaSetGlobIntVar("TOOL.nJunctionType", nJunctionType) Then AssLog("TOOL.nJunctionType = " & nJunctionType.ToString())
|
|
Dim bOnLoop As Boolean = False
|
|
If EgtLuaSetGlobBoolVar("TOOL.bOnLoop", bOnLoop) Then AssLog("TOOL.bOnLoop = false")
|
|
Dim bInsideLoop As Boolean = True
|
|
If EgtLuaSetGlobBoolVar("TOOL.bInsideLoop", bInsideLoop) Then AssLog("TOOL.bInsideLoop = true")
|
|
' setto le varibili generiche per il pezzo
|
|
Dim dTh As Double = DirectCast(ParamList(ParamEnum.PANEL_TH), _TextBoxParam).GetValue()
|
|
If EgtLuaSetGlobNumVar("TOOL.dTh", dTh) Then AssLog("TOOL.dTh = " & dTh.ToString())
|
|
Dim dH As Double = DirectCast(ParamList(3), _TextBoxParam).GetValue()
|
|
If EgtLuaSetGlobNumVar("TOOL.dH", dH) Then AssLog("TOOL.dH = " & dH.ToString())
|
|
If EgtLuaSetGlobBoolVar("TOOL.bPrev", True) Then AssLog("TOOL.bPrev = true")
|
|
If EgtLuaSetGlobBoolVar("TOOL.bNext", True) Then AssLog("TOOL.bNext = true")
|
|
' chiamo la funzione per la creazione
|
|
If EgtLuaCallFunction("TOOL.CreateParetinaFull") Then AssLog("TOOL.CreateParetinaFull()")
|
|
End Sub
|
|
Private Sub AddWaterfall(nId As Integer, Optional sInfoKey As String = "", Optional sInfoValue As String = "")
|
|
Dim nPartId As Integer = EgtGetParent(EgtGetParent(nId))
|
|
' setto l'indice del lato e il parent
|
|
If EgtLuaSetGlobIntVar("TOOL.nEdgeId", nId) Then AssLog("TOOL.nEdgeId = " & nId.ToString())
|
|
If EgtLuaSetGlobIntVar("TOOL.nParent", nPartId) Then AssLog("TOOL.nParent = " & nPartId.ToString())
|
|
' setto le variabili per il frontalino
|
|
Dim dAngFrontalino As Double = -90
|
|
If EgtLuaSetGlobNumVar("TOOL.dPairAng", dAngFrontalino) Then AssLog("TOOL.dPairAng = " & dAngFrontalino.ToString())
|
|
Dim nJunctionType As Integer = DirectCast(ParamList(ParamEnum.PANEL_J), _ComboBoxParam).IndexSelParamCmBx + 1
|
|
If EgtLuaSetGlobIntVar("TOOL.nJunctionType", nJunctionType) Then AssLog("TOOL.nJunctionType = " & nJunctionType.ToString())
|
|
Dim bOnLoop As Boolean = True
|
|
If EgtLuaSetGlobBoolVar("TOOL.bOnLoop", bOnLoop) Then AssLog("TOOL.bOnLoop = false")
|
|
Dim bInsideLoop As Boolean = True
|
|
If EgtLuaSetGlobBoolVar("TOOL.bInsideLoop", bInsideLoop) Then AssLog("TOOL.bInsideLoop = true")
|
|
' setto le varibili generiche per il pezzo
|
|
Dim dTh As Double = DirectCast(ParamList(ParamEnum.PANEL_TH), _TextBoxParam).GetValue()
|
|
If EgtLuaSetGlobNumVar("TOOL.dTh", dTh) Then AssLog("TOOL.dTh = " & dTh.ToString())
|
|
Dim dH As Double = DirectCast(ParamList(3), _TextBoxParam).GetValue()
|
|
If EgtLuaSetGlobNumVar("TOOL.dH", dH) Then AssLog("TOOL.dH = " & dH.ToString())
|
|
If EgtLuaSetGlobBoolVar("TOOL.bPrev", True) Then AssLog("TOOL.bPrev = true")
|
|
If EgtLuaSetGlobBoolVar("TOOL.bNext", True) Then AssLog("TOOL.bNext = true")
|
|
' se presente setto l'info addizionale
|
|
If sInfoKey <> String.Empty Then
|
|
If EgtLuaSetGlobStringVar("TOOL.tbInfo.InfoKey", sInfoKey) Then AssLog("TOOL.InfoKey = " & sInfoKey)
|
|
If EgtLuaSetGlobStringVar("TOOL.tbInfo.InfoValue", sInfoValue) Then AssLog("TOOL.sInfoValue = " & sInfoValue)
|
|
End If
|
|
' chiamo la funzione per la creazione
|
|
If EgtLuaCallFunction("TOOL.CreateParetinaFull") Then AssLog("TOOL.CreateParetinaFull()")
|
|
End Sub
|
|
|
|
Private Sub AddSplitBottom(PartList As List(Of Integer), Optional sInfoKey As String = "", Optional sInfoValue As String = "")
|
|
If PartList.Count = 0 Then
|
|
Close()
|
|
Return
|
|
End If
|
|
Dim lEdgeList As New List(Of Integer)
|
|
For Each nPart As Integer In PartList
|
|
Dim nOutLay As Integer = EgtGetFirstNameInGroup(nPart, "OutLoop")
|
|
Dim nEdge As Integer = EgtGetFirstNameInGroup(nOutLay, "A3")
|
|
lEdgeList.Add(nEdge)
|
|
Next
|
|
|
|
For i As Integer = 1 To lEdgeList.Count
|
|
EgtLuaSetGlobIntVar("TOOL.tbIdEdges." & i.ToString(), lEdgeList(i - 1).ToString())
|
|
Next
|
|
Dim dTh As Double = DirectCast(ParamList(ParamEnum.BOTTOM_TH), _TextBoxParam).GetValue()
|
|
EgtLuaSetGlobNumVar("TOOL.dTh", dTh)
|
|
Dim dDepth As Double = DirectCast(ParamList(ParamEnum.BOTTOM_DEPTH), _TextBoxParam).GetValue()
|
|
EgtLuaSetGlobNumVar("TOOL.dDepth", dDepth)
|
|
Dim dPosX As Double = DirectCast(ParamList(ParamEnum.BOTTOM_HOLE_X), _TextBoxParam).GetValue()
|
|
EgtLuaSetGlobNumVar("TOOL.dHoleX", dPosX)
|
|
Dim dPosY As Double = DirectCast(ParamList(ParamEnum.BOTTOM_HOLE_Y), _TextBoxParam).GetValue()
|
|
EgtLuaSetGlobNumVar("TOOL.dHoleY", dPosY)
|
|
Dim dDimX As Double = DirectCast(ParamList(ParamEnum.BOTTOM_HOLE_DIMX), _TextBoxParam).GetValue()
|
|
EgtLuaSetGlobNumVar("TOOL.dHoleDimX", dDimX)
|
|
Dim dDimY As Double = DirectCast(ParamList(ParamEnum.BOTTOM_HOLE_DIMY), _TextBoxParam).GetValue()
|
|
EgtLuaSetGlobNumVar("TOOL.dHoleDimY", dDimY)
|
|
' se presente setto l'info addizionale
|
|
If sInfoKey <> String.Empty Then
|
|
If EgtLuaSetGlobStringVar("TOOL.tbInfo.InfoKey", sInfoKey) Then AssLog("TOOL.InfoKey = " & sInfoKey)
|
|
If EgtLuaSetGlobStringVar("TOOL.tbInfo.InfoValue", sInfoValue) Then AssLog("TOOL.InfoValue = " & sInfoValue)
|
|
End If
|
|
EgtLuaCallFunction("TOOL.CreateSplitBottom")
|
|
End Sub
|
|
|
|
Private Sub AddBottom(PartList As List(Of Integer), Optional sInfoKey As String = "", Optional sInfoValue As String = "")
|
|
If PartList.Count = 0 Then
|
|
Close()
|
|
Return
|
|
End If
|
|
Dim lEdgeList As New List(Of Integer)
|
|
For Each nPart As Integer In PartList
|
|
Dim nOutLay As Integer = EgtGetFirstNameInGroup(nPart, "OutLoop")
|
|
Dim nEdge As Integer = EgtGetFirstNameInGroup(nOutLay, "A3")
|
|
lEdgeList.Add(nEdge)
|
|
Next
|
|
|
|
For i As Integer = 1 To lEdgeList.Count
|
|
EgtLuaSetGlobIntVar("TOOL.tbIdEdges." & i.ToString(), lEdgeList(i - 1).ToString())
|
|
Next
|
|
Dim dTh As Double = DirectCast(ParamList(ParamEnum.BOTTOM_TH), _TextBoxParam).GetValue()
|
|
EgtLuaSetGlobNumVar("TOOL.dTh", dTh)
|
|
Dim dDiam As Double = DirectCast(ParamList(ParamEnum.BOTTOM_DIAM), _TextBoxParam).GetValue()
|
|
If dDiam < 1 Then dDiam = 30
|
|
EgtLuaSetGlobNumVar("TOOL.dDiamBore", dDiam)
|
|
Dim dX As Double = DirectCast(ParamList(ParamEnum.BOTTOM_HOLE_X), _TextBoxParam).GetValue()
|
|
If dX < dDiam Then dX = dDiam + 10
|
|
EgtLuaSetGlobNumVar("TOOL.dHoleX", dX)
|
|
Dim dY As Double = DirectCast(ParamList(ParamEnum.BOTTOM_HOLE_Y), _TextBoxParam).GetValue()
|
|
If dY < dDiam Then dY = dDiam + 10
|
|
EgtLuaSetGlobNumVar("TOOL.dHoleY", dY)
|
|
' se presente setto l'info addizionale
|
|
If sInfoKey <> String.Empty Then
|
|
If EgtLuaSetGlobStringVar("TOOL.tbInfo.InfoKey", sInfoKey) Then AssLog("TOOL.InfoKey = " & sInfoKey)
|
|
If EgtLuaSetGlobStringVar("TOOL.tbInfo.InfoValue", sInfoValue) Then AssLog("TOOL.InfoKey = " & sInfoValue)
|
|
End If
|
|
EgtLuaCallFunction("TOOL.CreateBottom")
|
|
End Sub
|
|
|
|
Private Sub AddWaterfallAndBottom(nId)
|
|
|
|
End Sub
|
|
|
|
Private Sub AddWaterfallAndSplitBottom(nId As Integer)
|
|
Dim nInLoopLay As Integer = EgtGetParent(nId)
|
|
Dim nEdges As Integer = EgtGetGroupObjs(nInLoopLay)
|
|
Dim nEdge As Integer = EgtGetFirstInGroup(nInLoopLay)
|
|
While nEdge <> GDB_ID.NULL
|
|
AddWaterfall(nEdge, "SinkSplitBottom", "1")
|
|
nEdge = EgtGetNext(nEdge)
|
|
End While
|
|
' recupero le info dei part creati come frontalini dalle info del Parent
|
|
Dim nParent As Integer = EgtGetParent(nInLoopLay)
|
|
' scopro la posizione ordinale dell'inloop in questione
|
|
Dim nIn As Integer = 1
|
|
Dim nInLoop As Integer = EgtGetFirstNameInGroup(nParent, "InLoop")
|
|
While nInLoop <> nInLoopLay
|
|
nIn += 1
|
|
nInLoop = EgtGetNextName(nInLoop, "InLoop")
|
|
End While
|
|
Dim WaterFallList As New List(Of Integer)
|
|
For i As Integer = 1 To nEdges
|
|
Dim sInfoName As String = "A" & i.ToString() & "_I" & nIn.ToString()
|
|
Dim sPartName As String = String.Empty
|
|
EgtGetInfo(nParent, sInfoName, sPartName)
|
|
Dim PanelList As Array = sPartName.Split(","c)
|
|
For Each sChild As String In PanelList
|
|
Dim dPairAng As Double = 0
|
|
Dim nPartId As Integer = EgtGetFirstNameInGroup(GDB_ID.ROOT, sChild)
|
|
EgtGetInfo(nPartId, "PairAng", dPairAng)
|
|
If dPairAng < 0 Then
|
|
sPartName = sChild
|
|
Exit For
|
|
End If
|
|
Next
|
|
WaterFallList.Add(EgtGetFirstNameInGroup(GDB_ID.ROOT, sPartName))
|
|
Next
|
|
' ora che ho la lista dei frontalini posso creare lo split bottom
|
|
AddSplitBottom(WaterFallList, "SinkSplitBottom", "1")
|
|
End Sub
|
|
|
|
#End Region ' Methods
|
|
|
|
End Class
|