找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1038|回复: 5

[LISP程序]:请问以下更改对象图层的语句有什么错误?

[复制链接]
发表于 2003-2-15 09:58:17 | 显示全部楼层 |阅读模式

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

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

×
请问以下更改对象图层的语句有什么错误?
(steq ob (entlast))
(setq old(assoc 8 ob))
(setq new(getstring “\n新的图层名:”))
(setq ob2(subst new old ob))
(entmod ob2)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2003-2-15 10:37:56 | 显示全部楼层
应改为
(setq ob (entlast))
(setq old (assoc 8 (entget ob)))
(setq new(getstring "\n新的图层名:"))
(setq ob2(subst (cons 8 new) old (entget ob)))
(entmod ob2)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2003-2-15 14:15:56 | 显示全部楼层
谢谢!
我还有另外一个问题:我如何将若干绘图结果作为一个对象集,而不需每次调用(setq ob (entlast))
(setq old (assoc 8 (entget ob)))
(setq new(getstring "\n新的图层名:"))
(setq ob2(subst (cons 8 new) old (entget ob)))
(entmod ob2)
修改图层。
我现在的语句是:
(command "line" p0 "@25<90" "")
        (setq ob (entlast))
        (setq old (assoc 8 (entget ob)))
        (setq ob2(subst (cons 8 new) old (entget ob)))
        (entmod ob2)
        (command "text" p1 "3.5" "90" sm)
        (setq ob (entlast))
        (setq old (assoc 8 (entget ob)))
        (setq ob2(subst (cons 8 new) old (entget ob)))
        (entmod ob2)
        (command "text" p2 "3.5" "90" zh)
        (setq ob (entlast))
        (setq old (assoc 8 (entget ob)))
        (setq ob2(subst (cons 8 new) old (entget ob)))
        (entmod ob2)
        (if (or (= xs 1) (= xs 2)) (command "CIRCLE" p3 "1.6"))
        (if (or (= xs 3) (= xs 4)) (command "line" p7 p8 ""))
        (setq ob (entlast))
        (setq old (assoc 8 (entget ob)))
        (setq ob2(subst (cons 8 new) old (entget ob)))
        (entmod ob2)
        (if (or (= xs 3) (= xs 4)) (command "RECTANGLE" p5 p9 ""))
        (setq ob (entlast))
        (setq old (assoc 8 (entget ob)))
        (setq ob2(subst (cons 8 new) old (entget ob)))
        (entmod ob2)
显得比较繁琐,怎样简化?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 488个

财富等级: 日进斗金

发表于 2003-2-15 16:00:35 | 显示全部楼层
开始画之前得到最后一个物体(setq endob(entlast))
画完后取endob以后的实体.(没endob就是图中全部)

象你的可以写一个子程序
(defun changlay(e newlay / en)
(setq en(entget e))
(entmod(subst(cons 8 newlay)(assoc 8 en)en) )
)
可以画完一个就(changelay (entlast) new)

(command "line" p0 "@25<90" "")
(changelay (entlast) new)
(command "text" p1 "3.5" "90" sm)
(changelay (entlast) new)
(command "text" p2 "3.5" "90" zh)
(changelay (entlast) new)
(if (or (= xs 1) (= xs 2)) (command "CIRCLE" p3 "1.6"))
(if (or (= xs 3) (= xs 4)) (command "line" p7 p8 ""))
(changelay (entlast) new)
(if (or (= xs 3) (= xs 4)) (command "RECTANGLE" p5 p9 ""))
(changelay (entlast) new)

当然一起改更好
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-2-15 23:05:22 | 显示全部楼层
(setq e1 (entlast))
(command "line" p0 "@25<90" "")
((command "text" p1 "3.5" "90" sm)
...
(setq set1 (ssadd))
(while (if e1 (setq e1 (entnext e1)) (setq e1 (entnext)))
  (setq set1 (ssadd e1 set1))
)
这个SET1就是你要的对象集
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-2-17 08:42:04 | 显示全部楼层
最初由 yintao 发布
[B]谢谢!
我还有另外一个问题:我如何将若干绘图结果作为一个对象集,而不需每次调用(setq ob (entlast))
(setq old (assoc 8 (entget ob)))
(setq new(getstring "\n新的图层名:"))
(setq ob2(subst (cons 8 new)... [/B]

很简单,绘图前将你想要的图层设为当前层即可,不用去转换图层。
不过建议增加一个判断,如果用户输入的图层不存在,要建立一个新的图层,或作其它处理。
供你参考。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-27 22:07 , Processed in 0.464831 second(s), 41 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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