找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 4350|回复: 26

[已解决] 刪除與闭合多义线相交或被合多义线包圍的實體

[复制链接]

已领礼包: 182个

财富等级: 日进斗金

发表于 2013-8-20 11:27:46 | 显示全部楼层 |阅读模式
提示: 作者被禁止或删除 内容自动屏蔽
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 604个

财富等级: 财运亨通

发表于 2013-8-20 11:36:18 | 显示全部楼层
取点,然后ssget "F" pts
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2013-8-20 11:36:23 | 显示全部楼层
本帖最后由 Free-Lancer 于 2013-8-20 11:39 编辑

用API随手写
  1. (defun c:tt (/ e pts ss)
  2.   (if (and (setq e (xdrx_entsel "\nPick Pline: " '((0 . "*polyline"))))
  3.     (setq pts (xdrx_entity_getstretchpoint (car e)))
  4.     (setq ss (ssget "CP" pts))
  5.       )
  6.     (progn
  7.       (ssdel (car e) ss)
  8.       (xdrx_entity_delete ss)
  9.     )
  10.   )
  11.   (princ)
  12. )

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

使用道具 举报

已领礼包: 182个

财富等级: 日进斗金

 楼主| 发表于 2013-8-20 11:44:51 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 182个

财富等级: 日进斗金

 楼主| 发表于 2013-8-20 11:54:29 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 182个

财富等级: 日进斗金

 楼主| 发表于 2013-8-20 11:56:45 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2013-8-20 12:00:00 | 显示全部楼层
kcad2010 发表于 2013-8-20 11:54
如果那个指定的多义线有圆弧就是出现错误。把不能删除的也删除了。

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

使用道具 举报

已领礼包: 51个

财富等级: 招财进宝

发表于 2013-8-20 12:09:10 | 显示全部楼层
送你个通用函数和测试程序

  1. ;|
  2. 构建多段线选择集
  3. 参数:
  4.    e --- 多段线
  5.    filter --- 过滤表,如: '((0 . "circle"))
  6. 返回值:
  7.    表 (多段线内的实体选集  多段线上的实体选集 多段线外的实体选集)
  8. |;
  9. (defun xd::pickset:polyfence (e filter)
  10.   (xdrx_ucson)
  11.   (if (setq pts (xdrx_getsamplept e))
  12.     (progn
  13.       (setq ss1 (ssget "f" pts filter)
  14.             ss1 (ssdel e ss1)
  15.             ss2 (ssget "wp" pts filter)
  16.             ss3 (ssget "x")
  17.             ss3 (xdrx_pickset_subtract ss3 ss2)
  18.             ss3 (xdrx_pickset_subtract ss3 ss1)
  19.       )
  20.       (setq ss3 (list ss2 ss1 ss3))
  21.     )
  22.   )
  23.   (xdrx_ucsoff)
  24.   ss3
  25. )


测试:
  1. (defun c:tt()
  2.    (if (setq e (car (xdrx_entsel "\n选取一条多段线<退出>:" '((0 . "*POLYLINE")))))
  3.       (progn
  4.          (setq ss (XD::Pickset:PolyFence e nil))
  5.          (xdrx_entity_delete (car ss))
  6.          (xdrx_entity_delete (cadr ss))
  7.       )
  8.    )
  9.    (princ)
  10. )


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

使用道具 举报

已领礼包: 51个

财富等级: 招财进宝

发表于 2013-8-20 12:10:21 | 显示全部楼层
kcad2010 发表于 2013-8-20 11:54
如果那个指定的多义线有圆弧就是出现错误。把不能删除的也删除了。

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

使用道具 举报

已领礼包: 51个

财富等级: 招财进宝

发表于 2013-8-20 12:18:42 | 显示全部楼层
kcad2010 发表于 2013-8-20 11:56
;(getplinstss (car(entsel)) 0.5)
(defun getplinstss ( en  lk / mbpllength pp )        
(setq mbpll ...

你的代码有多余的点,如果直线段的,就取顶点就行了,只是ARC段的,才用模拟顶点。而且这个模拟的精度很有说法,要适合很小的弧,也要适合很大很大的弧,所以你固定参数间距肯定不贴切了,圆弧小的时候,几个点就够了,而圆弧很大很大的时候,要很多点才行。

所以,直接用API吧,你可以测试下 xdrx_getsamplept, 对于不同大小的圆弧,出来的顶点数是不一样的。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

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

使用道具 举报

发表于 2013-8-20 12:30:37 | 显示全部楼层
用模拟点总会有或多或少的选择,外凸时可能少选,内凹时可能多选!

点评

一个 CP 应该可以一网打尽了。CP= F+WP  详情 回复 发表于 2013-8-20 12:36
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 19个

财富等级: 恭喜发财

发表于 2013-8-20 12:36:19 | 显示全部楼层
Free-Lancer 发表于 2013-8-20 12:30
用模拟点总会有或多或少的选择,外凸时可能少选,内凹时可能多选!

一个 CP 应该可以一网打尽了。CP= F+WP

点评

F 也是有多打或者少打的时候,模拟的是弦,弦到弧还有一个空间,理论上有Bug  详情 回复 发表于 2013-8-20 12:40
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2013-8-20 12:40:55 | 显示全部楼层
Lisphk 发表于 2013-8-20 12:36
一个 CP 应该可以一网打尽了。CP= F+WP

F 也是有多打或者少打的时候,模拟的是弦,弦到弧还有一个空间,理论上有Bug

点评

你这么说,提醒我了,程序得修改下,如果多段线有部分在屏幕外,得ZOOM到屏幕内。  详情 回复 发表于 2013-8-20 12:52
只要在视觉误差内,应该都可以选上的,谁也不会画个眼睛都看不见的东西在那,有也不是我们需要的,如果这个模拟点是里面一个外面一个的话就更能保证了。  详情 回复 发表于 2013-8-20 12:50
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 51个

财富等级: 招财进宝

发表于 2013-8-20 12:50:35 | 显示全部楼层
Free-Lancer 发表于 2013-8-20 12:40
F 也是有多打或者少打的时候,模拟的是弦,弦到弧还有一个空间,理论上有Bug

只要在视觉误差内,应该都可以选上的,谁也不会画个眼睛都看不见的东西在那,有也不是我们需要的{:soso_e113:},如果这个模拟点是里面一个外面一个的话就更能保证了。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-3-29 16:36 , Processed in 0.450575 second(s), 70 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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