找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1482|回复: 23

[请教]ssget选择圆环时包含(90 . 2)为何无效?

[复制链接]

已领礼包: 24个

财富等级: 恭喜发财

发表于 2004-12-19 13:41:54 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

×
我想通过窗选dount生成的圆环,用下面的语句却无法实现,请高手赐教

[php]
  
(ssget '((-4 . "<AND")(0 . "*POLYLINE") (90 . 2) (70 . 1)  (-4 . "AND>")))
  [/FONT]
[/php]
(90 . 2)代表两个多义线顶点
(70 . 1)代表封闭曲线

附圆环的elist:
((-1 . <Entity name: 19e1188>) (0 . LWPOLYLINE) (5 . 199) (100 .
AcDbEntity) (67 . 0) (8 . 0) (100 . AcDbPolyline) (90 . 2) (70 . 1) (43 . 10.0)
(38 . 0.0) (39 . 0.0) (10 297.225 187.569) (40 . 10.0) (41 . 10.0) (42 . 1.0)
(10 307.225 187.569) (40 . 10.0) (41 . 10.0) (42 . 1.0) (210 0.0 0.0 1.0))

问题出在(90 . 2)上,去掉(90 . 2)可以选择,但我就是希望只选择顶点数为2的圆环,而不选择类似rectang生成的四边形

请高手赐教,多谢!!!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2004-12-19 14:13:36 | 显示全部楼层
如果是“POLYLINE”图元,不存在(90 . 2)组码,当然也就选择不到!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 24个

财富等级: 恭喜发财

 楼主| 发表于 2004-12-19 14:22:09 | 显示全部楼层
多谢楼上的帮助!但我不明白的是
加入了(90 . 2)后连圆环也选不到了,第一贴有圆环的elist,圆环里含有(90 . 2)组码
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-12-19 14:33:37 | 显示全部楼层
“LWPOLYLINE”图元形式的圆环具有(90 . 2)组码。
查看圆环是否有(0 . LWPOLYLINE)组码。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-12-19 14:36:28 | 显示全部楼层
[php]
(ssget '((-4 . "<and")
         (0 . "*Polyline")
         (-4 . "=")
         (90 . 2)
         (-4 . "and>")
        )
)[/php]
90 是节点数,必须的
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-12-19 14:49:46 | 显示全部楼层
试试这个,不设“-4”和“90”码找圆环:
[php]
;;;检查图中圆环的数量并生成圆环选集
(defun c:test ()
  (vl-load-com)
  (setq        ss  (ssget "X" '((0 . "*LINE") (70 . 1)))
        n   -1
        sss (ssadd)
  )
  (while (setq s1 (ssname ss (setq n (+ 1 n))))
    (numbersofseg S1)
    (if        (= (1- (/ (length plist) 2)) 2)
      (setq sss (ssadd s1 sss))
    )
  )
  (princ"\图中共有圆环")(princ(sslength sss))  (princ "个。圆环选集为 : !sss")
  (princ)
)
(defun numbersofseg (ename)
  (setq obj (vlax-ename->vla-object ename))
  (setq        plist (vlax-safearray->list
                (vlax-variant-value
                  (vla-get-coordinates obj)
                )
              )
  )
  (1- (/ (length plist) 2))
)
[/php]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 24个

财富等级: 恭喜发财

 楼主| 发表于 2004-12-19 14:51:23 | 显示全部楼层
to:5楼
我用了(-4 . "=")(90 . 2),还是选不到圆环,就是dount生成的
你试试看行不行
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-12-19 15:08:58 | 显示全部楼层
没必要用“-4”码,看看6楼的。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 24个

财富等级: 恭喜发财

 楼主| 发表于 2004-12-19 15:10:24 | 显示全部楼层
to:6楼
多谢!我现在也是临时用这个方法来解决的。
但还是觉得很遗憾,我觉得在(ssget)里设(90 . 2)应该是有办法做到的
但我还没找到这个办法,希望谁能做到的请不吝赐教。

还有一个困惑就是为什么(70 . 1)可以,(90 .2)就不行
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-12-19 15:17:59 | 显示全部楼层
说了半天,怎么还不明白?
查查你的圆环是不是“LWPOLYLINE”图元!
如果不是,在(ssget)里设(90 . 2)当然找不到圆环。


(70 . 1)代表闭合!
所以即使用(ssget "X" '((0 . "*LINE") (70 . 1)))也不会选到“LINE”图元,而只会选到闭合的“线”。剩下的就是要判断只有两个顶点的才能符合要求(Startpoint、Endpoint)。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 24个

财富等级: 恭喜发财

 楼主| 发表于 2004-12-19 15:25:00 | 显示全部楼层
圆环是 LWPOLYLINE啊
里面可以看到(0 . LWPOLYLINE) (90 . 2)(70 . 1)等组码
下面是dount生成的圆环dxf码
[PHP]
((-1 . <Entity name: 19d0ad8>) (0 . LWPOLYLINE) (5 . 1A3) (100 .
AcDbEntity) (67 . 0) (8 . 0) (100 . AcDbPolyline) (90 . 2) (70 . 1) (43 . 2.0)
(38 . 0.0) (39 . 0.0) (10 38.3374 -27.1106) (40 . 2.0) (41 . 2.0) (42 . 1.0)
(10 40.3374 -27.1106) (40 . 2.0) (41 . 2.0) (42 . 1.0) (210 0.0 0.0 1.0))
[/PHP]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-12-19 15:29:31 | 显示全部楼层
“dount”→“donut”
[php]
;将
(ssget '((-4 . "<AND")(0 . "*POLYLINE") (90 . 2) (70 . 1)  (-4 . "AND>")))
;改为
(ssget  "X" '((0 . "*POLYLINE") (90 . 2) (70 . 1)))
;试试!
[/php]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 24个

财富等级: 恭喜发财

 楼主| 发表于 2004-12-19 15:33:28 | 显示全部楼层
无mode值,就是你说的SSS,是希望窗选啊

(ssget filter-list) 要求用户作一般的图元选择, 但只有符合 filterlist 条件的图元可加入选择组


12楼的方法我试过了,选不到圆环的,不行你自己试试



我好象明白了,在r14下(ssget)里含(90 . 2)无效
但2000以上版本可以
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-12-19 15:49:29 | 显示全部楼层
R14下的“LWPOLYLINE”有(90 . 2)组码吗?
偶用的是2004!
你用的是?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 24个

财富等级: 恭喜发财

 楼主| 发表于 2004-12-19 15:53:58 | 显示全部楼层
呵呵,我机器上有r14+2000+2005
我刚才贴的就是r14里的圆环数据表
r14的圆环数据表:
[PHP]
((-1 . <Entity name: 3070520>) (0 . LWPOLYLINE) (5 . 4C) (100 .
AcDbEntity) (67 . 0) (8 . 0) (100 . AcDbPolyline) (90 . 2) (70 . 1) (43 . 5.0)
(38 . 0.0) (39 . 0.0) (10 -2.5 0.0) (40 . 5.0) (41 . 5.0) (42 . 1.0) (10 2.5
0.0) (40 . 5.0) (41 . 5.0) (42 . 1.0) (210 0.0 0.0 1.0))
[/PHP]

r2000的圆环数据表:
[PHP]
((-1 . <图元名: 1872188>) (0 . "LWPOLYLINE") (330 . <图元名:
18720f8>) (5 . "41") (100 . "AcDbEntity") (67 . 0) (410 . "Model") (8 . "0")
(100 . "AcDbPolyline") (90 . 2) (70 . 1) (43 . 2.5) (38 . 0.0) (39 . 0.0) (10
-1.25 0.0) (40 . 2.5) (41 . 2.5) (42 . 1.0) (10 1.25 0.0) (40 . 2.5) (41 . 2.5)
(42 . 1.0) (210 0.0 0.0 1.0))
[/PHP]

我初步估计是r14程序的问题,因为2000下用上面任何一种写法均可
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2025-9-21 21:54 , Processed in 0.209640 second(s), 61 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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