wangph 发表于 2014-9-16 14:05:00

如何得到2DPOLYLINE的选择集?

我想用(setq ss (ssget "X" '((0 . "POLYLINE") (100 . "AcDb2dPolyline"))))取得2DPOLYLINE的选择集,请问怎么修改?

Andyhon 发表于 2014-9-16 18:14:58

(setq ss (ssget "X" '((0 . "LWPOLYLINE"))))

wangph 发表于 2014-9-16 21:15:24

不是要的轻量多段线哟

Andyhon 发表于 2014-9-16 22:59:58

矇了
Select object:
((0 . "LWPOLYLINE") ...)
Select object:
((0 . "POLYLINE") ...)

wangph 发表于 2014-9-17 20:50:21

本帖最后由 wangph 于 2014-9-17 20:51 编辑

图是测量单位提供的,好像是用南方CASS生成的,线条类型是AcDb2dPolyline,我用(setq ssssget "X" '((0 . "POLYLINE") (100 . "AcDb2dPolyline"))))会把AcDb3dPolyline的多段线也选到,不知道如何修改。

ZZXXQQ 发表于 2014-9-18 07:46:38

直接用:
(setq ss (ssget "X" '((100 . "AcDb2dPolyline"))))
试试。要注意大小写一致。

自贡黄明儒 发表于 2014-9-18 08:08:37

楼主应该贴图上来,让大家猜得很辛苦

wangph 发表于 2014-9-18 08:28:18

呵呵,发贴时找不到如何上传附图,回复就可以上传了

Gu_xl 发表于 2014-9-18 08:44:49

wangph 发表于 2014-9-17 20:50 static/image/common/back.gif
图是测量单位提供的,好像是用南方CASS生成的,线条类型是AcDb2dPolyline,我用(setq ssssget "X" '((0 . ...

过滤表不能过滤(100 . "AcDb3dPolyline"),选完后再将ss选择集中的AcDb3dPolyline逐个剔除!

xyp1964 发表于 2014-9-18 13:47:13

本帖最后由 xyp1964 于 2014-9-18 13:52 编辑

wangph 发表于 2014-9-18 08:28 static/image/common/back.gif
呵呵,发贴时找不到如何上传附图,回复就可以上传了(defun c:tt ()
(if (setq ss (ssget "X" '((0 . "POLYLINE"))))
    (progn
      (setq ss1 (ssadd)
            i   -1
      )
      (while (setq s1 (ssname ss (setq i (1+ i))))
      (if (= (vla-get-objectname (vlax-ename->vla-object s1)) "AcDb2dPolyline")
          (setq ss1 (ssadd s1 ss1))
      )
      )
      (sssetfirst nil ss1)
    )
)
(princ)
)(defun c:tt ()
(if (setq ss (ssget "X" '((0 . "POLYLINE"))))
    (progn
      (setq ss1(ssadd)
          i -1
      )
      (while (setq s1 (ssname ss (setq i (1+ i))))
        (if (member '(100 . "AcDb2dPolyline") (entget s1))
          (setq ss1 (ssadd s1 ss1))
        )
      )
      (sssetfirst nil ss1)
    )
)
(princ)
)
页: [1]
查看完整版本: 如何得到2DPOLYLINE的选择集?