明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1186|回复: 5

[讨论] [求助]高手帮忙看看哪里出错了,急。。。

[复制链接]
发表于 2011-2-14 14:14:16 | 显示全部楼层 |阅读模式
我抄写了一个画螺旋线的小程序,但是运行之后,提示参数类型错误,实在找不出哪里出问题,菜鸟急求高手赐教
程序的代码如下:


(defun myerror (s)
  (if(/= s "Function cancelled")
    (princ (strcat "\nError:" s))
    )
  (setvar "cmdecho" ocmd)
  (setvar "blipmode" oblp)
  (setq *error* olderr)
  (princ)
  )


(defun cspiral (ntimes bpoint hfac lppass strad vfac / ang dist tp ainc dhinc dvinc circle dv)
  (setvar "cmdecho" 0)
  (setvar "blipmode" 0)
  (setq circle (* 3.1415926 2))
  (setq ainc (/ circle lppass))
  (setq dhinc (/ hfac lppass))
  (if vfac (setq dvinc (/ vfac lppass)))
  (set ang 0.0)

(if vfac
  (setq dist strad dv 0.0)
  (setq dist 0.0)
  )

(if vfac
  (command "3dpoly")
  (command "pline" bpoint)
  )
(repeat ntimes
  (repeat lppass
    (setq tp (polar bpoint (setq ang (+ ang ainc))
      (setq dist (+ dist dhinc))
      )
   )
(if vfac
     (setq tp (list (car tp) (cadr tp) (+ dv (caddr tp)))
        dv (+ dv dvinc)
    )
   )
    (command tp)
    )
  )
(command "")
(princ)
)


(defun C:SPIRAL(/ olderr ocmd oblp nt bp cf lp)
   (setq olderr *error*
  *error* myerror)
   (setq ocmd (getvar "cmdecho"))
   (setq oblp (getvar "blipmode"))
   (setvar "cmdecho" 0)
   (initget 1)
   (setq bp (getpoint "\n 中心点:"))
   (initget 7)
   (setq nt (getint "\n 螺旋线的圈数:"))
   (initget 3)
   (setq cf (getdist "\n 每圈增加的尺寸:"))
   (initget 6)
   (setq lp (getint "\n 每圈的特征点<30>:"))
   (cond ((null lp) (setq lp 30)))
   (cspiral nt bp cf lp nil nil)
   (setvar "cmdecho" ocmd)
   (setvar "blipmode" oblp)
   (setq *error* olderr)
     (princ)
  )

(princ "\n\tC:SPIRAL.")
(princ)
发表于 2011-2-14 15:44:48 | 显示全部楼层
建议用官方的范例(1993版本)

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
 楼主| 发表于 2011-2-14 17:54:10 | 显示全部楼层
谢谢了,但是我想知道哪里出错了,学习lisp中。。。 。。。能帮我看看吗
发表于 2011-2-14 20:52:54 | 显示全部楼层
这里错了:
(if vfac (setq dvinc (/ vfac lppass)))
bfac变量为“空”
 楼主| 发表于 2011-2-14 23:51:46 | 显示全部楼层
回复 ZZXXQQ 的帖子

那么应该怎么改呢??
 楼主| 发表于 2011-2-15 00:10:33 | 显示全部楼层
我知道了,谢谢版主了,原来是这里
(set ang 0.0)
应该改成   (setq ang 0.0)
刚开始学,写得可能有点乱,版主费神了,现在真高兴,找到这个论坛真好,大家挺够朋友的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-6-12 10:35 , Processed in 0.170985 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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