+CADLabo.comCAD / LISP / AUTOMATION
AutoLISP初心者講座

文字列|結合・切り出し・数値変換の基本

AutoLISPの基本・図形操作のTips一覧
要点

strcat、substr、itoa、rtosなどを使って文字列を整えます。文字と数値を区別し、図面ラベルを組み立てる小さな例から始めます。

始める前に

先に確認すると読み進めやすい記事:

確認の手順

  1. 二重引用符で囲んだ文字列をコマンド欄に入力します。
  2. strcatで文字をつなぎ、結果を確認します。
  3. itoaやrtosで数値を文字列へ変換します。
  4. 掲載例のラベルを作り、substrで必要な部分を取り出します。

文字列とは?

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

結果の確認

数字の値と数字を含む文字列は別のデータです。表示桁数や単位を決めてから、図面へ書き込む処理に進みます。

参照資料

対象環境・動作確認

AutoLISP対応環境(関数・OSごとの対応は要確認)。内容更新:2026年10月5日。掲載コードのCAD実機検証は未実施です。図形を変更する例は、コピーした図面で結果を確認してください。