669423907 发表于 2014-8-27 08:55:24

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

向大家请教一个问题:
如何选中选择集 sss 里最后生成的
(8 . "标注")
(0 . "dimension")

1993063 发表于 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)
)

669423907 发表于 2014-8-27 09:27:14

1993063 发表于 2014-8-27 09:09 static/image/common/back.gif
(Defun C:tt (/ i s1 ss)
(setq i-1 ss (ssget))
(while (setq s1 (ssname ss (setq i (1+ i))))


首先非常感谢你的回复,只是我看不懂啊,不知怎么改,还望明示

edata 发表于 2014-8-27 09:31:37

试试(sssetfirst nil sss)
(setq ss(ssget "P" '((8 . "标注")(0 . "dimension"))))
(sssetfirst)

1993063 发表于 2014-8-27 09:40:50

本帖最后由 1993063 于 2014-8-26 15:43 编辑

669423907 发表于 2014-8-26 15:27 static/image/common/back.gif
首先非常感谢你的回复,只是我看不懂啊,不知怎么改,还望明示
你不就要这效果么?
(8 . "标注")
(0 . "dimension")
;遍历图元提取组码0和8

669423907 发表于 2014-8-27 12:02:33

1993063 发表于 2014-8-27 09:40 static/image/common/back.gif
你不就要这效果么?
(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")


这样表达应该好多了

669423907 发表于 2014-8-27 12:03:54

edata 发表于 2014-8-27 09:31 static/image/common/back.gif
试试

谢谢参与,详见6楼

edata 发表于 2014-8-27 12:39:24

本帖最后由 edata 于 2014-8-27 12:46 编辑

;可见区域处理(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))
(if (setq chuangkou (ssget "C" p1 p2))
(sssetfirst nil chuangkou)
)
(if (setq ss(ssget "P" '((8 . "标注")(0 . "dimension"))))
(progn
;(sssetfirst nil ss) 亮显所有
(sssetfirst nil (ssadd (ssname ss 0)));亮显最后一个
)
)
(princ))


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

669423907 发表于 2014-8-27 14:05:00

本帖最后由 669423907 于 2014-8-27 14:06 编辑

edata 发表于 2014-8-27 12:39 static/image/common/back.gif

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

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

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

再次有劳E大了

1993063 发表于 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))
页: [1]
查看完整版本: 如何选中选择集 sss 里最后生成的 (0 . "dimension")