TestEIn 1.6a4 :

- sistemata gestione multi istanze (per log e registrazione comandi lua)
- aggiornamento comandi per modifiche a EgtInterface.
This commit is contained in:
Dario Sassi
2015-01-26 07:55:00 +00:00
parent c688b715ea
commit 3bf44d444d
6 changed files with 191 additions and 140 deletions
+51 -61
View File
@@ -1023,7 +1023,7 @@ Public Class Controller
End If
EnableCommandLog()
' inserisco un nuovo gruppo (layer) sotto il pezzo corrente
Dim nIdNewLayer As Integer = EgtCreateGroup(m_nCurrPart)
Dim nIdNewLayer As Integer = EgtCreateGroup(m_nCurrPart, Frame3d.GLOB(), REF_TY.GRID)
DisableCommandLog()
' se ok, salvo nuova situazione
If nIdNewLayer <> GDB_ID.NULL Then
@@ -1515,7 +1515,7 @@ Public Class Controller
If nId = GDB_ID.NULL Then
EgtCreateCurveLine(m_Scene.GetDragGroup(), m_ptP1, m_ptLast, REF_TY.GLOB)
Else
EgtModifyCurveEndPoint(nId, m_ptLast)
EgtModifyCurveEndPoint(nId, m_ptLast, REF_TY.GLOB)
End If
' altrimenti, uno dei punti tangente o normale
Else
@@ -1598,7 +1598,7 @@ Public Class Controller
EgtCreateCurveLinePVL(m_Scene.GetDragGroup(), m_ptP1, vtDirS, m_dAux, REF_TY.GLOB)
Else
Dim ptP2 As Point3d = m_ptP1 + vtDirS * m_dAux
EgtModifyCurveEndPoint(nId, ptP2)
EgtModifyCurveEndPoint(nId, ptP2, REF_TY.GLOB)
End If
EgtDraw()
ElseIf m_nStep = 3 Then ' inserimento lunghezza
@@ -1660,7 +1660,7 @@ Public Class Controller
If nId = GDB_ID.NULL Then
EgtCreateCurveCircleCPN(m_Scene.GetDragGroup(), m_ptP1, m_ptLast, EgtGetGridVersZ(), REF_TY.GLOB)
Else
EgtModifyCurveCircleCPN(nId, m_ptLast)
EgtModifyCurveCircleCPN(nId, m_ptLast, REF_TY.GLOB)
End If
EgtDraw()
End If
@@ -1787,7 +1787,7 @@ Public Class Controller
If nId = GDB_ID.NULL Then
EgtCreateCurveArcC2PN(m_Scene.GetDragGroup(), m_ptP1, m_ptP2, m_ptLast, EgtGetGridVersZ(), REF_TY.GLOB)
Else
EgtModifyCurveArcC2PN(nId, m_ptLast)
EgtModifyCurveArcC2PN(nId, m_ptLast, REF_TY.GLOB)
End If
EgtDraw()
End If
@@ -1866,7 +1866,7 @@ Public Class Controller
EgtCreateCurveArc3P(m_Scene.GetDragGroup(), m_ptP1, m_ptLast, m_ptP2, REF_TY.GLOB)
Else
' se modifica arco 3P impossibile, provo con una retta
If (Not EgtModifyCurveArc3P(nId, m_ptLast) AndAlso
If (Not EgtModifyCurveArc3P(nId, m_ptLast, REF_TY.GLOB) AndAlso
(m_ptLast - m_ptP1) * (m_ptP2 - m_ptLast) > EPS_ZERO) Then
EgtErase(nId)
EgtCreateCurveLine(m_Scene.GetDragGroup(), m_ptP1, m_ptP2, REF_TY.GLOB)
@@ -1944,7 +1944,7 @@ Public Class Controller
EgtCreateCurveLinePVL(m_Scene.GetDragGroup(), m_ptP1, vtDirS, m_dAux, REF_TY.GLOB)
Else
Dim ptP2 As Point3d = m_ptP1 + vtDirS * m_dAux
EgtModifyCurveEndPoint(nId, ptP2)
EgtModifyCurveEndPoint(nId, ptP2, REF_TY.GLOB)
End If
EgtDraw()
ElseIf m_nStep = 3 Then
@@ -2639,7 +2639,7 @@ Public Class Controller
' eseguo estensione sull'estremo più vicino al punto di selezione
Dim nId As Integer = EgtGetLastSelectedObj()
EnableCommandLog()
EgtTrimExtendCurveByLen(nId, m_dLast, m_ptP1.Loc(nId))
EgtTrimExtendCurveByLen(nId, m_dLast, m_ptP1.Loc(GDB_ID.GRID), REF_TY.GRID)
DisableCommandLog()
EgtUnselectableRemove(nId)
' reset stato scena
@@ -2666,7 +2666,7 @@ Public Class Controller
Dim dAddLen As Double = IIf(bSpecial, EXTEND_ADD, 0)
' eseguo trim/estensione sull'estremo più vicino al punto di selezione
Dim nId As Integer = EgtGetFirstInGroup(m_Scene.GetDragGroup())
EgtTrimExtendCurveByLen(nId, m_dLast + dAddLen, m_ptP1)
EgtTrimExtendCurveByLen(nId, m_dLast + dAddLen, m_ptP1, REF_TY.GLOB)
EgtDraw()
End If
Return False
@@ -2713,7 +2713,7 @@ Public Class Controller
' eseguo spezzatura
Dim nId As Integer = EgtGetLastSelectedObj()
EnableCommandLog()
EgtSplitCurveAtPoint(nId, m_ptLast.Loc(nId))
EgtSplitCurveAtPoint(nId, m_ptLast.Loc(GDB_ID.GRID), REF_TY.GRID)
DisableCommandLog()
' reset stato scena
m_Scene.ResetStatus()
@@ -2749,7 +2749,7 @@ Public Class Controller
End While
' creo la curva composita (concatenando le curve selezionate)
EnableCommandLog()
EgtCreateCurveCompoByChain(GetCurrLayer(), nCrvNum, nCrvIds, New Point3d, True)
EgtCreateCurveCompoByChain(GetCurrLayer(), nCrvNum, nCrvIds, New Point3d, True, REF_TY.GRID)
DisableCommandLog()
' reset stato scena
m_Scene.ResetStatus()
@@ -2815,12 +2815,7 @@ Public Class Controller
EnableCommandLog()
' se richiesto, imposto direzione estrusione
If m_bLast Then
Dim vtExtr = EgtGetGridVersZ()
Dim nId As Integer = EgtGetFirstSelectedObj()
While nId <> GDB_ID.NULL
EgtModifyCurveExtrusion(nId, vtExtr.Loc(nId))
nId = EgtGetNextSelectedObj()
End While
EgtModifyCurveExtrusion(GDB_ID.SEL, Vector3d.Z_AX, REF_TY.GRID)
End If
' eseguo impostazione spessore curve selezionate
EgtModifyCurveThickness(GDB_ID.SEL, m_dLast)
@@ -2839,23 +2834,24 @@ Public Class Controller
Private Sub DragSetCurveThickness()
If m_nStep = 1 Then
' imposto direzione estrusione
Dim vtExtr = EgtGetGridVersZ()
Dim nId As Integer = EgtGetFirstInGroup(m_Scene.GetDragGroup())
While nId <> GDB_ID.NULL
If m_bLast Then
EgtModifyCurveExtrusion(nId, vtExtr.Loc(nId))
Else
' imposto direzione estrusione da Z griglia
If m_bLast Then
EgtModifyCurveExtrusion(m_Scene.GetDragGroup(), EgtGetGridVersZ(), REF_TY.GLOB)
' ripristino direzione estrusione originale
Else
' ogni entità deve riprendere la sua propria estrusione originale
Dim nId As Integer = EgtGetFirstInGroup(m_Scene.GetDragGroup())
While nId <> GDB_ID.NULL
Dim nOrigId As Integer
Dim vtOrigExtr As Vector3d
If EgtGetInfo(nId, "Id", nOrigId) And EgtCurveExtrusion(nOrigId, vtOrigExtr) Then
EgtModifyCurveExtrusion(nId, vtOrigExtr.Glob(nOrigId))
EgtModifyCurveExtrusion(nId, vtOrigExtr.Glob(nOrigId), REF_TY.GLOB)
End If
End If
nId = EgtGetNext(nId)
End While
nId = EgtGetNext(nId)
End While
End If
' eseguo impostazione spessore curve selezionate
EgtModifyCurveThickness(GDB_ID.SEL, m_dLast)
EgtModifyCurveThickness(m_Scene.GetDragGroup(), m_dLast)
EgtDraw()
End If
End Sub
@@ -2904,12 +2900,12 @@ Public Class Controller
Dim nId As Integer = EgtGetFirstSelectedObj()
While nId <> GDB_ID.NULL
Dim nCopyId As Integer = EgtCopyGlob(nId, GetCurrLayer())
EgtMoveGlob(nCopyId, (m_ptLast - m_ptP1))
EgtMove(nCopyId, (m_ptLast - m_ptP1).Loc(GDB_ID.GRID), REF_TY.GRID)
nId = EgtGetNextSelectedObj()
End While
' eseguo movimento
Else
EgtMoveGlob(GDB_ID.SEL, (m_ptLast - m_ptP1))
EgtMove(GDB_ID.SEL, (m_ptLast - m_ptP1).Loc(GDB_ID.GRID), REF_TY.GRID)
End If
DisableCommandLog()
EgtDraw()
@@ -2928,7 +2924,7 @@ Public Class Controller
' ripristino lo stato iniziale
EgtChangeGroupFrame(m_Scene.GetDragGroup(), Frame3d.GLOB)
' eseguo tutto il movimento
EgtMoveGlob(m_Scene.GetDragGroup(), (m_ptLast - m_ptP1))
EgtMove(m_Scene.GetDragGroup(), (m_ptLast - m_ptP1), REF_TY.GLOB)
EgtSetGeoLine(m_ptP1, m_ptLast)
EgtDraw()
End If
@@ -2973,12 +2969,12 @@ Public Class Controller
Dim nId As Integer = EgtGetFirstSelectedObj()
While nId <> GDB_ID.NULL
Dim nCopyId As Integer = EgtCopyGlob(nId, GetCurrLayer())
EgtRotateGlob(nCopyId, m_ptP1, EgtGetGridVersZ(), dAngRotDeg)
EgtRotate(nCopyId, m_ptP1.Loc(GDB_ID.GRID), Vector3d.Z_AX, dAngRotDeg, REF_TY.GRID)
nId = EgtGetNextSelectedObj()
End While
' eseguo rotazione
Else
EgtRotateGlob(GDB_ID.SEL, m_ptP1, EgtGetGridVersZ(), dAngRotDeg)
EgtRotate(GDB_ID.SEL, m_ptP1.Loc(GDB_ID.GRID), Vector3d.Z_AX, dAngRotDeg, REF_TY.GRID)
End If
DisableCommandLog()
EgtDraw()
@@ -3004,7 +3000,7 @@ Public Class Controller
Dim dAngRotDeg As Double = 0
Dim bDet As Boolean = True
EgtGetVectorRotation((m_ptP2 - m_ptP1), (m_ptLast - m_ptP1), EgtGetGridVersZ(), dAngRotDeg, bDet)
EgtRotateGlob(m_Scene.GetDragGroup(), m_ptP1, EgtGetGridVersZ(), dAngRotDeg)
EgtRotate(m_Scene.GetDragGroup(), m_ptP1, EgtGetGridVersZ(), dAngRotDeg, REF_TY.GLOB)
EgtDraw()
End If
End Sub
@@ -3047,12 +3043,12 @@ Public Class Controller
Dim nId As Integer = EgtGetFirstSelectedObj()
While nId <> GDB_ID.NULL
Dim nCopyId As Integer = EgtCopyGlob(nId, GetCurrLayer())
EgtRotateGlob(nCopyId, m_ptP1, VtAx, m_dLast)
EgtRotate(nCopyId, m_ptP1.Loc(GDB_ID.GRID), VtAx.Loc(GDB_ID.GRID), m_dLast, REF_TY.GRID)
nId = EgtGetNextSelectedObj()
End While
' eseguo rotazione
Else
EgtRotateGlob(GDB_ID.SEL, m_ptP1, VtAx, m_dLast)
EgtRotate(GDB_ID.SEL, m_ptP1.Loc(GDB_ID.GRID), VtAx.Loc(GDB_ID.GRID), m_dLast, REF_TY.GRID)
End If
DisableCommandLog()
EgtDraw()
@@ -3076,7 +3072,7 @@ Public Class Controller
EgtChangeGroupFrame(m_Scene.GetDragGroup(), Frame3d.GLOB)
' eseguo rotazione
Dim VtAx As Vector3d = m_ptP2 - m_ptP1
EgtRotateGlob(m_Scene.GetDragGroup(), m_ptP1, VtAx, m_dLast)
EgtRotate(m_Scene.GetDragGroup(), m_ptP1, VtAx, m_dLast, REF_TY.GLOB)
EgtDraw()
End If
End Sub
@@ -3113,12 +3109,12 @@ Public Class Controller
Dim nId As Integer = EgtGetFirstSelectedObj()
While nId <> GDB_ID.NULL
Dim nCopyId As Integer = EgtCopyGlob(nId, GetCurrLayer())
EgtMirrorGlob(nCopyId, m_ptP1, VtNorm)
EgtMirror(nCopyId, m_ptP1.Loc(GDB_ID.GRID), VtNorm.Loc(GDB_ID.GRID), REF_TY.GRID)
nId = EgtGetNextSelectedObj()
End While
' eseguo mirror
Else
EgtMirrorGlob(GDB_ID.SEL, m_ptP1, VtNorm)
EgtMirror(GDB_ID.SEL, m_ptP1.Loc(GDB_ID.GRID), VtNorm.Loc(GDB_ID.GRID), REF_TY.GRID)
End If
DisableCommandLog()
End If
@@ -3140,12 +3136,12 @@ Public Class Controller
' ripristino lo stato iniziale, tramite annullo mirror precedente
Dim VtNorm As Vector3d = (m_ptP2 - m_ptP1) ^ EgtGetGridVersZ()
If VtNorm.Len > EPS_SMALL Then
EgtMirrorGlob(m_Scene.GetDragGroup(), m_ptP1, VtNorm)
EgtMirror(m_Scene.GetDragGroup(), m_ptP1, VtNorm, REF_TY.GLOB)
End If
' eseguo mirror
VtNorm = (m_ptLast - m_ptP1) ^ EgtGetGridVersZ()
If VtNorm.Len > EPS_SMALL Then
EgtMirrorGlob(m_Scene.GetDragGroup(), m_ptP1, VtNorm)
EgtMirror(m_Scene.GetDragGroup(), m_ptP1, VtNorm, REF_TY.GLOB)
End If
' salvo il punto
m_ptP2 = m_ptLast
@@ -3192,12 +3188,12 @@ Public Class Controller
Dim nId As Integer = EgtGetFirstSelectedObj()
While nId <> GDB_ID.NULL
Dim nCopyId As Integer = EgtCopyGlob(nId, GetCurrLayer())
EgtMirrorGlob(nCopyId, m_ptP1, VtNorm)
EgtMirror(nCopyId, m_ptP1.Loc(GDB_ID.GRID), VtNorm.Loc(GDB_ID.GRID), REF_TY.GRID)
nId = EgtGetNextSelectedObj()
End While
' eseguo mirror
Else
EgtMirrorGlob(GDB_ID.SEL, m_ptP1, VtNorm)
EgtMirror(GDB_ID.SEL, m_ptP1.Loc(GDB_ID.GRID), VtNorm.Loc(GDB_ID.GRID), REF_TY.GRID)
End If
DisableCommandLog()
End If
@@ -3223,12 +3219,12 @@ Public Class Controller
' ripristino lo stato iniziale, tramite annullo mirror precedente
Dim VtNorm As Vector3d = (m_ptP3 - m_ptP1) ^ (m_ptP2 - m_ptP1)
If VtNorm.Len > EPS_SMALL Then
EgtMirrorGlob(m_Scene.GetDragGroup(), m_ptP1, VtNorm)
EgtMirror(m_Scene.GetDragGroup(), m_ptP1, VtNorm, REF_TY.GLOB)
End If
' eseguo mirror
VtNorm = (m_ptLast - m_ptP1) ^ (m_ptP2 - m_ptP1)
If VtNorm.Len > EPS_SMALL Then
EgtMirrorGlob(m_Scene.GetDragGroup(), m_ptP1, VtNorm)
EgtMirror(m_Scene.GetDragGroup(), m_ptP1, VtNorm, REF_TY.GLOB)
End If
' salvo il punto
m_ptP3 = m_ptLast
@@ -3260,21 +3256,18 @@ Public Class Controller
SetInputBoxDouble(m_dLast)
Case 2
m_Scene.ResetStatus(False)
' calcolo parametri di scalatura
Dim frScale As New Frame3d(EgtGetGridFrame())
frScale.ChangeOrigin(m_ptP1)
EnableCommandLog()
' eseguo copia e scalatura
If m_bLast Then
Dim nId As Integer = EgtGetFirstSelectedObj()
While nId <> GDB_ID.NULL
Dim nCopyId As Integer = EgtCopyGlob(nId, GetCurrLayer())
EgtScaleGlob(nCopyId, frScale, m_dLast, m_dLast, m_dLast)
EgtScale(nCopyId, New Frame3d(m_ptP1), m_dLast, m_dLast, m_dLast, REF_TY.GRID)
nId = EgtGetNextSelectedObj()
End While
' eseguo scalatura
Else
EgtScaleGlob(GDB_ID.SEL, frScale, m_dLast, m_dLast, m_dLast)
EgtScale(GDB_ID.SEL, New Frame3d(m_ptP1), m_dLast, m_dLast, m_dLast, REF_TY.GRID)
End If
DisableCommandLog()
EgtDraw()
@@ -3299,7 +3292,7 @@ Public Class Controller
frScale.ChangeOrigin(m_ptP1)
Dim dScale As Double = m_dLast / m_dPrev
' eseguo scalatura
EgtScaleGlob(m_Scene.GetDragGroup(), frScale, dScale, dScale, dScale)
EgtScale(m_Scene.GetDragGroup(), frScale, dScale, dScale, dScale, REF_TY.GLOB)
m_dPrev = m_dLast
EgtDraw()
End If
@@ -3334,21 +3327,18 @@ Public Class Controller
SetInputBox3Double(m_d3Last)
Case 2
m_Scene.ResetStatus(False)
' calcolo parametri di scalatura
Dim frScale As New Frame3d(EgtGetGridFrame())
frScale.ChangeOrigin(m_ptP1)
EnableCommandLog()
' eseguo copia e scalatura
If m_bLast Then
Dim nId As Integer = EgtGetFirstSelectedObj()
While nId <> GDB_ID.NULL
Dim nCopyId As Integer = EgtCopyGlob(nId, GetCurrLayer())
EgtScaleGlob(nCopyId, frScale, m_d3Last(0), m_d3Last(1), m_d3Last(2))
EgtScale(nCopyId, New Frame3d(m_ptP1), m_d3Last(0), m_d3Last(1), m_d3Last(2), REF_TY.GRID)
nId = EgtGetNextSelectedObj()
End While
' eseguo scalatura
Else
EgtScaleGlob(GDB_ID.SEL, frScale, m_d3Last(0), m_d3Last(1), m_d3Last(2))
EgtScale(GDB_ID.SEL, New Frame3d(m_ptP1), m_d3Last(0), m_d3Last(1), m_d3Last(2), REF_TY.GRID)
End If
DisableCommandLog()
EgtDraw()
@@ -3385,7 +3375,7 @@ Public Class Controller
d3Scale(1) = m_d3Last(1) / m_d3Prev(1)
d3Scale(2) = m_d3Last(2) / m_d3Prev(2)
' eseguo scalatura
EgtScaleGlob(m_Scene.GetDragGroup(), frScale, d3Scale(0), d3Scale(1), d3Scale(2))
EgtScale(m_Scene.GetDragGroup(), frScale, d3Scale(0), d3Scale(1), d3Scale(2), REF_TY.GLOB)
m_d3Prev(0) = m_d3Last(0)
m_d3Prev(1) = m_d3Last(1)
m_d3Prev(2) = m_d3Last(2)
@@ -3667,13 +3657,13 @@ Public Class Controller
'-------------------------------- Registrazione Comandi (in Lua) ---------------------------------
Private m_bCommandLog As Boolean = False
Public Function SetCommandLog(ByVal bCmdLog As Boolean, ByRef sCmdLogDir As String) As Boolean
Public Function SetCommandLog(ByVal bCmdLog As Boolean, ByVal sCmdLogDir As String, ByVal nId As Integer) As Boolean
' imposto stato
m_bCommandLog = bCmdLog
' se necessario inizializzo logger
If m_bCommandLog Then
Const sCmdLog As String = "EInCmdLua.log"
Const sCmdBak As String = sCmdLog & ".bak"
Dim sCmdLog As String = "EInCmdLua" & nId & ".log"
Dim sCmdBak As String = sCmdLog & ".bak"
Dim sFile = sCmdLogDir & "\" & sCmdLog
Dim sBackup = sCmdLogDir & "\" & sCmdBak
' se logger già in uso, non faccio alcunchè e non lo avvio