いつもお世話になっております。
前回から質問させていただいておりましたものをクリンプナット用に変更したところ、エラーになってしまうようになりました。
kiridiaの値がうまくいっていないことはわかるのですが、これをどのように修正したらいいのかがわからず困っております。
ご教授いただけないでしょうか?
よろしくお願いします。
使用CAD:AutoCAD2025
Lispの内容です。
(defun c:CLNUT ( / ent obj dia Diameter sets hole lengs units kiridia)
(while
(setq sets (getstring "セット数:")) ;穴セット数
(if (not (= sets ""))
(setq sets (strcat sets "x" ))
);if
(setq hole (getstring "穴の数:")) ;穴の数
(if (not (= hole ""))
(setq hole (strcat hole "-" ))
);if
(setq lengs (getstring "ボルト長さ:")) ;ボルト長さ
(if (not (= lengs ""))
(setq lengs (strcat "-" lengs "L" ))
);if
;ボルトセット種類
(setq units (getstring "B,N,PW,SWのセットは?:")) ;B,N,PW,SW種類
(if (not (= units ""))
(setq units (strcat " " units ))
);if
;ここから作図
(setq ent (nentsel "\n円を選択してください: "))
(setq obj (vlax-ename->vla-object (car ent)))
(if (eq (vla-get-ObjectName obj) "AcDbCircle")
(progn
(setq dia (vla-get-Diameter obj))
(cond
((= (atof dia) 5.1)(setq kiridia "M3"))
((= (atof dia) 6.1)(setq kiridia "M4"))
((= (atof dia) 7.1)(setq kiridia "M5"))
((= (atof dia) 9.1)(setq kiridia "M6"))
((= (atof dia) 11.1)(setq kiridia "M8"))
((= (atof dia) 13.1)(setq kiridia "M10"))
(T )
);cond
(setq Diameter (strcat sets hole "φ" (rtos dia) "\n" kiridia lengs units " クリンプナット"))
(command "_mleader" "nea" (cadr ent) pause pause Diameter)
);progn
(alert "選択したオブジェクトは円ではありません。")
);if
);while
(princ)
);defun
コマンドの流れです。
↓
コマンド: _CLNUT セット数:
穴の数:
ボルト長さ:
B,N,PW,SWのセットは?:
円を選択してください: ; エラー: 引数のタイプが間違っています: stringp 11.1
コマンド:
クリンプナット穴引出線記入LISP
- mappy
- 2025/05/21 (Wed) 09:41:57