找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1048|回复: 8

[LISP函数]:块炸开后图层改变??急!

[复制链接]
发表于 2005-10-25 17:37:37 | 显示全部楼层 |阅读模式

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

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

×
大虾们,我的块是在0层作的,插入到40层了,现在炸开块后,块图形跑到0层了,要求是40层的块炸开后仍旧为40层,都是有名称的块。图内很多块都是这样,用lisp怎么办呀!谢谢!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2005-10-25 19:31:58 | 显示全部楼层
  1. [FONT=courier new](defun c:test ()
  2.   (if (setq ss (ssget '((0 . "INSERT") (8 . "40"))))
  3.     (progn
  4.       (setq ss1 (ssget "X"))
  5.       (command "explode" ss "")
  6.       (setq ss2 (ssget "X"))
  7.       (command "select" ss2 "r" ss1 "")
  8.       (command "change" (ssget "P") "" "p" "la" 40 "")
  9.     )
  10.   )
  11. )[/FONT]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-10-26 08:40:19 | 显示全部楼层
xyp1964 斑竹,您的程序每次只能处理一个,我的图内有很多相同的有名块,和无名块,程序运行后,只有一个块被炸开了,并符合要求了!那是怎么回事?文件样图在附件中!谢谢!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-10-26 08:53:46 | 显示全部楼层
[php](defun c:ex40 ()
(setvar "qaflags" 1)
(command ".explode" (setq ss (ssget '((0 . "INSERT") (8 . "40"))) "")
(command "change" (ssget "P") "" "p" "la" 40 "")
(princ)
)
[/php]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-10-26 09:38:29 | 显示全部楼层
谢谢狂刀大虾,小弟以后向您好好学习了,您的程序完全满足了我的要求!非常感谢您!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 208个

财富等级: 日进斗金

发表于 2005-10-27 09:50:40 | 显示全部楼层
最初由 狂刀 发布
[B][php](defun c:ex40 ()
(command ".explode" (setq ss (ssget '((0 . "INSERT") (8 . "40"))) "")
)
[/php] [/B]

此段少一个括号.
(command ".explode" (setq ss (ssget '((0 . "INSERT") (8 . "40")))) "")
下面根据上面程序优化一下.块炸层不变,适合所有的块.
[php]
;;0层定义块炸后放置在原块所在层
;块炸层不变
(defun c:test (/ ss no i objname objlay)
(setvar "CMDECHO" 0)
(setq ss (ssget '((0 . "INSERT"))))
(setq no (sslength ss))
(setq i 0)
(while (< i no)
        (setq objname (ssname ss i))                      ;单个元素的名称  
        (setq objlay (cdr (assoc 8 (entget objname))))    ;单个元素的图层值
        (command ".explode" objname "")
        (command "change" (ssget "P") "" "p" "la" objlay "")        
        (setq i (+ 1 i))
)
(princ)
)[/php]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-10-27 11:16:06 | 显示全部楼层
非常感谢xshrimp 大虾,其实,昨天狂刀大虾是提供了个思路,您的帖子很详细,谢谢大虾们!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-28 17:32 , Processed in 0.179463 second(s), 46 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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