明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1525|回复: 9

[提问] 如何选中选择集 sss 里最后生成的 (0 . "dimension")

[复制链接]
发表于 2014-8-27 08:55:24 | 显示全部楼层 |阅读模式
向大家请教一个问题:
如何选中选择集 sss 里最后生成的
(8 . "标注")
(0 . "dimension")
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2014-8-27 09:09:26 | 显示全部楼层
(Defun C:tt (/ i s1 ss)
  (setq i  -1 ss (ssget))
  (while (setq s1 (ssname ss (setq i (1+ i))))
    (print (Assoc 8 (Entget s1)))
    (print (Assoc 0 (Entget s1)))
  )(princ)
)
 楼主| 发表于 2014-8-27 09:27:14 | 显示全部楼层
1993063 发表于 2014-8-27 09:09
(Defun C:tt (/ i s1 ss)
  (setq i  -1 ss (ssget))
  (while (setq s1 (ssname ss (setq i (1+ i))))

首先非常感谢你的回复,只是我看不懂啊,不知怎么改,还望明示
发表于 2014-8-27 09:31:37 | 显示全部楼层
试试
  1. (sssetfirst nil sss)
  2. (setq ss(ssget "P" '((8 . "标注")(0 . "dimension"))))
  3. (sssetfirst)
发表于 2014-8-27 09:40:50 | 显示全部楼层
本帖最后由 1993063 于 2014-8-26 15:43 编辑
669423907 发表于 2014-8-26 15:27
首先非常感谢你的回复,只是我看不懂啊,不知怎么改,还望明示

你不就要这效果么?
(8 . "标注")
(0 . "dimension")
;遍历图元提取组码0和8
 楼主| 发表于 2014-8-27 12:02:33 | 显示全部楼层
1993063 发表于 2014-8-27 09:40
你不就要这效果么?
(8 . "标注")
(0 . "dimension")

;可见区域处理(hbllw 2010-11-6)
(defun kjqycl( / $screen atio ce ch ch2 hh hh2 k p1 p2 ss)
(setq $screen (getvar "SCREENSIZE"))
(setq ch (getvar "viewsize"))
(setq ch2 (/ ch 2)) (setq ce (getvar "viewctr"))
(setq atio (/ (car $screen) (cadr $screen)))
(setq hh (* atio ch))
(setq hh2 (/ hh 2))
(setq p1 (polar (polar ce 0 hh2)
(* 1.5 pi) ch2))
(setq p2 (polar (polar ce pi hh2)
(* 0.5 pi) ch2))
(setq chuangkou (ssget "C" p1 p2))
(princ))


(Defun C:`Q()
(kjqycl)
,,,,,,,,,,,,,,,,,

亮显 chuangkou 中最后的生成的(8 . "标注")(0 . "dimension")


这样表达应该好多了
 楼主| 发表于 2014-8-27 12:03:54 | 显示全部楼层
edata 发表于 2014-8-27 09:31
试试

谢谢参与,详见6楼
发表于 2014-8-27 12:39:24 | 显示全部楼层
本帖最后由 edata 于 2014-8-27 12:46 编辑

  1. ;可见区域处理(hbllw 2010-11-6)
  2. (defun kjqycl( / $screen atio ce ch ch2 hh hh2 k p1 p2 ss)
  3. (setq $screen (getvar "SCREENSIZE"))
  4. (setq ch (getvar "viewsize"))
  5. (setq ch2 (/ ch 2)) (setq ce (getvar "viewctr"))
  6. (setq atio (/ (car $screen) (cadr $screen)))
  7. (setq hh (* atio ch))
  8. (setq hh2 (/ hh 2))
  9. (setq p1 (polar (polar ce 0 hh2)
  10. (* 1.5 pi) ch2))
  11. (setq p2 (polar (polar ce pi hh2)
  12. (* 0.5 pi) ch2))
  13. (if (setq chuangkou (ssget "C" p1 p2))
  14.   (sssetfirst nil chuangkou)
  15.   )
  16. (if (setq ss(ssget "P" '((8 . "标注")(0 . "dimension"))))
  17.   (progn
  18.   ;(sssetfirst nil ss) 亮显所有
  19.   (sssetfirst nil (ssadd (ssname ss 0)));亮显最后一个
  20.   )
  21.   )
  22. (princ))


  23. (Defun C:`Q()
  24. (kjqycl)
  25.   )

评分

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

查看全部评分

 楼主| 发表于 2014-8-27 14:05:00 | 显示全部楼层
本帖最后由 669423907 于 2014-8-27 14:06 编辑
edata 发表于 2014-8-27 12:39

谢谢E大,我运行时,程序无过滤,全亮了。还有一个问题:

(kjqycl)是个公用的程序,有好几个小程序要用到,比方说修剪,局部刷新一些图层操作,,,,,,,,,

所以只想在(Defun C:`Q()中操作,,,

再次有劳E大了
发表于 2014-8-27 15:48:29 | 显示全部楼层
本帖最后由 1993063 于 2014-8-27 13:42 编辑

(defun kjqycl (/ $screen atio ce ch ch2 hh hh2 k p1 p2 ss)
  (setq $screen (getvar "SCREENSIZE"))
  (setq ch (getvar "viewsize"))
  (setq ch2 (/ ch 2))
  (setq ce (getvar "viewctr"))
  (setq atio (/ (car $screen) (cadr $screen)))
  (setq hh (* atio ch))
  (setq hh2 (/ hh 2))
  (setq        p1 (polar (polar ce 0 hh2)
                  (* 1.5 pi)
                  ch2
           )
  )
  (setq        p2 (polar (polar ce pi hh2)
                  (* 0.5 pi)
                  ch2
           )
  )
  (setq   chuangkou (ssget "C" p1 p2))
  (princ)
)
(defun c:tt nil ( kjqycl))
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-5-24 05:17 , Processed in 0.203082 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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