找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 507|回复: 12

[求助] 第一次发帖恳请大家帮帮忙!筛选扩展属性

[复制链接]

已领礼包: 303个

财富等级: 日进斗金

发表于 2017-6-10 20:47:20 | 显示全部楼层 |阅读模式

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

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

×
要求写在资料里了,就是如何过滤掉附件内的两种情况。
在这里谢谢大家。

说明资料

说明资料

M_3R.lsp

1.43 KB, 下载次数: 15, 下载积分: D豆 -1 , 活跃度 1

源码

CAD文件.zip

27.59 KB, 下载次数: 13, 下载积分: D豆 -1 , 活跃度 1

CAD文件

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

已领礼包: 40个

财富等级: 招财进宝

发表于 2017-6-10 21:28:31 | 显示全部楼层
1、你是想SSGET时候过滤掉?
2、你要过滤掉的和其他 有什么不同? 图片上没看出来。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 303个

财富等级: 日进斗金

 楼主| 发表于 2017-6-10 21:37:32 | 显示全部楼层
本帖最后由 yaokui25 于 2017-6-10 22:23 编辑

图片中的画云线的两种情况想从选择集中剔除。
只有1条线 或者 1两条以上并不相连的线 且不含有 "PMF_GROUP_HEADER_EXTENSION"扩展属性的对象。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 303个

财富等级: 日进斗金

 楼主| 发表于 2017-6-10 21:53:32 | 显示全部楼层

版主如果有时间的话,下载一下附件执行以下就知道怎么回事儿了。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 20个

财富等级: 恭喜发财

发表于 2017-6-10 22:00:29 | 显示全部楼层

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

使用道具 举报

已领礼包: 303个

财富等级: 日进斗金

 楼主| 发表于 2017-6-10 22:20:31 | 显示全部楼层

谢谢你的回答。可能是我没表达明白。
图片中的画云线的两种情况想从选择集中剔除
只有1条线 或者 1两条以上并不相连的线 且不含有 "PMF_GROUP_HEADER_EXTENSION"的扩展属性对象。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 51个

财富等级: 招财进宝

发表于 2017-6-10 23:42:36 | 显示全部楼层

你是直接想在SSGET里面过滤出结果吗? 扩展实体属性可以直接SSGET过滤,只有一条,或者什么的,都不能在SSGET里面直接过滤,不要直接打SSGET的主意了。
你要先用SSGET把能过滤的都过滤出来,在循环处理选择集,在判断其他的条件,不符合的删除掉


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

使用道具 举报

已领礼包: 51个

财富等级: 招财进宝

发表于 2017-6-11 01:56:54 | 显示全部楼层
你下面云线里面的,都只有2个顶点
你上面那些想保留(所谓相连)为什么不画成多段线呢? 如果是多段线,还可以通过过滤顶点数大于2来选择到上面的。

首尾相连的LINE,为什么不连城多段线?

SSGET是直接判断不了线是否相连的,SSGET能过滤的是单个实体自身的DXF组码的属性值。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2017-6-11 02:18:27 | 显示全部楼层
看了下你的图,是插件生成的图形吗?

每个图形都是连续生成的,而且是首尾相接(注意里面有圆弧时可能 Normal 是反向以达到首尾相接)

知道这个规律就可以区分了,在 ssget 中实体的顺序和图形是对应的,判断首尾相接构造一个个组,然后再判断组内的实体有几个含扩展属性
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 303个

财富等级: 日进斗金

 楼主| 发表于 2017-6-11 07:20:30 来自手机 | 显示全部楼层
Lispboy 发表于 2017-6-11 01:56

谢谢您的关注,如果您能下载附件cad文件和lisp代码的话,执行一下就能明白了。谢谢
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 303个

财富等级: 日进斗金

 楼主| 发表于 2017-6-11 07:28:24 来自手机 | 显示全部楼层
st788796 发表于 2017-6-11 02:18

是插件生成的,但有些情况需要自己画。
你说的方法好像可行,如果有时间的话能不能帮忙修改一下代码,谢谢。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 303个

财富等级: 日进斗金

 楼主| 发表于 2017-6-11 07:33:14 来自手机 | 显示全部楼层
Lispboy 发表于 2017-6-11 01:56

如果把属性不一样的线段圆弧等连成多段线,整个图像的扩展属性就会发生变化
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2017-6-11 11:18:19 | 显示全部楼层
本帖最后由 st788796 于 2017-6-11 11:51 编辑

自己画的就打破这个规律了,比如你删除了一根线,然后自己又重画了一根,后处理应该在插件生成的原始图上,否则就自找麻烦了
仅对样图有效

  1. (defun c:tt (/ ss i e lst s lst1 lst2)
  2.   (if (setq ss (ssget '((8 . "kai")
  3.                         (0 . "line,arc,lwpolyline")
  4.                         (-4 . "<not")
  5.                         (-3 ("PMF_GROUP_HEADER_EXTENSION"))
  6.                         (-4 . "not>")
  7.                        )
  8.                )
  9.       )
  10.     (progn
  11.       (setq i 0)
  12.       (while (setq e (ssname ss i))
  13.         (if lst
  14.           (if (or (equal (vlax-curve-getendpoint e) (vlax-curve-getstartpoint (caar lst)) 1e-6)
  15.                   (equal (vlax-curve-getstartpoint e) (vlax-curve-getendpoint (caar lst)) 1e-6)
  16.               )
  17.             (setq lst (cons (cons e (car lst)) (cdr lst)))
  18.             (setq lst (cons (list e) lst))
  19.           )
  20.           (setq lst (cons (list e) lst))
  21.         )
  22.         (setq i (1+ i))
  23.       )
  24.       (setq lst1 (vl-remove-if
  25.                    '(lambda (x)
  26.                       (or (> (length x) 2)
  27.                           (and (= (length x) 2)
  28.                                (or (equal (vlax-curve-getstartpoint (car x))
  29.                                           (vlax-curve-getendpoint (cadr x))
  30.                                           1e-6
  31.                                    )
  32.                                    (equal (vlax-curve-getendpoint (car x))
  33.                                           (vlax-curve-getstartpoint (cadr x))
  34.                                           1e-6
  35.                                    )
  36.                                )
  37.                           )
  38.                       )
  39.                     )
  40.                    lst
  41.                  )
  42.             lst2 (vl-remove-if '(lambda (x) (member x lst1)) lst)
  43.             lst1 (vl-remove-if
  44.                    (function (lambda (x)
  45.                                (and (= (length x) 1)
  46.                                     (vl-some (function (lambda (a)
  47.                                                          (or (equal (vlax-curve-getstartpoint (car x))
  48.                                                                     (vlax-curve-getendpoint (car a))
  49.                                                                     1e-6
  50.                                                              )
  51.                                                              (equal (vlax-curve-getstartpoint (car x))
  52.                                                                     (vlax-curve-getendpoint (last a))
  53.                                                                     1e-6
  54.                                                              )
  55.                                                              (equal (vlax-curve-getendpoint (car x))
  56.                                                                     (vlax-curve-getstartpoint (car a))
  57.                                                                     1e-6
  58.                                                              )
  59.                                                              (equal (vlax-curve-getendpoint (car x))
  60.                                                                     (vlax-curve-getstartpoint (last a))
  61.                                                                     1e-6
  62.                                                              )
  63.                                                          )
  64.                                                        )
  65.                                              )
  66.                                              lst2
  67.                                     )
  68.                                )
  69.                              )
  70.                    )
  71.                    lst1
  72.                  )
  73.       )
  74.       (if lst1
  75.         (progn
  76.           (setq s (ssadd))
  77.           (foreach x (apply 'append lst1) (ssadd x s))
  78.           (sssetfirst nil s)
  79.         )
  80.       )
  81.     )
  82.   )
  83.   (princ)
  84. )

评分

参与人数 1D豆 +5 收起 理由
yaokui25 + 5 技术引导讨论和指点奖!谢谢你的代码

查看全部评分

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-10 15:36 , Processed in 0.579806 second(s), 58 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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