JasW Posted July 31, 2017 Report Share Posted July 31, 2017 (edited) Zwcad 2017 już się ostatecznie ukształtował Ponieważ jednak nadzieja umiera ostatnia, iIdąc za strategią kolegi Martina odświeżam info o bugu zgłaszanym chińczykom w marcu .b.r. : Bug w VBA / COM api : Translate Coordinates OCS->WCShttp://www.zwsoft.com/zwcad_forum/thread-4808-1-1.html > The bug ID is T13536, we will fix it ASAP Jest "Szansa" (nomen omen), że ASAP to będzie w ZWCAD 2018 ? Pozdrawiam, J. -*- Script for diagnoze problem : ZWCAD 2017 return 3 ,1 , 1.5 Should -3.0,1.0,-1.5 Sub TestTranslateCoordinates() ' Create a polyline in model space. Dim plineObj As ZcadPolyline Dim points(0 To 14) As Double ' Define the 2D polyline points points(0) = 3: points(1) = 1: points(2) = 1 points(3) = 0: points(4) = 2: points(5) = 1 points(6) = 0: points(7) = 2: points(8) = 2 points(9) = 0: points(10) = 2: points(11) = 3 points(12) = 0: points(13) = 4: points(14) = 4 ' Create a light weight Polyline object in model space Set plineObj = ThisDrawing.ModelSpace.AddPolyline(points) plineObj.Elevation = 1.5 ' Find the X and Y coordinates of the ' first vertex of the polyline Dim firstVertex As Variant firstVertex = plineObj.Coordinate(0) ' Find the Z coordinate for the polyline ' using the elevation property firstVertex(2) = plineObj.Elevation ' Change the normal for the pline so that the ' difference between the coordinate systems ' is obvious. Dim plineNormal(0 To 2) As Double plineNormal(0) = 0# plineNormal(1) = 0# plineNormal(2) = -1# plineObj.Normal = plineNormal ' Translate the OCS coordinate into WCS Dim coordinateWCS As Variant coordinateWCS = ThisDrawing.Utility.TranslateCoordinates _ (firstVertex, acOCS, acWorld, 1, plineNormal) ' Display the coordinates of the point MsgBox "The first vertex has the following coordinates:" & vbCrLf & _ "OCS: " & firstVertex(0) & ", " & firstVertex(1) & " + Elevation:" & firstVertex(2) & vbCrLf & _ "PlaneNormal: " & plineNormal(0) & ", " & plineNormal(1) & ", " & plineNormal(2) & vbCrLf & _ "OCS->WCS: " & coordinateWCS(0) & ", " & coordinateWCS(1) & ", " & coordinateWCS(2) End Sub Edited July 31, 2017 by JasW Link to comment Share on other sites More sharing options...
dmatusz3 Posted July 31, 2017 Report Share Posted July 31, 2017 Sprawdzimy status tego zgłoszenia jutro, nie potrafię teraz niestety nic powiedzieć. Link to comment Share on other sites More sharing options...
kruszynski Posted October 11, 2017 Report Share Posted October 11, 2017 Właśnie otrzymałem odpowiedź z ZWSOFT w tej sprawie. Proszę zmienić acOCS, acWorld na zcOCS, zcWorld Z przeprowadzonego przeze mnie testu wynika że efekt jest zgodny ze spodziewanym. Proszę sprawdzić czy to jest OK. Sprawdzałem to na wersji 2018: vernum: 2017.09.18(21849)_x64 Link to comment Share on other sites More sharing options...
JasW Posted October 11, 2017 Author Report Share Posted October 11, 2017 Witam, Na ZWCAD 2018 vernum 21849 POL sprawdzone i po korekcie acOCS na zcOCS i zadziałało!. Poprawny wynik po translacji to punkt [ -3,1,-1.5 ] Trochę mnie zaskoczyło, że rozwiązanie wyglądało na banalne. Jednak po sprawdzeniu na starszym ZWCAD 2017 vernum 18776 ENG bug był i to conajmniej jeden: m.inn VBA nie znał stałej zcOCS ( = 4) stąd kompilator nie zgłosił błędu z powodu ( stała acOCS otrzyma wtedy wartoiśc =0. Aby ten problem wykryć przed kompilacja trzeba by dodać deklarację na początku kodu: Option Explicit ' Wymusza jawną deklarację zmiennej z typem przed pierwszym użyciem Podsumowując: Od ZwCAD 2018 można już używać w VBA TranslateCoordinates do np: konwersji polilinii 2D na 3D Dziękuję za informację i pozdrawiam, J. Link to comment Share on other sites More sharing options...
dmatusz3 Posted October 12, 2017 Report Share Posted October 12, 2017 Dziękuję za informację, zamykam temat. Pozdrawiam Link to comment Share on other sites More sharing options...
Recommended Posts