| | | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: Koordinatentranse (1120 mal gelesen)
|
CADwiesel Ehrenmitglied CAD4FM UG
Beiträge: 1968 Registriert: 05.09.2000 AutoCAD, Bricscad Wir machen das Mögliche unmöglich
|
erstellt am: 06. Sep. 2019 13:42 <-- editieren / zitieren --> Unities abgeben:
Hi Leutz, ich bräuchte mal bitte Hilfe bei einem VBA Schnipsel. Grundsätzlich zur info: der Code wird in Excel angestoßen und soll ein Objekt in ACAC Zoomen. das CAD Handle was als Übergabe fungiert ist ein String Zur besseren Übersicht lass ich noch ein Linienobjekt ann den errechneten Koordinaten erstellen. Der Punkt ist aber die Transformation der Objektkoordinaten welche zu einem Objekt gehören,was in einem Insert definiert ist. Die Transformation bezieht sich also auf ein OCS.Könnte mir mal bitte einer den Code hinpfuschen? Code: Private Sub Zoom_Obj(ent)Set acadApp = GetObject(, "Autocad.AcadApplication") Set acadDoc = acadApp.ActiveDocument ObjectID = ent.OwnerID Set tempObj = acadDoc.ObjectIdToObject(ObjectID) Dim Min, Max, W1b, W2b As Variant Call ent.GetBoundingBox(Min, Max) W1b = acadDoc.Utility.TranslateCoordinates(Min, 2, 1, False, tempObj) W2b = acadDoc.Utility.TranslateCoordinates(Max, 2, 1, False, tempObj) Set lineobj = acadDoc.ModelSpace.AddLine(W1b, W2b) acadApp.ZoomWindow W1b, W2b End Sub
------------------ Gruß CADwiesel Besucht uns im CHAT
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ingenieur Studio HOLLAUS Mitglied CAD / CAFM / GIS Beratung-Programmierung-Schulung
Beiträge: 1049 Registriert: 06.11.2008 Autocad 2 bis Autocad 2020 (+Map3D, +Civil3D, +Infraworks) RKV .... CAFM+mehr HMap ... Vermessung und Verkehr OoC .... Raumplanung CBox ... Tools für AutoCAD und BricsCAD (kostenfrei)
|
erstellt am: 16. Sep. 2019 23:54 <-- editieren / zitieren --> Unities abgeben: Nur für CADwiesel
Wieso TranslateCoordinates? Die Funktion ent.GetBoundingBox retourniert WCS, nicht ECS Koordinaten, ebenso braucht die Linienerstellung sowie der ZOOM Befehl WCS Angaben, ganz egal, welches Koordinatensystem aktuell eingestellt ist oder welches Koordinatensystem eingestellt war, als die Polylinie erstellt wurde. ------------------
blog.hollaus.at ... www.cars4fun.at Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADwiesel Ehrenmitglied CAD4FM UG
Beiträge: 1968 Registriert: 05.09.2000 AutoCAD, Bricscad Wir machen das Mögliche unmöglich
|
erstellt am: 17. Sep. 2019 08:26 <-- editieren / zitieren --> Unities abgeben:
Wenn ein in einer Blockreferenz enthaltenes Objekt betrachtet werden soll, werden die Koordinaten der Lage zurückgeliefert, die auf den Einfügepunkt bei 0,0 stimmen. Es fehlt alsu der Verschiebevektor, den das Insert jetzt bei einer Einfügung hat. ------------------ Gruß CADwiesel Besucht uns im CHAT
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
KlaK Ehrenmitglied V.I.P. h.c. Dipl. Ing. Vermessung, CAD- und Netz-Admin
Beiträge: 2624 Registriert: 02.05.2006 AutoCAD LandDesktop R2 bis 2004 Civil 3D 2005 - 2022 Plateia, Canalis Visual Basic
|
erstellt am: 17. Sep. 2019 12:46 <-- editieren / zitieren --> Unities abgeben: Nur für CADwiesel
Hallo CADwiesel, mir ist momentan gar nicht klar was Du machen möchtest, ich versuche mal eine Interpretation: - Du hast in einer Zeichnung eine (vermutlich größere) Blockreferenz, die nicht auf 0,0 eingefügt ist - Innerhalb der Blockreferenz befindet sich das gesuchte Objekt dessen Lage Du mit der BoundingBox innerhalb der Blockreferenz bestimmt hast Meiner Meinung nach bräuchtest Du hier den Einfügepunkt der Blockreferenz und müßtest die min/max-Werte anhand der Blockreferenzdrehung und ~skalierung noch nachbehandelt bevor sie addiert werden könnten Bin mir aber nicht sicher ob ich Dich richtig verstanden habe, ein Beispiel wäre nicht verkehrt Grüße Klaus
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADwiesel Ehrenmitglied CAD4FM UG
Beiträge: 1968 Registriert: 05.09.2000 AutoCAD, Bricscad Wir machen das Mögliche unmöglich
|
erstellt am: 17. Sep. 2019 13:02 <-- editieren / zitieren --> Unities abgeben:
Hi Klaus :top genau Richtig verstanden. in Lisp liefert dir ja (trans PT 1 OBJ) die Koordinaten bezogen auf das übergebene Objekt (wenn du das hast). In meinem Fall hab ich das. Das ganze brauch ich jetzt auch für Vb. VB ist nicht Meins, daher bräuchte ich Hilfe von einem VB-Versteher ;-) ------------------ Gruß CADwiesel Besucht uns im CHAT
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
KlaK Ehrenmitglied V.I.P. h.c. Dipl. Ing. Vermessung, CAD- und Netz-Admin
Beiträge: 2624 Registriert: 02.05.2006 AutoCAD LandDesktop R2 bis 2004 Civil 3D 2005 - 2022 Plateia, Canalis Visual Basic
|
erstellt am: 17. Sep. 2019 14:00 <-- editieren / zitieren --> Unities abgeben: Nur für CADwiesel
Hi, Bin mir nicht ganz sicher ob es in VBA hier auch eine Lösung wie in Lisp gibt, habe aber gerade keine Zeit dafür. Kann es mir ja abends mal ansehen, notfalls müßte man so eine Funktion schreiben, ist ja kein großes Problem Grüße Klaus Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|