Sponsored links

【AutoLISP コマンド操作】ブロック/外部参照 から図形を同じ場所に抽出

Sponsored links
基礎編
Sponsored links

今回は、ブロック/外部参照から、欲しい図形をブロック/外部参照の外の同じ座標にコピーするコマンドです。

Sponsored links

予備知識

コマンドの内容

AutoCADコマンドのNCOPY[ネストを複写] を使ったコマンドを作ります。

ネストコピーは、外部参照やブロック内から図形をコピーできる、とても便利なコマンドです。

NCOPY[ネスト複写]は、普通にコマンドを実行したときに、普通のCOPY[複写]と同じように、基点と2点目が必要です。
しかし、「同じ場所に取り出したい!」という時、図形選択して、1点目と2点目、同じ点を選択するのはなんか無駄な動作。
こういうことこそ、AutoLISPで、”どこでもいいから2回同じ点を選択して”とすればラクできます。

AutoLISP プログラム

(defun c:NC00 ()
	(command "._NCOPY" pause "" "0,0.0"  "0,0.0")
(princ))

AutoLISP の解説

(command “._NCOPY” pause 0,0 “”)

NCOPY[ネスト複写]  は 関数 command-s 関数と相性が悪いようで、実行すると私の環境ではエラーになるので、今回は 関数 command を使っています。

AutoCADがフリーズ、強制終了しなければいけない場合に備えて、AutoLISPをテストするときは、必ず、必要なデータが入っていない図面ファイルで試してください

内容シンプルで、関数commandで、AutoCADコマンド NCOPYを実行、pause (図形のユーザー選択)、その後、基点に”0,0,0″を選び、2点目も同じ点にして、同じところにコピーします。

これで、図形を選択するだけで、外部参照やブロックから、図形を抽出するコマンドができました。

コマンド名は、ネストコピーを点0,0でするということで、NC00 にしましたが、好みのの名前に変更してください。

カスタマイズ例

外部参照やブロックから図形を抽出するとき、私の場合は、一時的に作図のための補助線として欲しいだけで最終的には消すことが多いです。

消し忘れることも考えて、抽出後に抽出した画層が下書き用の画層など、特定の画層にすることもできます。

抽出した図形を特定の画層にする方法はコチラの記事で。

その他、もし、特定の画層がフリーズや表示オフや存在しなかったら、などのことも想定して、エラー処理も付けたコマンドサンプルはコチラの記事で。

まとめ

  • NCOPYは、外部参照やブロックから図形をコピーするコマンド
  • 関数command-s と相性が悪いAutoCADコマンドもあるので注意。
  • NCOPYはcommand-s と相性が悪い。
  • 同じ場所にコピーするには、基点と2点目を同じ点にする。

Comments