CADLABO / LESSONS
AutoLISP初心者講座
AutoLISPって何?から、VS Codeの準備と自分のコマンド作りへ。
掲載中 25記事目的別の操作Tipsを見る

最初のゴールは、自分のコマンドを1つ動かすこと。
プログラミングが初めてでも、短いコードをコピーし、1か所直すところから始められます。VS Codeで書き、CADで実行し、結果を確かめる。これを繰り返しながら覚えましょう。
入門ページから始めるどこから始めればいい?
| 今の状態 | 最初に読むページ | できたら次へ |
|---|---|---|
| コードを見たことがない | AutoLISP入門・最初の練習 | 文字表示と計算を1つ試せた |
| 書く道具と保存先を用意したい | VS Codeの導入・保存・読み込み | 保存した.lspをAPPLOADで読み込めた |
| 自分の名前でコマンドを呼びたい | 自分専用コマンドを作る | 変更して再読み込みできた |
| 実際の図面作業に使いたい | 点を取得する・CADコマンドを呼ぶ | 指定した点を作図へ使えた |
小さく進める、4段階の学習プラン
| 段階 | 取り組むこと | 確認する結果 |
|---|---|---|
| 1. 表示する | 入門ページのLABHELLOを保存・実行 | Hello, CADLabo!が表示される |
| 2. 計算する | 括弧、数値、setqを学ぶ | 幅120×高さ80を9600と計算できる |
| 3. 入力する | 入門ページのLABAREAで値を受け取る | 入力を変えると計算結果も変わる |
| 4. 作図・選択へ | 点の取得、command、図形選択を学ぶ | 練習図面で結果を確認できる |
一度に全部覚える必要はありません。各記事の「実際に試す」で、結果が合うところまで進めてから次へ移りましょう。
最初は「AutoLISPって何?」から。できることがわかったら、VS Codeの導入と保存・読み込み、VS CodeのLISP用設定へ進み、短いコードを順番に試してみましょう。
最初の一歩・AutoLISPを知って、作成環境を用意する7記事
01AutoLISP入門|初めてのコード・VS Code・練習問題プログラミング初心者向けAutoLISP入門。コードの読み方から、VS Codeで保存して動かす最初のコマンド、計算・変数・入力、練習問題とよくあるエラーまで順番に学べます。02AutoLISPの作成環境を整える|VS Code・保存・APPLOADVS Codeの導入とAutoLISP拡張機能、.lspの保存、CADでの読み込みと再実行を初心者向けに解説します。03VS CodeのAutoLISP設定|拡張機能・括弧・字下げVS CodeでAutoLISPを書くための設定。拡張機能、色分け、括弧、行番号、空白2個、文字コードとCADでの実行を確認します。04Lesson 2|LISPを実行してみるまずコマンド欄に文字を表示して、式の動きを確かめます。05Lesson 3|自分専用コマンドを作るHELLOCADと入力すると動く、最初の専用コマンドを定義します。06Lesson 4|commandでCADの操作を呼び出す普段のコマンドへ、入力する内容を順番に渡します。07Lesson 5|クリックした点を取得するgetpointとsetqで、選んだ位置を記憶して表示します。
数値・変数・データ8記事
01四則演算|数値を計算する基本AutoLISPでは演算子を先頭に置いて計算します。足し算・引き算・掛け算・割り算と、整数・実数による結果の違いを確認します。02setqとset|変数へ値を代入する方法の違い通常の代入にはsetqを使います。setは、評価した結果のシンボルへ代入します。2つの短い例を比較して、変数名と値の関係を確認します。03ローカル変数とグローバル変数を使い分けるdefunのスラッシュ以降に変数を宣言すると、実行中だけ使うローカル変数になります。関数の前後で値を比べ、外側の変数との関係を確認します。04文字列|結合・切り出し・数値変換の基本strcat、substr、itoa、rtosなどを使って文字列を整えます。文字と数値を区別し、図面ラベルを組み立てる小さな例から始めます。05リスト|要素の取得・追加・検索の基本car、cdr、length、member、cons、appendでリストを操作します。色名のリストを使い、処理前後に何が返るかを確認します。06if・cond|条件分岐と繰り返しを組み合わせるifで2つの処理を切り替え、condで複数の条件を順に判定します。比較演算とwhileの例で、条件式を組み立てる基本を確認します。07getxxx|点・数値・文字・角度の入力を受け取るgetpoint、getint、getreal、getstringなどで利用者の入力を受け取ります。入力の種類、initgetの制約、角度の戻り値を確認します。08AutoLISPの基礎早見表|入力・計算・図形操作ファイルの保存、変数、入力、リスト、図形操作をまとめて振り返るページです。各テーマの最小例を確認し、詳しい解説へ進めます。
選択・図形の取得と変更6記事
01ssget|条件と範囲を指定して図形を選ぶssgetで選択セットを受け取ります。対話選択、図形種別・画層のフィルター、範囲選択を使い分け、処理する対象を絞ります。02ssgetとwhile|選択した図形を1つずつ処理するssgetで選択セットを取得し、sslengthで件数を調べ、ssnameで図形を1つずつ取り出します。まず図形種別の表示で繰り返しの動きを確認します。03エンティティ|図形の情報を取得・変更する図形の名前を取得し、entgetでDXFデータを読み取ります。色の変更とentmodの流れを、小さな図形で順番に確認します。04assoc|DXFデータから画層や色を取り出すassocで指定したグループコードのデータを探し、cdrで値を取り出します。画層名の取得から、コードが見つからない場合の扱いまでを確認します。05entmake|DXFデータから図形を作成する図形種別、座標、半径などをDXFデータのリストにまとめ、entmakeへ渡します。線と円の作成から、文字・ブロックの構造へ進みます。06ifの実務例|画層があるときだけ処理するtblsearchで画層の存在を調べ、ifで処理を切り替えます。片方の条件でだけ実行したい処理も、AutoLISPのifで表せます。
実践:梁を描くLISP4記事
01梁を描くLISP 1|点を取得して線を描く梁の作図を題材に、式の入力、getpoint、変数、commandの基本を復習します。最初は2点を選び、1本の線を描く処理から始めます。02梁を描くLISP 2|ファイルに保存してコマンド化する繰り返し使う処理を.lspに保存し、APPLOADで読み込みます。defunとc:を使ってコマンド化し、梁の幅や端点を受け取る準備をします。03梁を描くLISP 3|polarで輪郭の座標を計算するpolarへ基点・角度・距離を渡し、梁の輪郭を構成する点を求めます。角度の単位と幅の方向を確認しながら作図します。04梁を描くLISP 4|入力と設定を管理して繰り返すinitgetで不正な入力を抑え、作図を繰り返します。変更するシステム変数を保存し、処理後に戻す考え方も確認します。
