TestEIn 1.6d9 :

- distanza ora viene espressa in griglia se abilitata visualizz.coord. griglia
- aggiunto disegno frame con Drag
- aggiunto drag a disegno punto
- griglia anche da oggetti punto e frame
- corretto calcolo punto continuazione alla fine di LinePDL e LinePVL.
This commit is contained in:
Dario Sassi
2015-04-28 08:42:49 +00:00
parent f767cdfa3a
commit dcdee3c092
8 changed files with 151 additions and 46 deletions
+92 -8
View File
@@ -71,6 +71,7 @@ Public Class Controller
SETNAME
SETINFO
POINT
FRAME
LINE2P
LINEPDL
LINEPVL
@@ -908,6 +909,9 @@ Public Class Controller
' Point
Case CMD.POINT
Return ProcessPoint()
' Point
Case CMD.FRAME
Return ProcessFrame()
' Line2P
Case CMD.LINE2P
Return ProcessLine2P()
@@ -1058,6 +1062,10 @@ Public Class Controller
DragGridRotate3D()
Case CMD.COPYPARTLAYEROBJ
DragCopyPartLayerObj()
Case CMD.POINT
DragPoint()
Case CMD.FRAME
DragFrame()
Case CMD.LINE2P
DragLine2P()
Case CMD.LINEPDL
@@ -1430,6 +1438,24 @@ Public Class Controller
End If
Dim nId As Integer = EgtGetLastSelectedObj()
Select Case EgtGetType(nId)
Case GDB_TY.GEO_POINT
Dim ptOrig As Point3d
If Not EgtStartPoint(nId, GDB_ID.ROOT, ptOrig) Then
Return False
End If
Dim frNew As Frame3d = EgtGetGridFrame()
frNew.ChangeOrigin(ptOrig)
EnableCommandLog()
EgtSetGridFrame(frNew)
DisableCommandLog()
Case GDB_TY.GEO_FRAME
Dim frNew As New Frame3d
If Not EgtFrame(nId, GDB_ID.ROOT, frNew) Then
Return False
End If
EnableCommandLog()
EgtSetGridFrame(frNew)
DisableCommandLog()
Case GDB_TY.CRV_ARC
Dim vtZ As Vector3d
If Not EgtCurveExtrusion(nId, vtZ) OrElse vtZ.IsSmall() Then
@@ -1933,16 +1959,16 @@ Public Class Controller
Private Function ProcessPoint() As Boolean
Select Case m_nStep
Case 0
' deve esistere un gruppo corrente
If GetCurrLayer() = GDB_ID.NULL Then
' 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
' non serve il gruppo di drag
m_Scene.EnableDrag()
' imposto stato a primo punto per point
m_Scene.SetStatusSelPoint()
m_nStep = 1
' abilito dialogo
RaiseEvent PrepareInputBox("POINT", "Insert Point", "", False, False)
RaiseEvent PrepareInputBox("POINT", "Insert Point", "", False, True)
m_nInpType = IBT.TY_POINT3D
SetInputBoxPoint3d(m_ptCont)
Case 1
@@ -1964,6 +1990,64 @@ Public Class Controller
Return True
End Function
Private Sub DragPoint()
' il gruppo di Drag ha riferimento globale
If m_nStep = 1 Then
' svuoto il gruppo di drag
EgtEmptyGroup(m_Scene.GetDragGroup())
' creo il punto
EgtCreateGeoPoint(m_Scene.GetDragGroup(), m_ptLast, GDB_RT.GLOB)
EgtDraw()
End If
End Sub
Private Function ProcessFrame() 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
m_Scene.EnableDrag()
' imposto stato a primo punto per point
m_Scene.SetStatusSelPoint()
m_nStep = 1
' abilito dialogo
RaiseEvent PrepareInputBox("FRAME", "Insert Origin", "", False, True)
m_nInpType = IBT.TY_POINT3D
SetInputBoxPoint3d(m_ptCont)
Case 1
' creo il frame allineato con grid (i dati sono in globale)
EnableCommandLog()
If EgtCreateGeoFrame(GetCurrLayer(), New Frame3d(m_ptLast.Loc(GDB_ID.GRID)), GDB_RT.GRID) <> GDB_ID.NULL Then
m_ptCont = m_ptLast
End If
DisableCommandLog()
' reset stato scena
m_Scene.ResetStatus()
' aggiorno stato
m_nStep = 0
RaiseEvent UpdateUI(Me, True)
Case Else
m_nStep = 0
Return False
End Select
Return True
End Function
Private Sub DragFrame()
' il gruppo di Drag ha riferimento globale
If m_nStep = 1 Then
' svuoto il gruppo di drag
EgtEmptyGroup(m_Scene.GetDragGroup())
' creo il frame
Dim frNew As Frame3d = EgtGetGridFrame()
frNew.ChangeOrigin(m_ptLast)
EgtCreateGeoFrame(m_Scene.GetDragGroup(), frNew, GDB_RT.GLOB)
EgtDraw()
End If
End Sub
Private Function ProcessLine2P() As Boolean
Select Case m_nStep
Case 0
@@ -2119,9 +2203,9 @@ Public Class Controller
m_vtLast.Loc(GDB_ID.GRID), m_dLast, GDB_RT.GRID)
DisableCommandLog()
If nId <> GDB_ID.NULL Then
m_ptCont = m_ptLast
m_vtCont = (m_ptLast - m_ptP1)
m_vtCont = m_vtLast
m_vtCont.Normalize()
m_ptCont = m_ptP1 + m_vtCont * m_dLast
End If
EgtDraw()
' aggiorno stato
@@ -2210,9 +2294,9 @@ Public Class Controller
m_vtLast.Loc(GDB_ID.GRID), m_dLast, GDB_RT.GRID)
DisableCommandLog()
If nId <> GDB_ID.NULL Then
m_ptCont = m_ptLast
m_vtCont = (m_ptLast - m_ptP1)
m_vtCont = m_vtLast
m_vtCont.Normalize()
m_ptCont = m_ptP1 + m_vtCont * m_dLast
End If
EgtDraw()
' aggiorno stato
+17
View File
@@ -1744,6 +1744,23 @@ Public Function EgtAtParamVector(ByVal nId As Integer, ByVal dU As Double, ByRef
Return EgtAtParamVector(nId, dU, nId, VtV)
End Function
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
Private Function EgtFrame(ByVal nId As Integer, ByVal nRefId As Integer,
ByRef PtOrig As Point3d, ByRef VtX As Vector3d, ByRef VtY As Vector3d, ByRef VtZ As Vector3d) As Boolean
End Function
Public Function EgtFrame(ByVal nId As Integer, ByVal nRefId As Integer, ByRef frFrame As Frame3d) As Boolean
Dim PtOrig As Point3d
Dim VtDirX, VtDirY, VtDirZ As Vector3d
If Not EgtFrame(nId, nRefId, PtOrig, VtDirX, VtDirY, VtDirZ) Then
frFrame = Frame3d.GLOB()
Return False
Else
Return frFrame.Setup(PtOrig, VtDirX, VtDirY, VtDirZ)
End If
End Function
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
Public Function EgtCurveLength(ByVal nId As Integer, ByRef dLen As Double) As Boolean
End Function
+19 -19
View File
@@ -108,6 +108,7 @@ Partial Class Form1
Me.btnPoint = New System.Windows.Forms.Button()
Me.btnLine2P = New System.Windows.Forms.Button()
Me.TabConstruct = New System.Windows.Forms.TabPage()
Me.btnExplodeSurf = New System.Windows.Forms.Button()
Me.btnMergeSurf = New System.Windows.Forms.Button()
Me.btnInvertSurf = New System.Windows.Forms.Button()
Me.btnRevolve = New System.Windows.Forms.Button()
@@ -182,7 +183,6 @@ Partial Class Form1
Me.MruSFile6 = New System.Windows.Forms.ToolStripMenuItem()
Me.MruSFile7 = New System.Windows.Forms.ToolStripMenuItem()
Me.MruSFile8 = New System.Windows.Forms.ToolStripMenuItem()
Me.btnExplodeSurf = New System.Windows.Forms.Button()
Me.TableLayoutPanel1.SuspendLayout()
Me.TabControl1.SuspendLayout()
Me.TabFile.SuspendLayout()
@@ -1564,6 +1564,24 @@ Partial Class Form1
Me.TabConstruct.TabIndex = 4
Me.TabConstruct.Text = "Construct"
'
'btnExplodeSurf
'
Me.btnExplodeSurf.FlatAppearance.BorderColor = System.Drawing.SystemColors.Control
Me.btnExplodeSurf.FlatAppearance.BorderSize = 0
Me.btnExplodeSurf.FlatAppearance.MouseDownBackColor = System.Drawing.SystemColors.Control
Me.btnExplodeSurf.FlatAppearance.MouseOverBackColor = System.Drawing.SystemColors.GradientInactiveCaption
Me.btnExplodeSurf.FlatStyle = System.Windows.Forms.FlatStyle.Flat
Me.btnExplodeSurf.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
Me.btnExplodeSurf.Image = CType(resources.GetObject("btnExplodeSurf.Image"), System.Drawing.Image)
Me.btnExplodeSurf.ImageAlign = System.Drawing.ContentAlignment.TopCenter
Me.btnExplodeSurf.Location = New System.Drawing.Point(0, 288)
Me.btnExplodeSurf.Name = "btnExplodeSurf"
Me.btnExplodeSurf.Size = New System.Drawing.Size(56, 48)
Me.btnExplodeSurf.TabIndex = 44
Me.btnExplodeSurf.Text = "Explode"
Me.btnExplodeSurf.TextAlign = System.Drawing.ContentAlignment.BottomCenter
Me.btnExplodeSurf.UseVisualStyleBackColor = False
'
'btnMergeSurf
'
Me.btnMergeSurf.FlatAppearance.BorderColor = System.Drawing.SystemColors.Control
@@ -2351,24 +2369,6 @@ Partial Class Form1
Me.MruSFile8.Size = New System.Drawing.Size(160, 22)
Me.MruSFile8.Text = "File8"
'
'btnExplodeSurf
'
Me.btnExplodeSurf.FlatAppearance.BorderColor = System.Drawing.SystemColors.Control
Me.btnExplodeSurf.FlatAppearance.BorderSize = 0
Me.btnExplodeSurf.FlatAppearance.MouseDownBackColor = System.Drawing.SystemColors.Control
Me.btnExplodeSurf.FlatAppearance.MouseOverBackColor = System.Drawing.SystemColors.GradientInactiveCaption
Me.btnExplodeSurf.FlatStyle = System.Windows.Forms.FlatStyle.Flat
Me.btnExplodeSurf.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
Me.btnExplodeSurf.Image = CType(resources.GetObject("btnExplodeSurf.Image"), System.Drawing.Image)
Me.btnExplodeSurf.ImageAlign = System.Drawing.ContentAlignment.TopCenter
Me.btnExplodeSurf.Location = New System.Drawing.Point(0, 288)
Me.btnExplodeSurf.Name = "btnExplodeSurf"
Me.btnExplodeSurf.Size = New System.Drawing.Size(56, 48)
Me.btnExplodeSurf.TabIndex = 44
Me.btnExplodeSurf.Text = "Explode"
Me.btnExplodeSurf.TextAlign = System.Drawing.ContentAlignment.BottomCenter
Me.btnExplodeSurf.UseVisualStyleBackColor = False
'
'Form1
'
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
+7 -7
View File
@@ -883,7 +883,7 @@
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAC2
DQAAAk1TRnQBSQFMAgEBDgEAAXABEAFwAhABAAEQAQAE/wEJAQAI/wFCAU0BNgEEBgABNgEEAgABKAMA
DQAAAk1TRnQBSQFMAgEBDgEAAXgBEAF4AhABAAEQAQAE/wEJAQAI/wFCAU0BNgEEBgABNgEEAgABKAMA
AUADAAFAAwABAQEAAQgGAAEQGAABgAIAAYADAAKAAQABgAMAAYABAAGAAQACgAIAA8ABAAHAAdwBwAEA
AfABygGmAQABMwUAATMBAAEzAQABMwEAAjMCAAMWAQADHAEAAyIBAAMpAQADVQEAA00BAANCAQADOQEA
AYABfAH/AQACUAH/AQABkwEAAdYBAAH/AewBzAEAAcYB1gHvAQAB1gLnAQABkAGpAa0CAAH/ATMDAAFm
@@ -952,7 +952,7 @@
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAADW
CAAAAk1TRnQBSQFMAgEBAgEAAZABBwGQAQcBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
CAAAAk1TRnQBSQFMAgEBAgEAAZgBBwGYAQcBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
AwABQAMAARADAAEBAQABCAYAAQQYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA
AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5
AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA
@@ -1092,11 +1092,11 @@
</data>
<data name="btnPoint.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
xAAADsQBlSsOGwAAAAd0SU1FB94KFxEsB9kvlzIAAACGSURBVFhH7dPRCYAwDABRB+u0TucWsRW0ogcR
keuPhQdyFJKPOkXEUBhNGE0YTRhNGE0YTRhNGE0Yn6inVO1jV+heBmOmDduGzkv3cgmMmdvw0xLXuxmM
mX+Besa+geZYovP+gi9hNGE0YTRhNGE0YTRhNGE0YTRhNGE0YTRhNGE0YfTEtAKYv7U6xFtRwAAAAABJ
RU5ErkJggg==
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAAHdElNRQffBBwHAxGEIS8JAAAAq0lEQVRYR+3TUQqDMBBF
UReWxbkWV9ddxKRN4qgXppTOSz8qHAjXgcyHLjnnqTAqYVTCqIRRCaMSRiWMShiVML6jPKmohy7RnAej
p172vHR7HD5cAqPndrlZ4jrrwej5L1Ceud9ANZY46P6Cb8KohFEJY6Trt3J6Ga1eXqx2idtQlH55O48l
cDhCu9Qu8DrboWh2gdH6QeEnFuhGswMzYFTCqIRRCaMSRp287IDzhJ/eCN+kAAAAAElFTkSuQmCC
</value>
</data>
<data name="btnLine2P.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+5 -1
View File
@@ -902,7 +902,11 @@ Public Class Form1
' --------------------- Commands --------------------------------
Private Sub btnPoint_Click(sender As System.Object, e As System.EventArgs) Handles btnPoint.Click
m_Controller.ExecuteCommand(CMD.POINT)
If (ModifierKeys And Keys.Shift) <> Keys.Shift Then
m_Controller.ExecuteCommand(CMD.POINT)
Else
m_Controller.ExecuteCommand(CMD.FRAME)
End If
End Sub
Private Sub btnLine2P_Click(sender As System.Object, e As System.EventArgs) Handles btnLine2P.Click
+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.4.8")>
<Assembly: AssemblyFileVersion("1.6.4.8")>
<Assembly: AssemblyVersion("1.6.4.9")>
<Assembly: AssemblyFileVersion("1.6.4.9")>
Binary file not shown.

Before

Width:  |  Height:  |  Size: 233 B

After

Width:  |  Height:  |  Size: 269 B

+9 -9
View File
@@ -284,19 +284,19 @@ Public Class Scene
' disegno la linea (coordinate geo globali)
EgtSetGeoLine(m_ptPrev, ptSel)
' calcolo la distanza e il delta e li visualizzo
Dim dX As Double = ptSel.x - m_ptPrev.x
Dim dY As Double = ptSel.y - m_ptPrev.y
Dim dZ As Double = ptSel.z - m_ptPrev.z
Dim dDist As Double = Sqrt(dX * dX + dY * dY + dZ * dZ)
Dim vtDist As Vector3d = ptSel - m_ptPrev
If m_bGridCursorPos Then
vtDist.ToLoc(EgtGetGridFrame())
End If
Dim sOut As New System.Text.StringBuilder
sOut.Append(EgtMsg(1301)) ' Dist=
sOut.Append(dDist.ToString("F4", CultureInfo.InvariantCulture))
sOut.Append(vtDist.Len().ToString("F4", CultureInfo.InvariantCulture))
sOut.Append(" dX=")
sOut.Append(dX.ToString("F4", CultureInfo.InvariantCulture))
sOut.Append(vtDist.x.ToString("F4", CultureInfo.InvariantCulture))
sOut.Append(" dY=")
sOut.Append(dY.ToString("F4", CultureInfo.InvariantCulture))
sOut.Append(vtDist.y.ToString("F4", CultureInfo.InvariantCulture))
sOut.Append(" dZ=")
sOut.Append(dZ.ToString("F4", CultureInfo.InvariantCulture))
sOut.Append(vtDist.z.ToString("F4", CultureInfo.InvariantCulture))
' lancio l'evento per visualizzare la distanza
RaiseEvent OnShowDistance(Me, sOut.ToString())
m_nStatus = ST.GETDIST
@@ -594,7 +594,7 @@ Public Class Scene
Private Sub ShowCursorPos(ByVal WinXY As Point)
' se coord. griglia e non snap a punto in Z
If (m_bGridCursorPos And m_nStatus <> ST.SELPOINTZ) Then
If m_bGridCursorPos And m_nStatus <> ST.SELPOINTZ Then
' calcolo lo snap da utilizzare
Dim nSnap As SP = SP.PT_SKETCH
If m_nStatus = ST.SELPOINT And m_nSnapType = SP.PT_GRID Then