よく使う図形や部品はブロック化しておくと再利用できて便利です。
通常のブロック作成コマンドは手順が少し多く、作業の流れが止まりやすいことがあります。
そこで私はクイックブロック化コマンド(QB)をLISPで作成して使っています。
(defun c:QB ()
(setq sel (ssget))
(setq Pt1 (getpoint "n基点指定"))
(setq Na1 (getstring "nブロック名"))
(command "_BLOCK" Na1 Pt1 sel "");ブロック化
(command "_-INSERT" Na1 Pt1 "" "" "" ) ;ブロック挿入
)すぐできる設定手順
- コマンド「QB」を入力
- ブロックの基点を指定
- ブロック名を入力
仁(じん)画像付きのSTEPは、下で確認できますよ!
Contents
操作手順
STEP


- コマンド「QB」を入力します
- ブロックにするオブジェクトを囲んで選択します
- ブロックの基点をクリックで指定します
STEP


- ブロック名を入力し、エンター
- ブロックが完成します
ブロック化コマンドのポイント
ブロックコマンドには注意点があります。
通常「BLOCK」コマンドを使用しブロック化すると登録オブジェクトはその場所に置かれたままブロック化します。
しかし、LISPの場合は、以下のコード5行目command “_BLOCK”でブロック化するだけだと、ブロック化したオブジェクトそのものが消えてしまいます。
(defun c:QB ()
(setq sel (ssget))
(setq Pt1 (getpoint "n基点指定"))
(setq Na1 (getstring "nブロック名"))
(command "_BLOCK" Na1 Pt1 sel "");ブロック化
(command "_-INSERT" Na1 Pt1 "" "" "" ) ;ブロック挿入
)それを回避するには、コード6行目command “_-INSERT”で登録したブロックを同じ場所に挿入する必要があります。
command “_-INSERT”の後ろの「Na1」は挿入するブロック名、「Pt1」は挿入する座標です。
「Na1」も「Pt1」もcommand “_BLOCK”でブロック化する際に使用してるものを流用します。
こうすることで同じ位置にブロックを挿入することができ、普通の「BLOCK」コマンドのような動きをLISPで再現することができます。



BLOCKだけだと消えるから、INSERTで復元してるのね!
まとめ
- 毎回BLOCKコマンドを入力するより、LISPでまとめた方が圧倒的に早いです。
- 作業の流れを止めないためにも、よく使う操作はLISP化していきましょう。


コメント