TestEIn 1.6b6 :

- aggiunta creazione Linea PVL e Arco PVP
- aggiunta gestione punto notevole baricentro
- portati su file altri messaggi.
This commit is contained in:
Dario Sassi
2015-02-24 22:59:46 +00:00
parent 8984869974
commit d65e1d1279
9 changed files with 330 additions and 56 deletions
+242 -18
View File
@@ -71,11 +71,13 @@ Public Class Controller
POINT
LINE2P
LINEPDL
LINEPVL
CIRCLECP
CIRCLECD
ARCCSE
ARC3P
ARCPDP
ARCPVP
RECTANGLE2P
POLYGON
POLYGONSIDE
@@ -129,7 +131,8 @@ Public Class Controller
Private m_ptP3 As Point3d
Private m_ptLast As Point3d
Private m_sepLast As SEP
Private m_nIdLast As Integer
Private m_vtLast As Vector3d = Vector3d.X_AX()
Private m_nIdLast As Integer = GDB_ID.NULL
Private m_dPrev As Double = 0
Private m_dAux As Double = 0
Private m_dLast As Double = 0
@@ -138,8 +141,8 @@ Public Class Controller
Private m_nLast As Integer = 0
Private m_sLast As String = String.Empty
Private m_bLast As Boolean = False
Private m_ptCont As Point3d ' punto finale di entità precedente (per continuazione)
Private m_vtCont As Vector3d ' direzione finale di entità precedente (per continuazione)
Private m_ptCont As Point3d ' punto finale di entità precedente (per continuazione)
Private m_vtCont As Vector3d = Vector3d.X_AX() ' direzione finale di entità precedente (per continuazione)
' Input
Private Enum IBT As Integer
@@ -152,6 +155,7 @@ Public Class Controller
TY_SPECIALDOUBLE
TY_3DOUBLE
TY_POINT3D
TY_VECTOR3D
End Enum
Private m_nInpType As IBT = IBT.TY_NULL
@@ -518,6 +522,8 @@ Public Class Controller
Select Case m_nInpType
Case IBT.TY_POINT3D
SetInputBoxPoint3d(m_ptLast)
Case IBT.TY_VECTOR3D
SetInputBoxVector3d(m_vtLast)
Case IBT.TY_DIRECTION, IBT.TY_LENGTH, IBT.TY_SPECIALDOUBLE
SetInputBoxDouble(m_dLast)
End Select
@@ -537,6 +543,9 @@ Public Class Controller
m_nIdLast = nId
' se usato per tipi speciali
Select Case m_nInpType
Case IBT.TY_VECTOR3D
m_vtLast = m_ptLast - m_ptP1
m_vtLast.Normalize()
Case IBT.TY_DIRECTION
m_dLast = GridAngFromGlobDir(m_ptLast - m_ptP1)
m_dAux = GridLenFromGlobLen(m_ptLast - m_ptP1)
@@ -617,6 +626,19 @@ Public Class Controller
RaiseEvent SetInputBoxText(sText.ToString())
End Sub
Private Sub SetInputBoxVector3d(ByVal vtVal As Vector3d)
' converto da coordinate globali a griglia
vtVal = vtVal.Loc(GDB_ID.GRID)
' visualizzo
Dim sText As New StringBuilder(128)
sText.Append(DoubleToString(vtVal.x, 6))
sText.Append(",")
sText.Append(DoubleToString(vtVal.y, 6))
sText.Append(",")
sText.Append(DoubleToString(vtVal.z, 6))
RaiseEvent SetInputBoxText(sText.ToString())
End Sub
Private Function InputTextToLast(ByRef sText As String) As Boolean
Select Case m_nInpType
Case IBT.TY_STRING
@@ -637,6 +659,13 @@ Public Class Controller
m_ptLast = New Point3d(d3Val(0), d3Val(1), d3Val(2)).Glob(GDB_ID.GRID)
Return True
End If
Case IBT.TY_VECTOR3D
Dim d3Val(3) As Double
If TextTo3Double(sText, d3Val) Then
' converto da riferimento griglia a globale
m_vtLast = New Vector3d(d3Val(0), d3Val(1), d3Val(2)).Glob(GDB_ID.GRID)
Return True
End If
End Select
Return False
End Function
@@ -812,6 +841,9 @@ Public Class Controller
' LinePDL
Case CMD.LINEPDL
Return ProcessLinePDL()
' LinePVL
Case CMD.LINEPVL
Return ProcessLinePVL()
' CircleCP
Case CMD.CIRCLECP
Return ProcessCircleCP()
@@ -827,6 +859,9 @@ Public Class Controller
' ArcPDP
Case CMD.ARCPDP
Return ProcessArcPDP()
' ArcPVP
Case CMD.ARCPVP
Return ProcessArcPVP()
' Rectangle 2P
Case CMD.RECTANGLE2P
Return ProcessRectangle2P()
@@ -925,6 +960,8 @@ Public Class Controller
End Function
Private Function ExecuteDrag() As Boolean
Dim bOk As Boolean = True
' Eseguo drag
EgtDisableModified()
Select Case m_nLastCmd
Case CMD.GRID_ROTATE
@@ -935,6 +972,8 @@ Public Class Controller
DragLine2P()
Case CMD.LINEPDL
DragLinePDL()
Case CMD.LINEPVL
DragLinePVL()
Case CMD.CIRCLECP
DragCircleCP()
Case CMD.CIRCLECD
@@ -945,6 +984,8 @@ Public Class Controller
DragArc3P()
Case CMD.ARCPDP
DragArcPDP()
Case CMD.ARCPVP
DragArcPVP()
Case CMD.RECTANGLE2P
DragRectangle2P()
Case CMD.POLYGON
@@ -982,11 +1023,10 @@ Public Class Controller
Case CMD.OFFSET
DragOffset()
Case Else
EgtEnableModified()
Return False
bOk = False
End Select
EgtEnableModified()
Return True
Return bOk
End Function
Private Function ExecuteSpecialData() As Boolean
@@ -1882,6 +1922,7 @@ Public Class Controller
SetInputBoxPoint3d(m_ptCont)
Case 1
m_ptP1 = m_ptLast
m_vtLast = m_vtCont
m_dAux = LEN_STD
' posso prendere punto per definire direzione, ma non prendo direzione notevole
m_Scene.SetStatusSelPoint(False)
@@ -1889,12 +1930,12 @@ Public Class Controller
m_Scene.DisableDrag()
RaiseEvent PrepareInputBox("LINE PDL", "Insert Direction", "", False, True)
m_nInpType = IBT.TY_DIRECTION
m_dLast = GridAngFromGlobDir(m_vtCont)
m_dLast = GridAngFromGlobDir(m_vtLast)
SetInputBoxDouble(m_dLast)
DragLinePDL()
Case 2
m_dPrev = m_dLast
m_vtCont = GlobDirFromGridAng(m_dPrev)
m_vtLast = GlobDirFromGridAng(m_dPrev)
m_dLast = m_dAux
m_nStep = 3
m_Scene.DisableDrag()
@@ -1909,7 +1950,7 @@ Public Class Controller
' creo la linea (i punti sono in globale)
EnableCommandLog()
Dim nId As Integer = EgtCreateCurveLinePVL(GetCurrLayer(), m_ptP1.Loc(GDB_ID.GRID),
m_vtCont.Loc(GDB_ID.GRID), m_dLast, REF_TY.GRID)
m_vtLast.Loc(GDB_ID.GRID), m_dLast, REF_TY.GRID)
DisableCommandLog()
If nId <> GDB_ID.NULL Then
m_ptCont = m_ptLast
@@ -1930,14 +1971,14 @@ Public Class Controller
Private Sub DragLinePDL()
If m_nStep = 2 Then ' inserimento direzione
' determino il versore direzione iniziale
Dim vtDirS = GlobDirFromGridAng(m_dLast)
Dim m_vtLast = GlobDirFromGridAng(m_dLast)
' durante la creazione di oggetti il gruppo di Drag ha riferimento globale
Dim nId As Integer = EgtGetFirstInGroup(m_Scene.GetDragGroup())
If nId = GDB_ID.NULL Then
' creo la linea di direzione
EgtCreateCurveLinePVL(m_Scene.GetDragGroup(), m_ptP1, vtDirS, m_dAux, REF_TY.GLOB)
EgtCreateCurveLinePVL(m_Scene.GetDragGroup(), m_ptP1, m_vtLast, m_dAux, REF_TY.GLOB)
Else
Dim ptP2 As Point3d = m_ptP1 + vtDirS * m_dAux
Dim ptP2 As Point3d = m_ptP1 + m_vtLast * m_dAux
EgtModifyCurveEndPoint(nId, ptP2, REF_TY.GLOB)
End If
EgtDraw()
@@ -1946,9 +1987,96 @@ Public Class Controller
Dim nId As Integer = EgtGetFirstInGroup(m_Scene.GetDragGroup())
If nId = GDB_ID.NULL Then
' creo la linea di direzione
EgtCreateCurveLinePVL(m_Scene.GetDragGroup(), m_ptP1, m_vtCont, m_dLast, REF_TY.GLOB)
EgtCreateCurveLinePVL(m_Scene.GetDragGroup(), m_ptP1, m_vtLast, m_dLast, REF_TY.GLOB)
Else
Dim ptP2 As Point3d = m_ptP1 + m_vtCont * m_dLast
Dim ptP2 As Point3d = m_ptP1 + m_vtLast * m_dLast
EgtModifyCurveEndPoint(nId, ptP2)
End If
EgtDraw()
End If
End Sub
Private Function ProcessLinePVL() 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 primo punto per Line2P
m_Scene.SetStatusSelPoint(True)
m_nStep = 1
' abilito dialogo
RaiseEvent PrepareInputBox("LINE PVL", "Insert Start Point", "", False, False)
m_nInpType = IBT.TY_POINT3D
SetInputBoxPoint3d(m_ptCont)
Case 1
m_ptP1 = m_ptLast
m_vtLast = m_vtCont
m_dAux = LEN_STD
' posso prendere punto per definire direzione, ma non prendo direzione notevole
m_Scene.SetStatusSelPoint(False)
m_nStep = 2
m_Scene.DisableDrag()
RaiseEvent PrepareInputBox("LINE PVL", "Insert Direction Vector", "", False, True)
m_nInpType = IBT.TY_VECTOR3D
SetInputBoxVector3d(m_vtLast)
DragLinePVL()
Case 2
m_dLast = m_dAux
m_nStep = 3
m_Scene.DisableDrag()
EgtUnselectableRemove(m_Scene.GetDragGroup())
RaiseEvent PrepareInputBox("LINE PVL", "Insert Length", "", False, True)
m_nInpType = IBT.TY_LENGTH
SetInputBoxDouble(m_dLast)
DragLinePVL()
Case 3
' reset scena
m_Scene.ResetStatus(False)
' creo la linea (i punti sono in globale)
EnableCommandLog()
Dim nId As Integer = EgtCreateCurveLinePVL(GetCurrLayer(), m_ptP1.Loc(GDB_ID.GRID),
m_vtLast.Loc(GDB_ID.GRID), m_dLast, REF_TY.GRID)
DisableCommandLog()
If nId <> GDB_ID.NULL Then
m_ptCont = m_ptLast
m_vtCont = (m_ptLast - m_ptP1)
m_vtCont.Normalize()
End If
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 DragLinePVL()
If m_nStep = 2 Then ' inserimento direzione
' durante la creazione di oggetti il gruppo di Drag ha riferimento globale
Dim nId As Integer = EgtGetFirstInGroup(m_Scene.GetDragGroup())
If nId = GDB_ID.NULL Then
' creo la linea di direzione
EgtCreateCurveLinePVL(m_Scene.GetDragGroup(), m_ptP1, m_vtLast, m_dAux, REF_TY.GLOB)
Else
m_vtLast.Normalize()
Dim ptP2 As Point3d = m_ptP1 + m_vtLast * m_dAux
EgtModifyCurveEndPoint(nId, ptP2, REF_TY.GLOB)
End If
EgtDraw()
ElseIf m_nStep = 3 Then ' inserimento lunghezza
' durante la creazione di oggetti il gruppo di Drag ha riferimento globale
Dim nId As Integer = EgtGetFirstInGroup(m_Scene.GetDragGroup())
If nId = GDB_ID.NULL Then
' creo la linea di direzione
EgtCreateCurveLinePVL(m_Scene.GetDragGroup(), m_ptP1, m_vtLast, m_dLast, REF_TY.GLOB)
Else
m_vtLast.Normalize()
Dim ptP2 As Point3d = m_ptP1 + m_vtLast * m_dLast
EgtModifyCurveEndPoint(nId, ptP2)
End If
EgtDraw()
@@ -2233,13 +2361,14 @@ Public Class Controller
SetInputBoxPoint3d(m_ptCont)
Case 1
m_ptP1 = m_ptLast
m_vtLast = m_vtCont
m_dAux = LEN_STD
m_Scene.SetStatusSelPoint(False)
m_nStep = 2
m_Scene.DisableDrag()
RaiseEvent PrepareInputBox("ARC PDP", "Insert Direction", "", False, True)
m_nInpType = IBT.TY_DIRECTION
m_dLast = GridAngFromGlobDir(m_vtCont)
m_dLast = GridAngFromGlobDir(m_vtLast)
SetInputBoxDouble(m_dLast)
DragArcPDP()
Case 2
@@ -2251,11 +2380,11 @@ Public Class Controller
' reset scena
m_Scene.ResetStatus(False)
' determino il versore direzione iniziale
Dim vtDirS As Vector3d = GlobDirFromGridAng(m_dLast)
m_vtLast = GlobDirFromGridAng(m_dLast)
' creo l'arco (i punti sono in globale)
EnableCommandLog()
Dim nId = EgtCreateCurveArc2PVN(GetCurrLayer(), m_ptP1.Loc(GDB_ID.GRID), m_ptLast.Loc(GDB_ID.GRID),
vtDirS.Loc(GDB_ID.GRID), Vector3d.Z_AX, REF_TY.GRID)
m_vtLast.Loc(GDB_ID.GRID), Vector3d.Z_AX, REF_TY.GRID)
DisableCommandLog()
If nId <> GDB_ID.NULL Then
m_ptCont = m_ptLast
@@ -2314,6 +2443,102 @@ Public Class Controller
End If
End Sub
Private Function ProcessArcPVP() 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 primo punto per Arc3P
m_Scene.SetStatusSelPoint(True)
m_nStep = 1
' abilito dialogo
RaiseEvent PrepareInputBox("ARC PVP", "Insert Start Point", "", False, False)
m_nInpType = IBT.TY_POINT3D
SetInputBoxPoint3d(m_ptCont)
Case 1
m_ptP1 = m_ptLast
m_vtLast = m_vtCont
m_dAux = LEN_STD
m_Scene.SetStatusSelPoint(False)
m_nStep = 2
m_Scene.DisableDrag()
RaiseEvent PrepareInputBox("ARC PVP", "Insert Direction Vector", "", False, True)
m_nInpType = IBT.TY_VECTOR3D
SetInputBoxVector3d(m_vtLast)
DragArcPVP()
Case 2
m_nStep = 3
m_Scene.EnableDrag()
RaiseEvent PrepareInputBox("ARC PVP", "Insert End Point", "", False, True)
m_nInpType = IBT.TY_POINT3D
Case 3
' reset scena
m_Scene.ResetStatus(False)
' versore normale al piano dell'arco
Dim vtNorm As Vector3d = m_vtLast ^ (m_ptLast - m_ptP1)
If vtNorm.Normalize() Then
If (vtNorm * EgtGetGridVersZ()) < 0 Then
vtNorm *= -1
End If
Else
vtNorm = EgtGetGridVersZ()
End If
' creo l'arco (i punti sono in globale)
EnableCommandLog()
Dim nId = EgtCreateCurveArc2PVN(GetCurrLayer(), m_ptP1.Loc(GDB_ID.GRID), m_ptLast.Loc(GDB_ID.GRID),
m_vtLast.Loc(GDB_ID.GRID), vtNorm.Loc(GDB_ID.GRID), REF_TY.GRID)
DisableCommandLog()
If nId <> GDB_ID.NULL Then
m_ptCont = m_ptLast
Dim VtV As Vector3d
EgtEndVector(nId, VtV)
m_vtCont = VtV.Glob(GetCurrLayer())
End If
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 DragArcPVP()
If m_nStep = 2 Then
' durante la creazione di oggetti il gruppo di Drag ha riferimento globale
Dim nId As Integer = EgtGetFirstInGroup(m_Scene.GetDragGroup())
If nId = GDB_ID.NULL Then
' creo la linea di direzione
EgtCreateCurveLinePVL(m_Scene.GetDragGroup(), m_ptP1, m_vtLast, m_dAux, REF_TY.GLOB)
Else
m_vtLast.Normalize()
Dim ptP2 As Point3d = m_ptP1 + m_vtLast * m_dAux
EgtModifyCurveEndPoint(nId, ptP2, REF_TY.GLOB)
End If
EgtDraw()
ElseIf m_nStep = 3 Then
' svuoto il gruppo di drag
EgtEmptyGroup(m_Scene.GetDragGroup())
' durante la creazione di oggetti il gruppo di Drag ha riferimento globale
' arco sempre da ricreare (può cambiare la normale al suo piano)
Dim vtNorm As Vector3d = m_vtLast ^ (m_ptLast - m_ptP1)
If vtNorm.Normalize() Then
If (vtNorm * EgtGetGridVersZ()) < 0 Then
vtNorm *= -1
End If
Else
vtNorm = EgtGetGridVersZ()
End If
' creo l'arco (i punti sono in globale), in alcuni casi particolari crea una retta
EgtCreateCurveArc2PVN(m_Scene.GetDragGroup(), m_ptP1, m_ptLast, m_vtLast, vtNorm, REF_TY.GLOB)
EgtDraw()
End If
End Sub
Private Function ProcessRectangle2P() As Boolean
Select Case m_nStep
Case 0
@@ -2844,7 +3069,6 @@ Public Class Controller
EgtCreateSurfTriMeshByRevolve(m_Scene.GetDragGroup(), EgtGetLastSelectedObj(),
m_ptP1, vtAx, m_bLast, EPS_STM_DRAG, REF_TY.GLOB)
EgtDraw()
EgtDraw()
End If
End Sub
+13 -5
View File
@@ -1562,6 +1562,13 @@ Public Function EgtCenterPoint(ByVal nId As Integer, ByRef PtP As Point3d) As Bo
Return EgtCenterPoint(nId, nId, PtP)
End Function
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
Public Function EgtCentroid(ByVal nId As Integer, ByVal nRefId As Integer, ByRef PtP As Point3d) As Boolean
End Function
Public Function EgtCentroid(ByVal nId As Integer, ByRef PtP As Point3d) As Boolean
Return EgtCentroid(nId, nId, PtP)
End Function
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
Public Function EgtAtParamPoint(ByVal nId As Integer, ByVal dU As Double, ByVal nRefId As Integer, ByRef PtP As Point3d) As Boolean
End Function
@@ -2166,11 +2173,12 @@ Public Enum SP As Integer
PT_END = 3
PT_MID = 4
CENTER = 5
PT_NEAR = 6
PT_INTERS = 7
PT_TANGENT = 8
PT_PERPENDICULAR = 9
PT_MINDIST = 10
CENTROID = 6
PT_NEAR = 7
PT_INTERS = 8
PT_TANGENT = 9
PT_PERPENDICULAR = 10
PT_MINDIST = 11
End Enum
'Costanti : TIPO SELECTED POINT
Public Enum SEP As Integer
+15 -15
View File
@@ -882,7 +882,7 @@
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAC4
DQAAAk1TRnQBSQFMAgEBDgEAAUgBDwFIAQ8BEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
DQAAAk1TRnQBSQFMAgEBDgEAAVgBDwFYAQ8BEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
AwABQAMAAUADAAEBAQABCAYAARAYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA
AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5
AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA
@@ -951,7 +951,7 @@
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAADW
CAAAAk1TRnQBSQFMAgEBAgEAAWgBBgFoAQYBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
CAAAAk1TRnQBSQFMAgEBAgEAAXgBBgF4AQYBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
AwABQAMAARADAAEBAQABCAYAAQQYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA
AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5
AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA
@@ -1039,23 +1039,23 @@
<data name="btnLinePDL.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
xAAADsQBlSsOGwAAAAd0SU1FB94LFAgmBIbrMKMAAAEJSURBVFhHzZJBDoIwEEW79U5cwoUX9GpuTDxE
5TcODp3fsRRaNHkRHkPfmBhijKdCZS2vcHnksDkPKjcTbtfzFvjEl28240BlNSqO+7ELZHEwbgESZ8yf
aQYXifw5MOInjXGQzwAjXHbEQT4HjCiyMz4z0XkmDZ3igMoVHePAiBST+0IczqM2DozAAena+eU6xqiN
AyNwgBfXIIKYjoPaODBCDmmNp3fJfAkjag5kcX2fz3tQ6VGKw3dfwIvjeZcFJCqU4uDwBXB4ityfCS/e
CpWCjusFjooDKoV8gYX0Gn9nK1QK/7DA6j8gcXg23wKVmmWJL4fFAZUjoXIkVI6EypFQORIqxxHDG6PK
sKUdv+zYAAAAAElFTkSuQmCC
xAAADsQBlSsOGwAAAAd0SU1FB98CFBEwL+N0VR8AAAEzSURBVFhHxZNBTgMxDEWz5U69BAvu07NwNTZI
HCL4h/HIiX+M6ZDU0tNMfpw8t2pLrfWp0DDLV3n5GGF9ETT8M+Xt9XkDHPLzyXoCaJjGyLHeO8AgB/sG
IHKG1E3AS2PcBy74lQflYOwBLgi5IAdjH3DBlIty4Ub7WehYJAc07FgoBy5oMl1P5MgisnLgAlzQ3oNP
bmWMrBy4ABdEcgskkFk5yMqBC/SSR+XtLOmf4YLMhUxu12N/BA0jZnLkyweI5NhfMoBKlZkcZAewZ9ym
BY1CLe+fjUie5bjzrmdpkyJ1yu0ALb8gP97bELRRkeoGOGlz8zMRUpDaAe60UZH61wEApN3Tbo5Idb8B
lSNn/Rmk8gMAqe5fgDXryyL189VnB1gNDXdCw53QcCc03AkN91HLN055gAr2pAmrAAAAAElFTkSuQmCC
</value>
</data>
<data name="btnArcPDP.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
xAAADsQBlSsOGwAAAAd0SU1FB94LEhIjLPrzFWYAAAEBSURBVFhH7ZVRDsIgEET59U49rVfzx8RDIEOy
7XZ3aFS22x9JXpQHMoMaLbXWS6EyEypnaWNp4ImwsH2AyhkQ1kPvz42DEk4Ir3J7MG9ZAzU6XJWwrwVO
AIQLbB204YOFmQI6fFSijXE4+LUACxf65uPg/hnjsc9NuKxbnAA2GKwHe9zBcGqd7hGotAVwgDpMGB76
DVTqAggywWHhgEpT4LRwQOVBgdBwQOWgQHg4oJIVsHuioJIUOOX2gEpbwK5HQqUpcNrtAZW6AFuPxIt2
Y10g9R1AWOPjP5II9hMbrkrofZHsJ/8CV38HupASG/m/A5lQmQmVmVCZCZWZUJlHLW9mibhNTtEhqQAA
AABJRU5ErkJggg==
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAAHdElNRQffAhUIECU9bmc5AAABJElEQVRYR8WVUQ6CMBBE
+fVOHo6zeDV/TDxE7VQWl9kpUWhrkxdwdtmZIoQppfRXpDgSKZ4lr2sGJ8ZV9QEpngFmxfT2+LATIgjG
c7rclc6shh5v7kLwtSAIAOaGqoO8orFxJoA3r4XIq24OjgZQ5kZp3jcu/zGO5TeZW50JAmBjsA6OhMHQ
XF32GFLkABjghhnVob8gRR8ARmTczBxIkQJ0MwdS3AnQ1BxIsRKguTmQogrAPa2QogjQZfdAihyA6y2R
IgXotnsgRR9A1VsShbxjH6DHHfAzQyHz9YfkCIvHbDO5uDV3IXzfUWCamZfzEoIbegeAqQ8wc0PXAACm
myMVRzwD9QBLgT+/Td+CvN63vhZgNFIciRRHIsWRSHEkUhxHml4ROIeysZlykAAAAABJRU5ErkJggg==
</value>
</data>
<data name="btnCircleCP.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+22 -12
View File
@@ -850,7 +850,11 @@ Public Class Form1
End Sub
Private Sub btnLinePDL_Click(sender As System.Object, e As System.EventArgs) Handles btnLinePDL.Click
m_Controller.ExecuteCommand(CMD.LINEPDL)
If (ModifierKeys And Keys.Shift) <> Keys.Shift Then
m_Controller.ExecuteCommand(CMD.LINEPDL)
Else
m_Controller.ExecuteCommand(CMD.LINEPVL)
End If
End Sub
Private Sub btnCircleCP_Click(sender As System.Object, e As System.EventArgs) Handles btnCircleCP.Click
@@ -870,7 +874,11 @@ Public Class Form1
End Sub
Private Sub btnArcPDP_Click(sender As System.Object, e As System.EventArgs) Handles btnArcPDP.Click
m_Controller.ExecuteCommand(CMD.ARCPDP)
If (ModifierKeys And Keys.Shift) <> Keys.Shift Then
m_Controller.ExecuteCommand(CMD.ARCPDP)
Else
m_Controller.ExecuteCommand(CMD.ARCPVP)
End If
End Sub
Private Sub btnRectangle2P_Click(sender As System.Object, e As System.EventArgs) Handles btnRectangle2P.Click
@@ -1478,25 +1486,27 @@ Public Class Form1
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"
tsStatusSnapPointType.Text = EgtMsg(1102) 'Sketch Point
Case SP.PT_GRID
tsStatusSnapPointType.Text = "Grid Point"
tsStatusSnapPointType.Text = EgtMsg(1104) 'Grid Point
Case SP.PT_END
tsStatusSnapPointType.Text = "End Point"
tsStatusSnapPointType.Text = EgtMsg(1106) 'End Point
Case SP.PT_MID
tsStatusSnapPointType.Text = "Mid Point"
tsStatusSnapPointType.Text = EgtMsg(1108) 'Mid Point
Case SP.CENTER
tsStatusSnapPointType.Text = "Center"
tsStatusSnapPointType.Text = EgtMsg(1110) 'Center
Case SP.CENTROID
tsStatusSnapPointType.Text = EgtMsg(1112) 'Centroid
Case SP.PT_NEAR
tsStatusSnapPointType.Text = "Near Point"
tsStatusSnapPointType.Text = EgtMsg(1114) 'Near Point"
Case SP.PT_INTERS
tsStatusSnapPointType.Text = "Inters Point"
tsStatusSnapPointType.Text = EgtMsg(1116) 'Inters Point
Case SP.PT_TANGENT
tsStatusSnapPointType.Text = "Tang Point"
tsStatusSnapPointType.Text = EgtMsg(1118) 'Tang Point
Case SP.PT_PERPENDICULAR
tsStatusSnapPointType.Text = "Perp Point"
tsStatusSnapPointType.Text = EgtMsg(1120) 'Perp Point
Case SP.PT_MINDIST
tsStatusSnapPointType.Text = "MinDist Point"
tsStatusSnapPointType.Text = EgtMsg(1122) 'MinDist Point"
Case Else
tsStatusSnapPointType.Text = "---"
End Select
+2 -2
View File
@@ -46,5 +46,5 @@ Imports System.Runtime.InteropServices
' utilizzando l'asterisco (*) come descritto di seguito:
' <Assembly: AssemblyVersion("1.0.*")>
<Assembly: AssemblyVersion("1.6.2.5")>
<Assembly: AssemblyFileVersion("1.6.2.5")>
<Assembly: AssemblyVersion("1.6.2.6")>
<Assembly: AssemblyFileVersion("1.6.2.6")>
Binary file not shown.

Before

Width:  |  Height:  |  Size: 365 B

After

Width:  |  Height:  |  Size: 405 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 435 B

After

Width:  |  Height:  |  Size: 473 B

+10 -2
View File
@@ -43,16 +43,17 @@ Partial Class Scene
Me.cmdMinDistPoint = New System.Windows.Forms.ToolStripMenuItem()
Me.sepSelPnt1 = New System.Windows.Forms.ToolStripSeparator()
Me.cmdStopDrag = New System.Windows.Forms.ToolStripMenuItem()
Me.cmdCentroid = New System.Windows.Forms.ToolStripMenuItem()
Me.MenuScene.SuspendLayout()
Me.SuspendLayout()
'
'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.cmdTangentPoint, Me.cmdPerpendicularPoint, Me.cmdMinDistPoint, 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.cmdCentroid, 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(179, 412)
Me.MenuScene.Size = New System.Drawing.Size(179, 434)
'
'cmdSelectAll
'
@@ -166,6 +167,12 @@ Partial Class Scene
Me.cmdStopDrag.Size = New System.Drawing.Size(178, 22)
Me.cmdStopDrag.Text = "Drag Off"
'
'cmdCentroid
'
Me.cmdCentroid.Name = "cmdCentroid"
Me.cmdCentroid.Size = New System.Drawing.Size(178, 22)
Me.cmdCentroid.Text = "Centroid"
'
'Scene
'
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
@@ -196,5 +203,6 @@ End Sub
Friend WithEvents cmdTangentPoint As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents cmdPerpendicularPoint As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents cmdMinDistPoint As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents cmdCentroid As System.Windows.Forms.ToolStripMenuItem
End Class
+26 -2
View File
@@ -72,7 +72,6 @@ Public Class Scene
m_nStatus = ST.SEL
m_nOldStatus = ST.SEL
m_nSnapType = SP.PT_GRID
RaiseEvent OnChangedSnapPointType(Me, m_nSnapType)
m_bAlsoSelDir = False
m_PrevPoint = Point.Empty
m_bGridCursorPos = False
@@ -143,6 +142,7 @@ Public Class Scene
EgtSetGeoLineAttribs(m_DstLnColor)
EgtSetGeoTriaAttribs(m_DstLnColor)
EgtInitTscExec()
RaiseEvent OnChangedSnapPointType(Me, m_nSnapType)
End Sub
Public Function GetCtx() As Integer
@@ -277,7 +277,7 @@ Public Class Scene
Dim dZ As Double = ptSel.z - m_ptPrev.z
Dim dDist As Double = Sqrt(dX * dX + dY * dY + dZ * dZ)
Dim sOut As New System.Text.StringBuilder
sOut.Append("Dist=")
sOut.Append(EgtMsg(1301)) ' Dist=
sOut.Append(dDist.ToString("F4", CultureInfo.InvariantCulture))
sOut.Append(" dX=")
sOut.Append(dX.ToString("F4", CultureInfo.InvariantCulture))
@@ -681,16 +681,21 @@ Public Class Scene
MenuScene.Visible = True
For Each i As ToolStripItem In MenuScene.Items
If i.Name = "cmdSelectAll" Then
i.Text = EgtMsg(1001) ' Select All
i.Visible = True
ElseIf i.Name = "cmdDeselectAll" Then
i.Text = EgtMsg(1003) ' Deselect All
i.Visible = True
ElseIf i.Name = "sepSel1" Then
i.Visible = True
ElseIf i.Name = "cmdWinSelect" Then
i.Text = EgtMsg(1005) ' Select Window
i.Visible = True
ElseIf i.Name = "cmdSelectPart" Then
i.Text = EgtMsg(1007) ' Select Part
i.Visible = True
ElseIf i.Name = "cmdSelectLayer" Then
i.Text = EgtMsg(1009) ' Select Layer
i.Visible = True
Else
i.Visible = False
@@ -704,27 +709,39 @@ Public Class Scene
For Each i As ToolStripItem In MenuScene.Items
Select Case i.Name
Case "cmdSketchPoint"
i.Text = EgtMsg(1101) ' Sketch Point
i.Visible = True
DirectCast(i, ToolStripMenuItem).Checked = (m_nSnapType = SP.PT_SKETCH)
Case "cmdGridPoint"
i.Text = EgtMsg(1103) ' Grid Point
i.Visible = True
DirectCast(i, ToolStripMenuItem).Checked = (m_nSnapType = SP.PT_GRID)
Case "cmdEndPoint"
i.Text = EgtMsg(1105) ' End Point
i.Visible = True
DirectCast(i, ToolStripMenuItem).Checked = (m_nSnapType = SP.PT_END)
Case "cmdMidPoint"
i.Text = EgtMsg(1107) ' Mid Point
i.Visible = True
DirectCast(i, ToolStripMenuItem).Checked = (m_nSnapType = SP.PT_MID)
Case "cmdCenterPoint"
i.Text = EgtMsg(1109) ' Center Point
i.Visible = True
DirectCast(i, ToolStripMenuItem).Checked = (m_nSnapType = SP.CENTER)
Case "cmdCentroid"
i.Text = EgtMsg(1111) ' Centroid
i.Visible = True
DirectCast(i, ToolStripMenuItem).Checked = (m_nSnapType = SP.CENTROID)
Case "cmdNearPoint"
i.Text = EgtMsg(1113) ' Near Point
i.Visible = True
DirectCast(i, ToolStripMenuItem).Checked = (m_nSnapType = SP.PT_NEAR)
Case "cmdIntersectionPoint"
i.Text = EgtMsg(1115) ' Intersection Point
i.Visible = True
DirectCast(i, ToolStripMenuItem).Checked = (m_nSnapType = SP.PT_INTERS)
Case "cmdTangentPoint"
i.Text = EgtMsg(1117) ' Tangent Point
If m_bTangentPointOn Then
i.Visible = True
DirectCast(i, ToolStripMenuItem).Checked = (m_nSnapType = SP.PT_TANGENT)
@@ -732,6 +749,7 @@ Public Class Scene
i.Visible = False
End If
Case "cmdPerpendicularPoint"
i.Text = EgtMsg(1119) ' Perpendicular Point
If m_bPerpendicularPointOn Then
i.Visible = True
DirectCast(i, ToolStripMenuItem).Checked = (m_nSnapType = SP.PT_PERPENDICULAR)
@@ -739,6 +757,7 @@ Public Class Scene
i.Visible = False
End If
Case "cmdMinDistPoint"
i.Text = EgtMsg(1121) ' Min Dist Point
If m_bMinDistPointOn Then
i.Visible = True
DirectCast(i, ToolStripMenuItem).Checked = (m_nSnapType = SP.PT_MINDIST)
@@ -748,6 +767,7 @@ Public Class Scene
Case "sepSelPnt1"
i.Visible = (m_nStatus <> ST.GETDIST And m_nStatus <> ST.GETDIST2)
Case "cmdStopDrag"
i.Text = EgtMsg(1201) ' Drag Off
i.Visible = (m_nStatus <> ST.GETDIST And m_nStatus <> ST.GETDIST2)
Case Else
i.Visible = False
@@ -757,6 +777,7 @@ Public Class Scene
Else
For Each i As ToolStripItem In MenuScene.Items
If i.Name = "cmdRestartDrag" Then
i.Text = EgtMsg(1203) ' Drag On
i.Visible = True
Else
i.Visible = False
@@ -802,6 +823,9 @@ Public Class Scene
ElseIf e.ClickedItem.Name = "cmdCenterPoint" Then
m_nSnapType = SP.CENTER
RaiseEvent OnChangedSnapPointType(Me, m_nSnapType)
ElseIf e.ClickedItem.Name = "cmdCentroid" Then
m_nSnapType = SP.CENTROID
RaiseEvent OnChangedSnapPointType(Me, m_nSnapType)
ElseIf e.ClickedItem.Name = "cmdNearPoint" Then
m_nSnapType = SP.PT_NEAR
RaiseEvent OnChangedSnapPointType(Me, m_nSnapType)