AutoLISP入門 文字操作!基本関数をマスターしよう

Autolisp

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"
)

このように、strcatitoa を組み合わせることで、数値を含むラベルを簡単に生成できます。


🧩 応用ポイント

  • substr を使えば、属性値の一部だけを抽出して分類できます。
  • rtos を使えば、寸法値を図面に表示する際の書式を統一できます。
  • asciichr を使えば、文字コードベースの処理も可能です(例:英字の並び替えなど)。

🎓 まとめ

AutoLISPの文字列操作は、単なる文字の結合や抽出だけでなく、図面の自動化やユーザーインターフェースの整備にも大きく貢献します。まずは基本関数を使いこなし、次のステップでは正規表現や文字列のパターン処理にも挑戦してみましょう!

コメント

タイトルとURLをコピーしました