明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1612|回复: 9

[已解答] 如何得到2DPOLYLINE的选择集?

[复制链接]
发表于 2014-9-16 14:05 | 显示全部楼层 |阅读模式
我想用(setq ss (ssget "X" '((0 . "POLYLINE") (100 . "AcDb2dPolyline"))))取得2DPOLYLINE的选择集,请问怎么修改?
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2014-9-16 18:14 | 显示全部楼层
(setq ss (ssget "X" '((0 . "LWPOLYLINE"))))
 楼主| 发表于 2014-9-16 21:15 | 显示全部楼层
不是要的轻量多段线哟

点评

你的2DPOLYLINE是怎么生成的?  发表于 2014-9-17 10:20
发表于 2014-9-16 22:59 | 显示全部楼层
矇了
Select object:
((0 . "LWPOLYLINE") ...)
Select object:
((0 . "POLYLINE") ...)
 楼主| 发表于 2014-9-17 20:50 | 显示全部楼层
本帖最后由 wangph 于 2014-9-17 20:51 编辑

图是测量单位提供的,好像是用南方CASS生成的,线条类型是AcDb2dPolyline,我用(setq ss  ssget "X" '((0 . "POLYLINE") (100 . "AcDb2dPolyline"))))会把AcDb3dPolyline的多段线也选到,不知道如何修改。
发表于 2014-9-18 07:46 | 显示全部楼层
直接用:
(setq ss (ssget "X" '((100 . "AcDb2dPolyline"))))
试试。要注意大小写一致。

点评

试了,这样不行,连文字。。。全选进来了  发表于 2014-9-18 08:02
发表于 2014-9-18 08:08 | 显示全部楼层
楼主应该贴图上来,让大家猜得很辛苦
 楼主| 发表于 2014-9-18 08:28 | 显示全部楼层
呵呵,发贴时找不到如何上传附图,回复就可以上传了

本帖子中包含更多资源

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

x
发表于 2014-9-18 08:44 | 显示全部楼层
wangph 发表于 2014-9-17 20:50
图是测量单位提供的,好像是用南方CASS生成的,线条类型是AcDb2dPolyline,我用(setq ss  ssget "X" '((0 . ...

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

点评

本以为现在没人用AcDb2dPolyline、AcDb3dPolyline了,现在看来只能用vla-get-objectname再判断一次了,多谢!  发表于 2014-9-18 08:52
发表于 2014-9-18 13:47 | 显示全部楼层
本帖最后由 xyp1964 于 2014-9-18 13:52 编辑
wangph 发表于 2014-9-18 08:28
呵呵,发贴时找不到如何上传附图,回复就可以上传了
  1. (defun c:tt ()
  2.   (if (setq ss (ssget "X" '((0 . "POLYLINE"))))
  3.     (progn
  4.       (setq ss1 (ssadd)
  5.             i   -1
  6.       )
  7.       (while (setq s1 (ssname ss (setq i (1+ i))))
  8.         (if (= (vla-get-objectname (vlax-ename->vla-object s1)) "AcDb2dPolyline")
  9.           (setq ss1 (ssadd s1 ss1))
  10.         )
  11.       )
  12.       (sssetfirst nil ss1)
  13.     )
  14.   )
  15.   (princ)
  16. )
  1. (defun c:tt ()
  2.   (if (setq ss (ssget "X" '((0 . "POLYLINE"))))
  3.     (progn
  4.       (setq ss1(ssadd)
  5.             i -1
  6.       )
  7.       (while (setq s1 (ssname ss (setq i (1+ i))))
  8.         (if (member '(100 . "AcDb2dPolyline") (entget s1))
  9.           (setq ss1 (ssadd s1 ss1))
  10.         )
  11.       )
  12.       (sssetfirst nil ss1)
  13.     )
  14.   )
  15.   (princ)
  16. )

点评

从来没用过sssetfirst,能解释一下什么意思吗?  发表于 2014-9-18 19:27
多谢了,我用的是第一种方法。  发表于 2014-9-18 17:01
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-4-27 07:41 , Processed in 0.288678 second(s), 38 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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