AutoLISP入門 関数紹介

【AutoLISP】円を作図するコマンド「circle」

作図

今回の記事ではAutoCADの標準コマンド「circle」について解説していきます。

通常通りにcircleを実行すると、座標や直径など作図に必要な情報の入力をユーザーに求めてきます。複数の円を作図したい場合は何度もcircleを実行するため、その都度ユーザー入力の手間がかかり面倒です。

AutoLISPではAutoCADのコマンドを自動で実行することができるため、円の作図を効率化できます。使用例と作図のモード毎に必要なオプションについても解説していきますのでぜひご覧ください。

【AutoLISP】円を作図するコマンド「circle」

drawing

circleの動作

circleはその名前のとおり円を作図するコマンドです。コマンドを呼び出す関数commandで実行することが可能で、指定するオプションによって作図のモードを変更することもできます。作図のモードはいくつか存在しますが、その中から3つのモードの使用例をご紹介します。

circle以外の作図コマンドはこちらの記事で解説していますのでよろしければご覧ください。
【AutoLISP】線分を作図するコマンド「line」
【AutoLISP】ポリラインを作成するコマンド「pline」
【AutoLISP】四角を作成するコマンド「rectang」

commandについて知りたい方はこちらの記事をご覧ください。
【AutoLISP】コマンドを呼び出す関数「command」

使用例① 中心と半径を指定する

中心と半径を指定することで円を作図できます。記述は次のとおりです。

(command "circle" (list 0 0) 5)

上記の例では中心(0,0)に半径5の円が作図されます。ちなみに、AutoLISPでは座標をlistで表現することが可能です。listについてはこちらの記事で解説していますのでよろしければご覧ください。
【AutoLISP】リストを作成する関数「list」「cons」

中心と半径にはそれぞれのデータを格納した変数を指定することも可能です。例えば、変数ptに(0,0)の座標、変数radiusに半径の5を格納して円を作図する場合は次のようになります。

(setq pt (list 0 0))
(setq radius 5)
(command "circle" pt radius)

使用例② 中心と直径を指定する

直径を指定する場合は中心の後ろに"D"と記述します。

(command "circle" (list 0 0) "D" 10)

"D"と記述することで直径を入力するモードに切り替わり、中心(0,0)で直径10の円が作図できます。また、直径ではなく円周上の1点を指定して作図することも可能です。

(command "circle" (list 0 0) "D" (list 5 0))

円周上の点である(5,0)を指定することで直径10の円が作図できます。

使用例③ 円周上の3点を指定する

円周上の3点を指定して作図することも可能です。

(command "circle" "3P" (list 0 0) (list 1 0) (list 1 1))

中心は省略し、"3P"と記述したあとに円周上の座標を指定します。

circleの書式

circleを実行するときの構文と引数は次のとおりです。

構文
(command "circle" [center] [mode] arguments …)
引数
center:円の中心座標。modeによっては省略可能。
mode:作図のモードを表す文字列。作図のモードによっては省略可能。
arguments:作図するために必要な引数。modeによって指定する引数が異なる。

作図のモードと必要な引数の対応は次のようになります。

作図のモードcentermodearguments
中心と半径を指定する円の中心座標省略半径
中心と直径を指定する円の中心座標"D" 直径または円周上の1点
円周上の3点を指定する省略"3P"円周上の3点
他の図形に接する3点を指定する省略省略他の図形に接する3点
直径の両端を指定する省略"2P"直径の両端2点
2つの図形それぞれに接する2点と半径で作図 省略"T"それぞれに接する2点と半径

まとめ

今回のまとめ

  • circleは関数commandで実行できる
  • 指定するオプションによって作図のモードを変更できる

-AutoLISP入門, 関数紹介

独学おすすめ書籍はコチラ
独学おすすめ書籍はコチラ