| |
 | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
 | PNY präsentiert die PRO Elite™ High Endurance microSD-Flash-Speicherkarten für Videoüberwachung und kontinuierliche Aufzeichnung, eine Pressemitteilung
|
Autor
|
Thema: VBA-Polylinie nur im WCS statt im UCS (789 mal gelesen)
|
sarotti Mitglied Bauingenieur

 Beiträge: 74 Registriert: 14.07.2005 AutoCad 2022 64Bit Windows 10-64Bit mit 32 GByte
|
erstellt am: 15. Jul. 2005 07:37 <-- editieren / zitieren --> Unities abgeben:         
Hallo, wenn ich mit VBA eine Polylinie erzeuge, beziehen sich die Koordinaten der Polyline nur auf das WCS. Die Polylinie soll aber immer auf das aktuelle UCS bezogen sein. Muss ich alle Koordinaten umrechnen oder gibt es eine Systemvariable die gesetzt werden kann?
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Proxy Ehrenmitglied Stateless-DHCP v6-Paketfragmentierer
    
 Beiträge: 1629 Registriert: 13.11.2003 Tastaturen, Mäuse, Pladden, Monitore, ..., einige AutoCADs 200x & SWX 2kX
|
erstellt am: 15. Jul. 2005 21:28 <-- editieren / zitieren --> Unities abgeben:          Nur für sarotti
Dazu musst du die TranslateCoordinates Methode genauer anschauen ... Zitat aus der Hilfe [code] Sub Example_TranslateCoordinates() Dim ucsObj As AcadUCS Dim origin(0 To 2) As Double Dim xAxisPnt(0 To 2) As Double Dim yAxisPnt(0 To 2) As Double origin(0) = 2#: origin(1) = 2#: origin(2) = 2# xAxisPnt(0) = 5#: xAxisPnt(1) = 2#: xAxisPnt(2) = 2# yAxisPnt(0) = 2#: yAxisPnt(1) = 6#: yAxisPnt(2) = 2# Set ucsObj = ThisDrawing.UserCoordinateSystems.Add(origin, xAxisPnt, yAxisPnt, "New_UCS") ThisDrawing.ActiveUCS = ucsObj Dim viewportObj As AcadViewport Set viewportObj = ThisDrawing.ActiveViewport viewportObj.UCSIconOn = True viewportObj.UCSIconAtOrigin = True ThisDrawing.ActiveViewport = viewportObj Dim pointWCS As Variant pointWCS = ThisDrawing.Utility.GetPoint(, "Punkt anklicken:") Dim pointUCS As Variant pointUCS = ThisDrawing.Utility.TranslateCoordinates(pointWCS, acWorld, acUCS, False) MsgBox "Punktkordinaten: " & vbCrLf & _ "WCS: " & pointWCS(0) & ", " & pointWCS(1) & ", " & pointWCS(2) & vbCrLf & _ "UCS: " & pointUCS(0) & ", " & pointUCS(1) & ", " & pointUCS(2), , "TranslateCoordinates Beispiel" End Sub [code] ------------------ MfG Proxy Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
sarotti Mitglied Bauingenieur

 Beiträge: 74 Registriert: 14.07.2005 AutoCad 2022 64Bit Windows 10-64Bit mit 32 GByte
|
erstellt am: 15. Jul. 2005 22:44 <-- editieren / zitieren --> Unities abgeben:         
Hallo Proxy, viel Dank für den Programmcode. Ich werde dann wohl alle Koordinaten umrechnen lassen. Es wäre schön wenn VBA genauso reagieren würde als ob ich auf dem Bildschirm zeichnen würde. Dort wähle ich auch nur das betreffende BKS an und AutoCad bezieht alle Eingabe darauf. Wohl zu einfach gedacht von mir. Gruß Sarotti Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |

| |
mapcar Mitglied CADmin

 Beiträge: 1250 Registriert: 20.05.2002 Die Phönizier haben das Geld erfunden - aber warum so wenig? (Johann Nepomuk Nestroy)
|
erstellt am: 16. Jul. 2005 00:55 <-- editieren / zitieren --> Unities abgeben:          Nur für sarotti
|