菜鸟求助:总是显示no function definition: <ID
加载后,输入dbx后,总是显示no function definition: <ID。实在不知道哪错了。用的全是英文括号(defun c:dbx()
(setq id (load_dialog "d:/cad_1/zdbx"))
(if (<id 0) (exit))
(if (not(new_dialog "zdbx" id)) (exit))
(action_tile "nq" "(setq fg 1)")
(action_tile "wq" "(setq fg 0)")
(action_tile "accept" "(qsj) (done_dialog)")
(action_tile "cancel" "(setq what -1) (done_dialog)")
(start_dialog)
(unload_dialog id)
(if (>what 0) (draw_zdbx n r flag))
)
(defun draw_zdbx(n r flag)
(setq bp (getpoint "\nbase point"))
(command "circle" bp r)
(command "polygon" n bp flag r)
)
(defun qsj()
(setq n (atoi (get_tile "number")))
(setq r (atof (get_tile "rad")))
(if (=fg 1) (setq flag "i") (setq flag "c"))
(setq what 1)
)
(if (<id 0) (exit))
==>
(if (< id 0) (exit)) 太感谢了!!这是为什么呢?我以前遇到过类似的一个情况:(setq n (+1 n)不对,必须写成(setq n (1+ n)才对。另外if (>what 0)怎么就不用修改呢?谢谢 并未验证其余...
函数与变量间得以空白隔开
1+ 是一函数
(=fg 1)==> (= fg 1)
语法有错调试时过不了滴
谢谢!太感激了! 函数于变量或者字符一定不要连在一起了, 连在一起后就会变成 函数或者变量,肯定会出错的 学习了,高手啊 LMJPJP 发表于 2018-5-4 22:45
太感谢了!!这是为什么呢?我以前遇到过类似的一个情况:(setq n (+1 n)不对,必须写成(setq n (1+ n)才对 ...
+ 号是一个函数 1+ (注意1和+号中间没有空格)也是一个函数
你所谓的“(setq n (+1 n)不对” 肯定是+和1之间没有空格,
函数与参数之间是要有空格的,而没有空格的话它就认为你这是一个函数
页:
[1]