qyming 发表于 2016-1-20 12:16:02

问题出在哪有里了?

(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

wzg356 发表于 2016-1-20 12:31:16

函数+的参数只能是数字。
(if (null (setq wnn(getint "\n列数 ||| <5>: ")) )
    (setq wnn 5)
)

nzl1116 发表于 2016-1-20 12:32:57

(setq wnn (+ 1 (getint "\n列数 ||| <5>: ")))

Linhay 发表于 2016-1-20 12:34:00

本帖最后由 Linhay 于 2016-1-20 12:35 编辑

+1的位置改一下

llsheng_73 发表于 2016-1-20 13:01:42

(setq wnn(if(setq a(getint(strcat"\n列数 ||| <"(itoa(if wnn wnn 5))">: ")))a(if wnn wnn 5)))

xiang19751218 发表于 2016-1-20 14:28:26

(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]
查看完整版本: 问题出在哪有里了?