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

過去8年分のAutoCADリリース日から今年の2019リリース日を予測してみる

過去8年分のAutoCADリリース日。 2011:2010/03/19(金)→第3金曜日 2012:2011/03/16(水)→第3水曜日 2013:2012/03/16(金)→第3金曜日 2014: …

no image

UCS

AutoCADのユーザー座標系のことを、UCSと呼びます。 非ユーザー座標系=ワールド座標系で、WCSと呼びます。 なんとなくわかっていたつもりでしたが、いやはや奥の深い世界です。 踏み出したら抜けら …

no image

AutoCAD2007

ついに発表されました、AutoCAD2007。 ほんと毎年毎年、よくバージョンアップしますね。 まだ2006の前半だってぇーのに、2007という数字を使うあたりは、例年通りです。 私の記憶では、200 …

no image

ACM

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

no image

AutoCADのブログではNo.1だと思う20の理由

記事のアクセスランキングを見てみるとAutoCADの記事ばっかりで、日々のおいらの思いがなかなか見られていなくて残念な反面、CAD日記でありAutoCAD万世なこのブログなわけだから、とても満足だった …