CADLABO / LESSONS
AutoLISP初心者講座
プログラミング未経験から、自分のコマンドへ。
掲載中 23記事目的別の操作Tipsを見る
最初の一歩5記事
数値・変数・データ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で不正な入力を抑え、作図を繰り返します。変更するシステム変数を保存し、処理後に戻す考え方も確認します。