Lispという便利ツール
こんにちは!
エカキオです!
先日からAutoCADのLispを作成するサービスを始めさせて頂いております。
Lispは知っているけど作り方がわからない…という方にも入門編という形で作り方解説をしているページもございます。
AutoCAD Lisp 入門 - 1 - 最強の時短ツール「Lisp」とは - 図描きの備忘録
そもそもLispってなに?
Lispを使うとどんなことが出来るの?
という疑問に、今回はお答えしていこうと思います。
これはあくまでも個人の見解であることはご了承ください。
PCが出来る作業はPCに任せよう
そもそもLispとはなんぞや?ということですが、ざっくり言うと、AutoCADの作業を自動化できるツールといったところでしょうか。
例えばですが、コピー&ペーストしたオブジェクトをそのまま、5倍の大きさで配置するといった作業を行うとしましょう。
通常であれば、
ペーストのコマンドを入力する
↓
ペーストとする位置を指定する
↓
ペーストしたオブジェクトを選ぶ
↓
尺度変更のコマンドを入力する
↓
尺度変更の基点を指定する
↓
5倍を指定する
という行程としましょう。
それをLispコマンド化すると、
Lispコマンド入力
↓
オブジェクトの位置を指定する
以上
これでペーストした位置で5倍の尺度変更が可能となります。
もちろん、Lispコマンドの途中にユーザー入力を求めることも設定出来ますので、倍率は入力できるような設定も可能です。
これは非常に単純な例をご説明しましたが、人が考えなくてもPCが判断できる行程であれば、どんなに長くても自動化可能です。
また、途中にユーザー入力を求めることも出来るので、半自動可することでも十分なメリットがあると言えます。
ここで言いたいのは、PCが出来る作業で誰がやっても変わらない作業はPCに任せた方が「早くて正確」ということです。
面倒な作業を人にお願いすれば不満も溜まるでしょうが、
PCに作業をお願いすると、微塵の不満も漏らしません。
時間を買ってみると意外と安いことに気付く商品 - 図描きの備忘録
Lispではどこまで出来るのか
どこまで出来るのかというと、限界は作成者の技量によると思います。
単純に言うと、データから拾える情報を利用できればある程度のことは可能かと考えます。
オブジェクトに共通している情報としては、
- 図形タイプ(線分やポリライン、ブロックなど)
- 画層名
- 線種
- 線種尺度
- 色
などなど
図形タイプごとにも拾える情報は異なり、
例えば「線分」オブジェクトでの一例を挙げると、
- 線の厚み
- 始点の座標
- 終点の座標
などなど
参考URL
これらの情報を抽出して、コマンド上のユーザーが入力すべきところに自動的に情報を当て込むことが可能です。
私が普段作業をしてい、Lisp化で出来そうだなと感じる時というのは、
・作業の繰り返し(while関数)
・抽出出来たらいいのに(if関数、不等号など)
・レイヤーや色などプロパティの変更(entget,entmod関数)
などなど、関数で出来ることを知っていると「自動化」できる発想が出てくるといったところでしょうか。
ちなみに関数はこちらのリンクを眺めてると、こんなことも出来るのかと関心が広がります。
参考URL
Lispには更に高度なものがあり、ActiveXというものや、.NETやVBAなどなど、その他のプログラム言語とも合わせて使うと幅も広がります。
Excelなどと連携させることもできたりします。
可能性としては無限大です。
まとめ
いかがでしたでしょうか。
AutoCADのレギュラー版を利用している方であればどなたでも利用できるツールですので、一度試してみる価値はあるのではないでしょうか。
実用的なLisp例を過去記事で投稿していますので、そちらも合わせてご参照ください。
Lisp実践編 - 7 - レイヤ名でフリーズ - 図描きの備忘録
AutoCAD LTはLisp対応はしていないのですが、低価格のCADでLisp対応、AutoCAD同等の操作性を誇るCADを比較検討しています。
低価格CADとAutoCAD、徹底比較!! - 図描きの備忘録
是非ともご検討ください。
それではこの辺で。
エカキオ