AutoCADでLISPを作っていると、
「この図形ってどんな情報を持っているんだろう?」
と気になることはありませんか?
LISPで座標を取得したり、色や画層を取得・反映する処理を行う場合、オブジェクトの内部情報を理解しておくことが重要です。
画層や座標、図形の種類など、見た目では分からない内部情報を確認したい場面は意外と多いです。
そんなときに便利なのが、オブジェクトのDXF情報を取得するLISPです。
この方法を使えば、LISP作成に必要な情報を簡単に調べることができます。
(defun c:OI ()
(setq Obj (car (entsel))) ;図形名を得てObjに入れる
(entget Obj) ;ObjからDXF情報を得てEntに入れる
)- コマンド「OI」を入力
- DXF情報を取得したいオブジェクトを選択
仁(じん)画像付きのSTEPは、下で確認できますよ!
操作手順


- コマンド「OI」を入力します
- DXF情報を取得したいオブジェクトを選択します
- コマンドラインにDXF情報が表示されます
DXF情報解説
円のDXF情報を見ると以下のようになっています。
((-1 . <図形名: 255e96ff940>) (0 . “CIRCLE”) (330 . <図形名: 255b9a729f0>) (5 . “FE867C”) (100 . “AcDbEntity”) (67 . 0) (410 . “Model”) (8 . “0”) (100 . “AcDbCircle”) (10 7491.78 2778.35 0.0) (40 . 100.0) (210 0.0 0.0 1.0))
- (0 . “CIRCLE”) → 図形の種類
- (8 . “0”) → 画層名
- (10 …) → 中心座標
- (40 . 100.0) → 半径
というように数字と情報がグループになっています。
これを「DXFグループコード」と言います。
40はグループコードで、100.0はその値です。
このグループコードを使ってLISPを組んでいくので、ここはしっかり押さえておきましょう。



40という項目に、100.0という値が入っていのね!
まとめ
オブジェクトのDXF情報を取得することで、図形が持つ内部データを簡単に確認することができます。
- entselで選択
- entgetで情報取得
- DXFコードを確認
この流れを覚えておくだけで、LISP作成の理解が一気に深まります。
見た目では分からない情報を扱えるようになると、AutoCADの操作レベルも一段上がるので、ぜひ活用してみてください。


コメント