| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| PRO.FILE 10: So gelingt der Umstieg, eine Pressemitteilung
|
Autor
|
Thema: DXF Programmierung (3098 mal gelesen)
|
Chris23 Mitglied
Beiträge: 12 Registriert: 12.06.2008
|
erstellt am: 12. Jun. 2008 11:18 <-- editieren / zitieren --> Unities abgeben:
Hallo, ich muss eine DXF Datei erstellen (im Editor, also im Textformat) in der ein einfaches Rechteck dargestellt wird und der Inhalt des Rechtecks farbig sein soll. Aus der DXF-Spezifikation werde ich nicht so recht schlau, daher meine Frage an die Leser: Kann mir jemand sagen wie ich oben geschildertes Problem löse?
Grüße Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
tunnelbauer Ehrenmitglied V.I.P. h.c. Bauingenieur
Beiträge: 7085 Registriert: 13.01.2004 Sie nannten ihn google.
|
erstellt am: 12. Jun. 2008 11:28 <-- editieren / zitieren --> Unities abgeben: Nur für Chris23
|
Chris23 Mitglied
Beiträge: 12 Registriert: 12.06.2008
|
erstellt am: 12. Jun. 2008 11:35 <-- editieren / zitieren --> Unities abgeben:
|
cadffm Moderator 良い精神
Beiträge: 22171 Registriert: 03.06.2002 System: F1 und Google
|
erstellt am: 12. Jun. 2008 11:36 <-- editieren / zitieren --> Unities abgeben: Nur für Chris23
Also kann super simpel sein, zunächst sollte aber noch erwähnt sein das sich auch vorher schon ein paar Leute hier mit dem gleichen Anliegen gemeldet haben (und zum Teil auch Antworten erhalten haben). Von NULL an wird dir hier aber wohl niemand etwas erklären, dafür ist ein Forum nunmal nicht da - ich mache mal den Einstieg, mal sehen wie sich der Thread entwickelt: Suche dir jemanden mit AutoCAD(hast du selbst ?) und erstelle eine nagelneue Datei (nicht von einer Vorlagendatei, sondern richtig jungfräulich) Die Datei wird gleich gespeichert als BLANKO.dxf und zwar im DXF12-Format, das kann von so ziemlich jedem Programm eingelesen werden.. Dann zeichnest du mit den aktuellen Einstellungen ein Rechteck, Acad würde das mit einer Polylinie machen.. dann speicher die Datei(Speichern unter) als "Rechteck.dxf" wieder als DXF12. Mache beide im Editor auf und vergleiche.. im Abschnitt "Entities" wirst du ein paar Zeilen mehr haben wie im Blanko - die Daten der Polylinie ... 0 SECTION 2 ENTITIES ab hier deine Polylinie-Daten, die gehen bis zum nächsten Gruppencode0, der gehört dann dem nächsten Objekt.. Die DXF-Gruppencodes (hier im Ausschnitt also die 0 oder auch die 2, immer gefolgt von Ihren "Werten" sind in der Entwicklerhilfe von Acad (nur in der Vollversion) beschrieben oder eben in gaaanz vielen LISP-Büchern Auch im Internet wird man fündig. --- Und nun erkäre mal was du eigentlich als Antwort erwartet hast ------------------ die alte SUCHfunktion.. - System-Angaben - User:FAQ(Adesk) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
tunnelbauer Ehrenmitglied V.I.P. h.c. Bauingenieur
Beiträge: 7085 Registriert: 13.01.2004 Sie nannten ihn google.
|
erstellt am: 12. Jun. 2008 11:37 <-- editieren / zitieren --> Unities abgeben: Nur für Chris23
|
Brischke Ehrenmitglied V.I.P. h.c. CAD on demand GmbH
Beiträge: 4186 Registriert: 17.05.2001 AutoCAD 20XX, defun-tools
|
erstellt am: 12. Jun. 2008 11:42 <-- editieren / zitieren --> Unities abgeben: Nur für Chris23
.. dann will ich auch mal meinen Senf dazu geben. Grundsätzlich ist der Aufbau einer DXF-Datei folgender: KEY WERT KEY WERT KEY WERT Welcher KEY nun was bedeutet und in welcher Kombination der KEYS dann eine tatsächliche Zeichnung entsteht, kannst du hier nachlesen. Grüße Holger
------------------ Holger Brischke CAD on demand GmbH Individuelle Lösungen von Heute auf Morgen. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Chris23 Mitglied
Beiträge: 12 Registriert: 12.06.2008
|
erstellt am: 12. Jun. 2008 13:34 <-- editieren / zitieren --> Unities abgeben:
Also schon mal vielen Dank für die Antworten. Nun habe ich mal eine Datei geschrieben (sollte nur das Rechteck anzeigen). Leider kann ich diese in AutoCad nicht anzeigen. Ich bekomme eine Fehlermeldung, dass das Input-File nicht korrekt sei. Es sieht folgendermaßen aus: 0 SECTION 2 ENTITIES 0 LWPOLYLINE 5 8C 330 1F 100 AcDbEntity 8 0 100 AcDbPolyline 90 4 70 1 43 0.0 10 323.1663659141827 20 710.6240484637412 10 905.4933288941574 20 710.6240484637412 10 905.4933288941574 20 555.07703694932 10 323.1663659141827 20 555.07703694932 0 ENDSEC 0 EOF Vielleicht könnte mir jemand sagen was daran nicht stimmt und eventuell sogar noch das File so erweitern, dass das Rechteck innen farbig ist. Das wäre echt super. Grüße Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
tunnelbauer Ehrenmitglied V.I.P. h.c. Bauingenieur
Beiträge: 7085 Registriert: 13.01.2004 Sie nannten ihn google.
|
erstellt am: 12. Jun. 2008 13:38 <-- editieren / zitieren --> Unities abgeben: Nur für Chris23
|
tunnelbauer Ehrenmitglied V.I.P. h.c. Bauingenieur
Beiträge: 7085 Registriert: 13.01.2004 Sie nannten ihn google.
|
erstellt am: 12. Jun. 2008 13:43 <-- editieren / zitieren --> Unities abgeben: Nur für Chris23
Zitat: Original erstellt von Chris23:
Vielleicht könnte mir jemand sagen was daran nicht stimmt und eventuell sogar noch das File so erweitern, dass das Rechteck innen farbig ist. Das wäre echt super.
Noch ein Nachtrag zu dieser Bitte: Entweder du legst dir ein File an, wie es con cadffm beschrieben wurde, in dem diese Elemente enthalten sind und du ackerst es anhand dieses Beispiels durch, oder aber du liest die Referenz durch; wir können aber mit Sicherheit hier nicht deine Aufgaben machen... (können schon - aber der Sinn der Sache wäre dann nicht mehr ganz gegeben...) ------------------ Grüsse Thomas Korrekturen zum Kochbuch AutoLISP Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Chris23 Mitglied
Beiträge: 12 Registriert: 12.06.2008
|
erstellt am: 25. Jun. 2008 10:05 <-- editieren / zitieren --> Unities abgeben:
hallo nochmal, kann mir bitte nochmal jemand einen Tipp geben, was ich hier falsch mache! Sitze jetzt schon ewig daran und irgendwie bekomme ich das Rechteck in ACAD nicht angezeigt. Die Fehlermeldung die ich erhalte bezieht sich auf Line 10; Wert 330. Da stimmt irgendetwas nicht, jedoch finde ich diesen auch in der Spezifikation nicht.
Grüße Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
fuchsi Mitglied Programmierer c#.net Datawarehouse
Beiträge: 1201 Registriert: 14.10.2003 AutoCad Version 2012 deu/enu <P>Windows 7 64bit
|
erstellt am: 25. Jun. 2008 13:19 <-- editieren / zitieren --> Unities abgeben: Nur für Chris23
Zitat: Original erstellt von Chris23: Also schon mal vielen Dank für die Antworten. Nun habe ich mal eine Datei geschrieben (sollte nur das Rechteck anzeigen). Leider kann ich diese in AutoCad nicht anzeigen. Ich bekomme eine Fehlermeldung, dass das Input-File nicht korrekt sei. Es sieht folgendermaßen aus: 0 SECTION 2 ENTITIES 0 LWPOLYLINE 5 8C 330 1F 100 AcDbEntity 8 0 100 AcDbPolyline 90 4 70 1 43 0.0 10 323.1663659141827 20 710.6240484637412 10 905.4933288941574 20 710.6240484637412 10 905.4933288941574 20 555.07703694932 10 323.1663659141827 20 555.07703694932 0 ENDSEC 0 EOFVielleicht könnte mir jemand sagen was daran nicht stimmt und eventuell sogar noch das File so erweitern, dass das Rechteck innen farbig ist. Das wäre echt super. Grüße
Tja also nur die Section Entities ist wohl etwas wenig. Mindestens gehört dazu noch die DXF-Version, und der Bereich der Layerliste. [EDIT]hatte mal sowas bei spotlight.de gepostet (ein Minimum DXF für ein normales Rechtweck) 0 SECTION 2 HEADER 9 $ACADVER 1 AC1009 0 ENDSEC 0 SECTION 2 TABLES 0 TABLE 2 LAYER 70 1 0 LAYER 2 einfügelayer 70 0 62 7 6 CONTINUOUS 0 ENDTAB 0 ENDSEC 0 SECTION 2 ENTITIES 0 POLYLINE 5 2B 8 einfügelayer ;;;Name des Layers auf dem das Rechteck eingefügt ist 66 1 10 0.0 20 0.0 30 0.0 70 1 0 VERTEX 5 58 8 einfügelayer ;;;Name des Layers auf dem das Rechteck eingefügt ist 10 110.35529373757041 ;;;X-Koordinate Punkt Links unten 20 85.466292006630511 ;;;Y-Koordinate Punkt Links unten 30 0.0 ;;;Z-Koordinate Punkt Links unten 0 VERTEX 5 59 8 einfügelayer ;;;Name des Layers auf dem das Rechteck eingefügt ist 10 220.5251169527082 ;;;X-Koordinate Punkt rechts unten 20 85.466292006630511 ;;;Y-Koordinate Punkt rechts unten 30 0.0 ;;;Z-Koordinate Punkt rechts unten 0 VERTEX 5 5A 8 einfügelayer ;;;Name des Layers auf dem das Rechteck eingefügt ist 10 220.5251169527082 ;;;X-Koordinate Punkt rechts oben 20 161.47752835017391 ;;;Y-Koordinate Punkt rechts oben 30 0.0 ;;;Z-Koordinate Punkt rechts oben 0 VERTEX 5 5B 8 einfügelayer ;;;Name des Layers auf dem das Rechteck eingefügt ist 10 110.35529373757041 ;;;X-Koordinate Punkt links oben 20 161.47752835017391 ;;;Y-Koordinate Punkt links oben 30 0.0 ;;;Z-Koordinate Punkt links oben 0 SEQEND 5 5C 8 einfügelayer ;;;Name des Layers auf dem das Rechteck eingefügt ist 0 ENDSEC 0 EOF
[Diese Nachricht wurde von fuchsi am 25. Jun. 2008 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
fuchsi Mitglied Programmierer c#.net Datawarehouse
Beiträge: 1201 Registriert: 14.10.2003 AutoCad Version 2012 deu/enu <P>Windows 7 64bit
|
erstellt am: 25. Jun. 2008 13:35 <-- editieren / zitieren --> Unities abgeben: Nur für Chris23
Zitat: Original erstellt von Chris23: hallo nochmal, kann mir bitte nochmal jemand einen Tipp geben, was ich hier falsch mache! Sitze jetzt schon ewig daran und irgendwie bekomme ich das Rechteck in ACAD nicht angezeigt. Die Fehlermeldung die ich erhalte bezieht sich auf Line 10; Wert 330. Da stimmt irgendetwas nicht, jedoch finde ich diesen auch in der Spezifikation nicht.
Grüße
Der Gruppencode 330 zeigt normalerweise auf ein Dictionary. Und wenn das Dictionary im DXF nicht definiert ist, zeigt dieser gruppencode ins Leere. Das mag Autocad aber nun mal nicht :-) Ist genauso wennst im DXF einen Linie am Layer (Gruppencode 8) HUGHO liegen hast , aber in der layertabelle den layer nicht angelegt hast. Weiters empfehle ich das DXF im Format 12 zu schreiben. Ist wesentlich einfacher. Dafür muss man aber die LWPOLYLIINE als POLYLINIE (altes Format mit den VERTEX) schreiben. ------------------ Ing. Anton Fuchs WWW.FFZELL.AT.TC Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Chris23 Mitglied
Beiträge: 12 Registriert: 12.06.2008
|
erstellt am: 26. Jun. 2008 12:07 <-- editieren / zitieren --> Unities abgeben:
Vielen Dank für die Antwort. Das funktioniert jetzt auch. Ich versuche jetzt nur noch die Farbe im inneren des Rechtecks anzupassen. Dazu muss eine neue Section angelegt werden und das Bemalen könnte dann mit der HATCH Befehlsfolge gehen oder? Gibts einen einfacheren Weg das Rechteck farbig zu machen? Grüße Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
wronzky Ehrenmitglied V.I.P. h.c. CAD-Dienstleistungen für Architekten
Beiträge: 2154 Registriert: 02.05.2005 CAD: AutoCAD 2.6 bis 2014 ADT 2005 bis ACA 2013 Arcibem System: Windows Internet-Startseite: http://www.archi.de
|
erstellt am: 26. Jun. 2008 18:01 <-- editieren / zitieren --> Unities abgeben: Nur für Chris23
Hi Chris, wenn es immer nur ein gefülltes Rechteck ist, würde ich ein Solid nehmen: 0 SOLID 8 0 6 CONTINUOUS 10 0.0 20 0.0 30 0.0 11 1.0 21 0.0 31 0.0 12 0.0 22 1.0 32 0.0 13 1.0 23 1.0 33 0.0 (Einzutragen unter ENTITIES) Grüsse, Henning ------------------ Henning Jesse VoxelManufaktur Computer-Dienstleistungen für Architekten und Ingenieure http://www.voxelman.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
wronzky Ehrenmitglied V.I.P. h.c. CAD-Dienstleistungen für Architekten
Beiträge: 2154 Registriert: 02.05.2005 CAD: AutoCAD 2.6 bis 2014 ADT 2005 bis ACA 2013 Arcibem System: Windows Internet-Startseite: http://www.archi.de
|
erstellt am: 26. Jun. 2008 23:33 <-- editieren / zitieren --> Unities abgeben: Nur für Chris23
Ach so noch was: Eine DXF-Datei braucht eigentlich NUR die Entities-Section. Eine DXF-Datei, die so aussieht ist also auch gültig: Code: 0 SECTION 2 ENTITIES 0 SOLID 8 test 10 0.0 20 0.0 30 0.0 11 1.0 21 0.0 31 0.0 12 0.0 22 1.0 32 0.0 13 1.0 23 1.0 33 0.0 0 ENDSEC 0 EOF
Interessanterweise wird hier der Layer "test" (code 8) automatisch erzeugt!Grüsse, Henning ------------------ Henning Jesse VoxelManufaktur Computer-Dienstleistungen für Architekten und Ingenieure http://www.voxelman.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Chris23 Mitglied
Beiträge: 12 Registriert: 12.06.2008
|
erstellt am: 30. Jun. 2008 11:16 <-- editieren / zitieren --> Unities abgeben:
|
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13527 Registriert: 30.11.2003 Hinweis: Meine Mitarbeit auf CAD.DE ist fakultativ, unentgeltlich und beruht nur auf einem ausgeprägtem Helfersyndrom.
|
erstellt am: 30. Jun. 2008 11:17 <-- editieren / zitieren --> Unities abgeben: Nur für Chris23
|