TestEIn 1.5k5 :

- aggiunta gestione linee tangenti
- miglioramenti a trim/extend di curve.
This commit is contained in:
Dario Sassi
2014-12-01 14:54:24 +00:00
parent 4c7c7aed65
commit c1e60221c5
8 changed files with 667 additions and 192 deletions
+207 -32
View File
@@ -70,7 +70,7 @@ Public Class Controller
CHANGECOLOR
RESETCOLOR
INVERTCRVSURF
EXTENDCURVE
TRIMEXTENDCURVE
BREAKCURVE
JOINCURVE
EXPLODECURVE
@@ -81,6 +81,7 @@ Public Class Controller
MIRROR
SCALE
SCALE3D
OFFSET
End Enum
Public Enum GRID_TYPE As Integer
NONE = 0
@@ -94,8 +95,14 @@ Public Class Controller
Private m_nLastCmd As CMD = CMD.NULL
Private m_nStep As Integer = 0
Private m_ptP1 As Point3d
Private m_sepP1 As SEP
Private m_nIdP1 As Integer
Private m_ptP2 As Point3d
Private m_sepP2 As SEP
Private m_nIdP2 As Integer
Private m_ptLast As Point3d
Private m_sepLast As SEP
Private m_nIdLast As Integer
Private m_dPrev As Double = 0
Private m_dAux As Double = 0
Private m_dLast As Double = 0
@@ -109,12 +116,13 @@ Public Class Controller
Private m_vtCont As Vector3d ' direzione finale di entità precedente (per continuazione)
' Input
Public Enum IBT As Integer
Private Enum IBT As Integer
TY_NULL = 0
TY_STRING
TY_DOUBLE
TY_DIRECTION
TY_LENGTH
TY_SPECIALDOUBLE
TY_3DOUBLE
TY_POINT3D
End Enum
@@ -125,6 +133,8 @@ Public Class Controller
Private DIAM_STD As Double = 20
Private EXTRUDE_STD As Double = 20
Private EXTEND_STD As Double = 50
Private EXTEND_ADD As Double = 10
Private OFFSET_STD As Double = 10
' Metodi
Public Sub MouseSelectedObj(ByVal nId As Integer, ByVal bLast As Boolean)
@@ -160,33 +170,35 @@ Public Class Controller
EgtDraw()
End Sub
Public Sub MouseSelectedPoint(ByVal PtP As Point3d, ByVal bDone As Boolean)
SetDataFromSelPoint(PtP)
Public Sub MouseSelectedPoint(ByVal PtP As Point3d, ByVal nSep As SEP, ByVal nId As Integer, ByVal bDone As Boolean)
SetDataFromSelPoint(PtP, nSep, nId)
' avanzo di un passo
If bDone Then
ProcessStatus()
' eseguo ultimo drag e passo in modalità input da box
Else
ExecuteDrag()
m_Scene.DisableDrag()
ExecuteDrag()
Select Case m_nInpType
Case IBT.TY_POINT3D
SetInputBoxPoint3d(m_ptLast)
Case IBT.TY_DIRECTION, IBT.TY_LENGTH
Case IBT.TY_DIRECTION, IBT.TY_LENGTH, IBT.TY_SPECIALDOUBLE
SetInputBoxDouble(m_dLast)
End Select
End If
End Sub
Public Sub MouseMoveInSelectionPoint(ByVal PtP As Point3d)
SetDataFromSelPoint(PtP)
SetDataFromSelPoint(PtP, SEP.PT_STD, GDB_ID.NULL)
' eseguo drag
ExecuteDrag()
End Sub
Private Sub SetDataFromSelPoint(ByVal PtP As Point3d)
' recupero il punto
SetLastPoint3d(PtP)
Private Sub SetDataFromSelPoint(ByVal PtP As Point3d, ByVal nSep As SEP, ByVal nId As Integer)
' recupero il punto e le sue info ausiliarie
m_ptLast = PtP
m_sepLast = nSep
m_nIdLast = nId
' se usato per tipi speciali
Select Case m_nInpType
Case IBT.TY_DIRECTION
@@ -194,6 +206,8 @@ Public Class Controller
m_dAux = GridLenFromGlobLen(m_ptLast - m_ptP1)
Case IBT.TY_LENGTH
m_dLast = (m_ptLast - m_ptP1) * m_vtCont
Case IBT.TY_SPECIALDOUBLE
ExecuteSpecialData()
End Select
End Sub
@@ -268,7 +282,7 @@ Public Class Controller
Case IBT.TY_STRING
m_sLast = sText
Return True
Case IBT.TY_DOUBLE, IBT.TY_DIRECTION, IBT.TY_LENGTH
Case IBT.TY_DOUBLE, IBT.TY_DIRECTION, IBT.TY_LENGTH, IBT.TY_SPECIALDOUBLE
Return TextToDouble(sText, m_dLast)
Case IBT.TY_3DOUBLE
Return TextTo3Double(sText, m_d3Last)
@@ -354,6 +368,9 @@ Public Class Controller
Public Sub ResetStatus()
m_nStep = 0
m_sepP1 = SEP.PT_STD
m_sepP2 = SEP.PT_STD
m_sepLast = SEP.PT_STD
m_Scene.ResetStatus()
End Sub
@@ -485,7 +502,7 @@ Public Class Controller
Case CMD.INVERTCRVSURF
Return ProcessInvertCurveSurf()
' Extend Curve
Case CMD.EXTENDCURVE
Case CMD.TRIMEXTENDCURVE
Return ProcessExtendCurve()
' Break Curve
Case CMD.BREAKCURVE
@@ -517,10 +534,11 @@ Public Class Controller
' Scale 3d
Case CMD.SCALE3D
ProcessScale3D()
Case Else
Return False
' Offset
Case CMD.OFFSET
ProcessOffset()
End Select
Return True
Return False
End Function
Private Function ExecuteDrag() As Boolean
@@ -547,7 +565,7 @@ Public Class Controller
DragRevolve()
Case CMD.REVOLVEPLUS
DragRevolvePlus()
Case CMD.EXTENDCURVE
Case CMD.TRIMEXTENDCURVE
DragExtendCurve()
Case CMD.SETCURVETHICKNESS
DragSetCurveThickness()
@@ -563,12 +581,23 @@ Public Class Controller
DragScale()
Case CMD.SCALE3D
DragScale3D()
Case CMD.OFFSET
DragOffset()
Case Else
Return False
End Select
Return True
End Function
Private Function ExecuteSpecialData() As Boolean
Select Case m_nLastCmd
' Trim/Extend di curva
Case CMD.TRIMEXTENDCURVE
ExecuteSpecialDataExtendCurve()
End Select
Return False
End Function
Private Function ProcessGrid() As Boolean
If m_nStep <> 0 Then
Return False
@@ -1208,18 +1237,32 @@ Public Class Controller
RaiseEvent PrepareInputBox("LINE 2P", "Insert Start Point", "", False)
m_nInpType = IBT.TY_POINT3D
SetInputBoxPoint3d(m_ptCont)
m_Scene.EnableTangentPoint()
m_Scene.EnablePerpendicularPoint()
m_Scene.EnableMinDistPoint()
Case 1
m_ptP1 = m_ptLast
m_sepP1 = m_sepLast
m_nIdP1 = m_nIdLast
m_nStep = 2
m_Scene.EnableDrag()
RaiseEvent PrepareInputBox("LINE 2P", "Insert End Point ", "", True)
m_nInpType = IBT.TY_POINT3D
SetInputBoxPoint3d(m_ptLast.Loc(GetCurrLayer()))
Select Case m_sepP1
Case SEP.PT_TG, SEP.PT_PERP
m_Scene.DisableMinDistPoint()
Case SEP.PT_MINDIST
m_Scene.DisableTangentPoint()
m_Scene.DisablePerpendicularPoint()
m_Scene.DisableMinDistPoint()
End Select
Case 2
' reset scena
m_Scene.ResetStatus(False)
' creo la linea (i punti sono in globale)
Dim nId As Integer = EgtCreateCurveLine(GetCurrLayer(), m_ptP1.Loc(GetCurrLayer()), m_ptLast.Loc(GetCurrLayer()))
Dim nId As Integer = EgtCreateCurveLineEx(GetCurrLayer(), m_ptP1.Loc(GetCurrLayer()), m_sepP1, m_nIdP1,
m_ptLast.Loc(GetCurrLayer()), m_sepLast, m_nIdLast)
If nId <> GDB_ID.NULL Then
m_ptCont = m_ptLast
m_vtCont = (m_ptLast - m_ptP1)
@@ -1237,13 +1280,21 @@ Public Class Controller
End Function
Private Sub DragLine2P()
' il gruppo di Drag ha riferimento globale
If m_nStep = 2 Then
' durante la creazione di oggetti il gruppo di Drag ha riferimento globale
' recupero possibile entità già nel gruppo di drag
Dim nId As Integer = EgtGetFirstInGroup(m_Scene.GetDragGroup())
If nId = GDB_ID.NULL Then
EgtCreateCurveLine(m_Scene.GetDragGroup(), m_ptP1, m_ptLast)
' se punti entrambi già definiti
If m_sepP1 = SEP.PT_STD And m_sepLast = SEP.PT_STD Then
If nId = GDB_ID.NULL Then
EgtCreateCurveLine(m_Scene.GetDragGroup(), m_ptP1, m_ptLast)
Else
EgtModifyCurveEndPoint(nId, m_ptLast)
End If
' altrimenti, uno dei punti tangente o normale
Else
EgtModifyCurveEndPoint(nId, m_ptLast)
EgtErase(nId)
EgtCreateCurveLineEx(m_Scene.GetDragGroup(), m_ptP1, m_sepP1, m_nIdP1, m_ptLast, m_sepLast, m_nIdLast)
End If
EgtDraw()
End If
@@ -1281,6 +1332,7 @@ Public Class Controller
m_dLast = m_dAux
m_nStep = 3
m_Scene.DisableDrag()
EgtUnselectableRemove(m_Scene.GetDragGroup())
RaiseEvent PrepareInputBox("LINE PDL", "Insert Length", "", True)
m_nInpType = IBT.TY_LENGTH
SetInputBoxDouble(m_dLast)
@@ -1996,21 +2048,42 @@ Public Class Controller
Select Case m_nStep
Case 0
' verifico condizioni e preparo per il drag
If Not PrepareTransform(False) Then
If Not PrepareTransform(False, True) Then
Return False
End If
' imposto stato a lunghezza di estensione
m_nStep = 1
m_dLast = EXTEND_STD
' recupero dati estremo più vicino a punto di selezione per permettere drag lunghezza con mouse
m_Scene.SetStatusSelPoint(False)
Dim nId As Integer = EgtGetLastSelectedObj()
EgtCurveLength(nId, m_dPrev)
Dim ptStart As Point3d
EgtStartPoint(nId, ptStart)
ptStart = ptStart.Glob(nId)
Dim ptEnd As Point3d
EgtEndPoint(nId, ptEnd)
ptEnd = ptEnd.Glob(nId)
If ((ptStart - m_ptLast).SqLen() <= (ptEnd - m_ptLast).SqLen()) Then
m_bLast = True
m_ptP1 = ptStart
EgtStartVector(nId, m_vtCont)
m_vtCont = -m_vtCont.Glob(nId)
Else
m_bLast = False
m_ptP1 = ptEnd
EgtEndVector(nId, m_vtCont)
m_vtCont = m_vtCont.Glob(nId)
End If
' abilito dialogo
RaiseEvent PrepareInputBox("EXTEND", "Insert Length", "", True)
m_nInpType = IBT.TY_DOUBLE
m_nInpType = IBT.TY_SPECIALDOUBLE
SetInputBoxDouble(m_dLast)
DragExtendCurve()
Case 1
' eseguo estensione sull'estremo più vicino al punto di selezione
Dim nId As Integer = EgtGetLastSelectedObj()
EgtExtendCurveByLen(nId, m_dLast, m_ptLast.Loc(nId))
EgtTrimExtendCurveByLen(nId, m_dLast, m_ptP1.Loc(nId))
EgtDeselectAll()
' reset stato scena
m_Scene.ResetStatus()
@@ -2024,17 +2097,51 @@ Public Class Controller
Return True
End Function
Private Sub DragExtendCurve()
Private Function DragExtendCurve() As Boolean
If m_nStep = 1 Then
' devo sempre partire dalla curva originale
m_Scene.EraseDragGroup()
PrepareTransform(False)
' eseguo estensione sull'estremo più vicino al punto di selezione
PrepareTransform(False, True)
' verifico se caso speciale : estensione + drag + snap a punto intersezione
Dim bSpecial As Boolean = (m_Scene.GetDragStatus() And
m_Scene.GetSnapPointType() = SP.PT_INTERS)
' lunghezza aggiuntiva per caso speciale
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())
EgtExtendCurveByLen(nId, m_dLast, m_ptLast)
EgtTrimExtendCurveByLen(nId, m_dLast + dAddLen, m_ptP1)
EgtDraw()
End If
End Sub
Return False
End Function
Private Function ExecuteSpecialDataExtendCurve() As Boolean
If m_nStep = 1 Then
' verifico se caso speciale : estensione + drag + snap a punto intersezione
Dim bSpecial As Boolean = (m_Scene.GetDragStatus() And
m_Scene.GetSnapPointType() = SP.PT_INTERS)
' se standard
If Not bSpecial Then
m_dLast = (m_ptLast - m_ptP1) * m_vtCont
' altrimenti speciale
Else
Dim dLen As Double
Dim nDragId As Integer = EgtGetFirstInGroup(m_Scene.GetDragGroup())
If EgtCurveLengthAtPoint(nDragId, m_ptLast, dLen) Then
' modifico inizio (su drag inizio spostato di m_dLast)
If m_bLast Then
Dim dDragLen As Double
EgtCurveLength(nDragId, dDragLen)
m_dLast = dDragLen - dLen - m_dPrev
' modifico fine (inizio fisso)
Else
m_dLast = dLen - m_dPrev
End If
End If
End If
End If
Return False
End Function
Private Function ProcessBreakCurve() As Boolean
Select Case m_nStep
@@ -2047,7 +2154,8 @@ Public Class Controller
m_nInpType = IBT.TY_POINT3D
Case 1
' eseguo spezzatura
EgtSplitCurveAtPoint(EgtGetLastSelectedObj(), m_ptLast)
Dim nId As Integer = EgtGetLastSelectedObj()
EgtSplitCurveAtPoint(nId, m_ptLast.Loc(nId))
EgtDeselectAll()
' reset stato scena
m_Scene.ResetStatus()
@@ -2618,13 +2726,80 @@ Public Class Controller
End If
End Sub
Private Function PrepareTransform(Optional ByVal bAllSelected As Boolean = True) As Boolean
Private Function ProcessOffset() As Boolean
Select Case m_nStep
Case 0
' verifico condizioni e preparo per il drag
If Not PrepareTransform(False) Then
Return False
End If
' imposto stato a lunghezza di offset
m_nStep = 1
m_dLast = OFFSET_STD
' abilito dialogo
RaiseEvent PrepareInputBox("OFFSET", "Insert Distance", "Copy", True)
m_nInpType = IBT.TY_DOUBLE
SetInputBoxDouble(m_dLast)
RaiseEvent SetInputBoxCheck(True)
DragOffset()
Case 1
' parametri di offset
Dim nSide As OFF_SIDE
If m_dLast > 0 Then
nSide = OFF_SIDE.LEFT
Else
nSide = OFF_SIDE.RIGHT
End If
' reset stato scena
m_Scene.ResetStatus(False)
' eseguo copia e offset
If m_bLast Then
Dim nId As Integer = EgtCopyGlob(EgtGetLastSelectedObj(), GetCurrLayer())
EgtOffsetCurve(nId, Math.Abs(m_dLast), nSide, OFF_TYPE.FILLET)
' altrimenti solo offset
Else
Dim nId As Integer = EgtGetLastSelectedObj()
EgtOffsetCurve(nId, Math.Abs(m_dLast), nSide, OFF_TYPE.FILLET)
End If
EgtDeselectAll()
EgtDraw()
' aggiorno stato
m_nStep = 0
SetModified()
Case Else
m_nStep = 0
Return False
End Select
Return True
End Function
Private Sub DragOffset()
If m_nStep = 1 Then
' devo sempre partire dalla curva originale
m_Scene.EraseDragGroup()
PrepareTransform(False)
' parametri di offset
Dim nSide As OFF_SIDE
If m_dLast > 0 Then
nSide = OFF_SIDE.LEFT
Else
nSide = OFF_SIDE.RIGHT
End If
' eseguo offset
Dim nId As Integer = EgtGetFirstInGroup(m_Scene.GetDragGroup())
EgtOffsetCurve(nId, Math.Abs(m_dLast), nSide, OFF_TYPE.FILLET)
EgtDraw()
End If
End Sub
Private Function PrepareTransform(Optional ByVal bAllSelected As Boolean = True,
Optional ByVal bDragSelectable As Boolean = False) As Boolean
' verifico ci sia qualcosa di selezionato
If EgtGetFirstSelectedObj() = GDB_ID.NULL Then
Return False
End If
' creo il gruppo di drag e vi copio le entità selezionate
If Not m_Scene.CreateDragGroup() Then
If Not m_Scene.CreateDragGroup(bDragSelectable) Then
Return False
End If
' se devo prendere tutti
+61 -13
View File
@@ -732,6 +732,12 @@ Public Shared Function EgtCreateCurveLine(ByVal nParentId As Integer,
ByRef PtStart As Point3d, ByRef PtEnd As Point3d) As Integer
End Function
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
Public Shared Function EgtCreateCurveLineEx(ByVal nParentId As Integer,
ByRef PtStart As Point3d, ByVal nSepS As SEP, ByVal nIdS As Integer,
ByRef PtEnd As Point3d, ByVal nSepE As SEP, ByVal nIdE As Integer) As Integer
End Function
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
Public Shared Function EgtCreateCurveLinePVL(ByVal nParentId As Integer,
ByRef PtStart As Point3d, ByRef VtDir As Vector3d, ByVal dLen As Double) As Integer
@@ -843,13 +849,17 @@ Public Shared Function EgtExtendCurveEndByLen(ByVal nId As Integer, ByVal dLen A
End Function
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
Public Shared Function EgtExtendCurveByLen(ByVal nId As Integer, ByVal dLen As Double, ByRef PtNear As Point3d) As Boolean
Public Shared Function EgtTrimExtendCurveByLen(ByVal nId As Integer, ByVal dLen As Double, ByRef PtNear As Point3d) As Boolean
End Function
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
Public Shared Function EgtSplitCurveAtPoint(ByVal nId As Integer, ByRef PtOn As Point3d) As Boolean
End Function
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
Public Shared Function EgtOffsetCurve(ByVal nId As Integer, ByVal dDist As Double, ByVal nSide As OFF_SIDE, ByVal nType As OFF_TYPE) As Boolean
End Function
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
Public Shared Function EgtModifyCurveCircleCPN(ByVal nId As Integer, ByRef PtOn As Point3d) As Boolean
End Function
@@ -1320,12 +1330,20 @@ End Function
Public Shared Function EgtAtParamVector(ByVal nId As Integer, ByVal dU As Double, ByRef VtV As Vector3d) As Boolean
End Function
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
Public Shared Function EgtCurveLength(ByVal nId As Integer, ByRef dLen As Double) As Boolean
End Function
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
Public Shared Function EgtCurveLengthAtPoint(ByVal nId As Integer, ByRef ptOn As Point3d, ByRef dLen As Double) As Boolean
End Function
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
Public Shared Function EgtCurveExtrusion(ByVal nId As Integer, ByRef VtExtr As Vector3d) As Boolean
End Function
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
Public Shared Function EgtCurveThickness(ByVal nId As Integer, ByRef DThick As Double) As Boolean
Public Shared Function EgtCurveThickness(ByVal nId As Integer, ByRef dThick As Double) As Boolean
End Function
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
@@ -1467,6 +1485,14 @@ End Function
Public Shared Function EgtUnselectableClearAll() As Boolean
End Function
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
Private Shared Function EgtGetPointFromSelect(ByVal nSelId As Integer, ByVal nWinX As Integer, ByVal nWinY As Integer,
ByRef ptP As Point3d) As Boolean
End Function
Public Shared Function EgtGetPointFromSelect(ByVal nSelId As Integer, ByVal PtWin As Point, ByRef ptP As Point3d) As Boolean
Return EgtGetPointFromSelect(nSelId, PtWin.X, PtWin.Y, ptP)
End Function
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
Private Shared Function EgtGetGraphicSnapPoint(ByVal nSnap As Integer,
ByVal nWinX As Integer, ByVal nWinY As Integer, ByVal nSelW As Integer, ByVal nSelH As Integer,
@@ -1572,6 +1598,10 @@ End Function
Public Shared Function EgtGetCameraDir(ByRef nDir As Integer) As Boolean
End Function
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
Public Shared Function EgtProjectPoint(ByRef ptP As Point3d, ByRef ptWin As Point3d) As Boolean
End Function
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
Private Shared Function EgtUnProjectPoint(ByVal nWinX As Integer, ByVal nWinY As Integer, ByRef ptP As Point3d) As Boolean
End Function
@@ -1579,10 +1609,6 @@ Public Shared Function EgtUnProjectPoint(ByVal Curr As Point, ByRef ptP As Point
Return EgtUnProjectPoint(Curr.X, Curr.Y, ptP)
End Function
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
Public Shared Function EgtProjectPoint(ByRef ptP As Point3d, ByRef ptWin As Point3d) As Boolean
End Function
'---------- Tsc Executor -------------------------------------------------------
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
@@ -1712,13 +1738,24 @@ Public Enum VT As Integer
End Enum
'Costanti : TIPO SNAP POINT
Public Enum SP As Integer
PT_SKETCH = 0
PT_GRID = 1
PT_END = 2
PT_MID = 3
CENTER = 4
PT_NEAR = 5
PT_INTERS = 6
PT_NONE = 0
PT_SKETCH = 1
PT_GRID = 2
PT_END = 3
PT_MID = 4
CENTER = 5
PT_NEAR = 6
PT_INTERS = 7
PT_TANGENT = 8
PT_PERPENDICULAR = 9
PT_MINDIST = 10
End Enum
'Costanti : TIPO SELECTED POINT
Public Enum SEP As Integer
PT_STD = 0
PT_TG = 1
PT_PERP = 2
PT_MINDIST = 3
End Enum
'Costanti : flag per BBOX
Public Enum BBF As Integer
@@ -1728,5 +1765,16 @@ Public Enum BBF As Integer
IGNORE_DIM = 3
EXACT = 4
End Enum
'Costanti : lato di offset
Public Enum OFF_SIDE As Integer
RIGHT = -1
LEFT = 1
End Enum
'Costanti : tipo di offset
Public Enum OFF_TYPE As Integer
FILLET = 0
CHAMFER = 1
EXTEND = 2
End Enum
End Class
+76 -37
View File
@@ -25,13 +25,13 @@ Partial Class Form1
Me.components = New System.ComponentModel.Container()
Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(Form1))
Me.TableLayoutPanel1 = New System.Windows.Forms.TableLayoutPanel()
Me.Scene1 = New TestEIn.Scene()
Me.StatusStrip1 = New System.Windows.Forms.StatusStrip()
Me.tsStatusOnL = New System.Windows.Forms.ToolStripStatusLabel()
Me.tsStatusOutput = New System.Windows.Forms.ToolStripStatusLabel()
Me.tsStatusOnR = New System.Windows.Forms.ToolStripStatusLabel()
Me.tsStatusSnapPointType = New System.Windows.Forms.ToolStripStatusLabel()
Me.tsStatusGrid = New System.Windows.Forms.ToolStripStatusLabel()
Me.tsStatusTypePos = New System.Windows.Forms.ToolStripStatusLabel()
Me.tsStatusCurPosType = New System.Windows.Forms.ToolStripStatusLabel()
Me.tsStatusCursorPos = New System.Windows.Forms.ToolStripStatusLabel()
Me.TabControl1 = New System.Windows.Forms.TabControl()
Me.TabHome = New System.Windows.Forms.TabPage()
@@ -123,6 +123,7 @@ Partial Class Form1
Me.btnInvertCurve = New System.Windows.Forms.Button()
Me.btnDelete = New System.Windows.Forms.Button()
Me.TabTransform = New System.Windows.Forms.TabPage()
Me.btnOffset = New System.Windows.Forms.Button()
Me.btnScale = New System.Windows.Forms.Button()
Me.btnMirror = New System.Windows.Forms.Button()
Me.btnRotate = New System.Windows.Forms.Button()
@@ -146,6 +147,7 @@ Partial Class Form1
Me.btnGetDist = New System.Windows.Forms.CheckBox()
Me.ObjTreeTimer = New System.Windows.Forms.Timer(Me.components)
Me.ColorDialog1 = New System.Windows.Forms.ColorDialog()
Me.Scene1 = New TestEIn.Scene()
Me.TableLayoutPanel1.SuspendLayout()
Me.StatusStrip1.SuspendLayout()
Me.TabControl1.SuspendLayout()
@@ -188,27 +190,17 @@ Partial Class Form1
Me.TableLayoutPanel1.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 80.0!))
Me.TableLayoutPanel1.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100.0!))
Me.TableLayoutPanel1.RowStyles.Add(New System.Windows.Forms.RowStyle())
Me.TableLayoutPanel1.Size = New System.Drawing.Size(1096, 533)
Me.TableLayoutPanel1.Size = New System.Drawing.Size(1096, 561)
Me.TableLayoutPanel1.TabIndex = 0
'
'Scene1
'
Me.Scene1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
Me.Scene1.Cursor = System.Windows.Forms.Cursors.Default
Me.Scene1.Dock = System.Windows.Forms.DockStyle.Fill
Me.Scene1.Location = New System.Drawing.Point(92, 83)
Me.Scene1.Name = "Scene1"
Me.Scene1.Size = New System.Drawing.Size(795, 425)
Me.Scene1.TabIndex = 1
'
'StatusStrip1
'
Me.StatusStrip1.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _
Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
Me.TableLayoutPanel1.SetColumnSpan(Me.StatusStrip1, 3)
Me.StatusStrip1.Dock = System.Windows.Forms.DockStyle.None
Me.StatusStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.tsStatusOnL, Me.tsStatusOutput, Me.tsStatusOnR, Me.tsStatusGrid, Me.tsStatusTypePos, Me.tsStatusCursorPos})
Me.StatusStrip1.Location = New System.Drawing.Point(0, 511)
Me.StatusStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.tsStatusOnL, Me.tsStatusOutput, Me.tsStatusOnR, Me.tsStatusSnapPointType, Me.tsStatusGrid, Me.tsStatusCurPosType, Me.tsStatusCursorPos})
Me.StatusStrip1.Location = New System.Drawing.Point(0, 539)
Me.StatusStrip1.MaximumSize = New System.Drawing.Size(0, 22)
Me.StatusStrip1.MinimumSize = New System.Drawing.Size(0, 22)
Me.StatusStrip1.Name = "StatusStrip1"
@@ -230,7 +222,7 @@ Partial Class Form1
Me.tsStatusOutput.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text
Me.tsStatusOutput.MergeIndex = 1
Me.tsStatusOutput.Name = "tsStatusOutput"
Me.tsStatusOutput.Size = New System.Drawing.Size(373, 17)
Me.tsStatusOutput.Size = New System.Drawing.Size(293, 17)
Me.tsStatusOutput.Spring = True
Me.tsStatusOutput.TextAlign = System.Drawing.ContentAlignment.MiddleLeft
'
@@ -241,23 +233,39 @@ Partial Class Form1
Me.tsStatusOnR.Size = New System.Drawing.Size(190, 17)
Me.tsStatusOnR.TextAlign = System.Drawing.ContentAlignment.MiddleLeft
'
'tsStatusSnapPointType
'
Me.tsStatusSnapPointType.AutoSize = False
Me.tsStatusSnapPointType.BorderSides = CType((((System.Windows.Forms.ToolStripStatusLabelBorderSides.Left Or System.Windows.Forms.ToolStripStatusLabelBorderSides.Top) _
Or System.Windows.Forms.ToolStripStatusLabelBorderSides.Right) _
Or System.Windows.Forms.ToolStripStatusLabelBorderSides.Bottom), System.Windows.Forms.ToolStripStatusLabelBorderSides)
Me.tsStatusSnapPointType.Name = "tsStatusSnapPointType"
Me.tsStatusSnapPointType.Size = New System.Drawing.Size(80, 17)
Me.tsStatusSnapPointType.Text = "Grid Point"
'
'tsStatusGrid
'
Me.tsStatusGrid.AutoSize = False
Me.tsStatusGrid.BackColor = System.Drawing.SystemColors.Control
Me.tsStatusGrid.BorderSides = CType((((System.Windows.Forms.ToolStripStatusLabelBorderSides.Left Or System.Windows.Forms.ToolStripStatusLabelBorderSides.Top) _
Or System.Windows.Forms.ToolStripStatusLabelBorderSides.Right) _
Or System.Windows.Forms.ToolStripStatusLabelBorderSides.Bottom), System.Windows.Forms.ToolStripStatusLabelBorderSides)
Me.tsStatusGrid.BorderStyle = System.Windows.Forms.Border3DStyle.Raised
Me.tsStatusGrid.Name = "tsStatusGrid"
Me.tsStatusGrid.Size = New System.Drawing.Size(64, 17)
Me.tsStatusGrid.Text = " GRID ON "
'
'tsStatusTypePos
'tsStatusCurPosType
'
Me.tsStatusTypePos.BorderSides = CType((((System.Windows.Forms.ToolStripStatusLabelBorderSides.Left Or System.Windows.Forms.ToolStripStatusLabelBorderSides.Top) _
Me.tsStatusCurPosType.AutoSize = False
Me.tsStatusCurPosType.BackColor = System.Drawing.SystemColors.Control
Me.tsStatusCurPosType.BorderSides = CType((((System.Windows.Forms.ToolStripStatusLabelBorderSides.Left Or System.Windows.Forms.ToolStripStatusLabelBorderSides.Top) _
Or System.Windows.Forms.ToolStripStatusLabelBorderSides.Right) _
Or System.Windows.Forms.ToolStripStatusLabelBorderSides.Bottom), System.Windows.Forms.ToolStripStatusLabelBorderSides)
Me.tsStatusTypePos.Name = "tsStatusTypePos"
Me.tsStatusTypePos.Size = New System.Drawing.Size(55, 17)
Me.tsStatusTypePos.Text = "CPLANE"
Me.tsStatusCurPosType.BorderStyle = System.Windows.Forms.Border3DStyle.Raised
Me.tsStatusCurPosType.Name = "tsStatusCurPosType"
Me.tsStatusCurPosType.Size = New System.Drawing.Size(55, 17)
Me.tsStatusCurPosType.Text = "CPLANE"
'
'tsStatusCursorPos
'
@@ -1089,26 +1097,26 @@ Partial Class Form1
Me.TableLayoutPanel3.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 30.0!))
Me.TableLayoutPanel3.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 140.0!))
Me.TableLayoutPanel3.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 50.0!))
Me.TableLayoutPanel3.Size = New System.Drawing.Size(200, 425)
Me.TableLayoutPanel3.Size = New System.Drawing.Size(200, 453)
Me.TableLayoutPanel3.TabIndex = 9
'
'tBoxInfo
'
Me.tBoxInfo.BackColor = System.Drawing.SystemColors.ControlLightLight
Me.tBoxInfo.Dock = System.Windows.Forms.DockStyle.Fill
Me.tBoxInfo.Location = New System.Drawing.Point(3, 180)
Me.tBoxInfo.Location = New System.Drawing.Point(3, 200)
Me.tBoxInfo.Margin = New System.Windows.Forms.Padding(3, 1, 3, 3)
Me.tBoxInfo.Multiline = True
Me.tBoxInfo.Name = "tBoxInfo"
Me.tBoxInfo.ReadOnly = True
Me.tBoxInfo.ScrollBars = System.Windows.Forms.ScrollBars.Vertical
Me.tBoxInfo.Size = New System.Drawing.Size(194, 51)
Me.tBoxInfo.Size = New System.Drawing.Size(194, 59)
Me.tBoxInfo.TabIndex = 24
'
'tboxCmd
'
Me.tboxCmd.Dock = System.Windows.Forms.DockStyle.Fill
Me.tboxCmd.Location = New System.Drawing.Point(3, 377)
Me.tboxCmd.Location = New System.Drawing.Point(3, 405)
Me.tboxCmd.Multiline = True
Me.tboxCmd.Name = "tboxCmd"
Me.tboxCmd.ScrollBars = System.Windows.Forms.ScrollBars.Vertical
@@ -1127,7 +1135,7 @@ Partial Class Form1
Me.TreeView1.Margin = New System.Windows.Forms.Padding(3, 3, 3, 0)
Me.TreeView1.Name = "TreeView1"
Me.TreeView1.SelectedImageIndex = 0
Me.TreeView1.Size = New System.Drawing.Size(194, 126)
Me.TreeView1.Size = New System.Drawing.Size(194, 146)
Me.TreeView1.StateImageList = Me.ImageList2
Me.TreeView1.TabIndex = 0
'
@@ -1229,7 +1237,7 @@ Partial Class Form1
Me.InputBox.Controls.Add(Me.InputLabel)
Me.InputBox.Dock = System.Windows.Forms.DockStyle.Fill
Me.InputBox.Font = New System.Drawing.Font("Microsoft Sans Serif", 10.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
Me.InputBox.Location = New System.Drawing.Point(3, 237)
Me.InputBox.Location = New System.Drawing.Point(3, 265)
Me.InputBox.Name = "InputBox"
Me.InputBox.Size = New System.Drawing.Size(194, 134)
Me.InputBox.TabIndex = 26
@@ -1297,7 +1305,7 @@ Partial Class Form1
Me.TabControl2.Multiline = True
Me.TabControl2.Name = "TabControl2"
Me.TabControl2.SelectedIndex = 0
Me.TabControl2.Size = New System.Drawing.Size(83, 425)
Me.TabControl2.Size = New System.Drawing.Size(83, 453)
Me.TabControl2.TabIndex = 10
'
'TabDraw
@@ -1314,7 +1322,7 @@ Partial Class Form1
Me.TabDraw.Location = New System.Drawing.Point(23, 4)
Me.TabDraw.Name = "TabDraw"
Me.TabDraw.Padding = New System.Windows.Forms.Padding(3)
Me.TabDraw.Size = New System.Drawing.Size(56, 417)
Me.TabDraw.Size = New System.Drawing.Size(56, 445)
Me.TabDraw.TabIndex = 0
Me.TabDraw.Text = "Draw"
'
@@ -1463,7 +1471,7 @@ Partial Class Form1
Me.TabConstruct.Controls.Add(Me.btnPlane)
Me.TabConstruct.Location = New System.Drawing.Point(23, 4)
Me.TabConstruct.Name = "TabConstruct"
Me.TabConstruct.Size = New System.Drawing.Size(56, 417)
Me.TabConstruct.Size = New System.Drawing.Size(56, 445)
Me.TabConstruct.TabIndex = 4
Me.TabConstruct.Text = "Construct"
'
@@ -1548,7 +1556,7 @@ Partial Class Form1
Me.TabEdit.Controls.Add(Me.btnDelete)
Me.TabEdit.Location = New System.Drawing.Point(23, 4)
Me.TabEdit.Name = "TabEdit"
Me.TabEdit.Size = New System.Drawing.Size(56, 417)
Me.TabEdit.Size = New System.Drawing.Size(56, 445)
Me.TabEdit.TabIndex = 3
Me.TabEdit.Text = "Edit"
'
@@ -1577,13 +1585,14 @@ Partial Class Form1
Me.btnExtendCurve.FlatAppearance.MouseDownBackColor = System.Drawing.SystemColors.Control
Me.btnExtendCurve.FlatAppearance.MouseOverBackColor = System.Drawing.SystemColors.GradientInactiveCaption
Me.btnExtendCurve.FlatStyle = System.Windows.Forms.FlatStyle.Flat
Me.btnExtendCurve.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
Me.btnExtendCurve.Image = CType(resources.GetObject("btnExtendCurve.Image"), System.Drawing.Image)
Me.btnExtendCurve.ImageAlign = System.Drawing.ContentAlignment.TopCenter
Me.btnExtendCurve.Location = New System.Drawing.Point(0, 144)
Me.btnExtendCurve.Name = "btnExtendCurve"
Me.btnExtendCurve.Size = New System.Drawing.Size(56, 48)
Me.btnExtendCurve.TabIndex = 39
Me.btnExtendCurve.Text = "Extend"
Me.btnExtendCurve.Text = "Trim/Ext"
Me.btnExtendCurve.TextAlign = System.Drawing.ContentAlignment.BottomCenter
Me.btnExtendCurve.UseVisualStyleBackColor = False
'
@@ -1693,16 +1702,34 @@ Partial Class Form1
'TabTransform
'
Me.TabTransform.BackColor = System.Drawing.SystemColors.Control
Me.TabTransform.Controls.Add(Me.btnOffset)
Me.TabTransform.Controls.Add(Me.btnScale)
Me.TabTransform.Controls.Add(Me.btnMirror)
Me.TabTransform.Controls.Add(Me.btnRotate)
Me.TabTransform.Controls.Add(Me.btnMove)
Me.TabTransform.Location = New System.Drawing.Point(23, 4)
Me.TabTransform.Name = "TabTransform"
Me.TabTransform.Size = New System.Drawing.Size(56, 417)
Me.TabTransform.Size = New System.Drawing.Size(56, 445)
Me.TabTransform.TabIndex = 2
Me.TabTransform.Text = "Transform"
'
'btnOffset
'
Me.btnOffset.FlatAppearance.BorderColor = System.Drawing.SystemColors.Control
Me.btnOffset.FlatAppearance.BorderSize = 0
Me.btnOffset.FlatAppearance.MouseDownBackColor = System.Drawing.SystemColors.Control
Me.btnOffset.FlatAppearance.MouseOverBackColor = System.Drawing.SystemColors.GradientInactiveCaption
Me.btnOffset.FlatStyle = System.Windows.Forms.FlatStyle.Flat
Me.btnOffset.Image = CType(resources.GetObject("btnOffset.Image"), System.Drawing.Image)
Me.btnOffset.ImageAlign = System.Drawing.ContentAlignment.TopCenter
Me.btnOffset.Location = New System.Drawing.Point(0, 192)
Me.btnOffset.Name = "btnOffset"
Me.btnOffset.Size = New System.Drawing.Size(56, 48)
Me.btnOffset.TabIndex = 34
Me.btnOffset.Text = "Offset"
Me.btnOffset.TextAlign = System.Drawing.ContentAlignment.BottomCenter
Me.btnOffset.UseVisualStyleBackColor = False
'
'btnScale
'
Me.btnScale.FlatAppearance.BorderColor = System.Drawing.SystemColors.Control
@@ -1780,7 +1807,7 @@ Partial Class Form1
Me.TabTest.Location = New System.Drawing.Point(23, 4)
Me.TabTest.Name = "TabTest"
Me.TabTest.Padding = New System.Windows.Forms.Padding(3)
Me.TabTest.Size = New System.Drawing.Size(56, 417)
Me.TabTest.Size = New System.Drawing.Size(56, 445)
Me.TabTest.TabIndex = 1
Me.TabTest.Text = "Test"
'
@@ -1913,20 +1940,30 @@ Partial Class Form1
'
Me.ColorDialog1.AnyColor = True
'
'Scene1
'
Me.Scene1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
Me.Scene1.Cursor = System.Windows.Forms.Cursors.Default
Me.Scene1.Dock = System.Windows.Forms.DockStyle.Fill
Me.Scene1.Location = New System.Drawing.Point(92, 83)
Me.Scene1.Name = "Scene1"
Me.Scene1.Size = New System.Drawing.Size(795, 453)
Me.Scene1.TabIndex = 1
'
'Form1
'
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
Me.AutoSize = True
Me.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None
Me.ClientSize = New System.Drawing.Size(1096, 533)
Me.ClientSize = New System.Drawing.Size(1096, 561)
Me.Controls.Add(Me.TableLayoutPanel1)
Me.Cursor = System.Windows.Forms.Cursors.Arrow
Me.ForeColor = System.Drawing.SystemColors.ControlText
Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon)
Me.KeyPreview = True
Me.Margin = New System.Windows.Forms.Padding(2)
Me.MinimumSize = New System.Drawing.Size(1112, 512)
Me.MinimumSize = New System.Drawing.Size(1112, 600)
Me.Name = "Form1"
Me.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide
Me.StartPosition = System.Windows.Forms.FormStartPosition.Manual
@@ -2071,7 +2108,7 @@ End Sub
Friend WithEvents cmdSetName As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents ToolStripSeparator2 As System.Windows.Forms.ToolStripSeparator
Friend WithEvents cmdSetInfo As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents tsStatusTypePos As System.Windows.Forms.ToolStripStatusLabel
Friend WithEvents tsStatusCurPosType As System.Windows.Forms.ToolStripStatusLabel
Friend WithEvents btnExtendCurve As System.Windows.Forms.Button
Friend WithEvents btnScale As System.Windows.Forms.Button
Friend WithEvents btnDone As System.Windows.Forms.Button
@@ -2082,5 +2119,7 @@ End Sub
Friend WithEvents btnSetCurveTh As System.Windows.Forms.Button
Friend WithEvents btnCPlaneObj As System.Windows.Forms.Button
Friend WithEvents btnCPlanePerpCurve As System.Windows.Forms.Button
Friend WithEvents btnOffset As System.Windows.Forms.Button
Friend WithEvents tsStatusSnapPointType As System.Windows.Forms.ToolStripStatusLabel
End Class
+12 -2
View File
@@ -848,7 +848,7 @@
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAC4
DQAAAk1TRnQBSQFMAgEBDgEAAQgBDAEIAQwBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
DQAAAk1TRnQBSQFMAgEBDgEAAWgBDAFoAQwBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
AwABQAMAAUADAAEBAQABCAYAARAYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA
AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5
AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA
@@ -917,7 +917,7 @@
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAADW
CAAAAk1TRnQBSQFMAgEBAgEAASgBAwEoAQMBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
CAAAAk1TRnQBSQFMAgEBAgEAAYgBAwGIAQMBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
AwABQAMAARADAAEBAQABCAYAAQQYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA
AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5
AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA
@@ -1270,6 +1270,16 @@
qIeJsIvfePHAJikroRrjgIEbb0KdVM9ElL0lvDZexam4Rrfa/kRXKUu0f+6RsrlQ/wUeO7eOqFTLRJSD
Zp6b8fNpzM25hJ8x9YoNS7nVqCugU/KZ5JL2LhuRuQBfXnRyq4LiNX1c1oIo03DgfVcDdGzE8rhU/68Q
ZT4RZT4RZT4RZT4RZT4RZT4RZf7Q+QMgTr7iuQrsHAAAAABJRU5ErkJggg==
</value>
</data>
<data name="btnOffset.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
xAAADsQBlSsOGwAAAAd0SU1FB94LHAotKJH3eQoAAADISURBVFhH7ZLBCcJAEEVTgJVYQsAK7MNahBxs
QcQuvHj2YB12sbqBZGaHb9wZ4eeyh0eGR0jeTtKllFYFSiZQMoGSCZRMoGQiw244hemP+4x+cC0ybG73
vwiGyGBP5cWE6JcsAaWX6eRziCNChutzG6F4WCBChssruTk/DosRrgBzsp/kl38JGSMqtwBlLUXI5zp7
xxag9FBE6C2of0Hfb4HSyxhhPgU1IGO3wA+YttACWkALaAFrBUSBkgmUTKBkAiUTKHmk7g1iOdspSkxx
ywAAAABJRU5ErkJggg==
</value>
</data>
<data name="btnScale.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+69 -10
View File
@@ -193,12 +193,17 @@ Public Class Form1
m_Controller.MouseSelectedLayer(nId)
End Sub
Private Sub OnMousePointForSelection(ByVal sender As Object, ByVal PtP As Point3d) Handles Scene1.OnMousePointForSelection
Private Sub OnMousePointFromSelection(ByVal sender As Object, ByVal PtP As Point3d) Handles Scene1.OnMousePointFromSelection
m_Controller.SetLastPoint3d(PtP)
End Sub
Private Sub OnMouseSelectedPoint(ByVal sender As Object, ByVal PtP As Point3d) Handles Scene1.OnMouseSelectedPoint
m_Controller.MouseSelectedPoint(PtP, (ModifierKeys And Keys.Control) <> Keys.Control)
Private Sub OnMouseDone(ByVal sender As Object) Handles Scene1.OnMouseDone
m_Controller.Done(InputText.Text)
End Sub
Private Sub OnMouseSelectedPoint(ByVal sender As Object, ByVal PtP As Point3d, ByVal nSep As SEP, ByVal nId As Integer) Handles Scene1.OnMouseSelectedPoint
Dim bDone As Boolean = (ModifierKeys And Keys.Control) <> Keys.Control
m_Controller.MouseSelectedPoint(PtP, nSep, nId, bDone)
End Sub
Private Sub OnMouseSelectedDir(ByVal sender As Object, ByVal VtDir As Vector3d) Handles Scene1.OnMouseSelectedDir
@@ -210,6 +215,7 @@ Public Class Form1
End Sub
Private Sub OnMouseAnalyzed(ByVal sender As Object, ByVal nId As Integer) Handles Scene1.OnMouseAnalyzed
UpdateObjInObjTree(nId)
SelectIdInObjTree(nId)
End Sub
@@ -319,7 +325,15 @@ Public Class Form1
End Sub
Private Sub btnSave_Click(sender As System.Object, e As System.EventArgs) Handles btnSave.Click
Scene1.SaveProject(m_Controller.GetCurrFile())
If Not String.IsNullOrWhiteSpace(m_Controller.GetCurrFile()) Then
Scene1.SaveProject(m_Controller.GetCurrFile())
Else
Dim sFile As String = String.Empty
GetPrivateProfileString("General", "LastNgeDir", "", sFile, m_sIniFile)
sFile.TrimEnd("\"c)
sFile += "\New.nge"
Scene1.SaveAsProject(sFile)
End If
End Sub
Private Sub btnSaveAs_Click(sender As System.Object, e As System.EventArgs) Handles btnSaveAs.Click
@@ -530,6 +544,7 @@ Public Class Form1
btnRotate.Enabled = bSelOk
btnMirror.Enabled = bSelOk
btnScale.Enabled = bSelOk
btnOffset.Enabled = bSelOk
End Sub
@@ -604,7 +619,7 @@ Public Class Form1
End Sub
Private Sub btnExtendCurve_Click(sender As System.Object, e As System.EventArgs) Handles btnExtendCurve.Click
m_Controller.ExecuteCommand(CMD.EXTENDCURVE)
m_Controller.ExecuteCommand(CMD.TRIMEXTENDCURVE)
End Sub
Private Sub btnBreakCurve_Click(sender As System.Object, e As System.EventArgs) Handles btnBreakCurve.Click
@@ -647,6 +662,10 @@ Public Class Form1
End If
End Sub
Private Sub btnOffset_Click(sender As System.Object, e As System.EventArgs) Handles btnOffset.Click
m_Controller.ExecuteCommand(CMD.OFFSET)
End Sub
' ----------------- Test Commands -------------------
Private Sub XbtnRotP90_Click(sender As System.Object, e As System.EventArgs) Handles XbtnRotP90.Click
@@ -774,6 +793,7 @@ Public Class Form1
Private Function SetInputBoxCheck(ByVal bCheck As Boolean) As Boolean
InputCheck.Checked = bCheck
m_Controller.SetLastBoolean(InputCheck.Checked)
Return True
End Function
@@ -837,15 +857,24 @@ Public Class Form1
Private Sub EmitCurrPartLayer()
Dim sText As String = " "
Dim sName As String = String.Empty
Dim colObj As Color3d
EgtGetColor(GDB_ID.ROOT, colObj)
Dim nCurrPart As Integer = m_Controller.GetCurrPart()
If nCurrPart <> GDB_ID.NULL Then
sText = "Part " + nCurrPart.ToString()
If EgtGetName(nCurrPart, sName) Then
sText = sName
Else
sText = "Part " + nCurrPart.ToString()
End If
EgtGetCalcColor(nCurrPart, colObj)
Dim nCurrLayer As Integer = m_Controller.GetCurrLayer()
If nCurrLayer <> GDB_ID.NULL And EgtExistsObj(nCurrLayer) Then
sText += " --> Layer " + nCurrLayer.ToString()
If EgtGetName(nCurrLayer, sName) Then
sText += " --> " + sName
Else
sText += " --> Layer " + nCurrLayer.ToString()
End If
EgtGetCalcColor(nCurrLayer, colObj)
End If
End If
@@ -1191,6 +1220,33 @@ Public Class Form1
End Sub
'-------------------------------- Status Bar -----------------------------------------------------
Private Sub ToolStripStatusSnapPointType_Changed(ByVal sender As Object, ByVal nSpType As SP) Handles Scene1.OnChangedSnapPointType
Select Case nSpType
Case SP.PT_SKETCH
tsStatusSnapPointType.Text = "Sketch Point"
Case SP.PT_GRID
tsStatusSnapPointType.Text = "Grid Point"
Case SP.PT_END
tsStatusSnapPointType.Text = "End Point"
Case SP.PT_MID
tsStatusSnapPointType.Text = "Mid Point"
Case SP.CENTER
tsStatusSnapPointType.Text = "Center"
Case SP.PT_NEAR
tsStatusSnapPointType.Text = "Near Point"
Case SP.PT_INTERS
tsStatusSnapPointType.Text = "Inters Point"
Case SP.PT_TANGENT
tsStatusSnapPointType.Text = "Tang Point"
Case SP.PT_PERPENDICULAR
tsStatusSnapPointType.Text = "Perp Point"
Case SP.PT_MINDIST
tsStatusSnapPointType.Text = "MinDist Point"
Case Else
tsStatusSnapPointType.Text = "---"
End Select
End Sub
Private Sub ToolStripStatusGrid_Click() Handles tsStatusGrid.Click
m_bShowGrid = Not m_bShowGrid
If m_bShowGrid Then
@@ -1204,14 +1260,17 @@ Public Class Form1
EgtDraw()
End Sub
Private Sub ToolStripStatusTypePos_Click() Handles tsStatusTypePos.Click
Private Sub ToolStripStatusTypePos_Click() Handles tsStatusCurPosType.Click
m_bCPlaneTypePos = Not m_bCPlaneTypePos
If m_bCPlaneTypePos Then
tsStatusTypePos.Text = "CPLANE"
tsStatusCurPosType.Text = "CPLANE"
Else
tsStatusTypePos.Text = "WORLD "
tsStatusCurPosType.Text = "WORLD "
End If
Scene1.SetGridCursorPos(m_bCPlaneTypePos)
End Sub
Private Sub ToolStripSnapPointType_Changed(sender As System.Object, nSpType As TestEIn.EgtInterface.SP)
End Sub
End Class
+2 -2
View File
@@ -43,5 +43,5 @@ Imports System.Runtime.InteropServices
' utilizzando l'asterisco (*) come descritto di seguito:
' <Assembly: AssemblyVersion("1.0.*")>
<Assembly: AssemblyVersion("1.5.11.4")>
<Assembly: AssemblyFileVersion("1.5.11.4")>
<Assembly: AssemblyVersion("1.5.11.5")>
<Assembly: AssemblyFileVersion("1.5.11.5")>
+44 -20
View File
@@ -38,6 +38,9 @@ Partial Class Scene
Me.cmdCenterPoint = New System.Windows.Forms.ToolStripMenuItem()
Me.cmdNearPoint = New System.Windows.Forms.ToolStripMenuItem()
Me.cmdIntersectionPoint = New System.Windows.Forms.ToolStripMenuItem()
Me.cmdTangentPoint = New System.Windows.Forms.ToolStripMenuItem()
Me.cmdPerpendicularPoint = New System.Windows.Forms.ToolStripMenuItem()
Me.cmdMinDistPoint = New System.Windows.Forms.ToolStripMenuItem()
Me.sepSelPnt1 = New System.Windows.Forms.ToolStripSeparator()
Me.cmdStopDrag = New System.Windows.Forms.ToolStripMenuItem()
Me.MenuScene.SuspendLayout()
@@ -45,105 +48,123 @@ Partial Class Scene
'
'MenuScene
'
Me.MenuScene.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.cmdSelectAll, Me.cmdDeselectAll, Me.sepSel1, Me.cmdWinSelect, Me.cmdSelectLayer, Me.cmdSelectPart, Me.cmdRestartDrag, Me.cmdSketchPoint, Me.cmdGridPoint, Me.cmdEndPoint, Me.cmdMidPoint, Me.cmdCenterPoint, Me.cmdNearPoint, Me.cmdIntersectionPoint, Me.sepSelPnt1, Me.cmdStopDrag})
Me.MenuScene.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.cmdSelectAll, Me.cmdDeselectAll, Me.sepSel1, Me.cmdWinSelect, Me.cmdSelectLayer, Me.cmdSelectPart, Me.cmdRestartDrag, Me.cmdSketchPoint, Me.cmdGridPoint, Me.cmdEndPoint, Me.cmdMidPoint, Me.cmdCenterPoint, Me.cmdNearPoint, Me.cmdIntersectionPoint, Me.cmdTangentPoint, Me.cmdPerpendicularPoint, Me.cmdMinDistPoint, Me.sepSelPnt1, Me.cmdStopDrag})
Me.MenuScene.Name = "ContextMenuStrip1"
Me.MenuScene.ShowCheckMargin = True
Me.MenuScene.ShowImageMargin = False
Me.MenuScene.Size = New System.Drawing.Size(168, 346)
Me.MenuScene.Size = New System.Drawing.Size(179, 412)
'
'cmdSelectAll
'
Me.cmdSelectAll.Name = "cmdSelectAll"
Me.cmdSelectAll.Size = New System.Drawing.Size(167, 22)
Me.cmdSelectAll.Size = New System.Drawing.Size(178, 22)
Me.cmdSelectAll.Text = "Select All"
'
'cmdDeselectAll
'
Me.cmdDeselectAll.Name = "cmdDeselectAll"
Me.cmdDeselectAll.Size = New System.Drawing.Size(167, 22)
Me.cmdDeselectAll.Size = New System.Drawing.Size(178, 22)
Me.cmdDeselectAll.Text = "Deselect All"
'
'sepSel1
'
Me.sepSel1.Name = "sepSel1"
Me.sepSel1.Size = New System.Drawing.Size(164, 6)
Me.sepSel1.Size = New System.Drawing.Size(175, 6)
'
'cmdWinSelect
'
Me.cmdWinSelect.Name = "cmdWinSelect"
Me.cmdWinSelect.Size = New System.Drawing.Size(167, 22)
Me.cmdWinSelect.Size = New System.Drawing.Size(178, 22)
Me.cmdWinSelect.Text = "Select Window"
'
'cmdSelectLayer
'
Me.cmdSelectLayer.Name = "cmdSelectLayer"
Me.cmdSelectLayer.Size = New System.Drawing.Size(167, 22)
Me.cmdSelectLayer.Size = New System.Drawing.Size(178, 22)
Me.cmdSelectLayer.Text = "Select Layer"
'
'cmdSelectPart
'
Me.cmdSelectPart.Name = "cmdSelectPart"
Me.cmdSelectPart.Size = New System.Drawing.Size(167, 22)
Me.cmdSelectPart.Size = New System.Drawing.Size(178, 22)
Me.cmdSelectPart.Text = "Select Part"
'
'cmdRestartDrag
'
Me.cmdRestartDrag.Name = "cmdRestartDrag"
Me.cmdRestartDrag.Size = New System.Drawing.Size(167, 22)
Me.cmdRestartDrag.Text = "Restart Drag"
Me.cmdRestartDrag.Size = New System.Drawing.Size(178, 22)
Me.cmdRestartDrag.Text = "Drag On"
'
'cmdSketchPoint
'
Me.cmdSketchPoint.Name = "cmdSketchPoint"
Me.cmdSketchPoint.Size = New System.Drawing.Size(167, 22)
Me.cmdSketchPoint.Size = New System.Drawing.Size(178, 22)
Me.cmdSketchPoint.Text = "Sketch Point"
'
'cmdGridPoint
'
Me.cmdGridPoint.Name = "cmdGridPoint"
Me.cmdGridPoint.Size = New System.Drawing.Size(167, 22)
Me.cmdGridPoint.Size = New System.Drawing.Size(178, 22)
Me.cmdGridPoint.Text = "Grid Point"
'
'cmdEndPoint
'
Me.cmdEndPoint.Name = "cmdEndPoint"
Me.cmdEndPoint.Size = New System.Drawing.Size(167, 22)
Me.cmdEndPoint.Size = New System.Drawing.Size(178, 22)
Me.cmdEndPoint.Text = "End Point"
'
'cmdMidPoint
'
Me.cmdMidPoint.Name = "cmdMidPoint"
Me.cmdMidPoint.Size = New System.Drawing.Size(167, 22)
Me.cmdMidPoint.Size = New System.Drawing.Size(178, 22)
Me.cmdMidPoint.Text = "Mid Point"
'
'cmdCenterPoint
'
Me.cmdCenterPoint.Name = "cmdCenterPoint"
Me.cmdCenterPoint.Size = New System.Drawing.Size(167, 22)
Me.cmdCenterPoint.Size = New System.Drawing.Size(178, 22)
Me.cmdCenterPoint.Text = "Center"
'
'cmdNearPoint
'
Me.cmdNearPoint.Name = "cmdNearPoint"
Me.cmdNearPoint.Size = New System.Drawing.Size(167, 22)
Me.cmdNearPoint.Size = New System.Drawing.Size(178, 22)
Me.cmdNearPoint.Text = "Near Point"
'
'cmdIntersectionPoint
'
Me.cmdIntersectionPoint.Name = "cmdIntersectionPoint"
Me.cmdIntersectionPoint.Size = New System.Drawing.Size(167, 22)
Me.cmdIntersectionPoint.Size = New System.Drawing.Size(178, 22)
Me.cmdIntersectionPoint.Text = "Intersection Point"
'
'cmdTangentPoint
'
Me.cmdTangentPoint.Name = "cmdTangentPoint"
Me.cmdTangentPoint.Size = New System.Drawing.Size(178, 22)
Me.cmdTangentPoint.Text = "Tangent Point"
'
'cmdPerpendicularPoint
'
Me.cmdPerpendicularPoint.Name = "cmdPerpendicularPoint"
Me.cmdPerpendicularPoint.Size = New System.Drawing.Size(178, 22)
Me.cmdPerpendicularPoint.Text = "Perpendicular Point"
'
'cmdMinDistPoint
'
Me.cmdMinDistPoint.Name = "cmdMinDistPoint"
Me.cmdMinDistPoint.Size = New System.Drawing.Size(178, 22)
Me.cmdMinDistPoint.Text = "Min Dist Point"
'
'sepSelPnt1
'
Me.sepSelPnt1.Name = "sepSelPnt1"
Me.sepSelPnt1.Size = New System.Drawing.Size(164, 6)
Me.sepSelPnt1.Size = New System.Drawing.Size(175, 6)
'
'cmdStopDrag
'
Me.cmdStopDrag.Name = "cmdStopDrag"
Me.cmdStopDrag.Size = New System.Drawing.Size(167, 22)
Me.cmdStopDrag.Text = "Stop Drag"
Me.cmdStopDrag.Size = New System.Drawing.Size(178, 22)
Me.cmdStopDrag.Text = "Drag Off"
'
'Scene
'
@@ -172,5 +193,8 @@ End Sub
Friend WithEvents cmdIntersectionPoint As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents sepSelPnt1 As System.Windows.Forms.ToolStripSeparator
Friend WithEvents cmdStopDrag As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents cmdTangentPoint As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents cmdPerpendicularPoint As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents cmdMinDistPoint As System.Windows.Forms.ToolStripMenuItem
End Class
+196 -76
View File
@@ -58,6 +58,7 @@ Public Class Scene
m_nStatus = ST.NULL
m_nOldStatus = ST.NULL
m_nSnapType = SP.PT_GRID
RaiseEvent OnChangedSnapPointType(Me, m_nSnapType)
m_bAlsoSelDir = False
m_PrevPoint = Point.Empty
m_bGridCursorPos = False
@@ -172,14 +173,16 @@ Public Class Scene
Public Event OnMouseSelectedPart(ByVal sender As Object, ByVal nId As Integer)
Public Event OnMouseSelectedLayer(ByVal sender As Object, ByVal nId As Integer)
Public Event OnMouseAnalyzed(ByVal sender As Object, ByVal nId As Integer)
Public Event OnMousePointForSelection(ByVal sender As Object, ByVal PtP As Point3d)
Public Event OnMousePointFromSelection(ByVal sender As Object, ByVal PtP As Point3d)
Public Event OnMouseDownScene(ByVal sender As Object)
Public Event OnCursorPos(ByVal sender As Object, ByVal sCursorPos As String)
Public Event OnShowDistance(ByVal sender As Object, ByVal sDistance As String)
Public Event OnCloseGetDist(ByVal sender As Object)
Public Event OnMouseSelectedPoint(ByVal sender As Object, ByVal PtP As Point3d)
Public Event OnMouseDone(ByVal sender As Object)
Public Event OnMouseSelectedPoint(ByVal sender As Object, ByVal PtP As Point3d, ByVal nSep As SEP, ByVal nId As Integer)
Public Event OnMouseSelectedDir(ByVal sender As Object, ByVal VtDir As Vector3d)
Public Event OnMouseMoveSelPoint(ByVal sender As Object, ByVal PtP As Point3d)
Public Event OnChangedSnapPointType(ByVal sender As Object, ByVal nSpType As SP)
Public Event OnNewProject(ByVal sender As Object)
Public Event OnOpeningProject(ByVal sender As Object)
Public Event OnOpenProject(ByVal sender As Object, ByVal sFile As String)
@@ -248,8 +251,8 @@ Public Class Scene
End Select
' evento per posizione punto di selezione
Dim PtTemp As Point3d
If EgtGetGraphicSnapPoint(SP.PT_SKETCH, e.Location, DIM_SEL, DIM_SEL, PtTemp) Then
RaiseEvent OnMousePointForSelection(Me, PtTemp)
If EgtGetPointFromSelect(nId, e.Location, PtTemp) Then
RaiseEvent OnMousePointFromSelection(Me, PtTemp)
End If
End If
' se stato misura di distanza (primo punto)
@@ -283,12 +286,14 @@ Public Class Scene
sOut.Append(dZ.ToString("F4", CultureInfo.InvariantCulture))
' lancio l'evento per visualizzare la distanza
RaiseEvent OnShowDistance(Me, sOut.ToString())
m_nStatus = ST.NULL
m_nStatus = ST.GETDIST
m_nOldStatus = ST.NULL
End If
' se stato selezione punto
ElseIf m_nStatus = ST.SELPOINT Then
If EgtGetGraphicSnapPoint(m_nSnapType, e.Location, DIM_SEL, DIM_SEL, m_ptPrev) Then
If Not m_bDragOn Then
RaiseEvent OnMouseDone(Me)
ElseIf EgtGetGraphicSnapPoint(m_nSnapType, e.Location, DIM_SEL, DIM_SEL, m_ptPrev) Then
' se Snap Sketch o Grid e premuto SHIFT si passa a modalità elevatore
If (m_nSnapType = SP.PT_SKETCH Or m_nSnapType = SP.PT_GRID) And
(ModifierKeys And Keys.Shift) = Keys.Shift Then
@@ -303,8 +308,18 @@ Public Class Scene
RaiseEvent OnMouseSelectedDir(Me, vtDir)
End If
End If
' restituisco punto
RaiseEvent OnMouseSelectedPoint(Me, m_ptPrev)
' restituisco punto con info ausiliarie
Dim nSep As SEP
If m_nSnapType = SP.PT_TANGENT Then
nSep = SEP.PT_TG
ElseIf m_nSnapType = SP.PT_PERPENDICULAR Then
nSep = SEP.PT_PERP
ElseIf m_nSnapType = SP.PT_MINDIST Then
nSep = SEP.PT_MINDIST
Else
nSep = SEP.PT_STD
End If
RaiseEvent OnMouseSelectedPoint(Me, m_ptPrev, nSep, EgtGetLastSnapId())
End If
End If
' se stato selezione Z di punto
@@ -312,7 +327,7 @@ Public Class Scene
If EgtGetGridSnapPointZ((m_nSnapType = SP.PT_SKETCH), e.Location, m_ptGrid, m_ptPrev) Then
' ritorno allo stato base di selezione punto
m_nStatus = ST.SELPOINT
RaiseEvent OnMouseSelectedPoint(Me, m_ptPrev)
RaiseEvent OnMouseSelectedPoint(Me, m_ptPrev, SEP.PT_STD, GDB_ID.NULL)
' non ci può essere selezione di ddirezione
End If
End If
@@ -392,70 +407,8 @@ Public Class Scene
End If
' --- Rilascio tasto destro ---
ElseIf e.Button = Windows.Forms.MouseButtons.Right Then
If m_nStatus = ST.NULL Then
MenuScene.Visible = True
For Each i As ToolStripItem In MenuScene.Items
If i.Name = "cmdSelectAll" Then
i.Visible = True
ElseIf i.Name = "cmdDeselectAll" Then
i.Visible = True
ElseIf i.Name = "sepSel1" Then
i.Visible = True
ElseIf i.Name = "cmdWinSelect" Then
i.Visible = True
ElseIf i.Name = "cmdSelectPart" Then
i.Visible = True
ElseIf i.Name = "cmdSelectLayer" Then
i.Visible = True
Else
i.Visible = False
End If
Next
ElseIf m_nStatus = ST.GETDIST Or m_nStatus = ST.GETDIST2 Or m_nStatus = ST.SELPOINT Then
MenuScene.Visible = True
If m_bDragOn Then
For Each i As ToolStripItem In MenuScene.Items
If i.Name = "cmdSketchPoint" Then
i.Visible = True
DirectCast(i, ToolStripMenuItem).Checked = (m_nSnapType = SP.PT_SKETCH)
ElseIf i.Name = "cmdGridPoint" Then
i.Visible = True
DirectCast(i, ToolStripMenuItem).Checked = (m_nSnapType = SP.PT_GRID)
ElseIf i.Name = "cmdEndPoint" Then
i.Visible = True
DirectCast(i, ToolStripMenuItem).Checked = (m_nSnapType = SP.PT_END)
ElseIf i.Name = "cmdMidPoint" Then
i.Visible = True
DirectCast(i, ToolStripMenuItem).Checked = (m_nSnapType = SP.PT_MID)
ElseIf i.Name = "cmdCenterPoint" Then
i.Visible = True
DirectCast(i, ToolStripMenuItem).Checked = (m_nSnapType = SP.CENTER)
ElseIf i.Name = "cmdNearPoint" Then
i.Visible = True
DirectCast(i, ToolStripMenuItem).Checked = (m_nSnapType = SP.PT_NEAR)
ElseIf i.Name = "cmdIntersectionPoint" Then
i.Visible = True
DirectCast(i, ToolStripMenuItem).Checked = (m_nSnapType = SP.PT_INTERS)
ElseIf i.Name = "sepSelPnt1" Then
i.Visible = True
ElseIf i.Name = "cmdStopDrag" Then
i.Visible = True
Else
i.Visible = False
End If
Next
Else
For Each i As ToolStripItem In MenuScene.Items
If i.Name = "cmdRestartDrag" Then
i.Visible = True
Else
i.Visible = False
End If
Next
End If
Else
MenuScene.Visible = False
End If
' sistemazioni menù contestuale
PrepareMenuScene()
' --- Tutti gli altri casi ---
Else
MyBase.OnMouseUp(e)
@@ -632,6 +585,142 @@ Public Class Scene
RaiseEvent OnCursorPos(Me, sCursorPos.ToString)
End Sub
'---- Contextual Menu management -------------
Private m_bTangentPointOn As Boolean = False
Private m_bPerpendicularPointOn As Boolean = False
Private m_bMinDistPointOn As Boolean = False
Public Sub EnableTangentPoint()
m_bTangentPointOn = True
End Sub
Public Sub EnablePerpendicularPoint()
m_bPerpendicularPointOn = True
End Sub
Public Sub EnableMinDistPoint()
m_bMinDistPointOn = True
End Sub
Public Sub DisableTangentPoint()
m_bTangentPointOn = False
If m_nSnapType = SP.PT_TANGENT Then
m_nSnapType = SP.PT_NEAR
RaiseEvent OnChangedSnapPointType(Me, m_nSnapType)
End If
End Sub
Public Sub DisablePerpendicularPoint()
m_bPerpendicularPointOn = False
If m_nSnapType = SP.PT_PERPENDICULAR Then
m_nSnapType = SP.PT_NEAR
RaiseEvent OnChangedSnapPointType(Me, m_nSnapType)
End If
End Sub
Public Sub DisableMinDistPoint()
m_bMinDistPointOn = False
If m_nSnapType = SP.PT_MINDIST Then
m_nSnapType = SP.PT_NEAR
RaiseEvent OnChangedSnapPointType(Me, m_nSnapType)
End If
End Sub
Private Sub PrepareMenuScene()
' per selezione oggetti
If m_nStatus = ST.NULL Then
MenuScene.Visible = True
For Each i As ToolStripItem In MenuScene.Items
If i.Name = "cmdSelectAll" Then
i.Visible = True
ElseIf i.Name = "cmdDeselectAll" Then
i.Visible = True
ElseIf i.Name = "sepSel1" Then
i.Visible = True
ElseIf i.Name = "cmdWinSelect" Then
i.Visible = True
ElseIf i.Name = "cmdSelectPart" Then
i.Visible = True
ElseIf i.Name = "cmdSelectLayer" Then
i.Visible = True
Else
i.Visible = False
End If
Next
' per selezione punti
ElseIf m_nStatus = ST.GETDIST Or m_nStatus = ST.GETDIST2 Or m_nStatus = ST.SELPOINT Then
MenuScene.Visible = True
' se drag abilitato
If m_bDragOn Then
For Each i As ToolStripItem In MenuScene.Items
Select Case i.Name
Case "cmdSketchPoint"
i.Visible = True
DirectCast(i, ToolStripMenuItem).Checked = (m_nSnapType = SP.PT_SKETCH)
Case "cmdGridPoint"
i.Visible = True
DirectCast(i, ToolStripMenuItem).Checked = (m_nSnapType = SP.PT_GRID)
Case "cmdEndPoint"
i.Visible = True
DirectCast(i, ToolStripMenuItem).Checked = (m_nSnapType = SP.PT_END)
Case "cmdMidPoint"
i.Visible = True
DirectCast(i, ToolStripMenuItem).Checked = (m_nSnapType = SP.PT_MID)
Case "cmdCenterPoint"
i.Visible = True
DirectCast(i, ToolStripMenuItem).Checked = (m_nSnapType = SP.CENTER)
Case "cmdNearPoint"
i.Visible = True
DirectCast(i, ToolStripMenuItem).Checked = (m_nSnapType = SP.PT_NEAR)
Case "cmdIntersectionPoint"
i.Visible = True
DirectCast(i, ToolStripMenuItem).Checked = (m_nSnapType = SP.PT_INTERS)
Case "cmdTangentPoint"
If m_bTangentPointOn Then
i.Visible = True
DirectCast(i, ToolStripMenuItem).Checked = (m_nSnapType = SP.PT_TANGENT)
Else
i.Visible = False
End If
Case "cmdPerpendicularPoint"
If m_bPerpendicularPointOn Then
i.Visible = True
DirectCast(i, ToolStripMenuItem).Checked = (m_nSnapType = SP.PT_PERPENDICULAR)
Else
i.Visible = False
End If
Case "cmdMinDistPoint"
If m_bMinDistPointOn Then
i.Visible = True
DirectCast(i, ToolStripMenuItem).Checked = (m_nSnapType = SP.PT_MINDIST)
Else
i.Visible = False
End If
Case "sepSelPnt1"
i.Visible = True
Case "cmdStopDrag"
i.Visible = True
Case Else
i.Visible = False
End Select
Next
' altrimenti con drag disabilitato
Else
For Each i As ToolStripItem In MenuScene.Items
If i.Name = "cmdRestartDrag" Then
i.Visible = True
Else
i.Visible = False
End If
Next
End If
' altri casi
Else
MenuScene.Visible = False
End If
End Sub
Private Sub MenuScene_ItemClicked(sender As Object, e As ToolStripItemClickedEventArgs) Handles MenuScene.ItemClicked
' Per selezione
If e.ClickedItem.Name = "cmdSelectAll" Then
@@ -653,18 +742,34 @@ Public Class Scene
' Scelta tipo punto snap
ElseIf e.ClickedItem.Name = "cmdSketchPoint" Then
m_nSnapType = SP.PT_SKETCH
RaiseEvent OnChangedSnapPointType(Me, m_nSnapType)
ElseIf e.ClickedItem.Name = "cmdGridPoint" Then
m_nSnapType = SP.PT_GRID
RaiseEvent OnChangedSnapPointType(Me, m_nSnapType)
ElseIf e.ClickedItem.Name = "cmdEndPoint" Then
m_nSnapType = SP.PT_END
RaiseEvent OnChangedSnapPointType(Me, m_nSnapType)
ElseIf e.ClickedItem.Name = "cmdMidPoint" Then
m_nSnapType = SP.PT_MID
RaiseEvent OnChangedSnapPointType(Me, m_nSnapType)
ElseIf e.ClickedItem.Name = "cmdCenterPoint" Then
m_nSnapType = SP.CENTER
RaiseEvent OnChangedSnapPointType(Me, m_nSnapType)
ElseIf e.ClickedItem.Name = "cmdNearPoint" Then
m_nSnapType = SP.PT_NEAR
RaiseEvent OnChangedSnapPointType(Me, m_nSnapType)
ElseIf e.ClickedItem.Name = "cmdIntersectionPoint" Then
m_nSnapType = SP.PT_INTERS
RaiseEvent OnChangedSnapPointType(Me, m_nSnapType)
ElseIf e.ClickedItem.Name = "cmdTangentPoint" Then
m_nSnapType = SP.PT_TANGENT
RaiseEvent OnChangedSnapPointType(Me, m_nSnapType)
ElseIf e.ClickedItem.Name = "cmdPerpendicularPoint" Then
m_nSnapType = SP.PT_PERPENDICULAR
RaiseEvent OnChangedSnapPointType(Me, m_nSnapType)
ElseIf e.ClickedItem.Name = "cmdMinDistPoint" Then
m_nSnapType = SP.PT_MINDIST
RaiseEvent OnChangedSnapPointType(Me, m_nSnapType)
' Sospensione drag
ElseIf e.ClickedItem.Name = "cmdStopDrag" Then
m_bDragOn = False
@@ -730,6 +835,10 @@ Public Class Scene
' imposto lo stato
m_nStatus = ST.NULL
m_nOldStatus = ST.NULL
' disabilito scelta punto tangente, perpendicolare e minima distanza
DisableTangentPoint()
DisablePerpendicularPoint()
DisableMinDistPoint()
' abilito drag
m_bDragOn = True
' aggiorno visualizzazione
@@ -754,6 +863,14 @@ Public Class Scene
RaiseEvent OnCloseGetDist(Me)
End Sub
Public Function GetSnapPointType() As SP
If m_nStatus <> ST.SELPOINT And m_nStatus <> ST.SELPOINTZ Then
Return SP.PT_NONE
Else
Return m_nSnapType
End If
End Function
'---- Drag Group ------
Private m_bDragOn As Boolean = True
Private m_nDragGroup As Integer = GDB_ID.NULL
@@ -770,14 +887,16 @@ Public Class Scene
Return m_bDragOn
End Function
Public Function CreateDragGroup() As Boolean
Public Function CreateDragGroup(Optional bSelectable As Boolean = False) As Boolean
m_nDragGroup = EgtCreateGroup(GDB_ID.ROOT)
If m_nDragGroup = GDB_ID.NULL Then
Return False
End If
EgtSetLevel(m_nDragGroup, GDB_LV.TEMP)
EgtSetMark(m_nDragGroup)
EgtUnselectableAdd(m_nDragGroup)
If Not bSelectable Then
EgtUnselectableAdd(m_nDragGroup)
End If
Return True
End Function
@@ -858,7 +977,7 @@ Public Class Scene
End Function
Public Function SaveProject(Optional ByVal sFile As String = "") As Boolean
If String.IsNullOrEmpty(sFile) Or EgtGetFileType(sFile) <> FT.NGE Then
If String.IsNullOrWhiteSpace(sFile) Or EgtGetFileType(sFile) <> FT.NGE Then
Return SaveAsProject(sFile)
Else
'Prima del salvataggio
@@ -885,6 +1004,7 @@ Public Class Scene
SaveFileDialog.Title = "Save"
SaveFileDialog.Filter = "New geometry EgalTech(*.nge)|*.nge"
SaveFileDialog.FileName = sFile
SaveFileDialog.InitialDirectory = Path.GetDirectoryName(sFile)
If SaveFileDialog.ShowDialog <> Windows.Forms.DialogResult.OK Then
Return True
End If