AutoCADの自動化やカスタマイズに欠かせないAutoLISP。今回は、図面処理やユーザー入力の整形に役立つ「文字列操作の基本関数」について、分かりやすく解説します。
🔤 文字列とは?
AutoLISPでは、文字列は "abc"
のようにダブルクォーテーションで囲まれたデータです。図面の属性値やユーザー入力など、さまざまな場面で登場します。
🛠️ よく使う文字列操作関数一覧
関数名 | 説明 | 使用例 |
---|---|---|
(strcat s1 s2 ...) | 文字列を結合する | (strcat "A" "uto" "CAD") → "AutoCAD" |
(strlen s) | 文字列の長さを取得 | (strlen "Hello") → 5 |
(substr s start [length]) | 文字列の一部を抽出 | (substr "AutoCAD" 5 3) → "CAD" |
(itoa n) | 整数を文字列に変換 | (itoa 123) → "123" |
(atof s) | 文字列を実数に変換 | (atof "3.14") → 3.14 |
(rtos r [unit] [precision]) | 実数を文字列に変換(書式指定可能) | (rtos 3.14159 2 2) → "3.14" |
(ascii s) | 文字列の先頭文字のASCIIコードを取得 | (ascii "A") → 65 |
(chr n) | ASCIIコードから文字を取得 | (chr 65) → "A" |
✍️ 実用例:図面ラベルの自動生成
(defun c:labelgen ()
(setq base "部品番号-")
(setq num (itoa 105))
(setq label (strcat base num))
(alert label) ; → "部品番号-105"
)
このように、strcat
と itoa
を組み合わせることで、数値を含むラベルを簡単に生成できます。
🧩 応用ポイント
substr
を使えば、属性値の一部だけを抽出して分類できます。rtos
を使えば、寸法値を図面に表示する際の書式を統一できます。ascii
とchr
を使えば、文字コードベースの処理も可能です(例:英字の並び替えなど)。
🎓 まとめ
AutoLISPの文字列操作は、単なる文字の結合や抽出だけでなく、図面の自動化やユーザーインターフェースの整備にも大きく貢献します。まずは基本関数を使いこなし、次のステップでは正規表現や文字列のパターン処理にも挑戦してみましょう!
コメント