Sponsored links

【AutoLISP DXF情報】図形から画層名を取得して画層の色を赤に変更

Sponsored links
基礎編
Sponsored links

図形(オブジェクト)を選択で、その図形の画層の色を変更するコマンドの作り方の説明です。

Sponsored links

予備知識

コマンドの内容

まず、選択した図形から画層名を得ます。

そして、AutoCADコマンドLAYER[画層管理]を使って、
LAYER[画層管理] > [色設定(C)] > 赤(1 )> 画層名 > エンターキーで終了
で、画層の色を変更します。

AutoLISP プログラム

(defun c:LyCol1 ( / Obj Ent Ly)

  (setq Obj (car (entsel)))
      (setq Ent (entget Obj))
         (setq Ly (cdr (assoc 8 Ent)))
  
  (command-s ".-LAYER" "C" 1 Ly "" )

(princ))

AutoLISPの解説

 (setq Obj (car (entsel)))
      (setq Ent (entget Obj))
         (setq Ly (assoc 8 Ent))

(car (entsel)) で得た図形名を変数Objに入れ、そのObjを引数にして、entget でDXF図形情報を変数Ent に入れ、assoc と、画層名のDXFグループコード、8 を使って、図形の画層名を得ました。

(command-s ".-LAYER" "C" 1 Ly "" )

command-s 関数は、既存のAutoCADコマンドを使う機能がありましたね。

ここで、AutoCADコマンドLAYER[画層管理]を実行して、各オプションを入れています。

まとめ

図形(オブジェクト)を選択、その図形のDXF図形情報から画層名を得て、画層の色を変更する方法でした。

関連記事

図形の画層の色を変更するコマンド。
図形の選択をグループ選択にしたり、空振り対策を入れたり、ESCキーを押してキャンセルするまで繰り返す、コマンド実行の度にユーザーが色を選択できるようにするなど、いろいろアレンジしたサンプルコマンドです。

Comments