TestEIn 1.6b3 :
- aggiunta gestione messaggi da file (solo parziale) - razionalizzata gestione file Ini con costanti - impostati sottodirettori di esecuzione per Config e Temp - aggiunti poligoni regolari da raggio e apotema - aggiunta Griglia da punto di vista - aggiornata interfaccia verso Dll di base.
This commit is contained in:
+90
-6
@@ -77,6 +77,7 @@ Public Class Controller
|
||||
ARC3P
|
||||
ARCPDP
|
||||
RECTANGLE2P
|
||||
POLYGON
|
||||
POLYGONSIDE
|
||||
TEXT
|
||||
TEXTPLUS
|
||||
@@ -114,6 +115,7 @@ Public Class Controller
|
||||
BACK
|
||||
LEFT
|
||||
BOTTOM
|
||||
VIEW
|
||||
End Enum
|
||||
Private m_nLastCmd As CMD = CMD.NULL
|
||||
Private m_nStep As Integer = 0
|
||||
@@ -827,6 +829,9 @@ Public Class Controller
|
||||
' Rectangle 2P
|
||||
Case CMD.RECTANGLE2P
|
||||
Return ProcessRectangle2P()
|
||||
' Polygon
|
||||
Case CMD.POLYGON
|
||||
Return ProcessPolygon()
|
||||
' Polygon Side
|
||||
Case CMD.POLYGONSIDE
|
||||
Return ProcessPolygonSide()
|
||||
@@ -938,6 +943,8 @@ Public Class Controller
|
||||
DragArcPDP()
|
||||
Case CMD.RECTANGLE2P
|
||||
DragRectangle2P()
|
||||
Case CMD.POLYGON
|
||||
DragPolygon()
|
||||
Case CMD.POLYGONSIDE
|
||||
DragPolygonSide()
|
||||
Case CMD.TEXT
|
||||
@@ -1021,6 +1028,12 @@ Public Class Controller
|
||||
frNew.Setup(Point3d.ORIG, -Vector3d.Y_AX, Vector3d.Z_AX, -Vector3d.X_AX)
|
||||
Case GRID_TYPE.BOTTOM
|
||||
frNew.Setup(Point3d.ORIG, -Vector3d.X_AX, Vector3d.Y_AX, -Vector3d.Z_AX)
|
||||
Case GRID_TYPE.VIEW
|
||||
Dim dAngVertDeg As Double
|
||||
Dim dAngHorizDeg As Double
|
||||
EgtGetGenericView(dAngVertDeg, dAngHorizDeg)
|
||||
Dim vtDir As Vector3d = Vector3d.FromSpherical(1, dAngVertDeg, dAngHorizDeg)
|
||||
frNew.Setup(Point3d.ORIG, vtDir)
|
||||
Case Else
|
||||
Return False
|
||||
End Select
|
||||
@@ -2352,6 +2365,78 @@ Public Class Controller
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Function ProcessPolygon() As Boolean
|
||||
Select Case m_nStep
|
||||
Case 0
|
||||
' deve esistere un gruppo corrente e devo poter creare il gruppo di drag
|
||||
If GetCurrLayer() = GDB_ID.NULL Or Not m_Scene.CreateDragGroup() Then
|
||||
Return False
|
||||
End If
|
||||
' imposto stato a numero lati per PolygonSide
|
||||
m_nStep = 1
|
||||
m_Scene.SetStatusNull()
|
||||
' abilito dialogo
|
||||
RaiseEvent PrepareInputBox("POLYGON", "Insert Side Nbr", "", False, False)
|
||||
m_nInpType = IBT.TY_INTEGER
|
||||
m_nLast = 3
|
||||
SetInputBoxInteger(m_nLast)
|
||||
Case 1
|
||||
m_Scene.SetStatusSelPoint()
|
||||
m_nStep = 2
|
||||
RaiseEvent PrepareInputBox("POLYGON", "Insert Center Point", "Internal Radius", False, False)
|
||||
m_nInpType = IBT.TY_POINT3D
|
||||
SetInputBoxPoint3d(m_ptCont)
|
||||
RaiseEvent SetInputBoxCheck(False)
|
||||
Case 2
|
||||
m_ptP1 = m_ptLast
|
||||
m_nStep = 3
|
||||
RaiseEvent PrepareInputBox("POLYGON", "Insert Side Point", "Internal Radius", False, True)
|
||||
m_nInpType = IBT.TY_POINT3D
|
||||
SetInputBoxPoint3d(m_ptLast.Loc(GDB_ID.GRID))
|
||||
Case 3
|
||||
' reset scena
|
||||
m_Scene.ResetStatus(False)
|
||||
' creo il poligono (i punti sono in globale)
|
||||
EnableCommandLog()
|
||||
Dim nId As Integer = GDB_ID.NULL
|
||||
If Not m_bLast Then
|
||||
nId = EgtCreatePolygonFromRadius(GetCurrLayer(), m_nLast, m_ptP1.Loc(GDB_ID.GRID),
|
||||
m_ptLast.Loc(GDB_ID.GRID), Vector3d.Z_AX, REF_TY.GRID)
|
||||
Else
|
||||
nId = EgtCreatePolygonFromApothem(GetCurrLayer(), m_nLast, m_ptP1.Loc(GDB_ID.GRID),
|
||||
m_ptLast.Loc(GDB_ID.GRID), Vector3d.Z_AX, REF_TY.GRID)
|
||||
End If
|
||||
DisableCommandLog()
|
||||
EgtDraw()
|
||||
' aggiorno stato
|
||||
m_nStep = 0
|
||||
RaiseEvent UpdateUI(Me, True)
|
||||
Case Else
|
||||
m_nStep = 0
|
||||
Return False
|
||||
End Select
|
||||
Return True
|
||||
End Function
|
||||
|
||||
Private Sub DragPolygon()
|
||||
' il gruppo di Drag ha riferimento globale
|
||||
If m_nStep = 3 Then
|
||||
EgtSetGeoLine(m_ptP1, m_ptLast)
|
||||
' recupero possibile entità già nel gruppo di drag
|
||||
Dim nId As Integer = EgtGetFirstInGroup(m_Scene.GetDragGroup())
|
||||
EgtErase(nId)
|
||||
' creo il poligono (drag è in globale)
|
||||
If Not m_bLast Then
|
||||
EgtCreatePolygonFromRadius(m_Scene.GetDragGroup(), m_nLast, m_ptP1, m_ptLast,
|
||||
Vector3d.Z_AX().Glob(GDB_ID.GRID), REF_TY.GLOB)
|
||||
Else
|
||||
EgtCreatePolygonFromApothem(m_Scene.GetDragGroup(), m_nLast, m_ptP1, m_ptLast,
|
||||
Vector3d.Z_AX().Glob(GDB_ID.GRID), REF_TY.GLOB)
|
||||
End If
|
||||
EgtDraw()
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Function ProcessPolygonSide() As Boolean
|
||||
Select Case m_nStep
|
||||
Case 0
|
||||
@@ -4028,15 +4113,14 @@ Public Class Controller
|
||||
'-------------------------------- Registrazione Comandi (in Lua) ---------------------------------
|
||||
Private m_bCommandLog As Boolean = False
|
||||
|
||||
Public Function SetCommandLog(ByVal bCmdLog As Boolean, ByVal sCmdLogDir As String, ByVal nId As Integer) As Boolean
|
||||
Public Function SetCommandLog(ByVal bCmdLog As Boolean, ByVal sCmdLogDir As String, ByVal sCmdLogFile As String) As Boolean
|
||||
' imposto stato
|
||||
m_bCommandLog = bCmdLog
|
||||
' se necessario inizializzo logger
|
||||
If m_bCommandLog Then
|
||||
Dim sCmdLog As String = "EInCmdLua" & nId & ".log"
|
||||
Dim sCmdBak As String = sCmdLog & ".bak"
|
||||
Dim sFile = sCmdLogDir & "\" & sCmdLog
|
||||
Dim sBackup = sCmdLogDir & "\" & sCmdBak
|
||||
Dim sCmdBakFile As String = sCmdLogFile & ".bak"
|
||||
Dim sFile = sCmdLogDir & "\" & sCmdLogFile
|
||||
Dim sBackup = sCmdLogDir & "\" & sCmdBakFile
|
||||
' se logger già in uso, non faccio alcunchè e non lo avvio
|
||||
If FileInUse(sFile) Then
|
||||
m_bCommandLog = False
|
||||
@@ -4049,7 +4133,7 @@ Public Class Controller
|
||||
My.Computer.FileSystem.DeleteFile(sBackup)
|
||||
End If
|
||||
' rinomino il file
|
||||
My.Computer.FileSystem.RenameFile(sFile, sCmdBak)
|
||||
My.Computer.FileSystem.RenameFile(sFile, sCmdBakFile)
|
||||
End If
|
||||
' avvio logger
|
||||
EgtSetCommandLogger(sFile)
|
||||
|
||||
Reference in New Issue
Block a user