找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 682|回复: 7

[求助] [求助]:刚学lisp,不知道为什么不行

[复制链接]
发表于 2004-7-20 15:46:15 | 显示全部楼层 |阅读模式

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

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

×
(defun c:chgrad()
  (setvar "cmdecho" 0)
  (setq en (entsel "选取已知圆"))
  (setq en_data (entget (car en)))
  (setq old_rad_list (assoc 40 rad_list))
  (setq old_rr (cdr rad_list))
  (princ "\n旧半径=")(princ old_rr)
  (setq cenpt (cdr (assoc 10 en_data)))
  (setq new_rr (getdist cenpt "New Radius:"))
  (setq en_data (subst new_rad_list old_rad_list))
  (entmod en_data)
  (prin1)
  )
(prompt"cmd:chgrad")
(prin1)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2004-7-20 16:44:05 | 显示全部楼层
(defun C:CHGRAD        ()
  (setvar "cmdecho" 0)
  (setq EN (entsel "\n選取已知圓: "))
  (setq EN_DATA (entget (car EN)))
  (setq OLD_RAD_LIST (assoc 40 EN_DATA))
  (setq OLD_RR (cdr OLD_RAD_LIST))
  (princ "\n舊半徑=")
  (princ OLD_RR)
  (setq CENPT (cdr (assoc 10 EN_DATA)))
  (setq NEW_RR (getdist CENPT "\nNew Radius:"))
  (setq EN_DATA (subst (cons 40 NEW_RR) OLD_RAD_LIST EN_DATA))
  (entmod EN_DATA)
  (prin1)
)
(prompt "Type chgrad")
(prin1)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2004-7-20 17:06:27 | 显示全部楼层
您老能不能指出我的错误。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-7-20 18:19:37 | 显示全部楼层
程序问题已经列出来了
[PHP](defun c:chgrad        ()
  (setvar "cmdecho" 0)
  (setq en (entsel "选取已知圆"))
  (setq en_data (entget (car en)))
  (setq old_rad_list (assoc 40 rad_list))
  ;;;rad_list是什么?前面没有赋值呀!!这一句运行完old_rad_list等于nil
  (setq old_rr (cdr rad_list))
  ;;;rad_list是什么?这一句运行完old_rr等于nil
  (princ "\n旧半径=")
  (princ old_rr)
  ;;;打印old_rr值为nil
  (setq cenpt (cdr (assoc 10 en_data)))
  (setq new_rr (getdist cenpt "New Radius:"))
  (setq en_data (subst new_rad_list old_rad_list))
  ;;;subst需要三个参数,这里只有两个,程序出错退出.
  ;;;另外new_rad_list在前面也没有赋值,old_rad_list的值是nil
  (entmod en_data)
  (prin1)
)
(prompt "cmd:chgrad")
(prin1)[/PHP]


参考下面修改过的

[PHP](defun c:chgrad ()
  (setvar "cmdecho" 0)
  (setq en (entsel "选取已知圆"))
  (setq en_data (entget (car en)))
  (setq old_rad_list (assoc 40 en_data))
  (setq old_rr (cdr old_rad_list))
  (princ "\n旧半径=")
  (princ old_rr)
  (setq cenpt (cdr (assoc 10 en_data)))
  (setq new_rr (getdist cenpt "New Radius:"))
  (setq en_data (subst (cons 40 new_rr) old_rad_list en_data))
  (entmod en_data)
  (prin1)
)
(prompt"cmd:chgrad")
(prin1) [/PHP]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2004-7-21 16:56:17 | 显示全部楼层
(princ "\n旧半径=")
这一句执行后为什么没有换行,
执行结果如下:旧半径=12.5    New Radius:50
为什么New Radius:50没有在下一行显示
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-7-22 07:43:44 | 显示全部楼层
(setq new_rr (getdist cenpt "\nNew Radius:"))
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-8-13 10:15:19 | 显示全部楼层
有四个错,见下面
(defun c:chgrad()
(setvar "cmdecho" 0)
(setq en (entsel "选取已知圆"))
(setq en_data (entget (car en)))
  (setq old_rad_list (assoc 40 en_data))  ;第一个错
  (setq old_rr (cdr old_rad_list))   ;第二个错
(princ "\n旧半径=")(princ old_rr)
(setq cenpt (cdr (assoc 10 en_data)))
(setq new_rr (getdist cenpt "New Radius:"))
  (setq new_rad_list (cons 40 new_rr))  ;第三个错(少一行)
 (setq en_data (subst new_rad_list old_rad_list en_data)) ;第四个错
(entmod en_data)
(prin1)
)
(prompt"cmd:chgrad")
(prin1)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-8-16 16:44:53 | 显示全部楼层
都是高手。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-27 08:22 , Processed in 0.182617 second(s), 46 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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