明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1206|回复: 4

[已解答] 关于ssget "P"函数的疑问,希望高手解决

[复制链接]
发表于 2014-1-26 14:22 | 显示全部楼层 |阅读模式
(defun c:tz (/ ss sl i el pr dn lyr addlyr layers)
  (vl-load-com)
(command "layer" "n" "管件层" "")
(command "layer" "c" 6 "管件层" "")
  (defun addlyr        (lyr)
    (vla-add layers lyr)
  )
  (if (setq ss (ssget '((0 . "TCH_PIPE"))))
    (progn
      (setq sl           (sslength ss)
    i           sl
    layers (vla-get-layers
     (vla-get-activedocument (vlax-get-acad-object))
   )
      )
      (repeat sl
(setq el  (entget (ssname ss (setq i (1- i))))
      pr  (cdr (assoc 301 el))
      dn  (cdr (assoc 140 el))
      lyr (strcat pr (rtos dn 2 0))
)
(if (tblsearch "layer" lyr)
  nil
  (addlyr lyr)
)
      (entmod (subst (cons 8 lyr) (assoc 8 el) el))
      )


    )
  )
(command "_explode" (ssget "P") "")
(command "_explode" (ssget "P") "")
  (princ)
)


---------------------------------------------------

(command "_explode" (ssget "P") "")
只能炸掉上次框选内范围内选中的对象 如何炸掉框选范围内所有的对象(选中和没选中的)呢?


发表于 2014-1-26 16:26 | 显示全部楼层
选择框选对象,建议用getpoint 和getcorner指定对角点,然后用ssget的 c模式或w模式建立选择集,因为已经知道对角点,那么多次ssget c 或w都可以建立选择集。
发表于 2014-1-26 17:55 | 显示全部楼层
這樣可以嗎?
(setq ssx (ssget))
(setq ss (ssget "p" '((0 . "TCH_PIPE"))))
...
(command "_explode" ssx "")

评分

参与人数 1明经币 +1 收起 理由
edata + 1 赞一个!

查看全部评分

发表于 2014-1-27 08:56 | 显示全部楼层
...
(setvar "QAFLAGS" 1)
(command "_.EXPLODE" "P" "")
(command "_.EXPLODE" "P" "")
(setvar "QAFLAGS" 0)
...
 楼主| 发表于 2014-1-27 16:39 | 显示全部楼层
谢谢各位,思路都不错
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-5-20 02:11 , Processed in 0.156076 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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