Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  AutoCAD ObjectARX und .NET
  Koordinaten global und lokal

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:  Koordinaten global und lokal (1518 mal gelesen)
Boortsneggor
Mitglied
Ingenieur


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

Beiträge: 49
Registriert: 27.12.2011

Win7 Prof, Visual Studio 2010/2012,
ObjectARX 2008/2012/2013, ACAD
2008/2012/2013

erstellt am: 16. Feb. 2013 11:35    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

Einen schönen guten Tag,

ich habe gerade ein kleines Koordinaten-Problem. Ich habe eine Zeichnung, welche BlockDefinitionen mit DBText-Objecten enthält. Ich möchte diese Text-Objekte durch Text-Attribute von einer BlockReferenz ersetzen. Das funktioniert im Grunde auch sehr gut. Die Positionen der Text-Objekte innerhalb der BlockDefinitionen scheinen sich auf das blockinterne Koordinatensystem zu beziehen. Im Ergebnis liegen die Text-Attribute nach der Ersetzung immer in der Nähe des Nullpunktes der Zeichnung. Ich kenne die Eigenschaft "BlockTransform", jedoch habe ich noch nicht so richtig verstanden, wie die Transformierung der Koordinaten genau zusammenhängt. Ich möchte quasi die Koordinaten aus der "Blockwelt" in die "Zeichnungswelt" überführen.
Es wäre schön, wenn mir dieses Thema mal jemand näher erläutern könnte.

Vielen Dank im Voraus und ein schönes WE!

Grüße
Robert

------------------
Robert Menger
Gabo Engineering GmbH
Entwicklung

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Brischke
Moderator
CAD on demand GmbH




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

Beiträge: 4171
Registriert: 17.05.2001

AutoCAD 20XX, defun-tools

erstellt am: 18. Feb. 2013 07: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 Boortsneggor 10 Unities + Antwort hilfreich

Hallo Robert,

die Transformation beinhaltet alle Informationen hinsichtlich:
-Verschiebung
-Drehung
-Skalierung
im Verhältnis des Koordinatensystems der Blockdefinition und des Weltkoordinatensystems, in das die Blockreferenz eingefügt ist.

Die Elemente einer Blockdefinition sind alle in Bezug auf den Koordinateursprung der Blockdefinition mit der Drehung 0 und der Skalierung X|Y|Z 1|1|1 gespeichert. Die Eigenschaft Blockreference.BlockTransform beinhaltet die Transformationsmatrix, wie man die Koordinaten der Blockdefinition hin zur jeweiligen Blockreferenz transformieren muss.
Da ein Text fester Bestandteil der Blockdefinition ist, müssen, wenn du die Koordinaten für die Attributreferenz ermitteln willst, die Text-Koordinaten in das Welt-Koordinatensystem transformiert werden. Die Koordinaten der Attributreferenzen sind nicht in Bezug auf die Blockreferenz gespeichert, sondern im WKS.

Grüße!
Holger

------------------
Holger Brischke
FREIE SCHULUNGSPLÄTZE -- C#.NET-Schulung im Mai 2013 Bei Interesse bitte melden!
CAD on demand GmbH
Individuelle Lösungen von Heute auf Morgen.


defun-tools Das Download-Portal für AutoCAD-Zusatzprogramme!


Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Boortsneggor
Mitglied
Ingenieur


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

Beiträge: 49
Registriert: 27.12.2011

Win7 Prof, Visual Studio 2010/2012,
ObjectARX 2008/2012/2013, ACAD
2008/2012/2013

erstellt am: 19. Feb. 2013 08:29    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

Guten Morgen Holger,

vielen Dank für deine Erklärung. Leider hängt es bei mir immer noch an der Umsetzung. Ich muss mir also eine Transformationsmatrix erstellen, die mir die Position des Textes im Bezug auf das Block-Koordinatensystem in das WKS überführt. Bisheriger Code-Schnipsel dafür:

Code:

//Transformationsmatrix erstellen, aber mit welchem Vektor???
Matrix3d transWCS = Matrix3d.WorldToPlane(txtBlockDef.Normal);
//Text-Position transformieren
attributeRef.Position = txtBlockDef.TransformBy(transWCS);

Welchen Vektor muss ich denn für die Transformationsmatrix hernehmen? In den Beispielen von Autodesk wurde immer der Normalen-Vektor des jeweiligen Objektes genommen, jedoch funktioniert das in meinem Fall nicht.

Vielen Dank für deine Hilfe!

Grüße Robert

------------------
Robert Menger
Gabo Engineering GmbH
Entwicklung

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Brischke
Moderator
CAD on demand GmbH




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

Beiträge: 4171
Registriert: 17.05.2001

AutoCAD 20XX, defun-tools

erstellt am: 19. Feb. 2013 08:35    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 Boortsneggor 10 Unities + Antwort hilfreich

BlockReference.BlockTransform
... beinhaltet doch die Transformation der Blockdefinition auf die BlockReference - wo ist das Problem?

Grüße!
Holger

------------------
Holger Brischke
FREIE SCHULUNGSPLÄTZE -- C#.NET-Schulung im Mai 2013 Bei Interesse bitte melden!
CAD on demand GmbH
Individuelle Lösungen von Heute auf Morgen.


defun-tools Das Download-Portal für AutoCAD-Zusatzprogramme!


Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Boortsneggor
Mitglied
Ingenieur


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

Beiträge: 49
Registriert: 27.12.2011

Win7 Prof, Visual Studio 2010/2012,
ObjectARX 2008/2012/2013, ACAD
2008/2012/2013

erstellt am: 20. Feb. 2013 20:28    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

Hallo Holger,

mein Problem war, dass ich die Transformation allein an Hand der BlockTableRecord machen wollte. Doch das geht wohl nicht. Ich habe mir nun mit Hilfe der GetBlockRefIds-Methode die jeweilige BlockReference geholt und damit die Transformation durchgeführt. So klappts 

Vielen Dank für deine Hilfe!

Grüße Robert

------------------
Robert Menger
Gabo Engineering GmbH
Entwicklung

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