问题出在哪有里了?
(defun c:zdbg (/)(setvar "cmdecho" 0)
(setq os (getvar "osmode"))
(setvar "osmode" 0)
(setq pt1 (getpoint "\n第一角点: "))
(setq pt3 (getcorner pt1 "\n另一角点: "))
(command "rectang" "w" 1 pt1 pt3)
(setq wnn (+ 1 (getint "\n列数 ||| <5>: ")))
(if (null wnn)
(setq wnn 5)
)
(setq hnn (+ 1 (getint "\n行数 --- <5>: ")))
(if (null hnn)
(setq hnn 5)
)
(setq pt2 (list (car pt3) (cadr pt1)))
(setq pt4 (list (car pt1) (cadr pt3)))
(setq ang (angle pt1 pt3))
(cond ((and (> ang 0) (< ang (/ pi 2)))
(setq pp1 pt1
pp2 pt2
pp3 pt3
pp4 pt4
)
)
((and (> ang (/ pi 2)) (< ang pi))
(setq pp1 pt2
pp2 pt1
pp3 pt4
pp4 pt3
)
)
((and (> ang pi) (< ang (* pi 1.5)))
(setq pp1 pt3
pp2 pt4
pp3 pt1
pp4 pt2
)
)
((and (> ang (* pi 1.5)) (< ang (* pi 2)))
(setq pp1 pt4
pp2 pt3
pp3 pt2
pp4 pt1
)
)
)
(setq num 1
txt 65
)
(setq ww (distance pp1 pp2))
(setq hh (distance pp1 pp4))
(setq pt1 pp4
ppbas pp4
key 1
)
(repeat hnn
(setq pt1 (polar pt1 (* pi 1.5) (/ hh hnn)))
(setq pt2 (polar pt1 0 ww))
(command "line" pt1 pt2 "")
(if (> key 1)
(progn
(setq txtins (inters ppbas
(polar pt1 0 (/ ww wnn))
pt1
(polar ppbas 0 (/ ww wnn))
)
)
(command "text" "m" txtins (/ hh hnn 2) 0 (itoa num))
(setq num (1+ num))
)
)
(setq ppbas pt1
key (1+ key)
)
)
(setq pt1 pp4
ppbas pp4
key 1
)
(repeat wnn
(setq pt1 (polar pt1 0 (/ ww wnn)))
(setq pt2 (polar pt1 (* pi 1.5) hh))
(command "line" pt1 pt2 "")
(if (> key 1)
(progn
(setq txtins (inters ppbas
(polar pt1 (* pi 1.5) (/ hh hnn))
pt1
(polar ppbas (* pi 1.5) (/ hh hnn))
)
)
(command "text" "m" txtins (/ hh hnn 2) 0 (chr txt))
(setq txt (1+ txt))
)
)
(setq ppbas pt1
key (1+ key)
)
)
(prin1)
)
输入数字无问题,回车时默认出现错误: 参数类型错误: numberp: nil 函数+的参数只能是数字。
(if (null (setq wnn(getint "\n列数 ||| <5>: ")) )
(setq wnn 5)
) (setq wnn (+ 1 (getint "\n列数 ||| <5>: "))) 本帖最后由 Linhay 于 2016-1-20 12:35 编辑
+1的位置改一下 (setq wnn(if(setq a(getint(strcat"\n列数 ||| <"(itoa(if wnn wnn 5))">: ")))a(if wnn wnn 5))) (defun c:zdbg (/)
(setvar "cmdecho" 0)
(setq os (getvar "osmode"))
(setvar "osmode" 0)
(setq pt1 (getpoint "\n第一角点: "))
(setq pt3 (getcorner pt1 "\n另一角点: "))
(command "rectang" "w" 1 pt1 pt3)
;(setq wnn (+ 1 (getint "\n列数 ||| <5>: ")))
(setq wnn (getint "\n列数 ||| <5>: "))
(if (null wnn)
(setq wnn 5)
(setq wnn (+ 1 wnn))
)
;(setq hnn (+ 1 (getint "\n行数 --- <5>: ")))
(setq hnn (getint "\n行数 --- <5>: "))
(if (null hnn)
(setq hnn 5)
(setq hnn (+ 1 hnn))
)
(setq pt2 (list (car pt3) (cadr pt1)))
(setq pt4 (list (car pt1) (cadr pt3)))
(setq ang (angle pt1 pt3))
(cond ((and (> ang 0) (< ang (/ pi 2)))
(setq pp1 pt1
pp2 pt2
pp3 pt3
pp4 pt4
)
)
((and (> ang (/ pi 2)) (< ang pi))
(setq pp1 pt2
pp2 pt1
pp3 pt4
pp4 pt3
)
)
((and (> ang pi) (< ang (* pi 1.5)))
(setq pp1 pt3
pp2 pt4
pp3 pt1
pp4 pt2
)
)
((and (> ang (* pi 1.5)) (< ang (* pi 2)))
(setq pp1 pt4
pp2 pt3
pp3 pt2
pp4 pt1
)
)
)
(setq num 1
txt 65
)
(setq ww (distance pp1 pp2))
(setq hh (distance pp1 pp4))
(setq pt1 pp4
ppbas pp4
key 1
)
(repeat hnn
(setq pt1 (polar pt1 (* pi 1.5) (/ hh hnn)))
(setq pt2 (polar pt1 0 ww))
(command "line" pt1 pt2 "")
(if (> key 1)
(progn
(setq txtins (inters ppbas
(polar pt1 0 (/ ww wnn))
pt1
(polar ppbas 0 (/ ww wnn))
)
)
(command "text" "m" txtins (/ hh hnn 2) 0 (itoa num))
(setq num (1+ num))
)
)
(setq ppbas pt1
key (1+ key)
)
)
(setq pt1 pp4
ppbas pp4
key 1
)
(repeat wnn
(setq pt1 (polar pt1 0 (/ ww wnn)))
(setq pt2 (polar pt1 (* pi 1.5) hh))
(command "line" pt1 pt2 "")
(if (> key 1)
(progn
(setq txtins (inters ppbas
(polar pt1 (* pi 1.5) (/ hh hnn))
pt1
(polar ppbas (* pi 1.5) (/ hh hnn))
)
)
(command "text" "m" txtins (/ hh hnn 2) 0 (chr txt))
(setq txt (1+ txt))
)
)
(setq ppbas pt1
key (1+ key)
)
)
(prin1)
)
页:
[1]