diff --git a/Controller.vb b/Controller.vb index 8be87b4..afe1a61 100644 --- a/Controller.vb +++ b/Controller.vb @@ -3804,7 +3804,7 @@ Public Class Controller EnableCommandLog() Dim nCrvIds(0) As Integer nCrvIds(0) = GDB_ID.SEL - EgtCreateCurveCompoByChain(GetCurrLayer(), 1, nCrvIds, New Point3d, True, REF_TY.GRID) + EgtCreateCurveCompoByChain(GetCurrLayer(), 1, nCrvIds, New Point3d, Not m_bLast, REF_TY.GRID) DisableCommandLog() ' reset stato scena m_Scene.ResetStatus() @@ -3828,13 +3828,15 @@ Public Class Controller Select Case EgtGetType(nId) Case GDB_TY.CRV_COMPO ' separo la curva composita nelle curve componenti - EgtExplodeCurveCompo(nId) + Dim nCount As Integer + Dim nFirstId As Integer = EgtExplodeCurveCompo(nId, nCount) Case GDB_TY.CRV_BEZ ' approssimo la curva di Bezier con archi - EgtExplodeCurveBezier(nId, True, 10 * EPS_SMALL) + Dim nNewId As Integer = EgtExplodeCurveBezier(nId, True, 10 * EPS_SMALL) Case GDB_TY.EXT_TEXT ' esplodo il testo nei suoi contorni - EgtExplodeText(nId) + Dim nCount As Integer + Dim nFirstId As Integer = EgtExplodeText(nId, nCount) End Select ' passo al successivo nId = nNextId diff --git a/EgtInterface.vb b/EgtInterface.vb index 1557896..9b19026 100644 --- a/EgtInterface.vb +++ b/EgtInterface.vb @@ -1102,7 +1102,7 @@ Public Function EgtMirrorText(ByVal nId As Integer, ByVal bOnL As Boolean) As Bo End Function -Public Function EgtExplodeText(ByVal nId As Integer) As Boolean +Public Function EgtExplodeText(ByVal nId As Integer, ByRef nCount As Integer) As Integer End Function @@ -1144,11 +1144,11 @@ Public Function EgtTrimExtendCurveByLen(ByVal nId As Integer, ByVal dLen As Doub End Function -Public Function EgtSplitCurve(ByVal nId As Integer, ByVal nParts As Integer) As Boolean +Public Function EgtSplitCurve(ByVal nId As Integer, ByVal nParts As Integer) As Integer End Function -Public Function EgtSplitCurveAtPoint(ByVal nId As Integer, ByRef PtOn As Point3d, Optional ByVal nRefType As REF_TY = REF_TY.LOC) As Boolean +Public Function EgtSplitCurveAtPoint(ByVal nId As Integer, ByRef PtOn As Point3d, Optional ByVal nRefType As REF_TY = REF_TY.LOC) As Integer End Function @@ -1172,11 +1172,11 @@ Public Function EgtModifyCurveArc3P(ByVal nId As Integer, ByRef PtMid As Point3d End Function -Public Function EgtExplodeCurveCompo(ByVal nId As Integer) As Boolean +Public Function EgtExplodeCurveCompo(ByVal nId As Integer, ByRef nCount As Integer) As Integer End Function -Public Function EgtExplodeCurveBezier(ByVal nId As Integer, ByVal bArcsVsLines As Boolean, ByVal dLinTol As Double) As Boolean +Public Function EgtExplodeCurveBezier(ByVal nId As Integer, ByVal bArcsVsLines As Boolean, ByVal dLinTol As Double) As Integer End Function @@ -2180,7 +2180,7 @@ End Function Private Function EgtFrameToLoc(ByRef PtOrig As Point3d, ByRef VtX As Vector3d, ByRef VtY As Vector3d, ByRef VtZ As Vector3d, - ByRef PtO1 As Point3d, ByRef VtX1 As Vector3d, ByRef VtY1 As Vector3d, ByRef VtZ1 As Vector3d) As Boolean + ByRef PtO1 As Point3d, ByRef VtX1 As Vector3d, ByRef VtY1 As Vector3d, ByRef VtZ1 As Vector3d) As Boolean End Function @@ -2189,6 +2189,22 @@ Private Function EgtFrameLocToLoc(ByRef PtOrig As Point3d, ByRef VtX As Vector3d ByRef PtO2 As Point3d, ByRef VtX2 As Vector3d, ByRef VtY2 As Vector3d, ByRef VtZ2 As Vector3d) As Boolean End Function + +Private Function EgtBBoxToGlob(ByRef PtMin As Point3d, ByRef PtMax As Point3d, + ByRef PtO1 As Point3d, ByRef VtX1 As Vector3d, ByRef VtY1 As Vector3d, ByRef VtZ1 As Vector3d) As Boolean +End Function + + +Private Function EgtBBoxToLoc(ByRef PtMin As Point3d, ByRef PtMax As Point3d, + ByRef PtO1 As Point3d, ByRef VtX1 As Vector3d, ByRef VtY1 As Vector3d, ByRef VtZ1 As Vector3d) As Boolean +End Function + + +Private Function EgtBBoxLocToLoc(ByRef PtMin As Point3d, ByRef PtMax As Point3d, + ByRef PtO1 As Point3d, ByRef VtX1 As Vector3d, ByRef VtY1 As Vector3d, ByRef VtZ1 As Vector3d, + ByRef PtO2 As Point3d, ByRef VtX2 As Vector3d, ByRef VtY2 As Vector3d, ByRef VtZ2 As Vector3d) As Boolean +End Function + '---------- Messages ----------------------------------------------------------- @@ -2208,6 +2224,7 @@ End Function 'Costanti : GEOMETRIA Public Const EPS_SMALL As Double = 0.001 Public Const EPS_ZERO As Double = 0.0000001 +Public Const INFINITO As Double = 10000000000.0 Public Const EPS_STM As Double = 0.05 Public Const EPS_STM_DRAG As Double = 0.5 'Costanti : TIPO DI FILE @@ -2333,9 +2350,9 @@ End Enum Public Enum BBF As Integer STANDARD = 0 ONLY_VISIBLE = 1 - IGNORE_TEXT = 2 - IGNORE_DIM = 4 - EXACT = 8 + EXACT = 2 + IGNORE_TEXT = 4 + IGNORE_DIM = 8 End Enum 'Costanti : tipo di offset Public Enum OFF_TYPE As Integer diff --git a/Form1.resx b/Form1.resx index 0687aaa..84adaa9 100644 --- a/Form1.resx +++ b/Form1.resx @@ -883,7 +883,7 @@ AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAC2 - DQAAAk1TRnQBSQFMAgEBDgEAAVgBEAFYAhABAAEQAQAE/wEJAQAI/wFCAU0BNgEEBgABNgEEAgABKAMA + DQAAAk1TRnQBSQFMAgEBDgEAAWABEAFgAhABAAEQAQAE/wEJAQAI/wFCAU0BNgEEBgABNgEEAgABKAMA AUADAAFAAwABAQEAAQgGAAEQGAABgAIAAYADAAKAAQABgAMAAYABAAGAAQACgAIAA8ABAAHAAdwBwAEA AfABygGmAQABMwUAATMBAAEzAQABMwEAAjMCAAMWAQADHAEAAyIBAAMpAQADVQEAA00BAANCAQADOQEA AYABfAH/AQACUAH/AQABkwEAAdYBAAH/AewBzAEAAcYB1gHvAQAB1gLnAQABkAGpAa0CAAH/ATMDAAFm @@ -952,7 +952,7 @@ AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAADW - CAAAAk1TRnQBSQFMAgEBAgEAAXgBBwF4AQcBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo + CAAAAk1TRnQBSQFMAgEBAgEAAYABBwGAAQcBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo AwABQAMAARADAAEBAQABCAYAAQQYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5 AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA @@ -994,12 +994,12 @@ - iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAAHdElNRQffAxMJMyoKsRGSAAAA5ElEQVRYR8WVAQ7CIBAE - eZiP8+fIkR65wrSmAmuTSZu5k90aE1PO+a+gVIJSCUolKJWwTOn1EPtQ5E1gFkoOIWJoZHuBGEasK9A5 - D+hpe09h2RU4nj0s8nOwwzIUOIihxnSww1IUbrC8LrA03GApCjdYjuFFj3srYCl6e4PlObyocWcVLM8F - tr29wTIU6GerYbm5QLnatzoMq/zyBzJDuewHbmfXEldLWwqUq4Yfz7XE1eKuAu1Mf75dNGg+g5/Z7nHo - 2NCh+Qx+ZrvHoWNDh+Yz9GfjkhKUSlAqQakEpRKUOnL6AIHYR6o7ju9HAAAAAElFTkSuQmCC + iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + xAAADsQBlSsOGwAAAAd0SU1FB98DEwkzKgqxEZIAAADkSURBVFhHxZUBDsIgEAR5mI/z58iRHrnCtKYC + a5NJm7mT3RoTU875r6BUglIJSiUolbBM6fUQ+1DkTWAWSg4hYmhke4EYRqwr0DkP6Gl7T2HZFTiePSzy + c7DDMhQ4iKHGdLDDUhRusLwusDTcYCkKN1iO4UWPeytgKXp7g+U5vKhxZxUszwW2vb3BMhToZ6thublA + udq3Ogyr/PIHMkO57AduZ9cSV0tbCpSrhh/PtcTV4q4C7Ux/vl00aD6Dn9nucejY0KH5DH5mu8ehY0OH + 5jP0Z+OSEpRKUCpBqQSlEpQ6cvoAgdhHqjuO70cAAAAASUVORK5CYII= @@ -1362,12 +1362,13 @@ - iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO - xAAADsQBlSsOGwAAAAd0SU1FB94KHhU0BlYy2KsAAADySURBVFhH7ZRrDoMwDIM5GKfd6XaLrs4ICanp - uqm0PwbSJwW3tb0HLCmlqVBxJFSM5GvNYGDEtZV5nEFFDwydOefxNN5acwkqKjDaDKmxaD7clfD7alAR - IEwCjOJTid6zAELEtIR+pbLWqwBCCsNKOKicqZ7z2BCNnKHuYSBIznI+lrABB34oEEGoeBnVEjZgc4cC - AKHiZ5z/jPugh0J47XCN3W8jrivHmy+at4Dz6hXXlFKw8Hx7XLuCUrgL3AX+ukC+ur4HWrBBwzu9CVux - IYa7ErrnCmy4C8z+D8iNljDGPQWzoOJIqDgSKo6EiuNIywvRuKZ6IkxttwAAAABJRU5ErkJggg== + iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAAHdElNRQffBAkPMw/IvNKMAAABFUlEQVRYR+2UURKCMAxE + ORiH4yyezlvUbmhtSJYKTqgf0pk34ibZrKhMKaWfQsU98pkzuGDY2sw8LFRkwFCZcx7Pxqp9DEFFC4yK + ITUWTS9XIXQfg4oaLJMFDfepRI8MgCVi6qG3VGpRAbDEGXaWg85Mdw54wRopQ9urwSKZ5eyHdwIGvghg + wVLxavCvzwloDggAsFT8Gi7E5o0IdcgsZ8NHePsVXN0KIh5IfgbMVy9Xs0KlDrChSKgI7gB3gP8OkE/o + c8Ci/WgxE/YktBT/pfqxhu1yFcL2ngVLM0u5lhCs6coAWKoDLKzpsgAASzevulgKV/8G+gFErCEaYf+C + fNZb3wswEiqOhIojoeJIqDgSKo4jTS+HcHXfmynzNgAAAABJRU5ErkJggg== diff --git a/Form1.vb b/Form1.vb index 3490c51..09e2352 100644 --- a/Form1.vb +++ b/Form1.vb @@ -1044,6 +1044,11 @@ Public Class Form1 End Sub Private Sub btnJoinCurve_Click(sender As System.Object, e As System.EventArgs) Handles btnJoinCurve.Click + If (ModifierKeys And Keys.Shift) <> Keys.Shift Then + m_Controller.SetLastBoolean(False) + Else + m_Controller.SetLastBoolean(True) + End If m_Controller.ExecuteCommand(CMD.JOINCURVE) End Sub @@ -1100,6 +1105,14 @@ Public Class Form1 ' pulisco output tsStatusOutput.Text = "" ResetInputBox() + End If + End Sub + + Private Sub Scene1_KeyDown(ByVal sender As System.Object, ByVal e As KeyEventArgs) Handles Scene1.KeyDown + ' Con DEL eseguo cancellazione delle entità selezionate + If e.KeyData = Keys.Delete Then + m_Controller.SetLastInteger(GDB_ID.SEL) + m_Controller.ExecuteCommand(CMD.DELETE) ' con SPAZIO ripeto l'ultimo comando ElseIf e.KeyData = Keys.Space Then m_Controller.RepeatLastCommand() @@ -1112,17 +1125,6 @@ Public Class Form1 ElseIf e.KeyData = Keys.L Then m_Controller.ContinueLine2P() End If - ' Se in acquisizione punto - Else - - End If - End Sub - - Private Sub Scene1_KeyDown(ByVal sender As System.Object, ByVal e As KeyEventArgs) Handles Scene1.KeyDown - ' Con DEL eseguo cancellazione delle entità selezionate - If e.KeyData = Keys.Delete Then - m_Controller.SetLastInteger(GDB_ID.SEL) - m_Controller.ExecuteCommand(CMD.DELETE) End If End Sub diff --git a/My Project/AssemblyInfo.vb b/My Project/AssemblyInfo.vb index e866f84..2f2a441 100644 --- a/My Project/AssemblyInfo.vb +++ b/My Project/AssemblyInfo.vb @@ -46,5 +46,5 @@ Imports System.Runtime.InteropServices ' utilizzando l'asterisco (*) come descritto di seguito: ' - - + + diff --git a/Resources/JoinCurve.png b/Resources/JoinCurve.png index 70d4b02..2f06216 100644 Binary files a/Resources/JoinCurve.png and b/Resources/JoinCurve.png differ