不一样的戏 发表于 2011-10-20 23:27:45

我新手来这请教一下高手,错误: 参数类型错误: numberp: nil,求解,很感激,

(defun c:hpl()
(setq pt (getpoint"\n 输入图形的中心点:"))
(setq pt1 (getpoint pt "\n 输入第一个正方形的起始角点:"))
(initget 7)
(setq num (getint"\n输入画正方形的个数:"))

(setq d (distance pt pt1))
(setq a (angle pt pt1))
(setq dmin ( / d(expt 2 (/ (1- num) 2))))
(defun box (d a)
(draw d a)
(cond((> d dmin)
(box ( / d 1.4142) (+ a (/ pi 4.0))))
);End cond
);End defun box
(defun draw (d a )
(command "pline"(polar pt a d)
               "w" 0.6 0.6
(polar pt(+a(/ pi 2.0)) d)
(polar pt(+a pi) d)
(polar pt(-a(/ pi 2.0))d)
"c"
);End Command
);End draw
(box d a)
);end

菜卷鱼 发表于 2011-10-20 23:51:34

画正方形你可以用 POLYGON 命令,这样搞得复杂了

不一样的戏 发表于 2011-10-20 23:57:27

菜卷鱼 发表于 2011-10-20 23:51 static/image/common/back.gif
画正方形你可以用 POLYGON 命令,这样搞得复杂了

不是,我想知道我错哪了,刚学,所以想把它搞懂。

不一样的戏 发表于 2011-10-20 23:58:40

不是,我想知道我错哪了,刚学,所以想把它搞懂。

highflybir 发表于 2011-10-21 00:55:26

不一样的戏 发表于 2011-10-20 23:58 static/image/common/back.gif
不是,我想知道我错哪了,刚学,所以想把它搞懂。

代码错误很多,请仔细对照检查。
(defun c:hpl (/ A D DMIN NUM PT PT1)
(setq pt (getpoint "\n 输入图形的中心点:"))
(setq pt1 (getpoint pt "\n 输入第一个正方形的起始角点:"))
(initget 7)
(setq num (getint "\n输入画正方形的个数:"))

(setq d (distance pt pt1))
(setq a (angle pt pt1))
(setq dmin (/ d (expt 2 (/ (1- num) 2))))
(defun box (d a)
    (draw d a)
    (cond ((> d dmin)
   (box (/ d 1.4142) (+ a (/ pi 4.0)))
    )
    )          ;End cond
)          ;End defun box
(defun draw (d a)
    (command "pline"
       (polar pt a d)
       "w"
       0.6
       0.6
       (polar pt (+ a (/ pi 2.0)) d)
       (polar pt (+ a pi) d)
       (polar pt (- a (/ pi 2.0)) d)
       "c"
    )          ;End Command
)          ;End draw
(box d a)
)          ;end

不一样的戏 发表于 2011-10-21 21:48:04

[em84非常感谢你的帮助
页: [1]
查看完整版本: 我新手来这请教一下高手,错误: 参数类型错误: numberp: nil,求解,很感激,