CyberChaos(さいばかおす)

プログラミング言語、トランスパイラ、RPA、ChatGPT、データマイニング、リバースエンジニアリングのための忘備録

Autolisp言語で簡易CADチャットボットのプログラムを書いてもらった。

2023-05-19 19:30:25 | Autocad

Pythonで簡易CADチャットボットを作った - CyberChaos(さいばかおす) (goo.ne.jp)

でChatGPTにPythonで書いてもらったCADチャットボットプログラムを

今度はAutolisp言語で書き換えてもらった。

さて結果はどうなることやら。以下がそのコード。

(defun create-line ()
(setq start-x (atoi (vl-string->list (getstring "始点のX座標を入力してください。"))))
(setq start-y (atoi (vl-string->list (getstring "始点のY座標を入力してください。"))))
(setq end-x (atoi (vl-string->list (getstring "終点のX座標を入力してください。"))))
(setq end-y (atoi (vl-string->list (getstring "終点のY座標を入力してください。"))))

(command "_line" (list start-x start-y) (list end-x end-y))
)

(defun create-circle ()
(setq center-x (atoi (vl-string->list (getstring "中心のX座標を入力してください。"))))
(setq center-y (atoi (vl-string->list (getstring "中心のY座標を入力してください。"))))
(setq radius (atoi (vl-string->list (getstring "半径を入力してください。"))))

(setq x1 (- center-x radius))
(setq y1 (- center-y radius))
(setq x2 (+ center-x radius))
(setq y2 (+ center-y radius))

(command "_circle" (list center-x center-y) radius)
)

(defun process-user-input ()
(setq user-input (getstring "何をしましょうか?"))
(setq has-line (vl-string-search "直線" user-input))
(setq has-circle (vl-string-search "円" user-input))

(if has-line
(create-line)
(if has-circle
(create-circle)
(alert "そのような操作はできません。"))
)
)

(defun cad ()
(setq root (vlax-get-or-create-object "AutoCAD.Application"))
(setq doc (vla-get-ActiveDocument root))
(setq model-space (vla-get-ModelSpace doc))

(setq canvas (vla-AddCanvas model-space (vlax-3d-point '(0 0 0)) 400 400))

(setq button (vla-AddButton canvas "操作を入力" '(0 0 0) "process-user-input"))
(vla-put_Enabled button :vlax-true)

(vla-ShowBalloon button "CAD" "CAD" "操作を入力してください。" 1)
)

(defun c:cad ()
(cad)
(princ)
)

上記のコードは、AutoCADのカスタムコマンドとして実行することを想定しています。c:cadというコマンドを呼び出すことで、CAD環境が起動し、操作を受け付けます。

このコードをAutoCADのLISPエディタに貼り付け、保存してからc:cadというコマンドを実行すると、CADアプリケーションが起動し、指定された操作を行うことができます。

ご注意ください。

P.S.

全く動かんorz

やはり苦楽したAutocad2020ではダメなのか?

禿臆で更新できるAutocad2023とかを扱ってる輩から買い直すしかないのか?



最新の画像もっと見る

コメントを投稿

ブログ作成者から承認されるまでコメントは反映されません。