| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: DXF erzeugen - Block Insert - Winkelwert (2767 mal gelesen)
|
DickSoft Mitglied
Beiträge: 7 Registriert: 29.11.2013
|
erstellt am: 29. Nov. 2013 14:19 <-- editieren / zitieren --> Unities abgeben:
Hallo, ich erzeeuge DXF-Dateien mit einem externen Berechnungsprogramm. Mit diesem möchte ich 3D-Objekte als Block mit der Insert Anweisung verlegen. Das mit den Parametern (10,20,30,210,220,230) ist soweit klar und nachvollziehbar. Jedoch fehlt mit die Berechnungsgrundlage für der Winkel (Parameter 50). Für entsprechende hilfe (Formel ggf. mit Skizze) bin ich dankbar. -> Bei den/der Formel bitte einfach angaben Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CAD-Huebner Ehrenmitglied V.I.P. h.c. Verm.- Ing., ATC-Trainer
Beiträge: 9732 Registriert: 01.12.2003 AutoCAD 2.5 - 2022, LDD, MDT, RD, ADT, Civil Inventor AIP 4-11, 2008 -2022 Win 10
|
erstellt am: 29. Nov. 2013 14:59 <-- editieren / zitieren --> Unities abgeben: Nur für DickSoft
Gruppencode 50 enthält den Drehwinkel um die Z-Achse im math. Drehsinn (Gegenuhrzeiger) in Dezimalgrad. Siehe auch DXF Referenz. Am Einfachsten ist es, Objekt in AutoCAD zeichnen/verdrehen, dann DXF schreiben, anschließend DXF im Texteditor analysieren. ------------------ Mit freundlichem Gruß
Udo Hübner www.CAD-Huebner.de [Diese Nachricht wurde von CAD-Huebner am 29. Nov. 2013 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
DickSoft Mitglied
Beiträge: 7 Registriert: 29.11.2013
|
erstellt am: 29. Nov. 2013 21:07 <-- editieren / zitieren --> Unities abgeben:
Ist mir schon klar Wert von 50 ist in der "regen" der Drehwinkel um die Z-Achse. Beim einfügen eines Blocks (3D-Körper) wird dieser wert in abhänggkeit von der Raumlage neu berechnet. Das Problem ist jedoch folgendes: Ein externers Plogramm soll 3d_körper im Raum verlegen (ca 4500 Stück). Jede Blockeinfügung hat andere Vectoren. Den Absetzpunkt und die (Raum-)Normale (Werte 10,20,30,210,220,230) kann ich schon richtig berechnen, aber den Winkelwert (50) ist in diesem fall aber NICHT der Vorgegeben Winkel um die Z-Achse. Der "Vorgabewert" wird irgendwie umgerechnet. Aber wie? Dies ist hier die Frage. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Ehrenmitglied V.I.P. h.c. 良い精神
Beiträge: 21533 Registriert: 03.06.2002 System: F1 und Google
|
erstellt am: 29. Nov. 2013 21:21 <-- editieren / zitieren --> Unities abgeben: Nur für DickSoft
|
CAD-Huebner Ehrenmitglied V.I.P. h.c. Verm.- Ing., ATC-Trainer
Beiträge: 9732 Registriert: 01.12.2003 AutoCAD 2.5 - 2022, LDD, MDT, RD, ADT, Civil Inventor AIP 4-11, 2008 -2022 Win 10
|
erstellt am: 30. Nov. 2013 11:10 <-- editieren / zitieren --> Unities abgeben: Nur für DickSoft
Die Winkelangabe des Gruppencodes 50 sind im DXF in Dezimalgrad, im Lisp Gruppencode in rad anzugeben. Der Drehwinkel des INSERTS im DXF ist der Winkel um die Z-Achse des durch den Hochzugsrichtungsvektor (Gruppencodes 210,220, u. 230) vom WKS abgeleiteten Bezugskoordinatensystem. Der Block hat kein eigenes Objektkoordinatensystem, der Einfügepunkt (Gruppencodes 10,20 u.30) wird immer im WKS Koordinatensystem angegeben. Der Hochzugsrichtungsvektor definiert nur die Normale der Bezugsebene der Blockeinfügung. ------------------ Mit freundlichem Gruß Udo Hübner www.CAD-Huebner.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
DickSoft Mitglied
Beiträge: 7 Registriert: 29.11.2013
|
erstellt am: 02. Dez. 2013 18:09 <-- editieren / zitieren --> Unities abgeben:
@CAD-Huebner: OK, jetzt ist es mir grundsätzlich klar (Beschreibung). Für mich stellt sich aber immer noch die Frage: Wie ist die Formel dazu (am bestem einfach!)? Ggf. Skizze. Die Parameter 1, 20 und 30 sind die Absetzpunkte des Blocks im OCS, die Parameter 210, 220 und 230 sind dier Blocknormale im WKS (beide Gruppen kann ich bestimmen). Der Parameter 50 Winkel ist in der DXF-Datei nicht unbedingt gleich dem Winkel um die Z-Achse zur Bestimmung der Normale (210..). MfG DickSoft Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Stelli1 Moderator Verm.-Ing.
Beiträge: 1521 Registriert: 17.08.2005 Map 2000-2014, Rasterdesign, MapGuide, Autodesk Topobase, VS6, VS.net 2013
|
erstellt am: 03. Dez. 2013 18:19 <-- editieren / zitieren --> Unities abgeben: Nur für DickSoft
Hallo, "Die" Formel man dir erst geben wenn du sagst wie dein Winkel vorliegt. Im AutoCAD brauchst auf jeden Fall Bogenmaß (rad). Der Vollkreis ist dann 2*Pi ~ 6,28. Der Winkel ist linksdrehend und hat im Osten den Nullpunkt. Wenn du das auch so hast und der Winkel in (Alt)Grad, also 360° Vollkreis, vorliegt: x [winkel] ---- = -------- 6.28 360 [Winkel] * 6,28 =>> x= --------------- 360
Wilfried Stelberg
------------------ Warum lisp'eln wenn's auch anders geht. www.ib-stelberg.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
DickSoft Mitglied
Beiträge: 7 Registriert: 29.11.2013
|
erstellt am: 03. Dez. 2013 19:08 <-- editieren / zitieren --> Unities abgeben:
|
cadffm Ehrenmitglied V.I.P. h.c. 良い精神
Beiträge: 21533 Registriert: 03.06.2002 System: F1 und Google
|
erstellt am: 03. Dez. 2013 19:25 <-- editieren / zitieren --> Unities abgeben: Nur für DickSoft
Wenn du es noch immer nicht "gelöst" hast, dann bring halt mal ein Beispiel an, an dem ersichtlich wird über was genau du sprichst ! Es werden DEZIMALgrad in Bezug auf den die ebene 210(220,230) angegeben -> das bezieht sich auf ein INSERT. Jetzt die Gegenfrage: Was willst du mehr ? Tip: Erzähle die ganze Geschichte, dann kann man auch selbst darüber nachdenken und läuft nicht in deine Sackgasse hinterher. Jetzt habe ich dein Problem herausgelesen, aber gerade keine Zeit zum googlen, sorry
EDIT: 3DDREHEN um die Y-Achse verändert den Winkel(z) , Du möchtest jetzt genau das selbst berechnen. (Berechnen, weil es du die DXF ja in einem externen Programm erstelle willst und somit kein Acad-vba nutzen kannst, richtig ?) ------------------ CAD on demand GmbH - Beratung und Programmierung rund um AutoCAD [Diese Nachricht wurde von cadffm am 04. Dez. 2013 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
DickSoft Mitglied
Beiträge: 7 Registriert: 29.11.2013
|
erstellt am: 04. Dez. 2013 18:41 <-- editieren / zitieren --> Unities abgeben:
@cadffm: Ja ein externes Programm. Wurde ja weiter oben schon einmal gesagt! Hier noch ein paar Daten: definierter Block hat die Blockreferenz Koordinaten 0.0/0.0/0.0 im WKS-System. Der Block soll an den WKS-Koordinaten eingefügt werden: P_X(WKS)=47326,603 P_Y(WKS)=368196,978 P_Z(WKS)=-6,872 Der Block soll gedreht werden: W_X[°]=36,0 W_Y[°]=2,49035... W_Z[°]=200,39177.. Daraus ergibt sich folgendes: Die Normale(210,220,230) N_X=-0,237756... N_Y=0,538701... N_Z=0,808252... Bei einem Import in ein CAD-System legt der Block an der richtigen WKS-Koordinaten und die Block-Z-Achse hat die richtige "Raum"-Richtung. Und jetzt kommt es: der "Parameter 50"= Rotationswinkel bestimmt die Richtung der Block-X-Achse! Der Wert ist aber ein Wert, der irgendwie aus den "Eingabewerten" (P_X(WKS), P_Y(WKS) ... und W_X, W_Y ...) berechnet wird. Hierfür suche ich die Formel oder eine Skizze zur herleitung! MfG DickSoft Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
DickSoft Mitglied
Beiträge: 7 Registriert: 29.11.2013
|
erstellt am: 04. Dez. 2013 18:46 <-- editieren / zitieren --> Unities abgeben:
@cadffm: Nachtrag: die OCS-Koordinaten, die in der DXF-Datei (in den Parametern 10,20 und 30) gespeichert werden sind auch richtig berechnet. OCS_X=-191965,376.. OCS_Y=-256817,577... OCS_Z=187090,4811.. sonst würde der Bloch ja nicht ander Richtigen Einfügeposition liegen. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Ehrenmitglied V.I.P. h.c. 良い精神
Beiträge: 21533 Registriert: 03.06.2002 System: F1 und Google
|
erstellt am: 04. Dez. 2013 19:02 <-- editieren / zitieren --> Unities abgeben: Nur für DickSoft
|
DickSoft Mitglied
Beiträge: 7 Registriert: 29.11.2013
|
erstellt am: 19. Dez. 2013 09:27 <-- editieren / zitieren --> Unities abgeben:
Habe die Lösung gefunden! Projektion des Koordinatenursprungs vom WKS-Systems auf die X-Y-Ebene des OCS-Systems. Der Winkel ergibt sich wie folgt: Linie1 vom Einfügepunkt des Blocks (OCS) zum Koordinatenursprung (OCS) ist die "Basis-(X-)Achse". Linie2 ist vom Einfügepunkt des Blocks zum Koordinatenursprungspunkt des OCS-Systems. Der Winkel ist der Öffnungswinkel zwischen Linie1 und Linie2 gegen den Uhrzeigersinn.
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |