求助如何处理“参数太少”的问题
各位达人,小弟正在学习用autolisp开发对话框,在教材上有这样一段程序(defun c:shaft(/d l x y id std x1 y1)
(defun getdata()
(setq d (atof(get_tile"D_box")))
(setq l (atof(get_tile"L_box")))
(setq x (atof(get_tile"X_box")))
(setq y (atof(get_tile"Y_box")))
)
(setvar "cmdecho" 0)
(command "layer" "m" "solid" "")
(command "layer" "m" "cen" "c" 1 "" "lt" "center" "" "")
(setq id (load_dialog "e:\\example\\dcl\\12-13"))
(if (< id 0)(exit))
(setq d 50 l 100 x 0 y 0 std 2 p(list 0 0))
(while (> std 1)
(if(not(new_dialog "zhou" id))(exit))
(setq x1(dimx_tile "image"))
(setq y1(dimy_tile "image"))
(start_image "image")
(slide_image 0 0 x1 y1 "e:\\example\\sld\\12-13")
(end_image)
(set_tile "D_box" (rtos d 2 2))
(set_tile "L_box" (rtos l 2 2))
(set_tile "X_box" (rtos x 2 2))
(set_tile "Y_box" (rtos y 2 2))
(action_tile "pick" "(getdata)(done_dialog 2)")
(action_tile "accept" "(getdata)(done_dialog 1)")
(action_tile "cancel" "(done_dialog 0)")
(setq std(start_dialog))
(if(= std 2)
(progn
(initget 1)
(setq p(getpoint"定位点:"))
(setq x(car p) y(cadr p))
)
)
)
(if(= std 1)
(progn
(command "layer" "m" "solid" "")
(command "pline"
(list x (+ y(* 0.5 d)))
(list x (- y(* 0.5 d)))
(list (+ x l) (- y(* 0.5 d )))
(list (+ x l) (+ y(* 0.5 d )))
"c")
(command "layer" "m" "cen" "")
(command "line"(polar p pi 10)(polar p 0 (+ l 10)) "")
)
)
(unload_dialog id)
(princ)
)
加载后显示“参数太少”,我对照了很多遍,都没有发现问题,而且dcl、sld文件都在相应位置,烦请各位指点啊! 回复 盛麒毓 的帖子
(defun c:shaft(/d l x y id std x1 y1)
==>
(defun c:shaft(/ d l x y id std x1 y1) 呵呵,最基础的东西,最容易被人忽视。 谢谢版主,问题解决了,刚开始学,还都不懂的 回复 Gu_xl 的帖子
谢谢版主,问题解决了,刚开始学,不太懂的。。。
页:
[1]