CAD日記

主にAutoCADのことについて書いているけど、近頃は投資系ネタに注力している。自動売買、仮想通貨、PC関係、プログラミングなど。@caddiary

AutoCAD

レイアウトのモデル化

投稿日:

レイアウトをモデルに変換するプログラムってどんだものだったかと、
忘れかけた記憶を呼び戻して書いてみる。
1.全レイアウト名取得
 ブロックセクションからブロックレコードを全部読む。
 レイアウトフラグが立っていて、名前に「*PAPER_SPACE」が含まれていて、
 用紙サイズの高さ・幅が0でないものの名前をリストアップする。
 ここで取得する順番は、AutoCADのタブページに表示される順番に
 ならないので、ブロックレコードからタブ順番情報を取得してソートする。
2.変換対象とするレイアウトをアクティブにする
3.変換先(モデルだけの図面)をクリエイトする
4.ヘッダーとテーブルを変換先にコピーする
5.アクティブレイアウトからビューポート取得
 ビューポートには、配置点・倍率・角度・表示範囲の情報があるので、
 それらを保存しておく。
 また、レイアウト内にはビューポート以外に一般図形(線や円など)が
 あるので、これらは、変換先にそのままの図形情報で追加する。
6.モデルから図形情報を取得して、変換先に追加する 
 モデルには一般図形があるので、ビューポートの配置点・倍率・角度で
 変形させた上で、ビューポートの表示範囲で切り取りを行い、変換先に
 追加する。
 モデルにブロック参照があれば、変換先にブロック定義を追加する。
 5でビューポートが複数あれば、その数分の処理を行う。
7.変換先を保存する
簡単に書くと、これだけ。
寸法線、ハッチング、外部参照、XCLIPなど複雑な図形での例外的な
実装があるものの、基本的な処理はたったこれだけである。
実装は、OpenDesignAllianceのTeighaを使ってやっていて、
C++のクラス構造を持ったコンポーネントを利用している。
昔は、DXFを独自解析して、グループコードごとに情報を保持して、
何がどんな意味なのかを調べて実装していたわけだが、
このTeighaがあるおかげで、いろんな意味で楽になった。
PMツールのVer1をリリースしたのが2005/05/11。
あと少しで10年か。。。
当初大きな夢を持って作ったわけだが、その夢がかなうほど
現実は甘くない。
これだけ続いただけでもよかったし、AutoCADとの接点を
密に持ち続けられたことは幸せなことだと思う。

-AutoCAD
-

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

関連記事

no image

黒丸矢印

AutoCAD寸法の黒丸矢印が特殊だということを以前書いた。 円をポリラインで AutoCADで書いたDXFを、Jw_cadで開くとこんなことが起きるわけだ。 これを、半円ドーナツ化現象と呼ぶ。 (正 …

no image

AutoCADは永久ライセンスをもうやめるってさ

CADの世界に長くいるけど、AutoCADの永久ライセンスがもうなくなるって ことを聞いて、ちょっとおどろいている。 Autodesk 永久ライセンスの変更 サブスクリプション(レンタル)はずいぶん昔 …

no image

Keystone

2004 Red Deer 2005 Neo 2006 Rio 2007 Postrio 2008 Spago 2009 Raptor 2010 Gator 2011 Hammer 2012 Iron …

no image

ACM

 AutoCAD Mechanical のことをACMと呼んだりします。機械系の図面を書くのに優れているAutoCADです。他のAutoCADシリーズではADTなんてのがあります。Autodesk A …

no image

2008オブジェクト

AutoCAD2008を本格的に触れるようになったので、 2008オブジェクトの調査を開始した。 結論から言っておこう。 よく理解できない。 奥が深く、不明な点が多い。 1.異尺度オブジェクト  図面 …