2016-07-09 8 views
0

Ich schreibe einen DXF/DWG Objektdumper. Der Dumper exportiert alle Daten hierarchisch und konvertiert diesen vollständigen Datensatz später in GeoJson oder CSV-WKT.DXF/DWG-Interna: Ist der Name eines Blocks eindeutig?

Eine Sache, ich stolpere, ist, dass meine interne Hierarchie speichert alle Blöcke auf der gleichen Hierarchieebene als Wörterbuch abgeladen:

entities->block1->...data... 
entities->block2->...data... 

ich jede Frage noch nicht se, aber da ich diese speichern als Karte und daher müssen Blocknamen eindeutige Schlüssel sein. Ich frage mich, ob diese Annahme wahr ist oder nicht.

Sind Blocknamen also eindeutig? Und haben Blöcke immer einen Namen? Kann es nicht vom Benutzer erstellte Blöcke geben, die keinen eindeutigen Namen haben, obwohl vom Benutzer erstellte Blöcke tatsächlich einzigartig sind?

+0

CAD ist keine einzige Sache. Meinst du DWG-Format oder DXF-Format oder eine bestimmte CAD-Software oder ...? –

+0

Danke natürlich. Die Beschreibung wurde korrigiert – benjist

Antwort

2

Wenn Sie here betrachten, erhalten Sie alle Informationen, die Sie über DXF-Dateien benötigen.

Sie müssen auf die BLOCKS und ENTITIES INSERT Teile nachschlagen.

Blöcke haben eine eindeutige Referenz mit ihrer Definition. In der Zeichnung befinden sich INSERT-Objekte, die Instanzen der Blöcke sind.

Er erwähnt auch dort:

Die BLOCKS Abschnitt der DXF-Datei alle Blockdefinitionen enthält. Es enthält die Entitäten, aus denen die in der Zeichnung verwendeten Blöcke bestehen, einschließlich der anonymen Blöcke, die mit dem Befehl HATCH generiert wurden, und der assoziativen Bemaßung. Das Format der Entitäten in diesem Abschnitt ist identisch mit dem im Abschnitt ENTITIES. Alle Entitäten im Abschnitt BLOCKS werden zwischen Block- und Endblk-Entitäten angezeigt. Block- und Endblk-Elemente werden nur im Abschnitt BLOCKS angezeigt. Blockdefinitionen werden niemals verschachtelt (dh es wird niemals eine Block- oder Endblk-Entität in einem anderen Block-Endblk-Paar angezeigt), obwohl eine Blockdefinition eine Insert-Entität enthalten kann.

Externe Referenzen werden in die DXF-Datei als Blockdefinitionen geschrieben, außer dass sie auch eine Zeichenfolge (Gruppencode 1) enthalten, die den Pfad und den Dateinamen der externen Referenz angibt.

Das Blocktabellen-Handle wird zusammen mit allen xdata und persistenten Reaktoren in jeder Blockdefinition unmittelbar nach dem BLOCK-Datensatz angezeigt, der alle spezifischen Informationen enthält, die in einem Blocktabellen-Datensatz gespeichert sind.

0

AutoCAD-Blöcke sind Symbole, die oft an verschiedenen Stellen in verschiedenen Winkeln und Skalierungen in die Zeichnung eingefügt werden können (auch nicht für eine gleichmäßige Skalierung). Die Entitätsliste jedes Blocks kann eine Blockreferenz enthalten, die eine verschachtelte Struktur erzeugt. Ihre Implementierung benötigt daher rekursive Methoden, die sich mit der Verschachtelung mehrerer Objekte befassen.

Ja, der Name des Blocks ist eindeutig und kann als Wörterbuchschlüssel gespeichert werden.

Verwandte Themen