DXF / DWGオブジェクトダンパーを書いています。ダンパーはすべてのデータを階層的にエクスポートし、後でこの完全なデータセットをGeoJsonまたはCSV-WKTに変換します。
私がつまずいたことの1つは、内部階層がすべてのダンプされたブロックを辞書と同じ階層レベルに格納していることです。
entities->block1->...data...
entities->block2->...data...
これはマップとして保存しているため、ブロック名は一意のキーである必要があるため、まだ問題は発生していません。この仮定が正しいかどうか疑問に思います。
それで、ブロック名は一意ですか?そして、ブロックには常に名前がありますか?ユーザーが作成したブロックが実際に一意であっても、一意の名前を持たないユーザーが作成していないブロックが存在する可能性はありますか?
ここを見ると、DXFファイルについて必要なすべての情報が得られます。
あなたは上でルックアップする必要があるBLOCKSとENTITIES INSERTの部品。
ブロックには、その定義とともに一意の参照があります。次に、図面には、ブロックのインスタンスであるINSERTオブジェクトがあります。
また、そこにも言及しています:
DXFファイルのBLOCKSセクションには、すべてのブロック定義が含まれています。これには、HATCHコマンドや連想寸法によって生成された匿名ブロックなど、図面で使用されるブロックを構成するエンティティが含まれています。このセクションのエンティティの形式は、ENTITIESセクションの形式と同じです。BLOCKSセクションのすべてのエンティティは、blockエンティティとendblkエンティティの間に表示されます。ブロックエンティティとendblkエンティティは、BLOCKSセクションにのみ表示されます。ブロック定義に挿入エンティティを含めることはできますが、ブロック定義がネストされることはありません(つまり、ブロックまたはendblkエンティティが別のブロック-endblkペア内に表示されることはありません)。
外部参照は、外部参照のパスとファイル名を指定する文字列(グループコード1)も含まれることを除いて、ブロック定義としてDXFファイルに書き込まれます。
ブロックテーブルハンドルは、xdataおよび永続リアクターとともに、ブロックテーブルレコードが格納するすべての特定の情報を含むBLOCKレコードの直後の各ブロック定義に表示されます。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加