圆的快捷命令
这是我的代码:目前,这是出现在我的命令行上的命令:ctd
d: 100
圆指定圆的中心点或:\u Ttr
为圆的第一个切线指定对象上的点:
为圆的第二个切线指定对象上的点:
指定圆半径:50.00000000000000
命令:
命令:
如果我在提示下按ESCAPE,
命令:
连续油管钻井
d:
; 错误:错误的参数类型:numberp:nil
我想要实现的是这样的目标,
命令:ctd
d: 100
圆指定圆的中心点或:\u Ttr
为圆的第一个切线指定对象上的点:
为圆的第二个切线指定对象上的点:
指定圆半径:50.00000000000000
命令:
命令:
当我按ENTER键时,
命令:ctd
d: (此时按ENTER键)
圆指定圆的中心点或:\u Ttr
为圆的第一个切线指定对象上的点:
为圆的第二个切线指定对象上的点:
指定圆半径:50.00000000000000
命令:
命令:
我该怎么做? 也许是这个?
;; Shortcut command for circle
(defun c:ctd (/ a)
(or (getenv "DIAM") (setenv "DIAM" "0"))
(if (setq a (/ (getreal (strcat "\nd<" (getenv "DIAM") ">: ")) 2))
(setenv "DIAM" (rtos (* 2 a)))
) ;_end if
(command "_circle" "_ttr" pause pause (getenv "DIAM"))
(princ)
) ;_end defun
谢谢李!这很快。
当我按escape时,如何修复此错误?
命令:ctd
d: *取消*
; 错误:功能已取消 我想可能是这样,但它并没有真正绕过它。
;; Shortcut command for circle
(defun c:ctd (/ a)
(defun *error* (msg)
(if (= msg "")
(princ "\nFunction Complete.")
(princ (strcat "\n" (strcase msg)))
) ;_end if
(princ)
) ;_end defun
(or (getenv "DIAM") (setenv "DIAM" "0"))
(if (setq a (/ (getreal (strcat "\nd<" (getenv "DIAM") ">: ")) 2))
(setenv "DIAM" (rtos (* 2 a)))
) ;_end if
(command "_circle" "_ttr" pause pause (getenv "DIAM"))
(princ)
) ;_end defun
另外,如果我在默认值为的情况下按enter键,它会说,参数不好,数值为零。 对不起,今天时间不多 好的,谢谢,我会等其他人。。。 再看一遍——真是愚蠢的错误。
但无法对错误问题进行分类:
;; Shortcut command for circle
(defun c:ctd (/ a)
(defun *error* (msg)
(if (= msg "")
(princ "\nFunction Complete.")
(princ (strcat "\n" (strcase msg)))
) ;_end if
(princ)
) ;_end defun
(or (getenv "DIAM") (setenv "DIAM" "0"))
(if (setq a (getreal (strcat "\nd<" (getenv "DIAM") ">: ")))
(setenv "DIAM" (rtos a))
) ;_end if
(command "_circle" "_ttr" pause pause (rtos (/ (atof (getenv "DIAM")) 2)))
(princ)
) ;_end defun
托茨基,
为了确保命令调用的完整性,您需要在这样的内容上进行大量的补漏白。
我采取的方法是在调用CIRCLE之前获取所有值:
祝你好运-大卫 测试你的代码David,结果就是这样,
命令:ctd
直径:100
选择第一个切点:
选择第一个切点:
选择第一个切点:
选择第一个切点:*取消*(此时我按了ESCAPE)
错误:**函数已取消*** 我有点迷路了?
你选了一个有效的切点吗?
-大卫
页:
[1]
2