找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 597|回复: 11

[LISP程序]:变量改变了,怎么办呀?

[复制链接]
发表于 2003-4-18 06:54:48 | 显示全部楼层 |阅读模式

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

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

×
  1. ---------------------------------
  2. (defun c:zs3(/ a b c d ts n index na ent tmp tmp2)

  3. (progn
  4.         (while (null (setq ent (entsel "\nPick Source entity: "))))
  5.         (setq tmp (cdr (assoc 39 (entget (car ent)))))
  6.         (setq tmp2(cdr (assoc 43 (entget (car ent))))))
  7.   (setq a (ssget))
  8.   (setq n (sslength a))
  9.   (setq index 0)

  10.   (repeat n
  11.       (setq na (ssname a index))
  12.       (setq b (entget na))
  13.       (setq c (assoc 0. b))
  14.       (setq d (cdr c)
  15.       (if (= d "LINE")       (command "pedit" na "y" "w" tmp2 "")  (COMMAND "CHANGE" na "" "p" "th" tmp ""))
  16.       (if (= d "LWPOLYLINE") (command "pedit" na "w" tmp2  "")  (COMMAND "CHANGE" na "" "p" "th" tmp ""))
  17.       (setq index (+ 1 index))   
  18.   )
  19. )

直线pedit改变成pline线,变量na也改变,change语句无法改变na,因为原na已没有了,如何选择新生成的na呀。
该程序是提取物体宽高,功能与matchprop相似,但选择集中的line线的名改变,使程序无法进行,请高手指点。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2003-4-18 08:05:14 | 显示全部楼层
提取LINE的有关数据后,删除LINE,再根据LINE的数据,生成需要的PLINE。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

使用道具 举报

 楼主| 发表于 2003-4-18 21:49:14 | 显示全部楼层
先Change再Pedit,试过,不太好使。同样原因(名改变了)。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-4-18 22:44:16 | 显示全部楼层
归到一个问题:将某实体以后生成的实体归入选择集。
这个问题已经提过几次了,你搜搜以前的帖子可能会
看到更多。



  1. (Defun get-ss( e / ss ep) ;;;取在实体e后生成的所有实体选择集
  2.   (setq ss (ssadd) ep e)
  3.   (if (not ep) (setq ep (entnext)))
  4.   (while (/= (setq ep (entnext ep)) nil)
  5.     (ssadd ep ss)
  6.   )
  7.   ss
  8. )
  9. (Defun get-ss1( e / ss ep en ty) ;;;取在实体e后生成的所有实体选择集, nil=全选,不包括子实体
  10.   (setq ss (ssadd) ep e)
  11.   (if (not ep) (setq ep (entnext)))
  12.   (while (/= (setq ep (entnext ep)) nil)
  13.     (setq en(entget ep)ty(dxf 0 en))
  14.     (if (not (member TY '("VERTEX" "SEQEND")))
  15.       (ssadd ep ss)
  16.     )
  17.   )
  18.   ss
  19. )


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

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

发表于 2003-4-18 23:15:57 | 显示全部楼层

Re: [LISP程序]:变量改变了,怎么办呀?

最初由 舞步 发布
[B]---------------------------------
(defun c:zs3(/ a b c d ts n index na ent tmp tmp2)

(progn
        (while (null (setq ent (entsel "\nPick Source entity: "))))
        (setq tmp (cdr (assoc 39 (entget ... [/B]

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

使用道具 举报

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

使用道具 举报

发表于 2003-4-19 09:53:28 | 显示全部楼层
最初由 舞步 发布
[B]但一旦,undo的时候会有很多步的。 [/B]

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

使用道具 举报

 楼主| 发表于 2003-4-19 22:23:36 | 显示全部楼层
(entlast),试了,不行呀。改变的物体不是last.
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

发表于 2003-4-20 08:02:19 | 显示全部楼层
最初由 舞步 发布
[B](entlast),试了,不行呀。改变的物体不是last. [/B]

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

使用道具 举报

已领礼包: 6530个

财富等级: 富甲天下

发表于 2003-4-20 09:41:31 | 显示全部楼层
研究了一下,确实先change,再pedit也是不行的,pedit将直线改为多义线后,厚度属性消失。我这里有过程序,是多义线宽度刷,使用修改实体方法,对于直线就是提取源多义线特性与直线的点重新构造实体。你可以参考,没有注释,可能要费点功夫。写程序的时候没有考虑厚度,所以刷多义线时厚度不起作用,今天调整一下,支持厚度调整。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-3 21:43 , Processed in 0.351776 second(s), 54 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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