找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 736|回复: 2

[求助] [求助]:请高手帮忙看看这两个lisp为什么不能用了

[复制链接]
发表于 2004-1-1 14:12:57 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

×
我的两个lisp原来是能用的,突然之间不能用了(autocad2000)。
出现no function definiton: units 和 no function definition: udist。是什么原因请高手指教。两个lisp的内容如下:

ccir.lisp

(defun dxf (code elist)
  (cdr (assoc code elist))
)
(defun chgterr (s)
   (if (/= s "Function cancelled")   ; If an error (such as CTRL-C) occurs
      (princ (strcat "\nError: " s)) ; while this command is active...
   )
   (setq p nil)                      ; Free selection set
   (setq *error* olderr)             ; Restore old *error* handler
   (princ)
)
;*************************************
(defun c:ccir (/ ent olds news olderr)
(prompt "\nSelect text to change : ")
   (setq olderr  *error*             ; Initialize variables
         *error* chgterr
   )
(setq l 0)
(setq en (ssget)
      #rad (units dist 1 "" "Enter new radius : " #rad nil)
      n (sslength en))
(while (< l n)
    (setq  ent (entget (ssname en l)))
       (if (= (dxf 0 ent) "CIRCLE")
        (progn
          (setq olds (assoc 40 ent)
                news (cons 40 #rad)
                ent (subst news olds ent))
           (entmod ent)
        )
       (prompt "\nEntity you select are not CIRCLE....")
       )
(setq  l (1+ l))
(princ)
)
(princ)
(setq *error* olderr)             ; Restore old *error* handler
)
(princ)

88888888888888888888888888888888888888888888888
doff.lisp

(defun c:doff()
  (doff1)
  (setq ent (entsel "\nSelect object to offset..")
        opt (getpoint "\nSide to offset..")
        #sc (udist 1 "" "Current scale use.." #sc nil)
  )
  (setq fp (open "off.scr" "r")
        odist (read (read-line fp))
  )
  (setq odist1 t)
  (while odist1
     (command "offset" (/ odist #sc) ent opt "")
     (setq odist1 (read (read-line fp)))
     (if (= odist1 nil)
         (setq odist1 nil)
         (setq odist (+ odist odist1))
     )
  )
)
;***
(defun chgterr (s)
   (if (/= s "Function cancelled")   ; If an error (such as CTRL-C) occurs
      (princ (strcat "\nError: " s)) ; while this command is active...
   )
   (setq p nil)                      ; Free selection set
   (setq *error* olderr)             ; Restore old *error* handler
   (princ)
)
;*********************************
(defun doff1 (/ sfname1 olderr)
  (setq olderr  *error*             ; Initialize variables
        *error* chgterr
  )
  (setvar "cmdecho" 0)
  (setq cdwg (strcat (getvar "dwgname") ".dwg"))
  (command "undo" "mark" )
   (setq sfile "plot"
         fnum (getstring "\nEnter offset distance : ")
   )
       (setq fp (open "off.scr" "w"))
       (write-line fnum fp)
  (while fnum
           (setq fnum (getstring "\nEnter offset distance : "))  
             (progn
                (write-line fnum fp)
             )
          (if (= fnum "")
           (setq fnum nil)
          )
  )
           (close fp)
(setvar "cmdecho" 1)
(setq *error* olderr)             ; Restore old *error* handler
(princ)
)
(princ)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2004-1-1 17:28:50 | 显示全部楼层
"no function definiton:"不是已经告诉你了"没定义"吗? 缺定义UNITS,UDIST的两段程序!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2004-1-3 20:46:57 | 显示全部楼层
谢谢指点。
我不懂lisp,目前只是通过比较不同lisp的源码来试着改。已改好了。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2025-9-27 02:01 , Processed in 0.170164 second(s), 36 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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