Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  AutoCAD VBA
  Koordinatentranse

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
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



Sehen Sie sich das Profil von CADwiesel an!   Senden Sie eine Private Message an CADwiesel  Schreiben Sie einen Gästebucheintrag für CADwiesel

Beiträge: 1968
Registriert: 05.09.2000

AutoCAD, Bricscad
Wir machen das Mögliche unmöglich

erstellt am: 06. Sep. 2019 13:42    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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


Sehen Sie sich das Profil von Ingenieur Studio HOLLAUS an!   Senden Sie eine Private Message an Ingenieur Studio HOLLAUS  Schreiben Sie einen Gästebucheintrag für Ingenieur Studio HOLLAUS

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für CADwiesel 10 Unities + Antwort hilfreich

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



Sehen Sie sich das Profil von CADwiesel an!   Senden Sie eine Private Message an CADwiesel  Schreiben Sie einen Gästebucheintrag für CADwiesel

Beiträge: 1968
Registriert: 05.09.2000

AutoCAD, Bricscad
Wir machen das Mögliche unmöglich

erstellt am: 17. Sep. 2019 08:26    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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



Sehen Sie sich das Profil von KlaK an!   Senden Sie eine Private Message an KlaK  Schreiben Sie einen Gästebucheintrag für KlaK

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für CADwiesel 10 Unities + Antwort hilfreich

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



Sehen Sie sich das Profil von CADwiesel an!   Senden Sie eine Private Message an CADwiesel  Schreiben Sie einen Gästebucheintrag für CADwiesel

Beiträge: 1968
Registriert: 05.09.2000

AutoCAD, Bricscad
Wir machen das Mögliche unmöglich

erstellt am: 17. Sep. 2019 13:02    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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



Sehen Sie sich das Profil von KlaK an!   Senden Sie eine Private Message an KlaK  Schreiben Sie einen Gästebucheintrag für KlaK

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für CADwiesel 10 Unities + Antwort hilfreich

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 >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz