明经CAD社区

 找回密码
 注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 545|回复: 5

[提问] 问题出在哪有里了?

[复制链接]
发表于 2016-1-20 12:16 | 显示全部楼层 |阅读模式
  1. (defun c:zdbg (/)
  2.   (setvar "cmdecho" 0)
  3.   (setq os (getvar "osmode"))
  4.   (setvar "osmode" 0)
  5.   (setq pt1 (getpoint "\n第一角点: "))
  6.   (setq pt3 (getcorner pt1 "\n另一角点: "))
  7.   (command "rectang" "w" 1 pt1 pt3)
  8.   (setq wnn (+ 1 (getint "\n列数 ||| <5>: ")))
  9.   (if (null wnn)
  10.     (setq wnn 5)
  11.   )
  12.   (setq hnn (+ 1 (getint "\n行数 --- <5>: ")))
  13.   (if (null hnn)  
  14.     (setq hnn 5)
  15.   )
  16.   (setq pt2 (list (car pt3) (cadr pt1)))
  17.   (setq pt4 (list (car pt1) (cadr pt3)))
  18.   (setq ang (angle pt1 pt3))
  19.   (cond        ((and (> ang 0) (< ang (/ pi 2)))
  20.          (setq pp1 pt1
  21.                pp2 pt2
  22.                pp3 pt3
  23.                pp4 pt4
  24.          )
  25.         )
  26.         ((and (> ang (/ pi 2)) (< ang pi))
  27.          (setq pp1 pt2
  28.                pp2 pt1
  29.                pp3 pt4
  30.                pp4 pt3
  31.          )
  32.         )
  33.         ((and (> ang pi) (< ang (* pi 1.5)))
  34.          (setq pp1 pt3
  35.                pp2 pt4
  36.                pp3 pt1
  37.                pp4 pt2
  38.          )
  39.         )
  40.         ((and (> ang (* pi 1.5)) (< ang (* pi 2)))
  41.          (setq pp1 pt4
  42.                pp2 pt3
  43.                pp3 pt2
  44.                pp4 pt1
  45.          )
  46.         )
  47.   )
  48.   (setq        num 1
  49.         txt 65
  50.   )
  51.   (setq ww (distance pp1 pp2))
  52.   (setq hh (distance pp1 pp4))
  53.   (setq        pt1 pp4
  54.         ppbas pp4
  55.         key 1
  56.   )
  57.   (repeat hnn
  58.     (setq pt1 (polar pt1 (* pi 1.5) (/ hh hnn)))
  59.     (setq pt2 (polar pt1 0 ww))
  60.     (command "line" pt1 pt2 "")
  61.     (if        (> key 1)
  62.       (progn
  63.         (setq txtins (inters ppbas
  64.                              (polar pt1 0 (/ ww wnn))
  65.                              pt1
  66.                              (polar ppbas 0 (/ ww wnn))
  67.                      )
  68.         )
  69.         (command "text" "m" txtins (/ hh hnn 2) 0 (itoa num))
  70.         (setq num (1+ num))
  71.       )
  72.     )
  73.     (setq ppbas        pt1
  74.           key        (1+ key)
  75.     )
  76.   )
  77.   (setq        pt1 pp4
  78.         ppbas pp4
  79.         key 1
  80.   )
  81.   (repeat wnn
  82.     (setq pt1 (polar pt1 0 (/ ww wnn)))
  83.     (setq pt2 (polar pt1 (* pi 1.5) hh))
  84.     (command "line" pt1 pt2 "")
  85.     (if        (> key 1)
  86.       (progn
  87.         (setq txtins (inters ppbas
  88.                              (polar pt1 (* pi 1.5) (/ hh hnn))
  89.                              pt1
  90.                              (polar ppbas (* pi 1.5) (/ hh hnn))
  91.                      )
  92.         )
  93.         (command "text" "m" txtins (/ hh hnn 2) 0 (chr txt))
  94.         (setq txt (1+ txt))
  95.       )
  96.     )
  97.     (setq ppbas        pt1
  98.           key        (1+ key)
  99.     )
  100.   )
  101.   (prin1)
  102. )


输入数字无问题,回车时默认出现错误: 参数类型错误: numberp: nil
发表于 2016-1-20 12:31 | 显示全部楼层
函数+的参数只能是数字。
(if (null (setq wnn(getint "\n列数 ||| <5>: ")) )
    (setq wnn 5)
  )
发表于 2016-1-20 12:32 | 显示全部楼层
(setq wnn (+ 1 (getint "\n列数 ||| <5>: ")))
发表于 2016-1-20 12:34 | 显示全部楼层
本帖最后由 Linhay 于 2016-1-20 12:35 编辑
  1. +1的位置改一下
复制代码
发表于 2016-1-20 13:01 | 显示全部楼层
  1. (setq wnn(if(setq a(getint(strcat"\n列数 ||| <"(itoa(if wnn wnn 5))">: ")))a(if wnn wnn 5)))
发表于 2016-1-20 14:28 | 显示全部楼层
(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)
)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号  
©2000-2017 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2019-11-20 19:33 , Processed in 0.205479 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.3

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表