设为首页收藏本站

晓东CAD家园-论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1424|回复: 37

[拓扑] 【拓扑检查】多边形间缝隙

[复制链接]

已领礼包: 51个

财富等级: 招财进宝

发表于 2018-12-24 11:13:00 | 显示全部楼层 |阅读模式
  • 插件名称 : 缝隙检查
  • 作  者 : Lispboy
  • 运行环境 :XDRX API OpenDCL 晓东工具箱 
  • 发布时间 :2018-12-24
  • 命令名称 :xdtb_topochkgap
  • 插件介绍 :多边形间缝隙
  • 备  注 : (点击图片可以放大)
(点击图片可以放大)

晓东温馨提示 1、运行环境为 晓东工具箱XDRX API 的插件,请下载最新版本的 晓东工具箱XDRX API开发环境 一键安装
2、在ACAD中如何加载插件,请看 论坛插件使用方法
3、如果您有要求需要定制插件,请到 编程申请 论坛发帖求助

插件详细内容

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

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

x
本帖最后由 newer 于 2018-12-24 11:26 编辑

检查封闭多边形(地块)间有缝隙的,用标记标出来
什么是带缝隙的多边形:多边形相贴(两多边形有顶点共边,但没贴合,至少有一个顶点在另外的多边形的外部)



需要的函数XD::Curve:Relation见:http://bbs.xdcad.net/thread-719349-1-1.html


游客,如果您要查看本帖隐藏内容请回复


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

已领礼包: 401个

财富等级: 日进斗金

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

使用道具 举报

已领礼包: 2个

财富等级: 恭喜发财

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

使用道具 举报

已领礼包: 960个

财富等级: 财运亨通

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

使用道具 举报

已领礼包: 3427个

财富等级: 富可敌国

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

使用道具 举报

已领礼包: 1852个

财富等级: 堆金积玉

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

使用道具 举报

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

使用道具 举报

发表于 2018-12-24 18:20:09 | 显示全部楼层
本帖最后由 wzg356 于 2018-12-24 22:23 编辑

这几天在处理cass地籍数据写的,另一种拓扑关系
  1. <blockquote>;取得曲线顶点
复制代码

点评

编辑误操作了,现补上代码,有些函数属本论坛收集的  详情 回复 发表于 2018-12-24 22:26
代码呢?  详情 回复 发表于 2018-12-24 18:48
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2018-12-24 18:48:16 | 显示全部楼层
wzg356 发表于 2018-12-24 18:20
这几天在处理cass地籍数据写的,另一种拓扑关系

代码呢?

点评

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

使用道具 举报

已领礼包: 7779个

财富等级: 富甲天下

发表于 2018-12-24 19:51:55 | 显示全部楼层
这个有用,有时候两个多边形看上去两条边是贴在一起了,其实有很小的间隙
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2018-12-24 22:26:56 | 显示全部楼层
wzg356 发表于 2018-12-24 18:20
这几天在处理cass地籍数据写的,另一种拓扑关系

编辑误操作了,现补上代码,有些函数属本论坛收集的
  1. ;取得曲线顶点
  2. (defun vxs (e / i v lst)
  3.     (setq i -1)
  4.     (while (setq v (vlax-curve-getpointatparam e (setq i (1+ i))))
  5.        (setq lst (cons v lst))
  6.     )
  7.     (reverse lst)
  8. )
  9. ;--------------------------


  10. ;判断多边形pts1(叫点集较好)是否在多边形pts2(首尾点相同的不自交点集)外,返回nil则全在内
  11. ;纯几何学判断
  12. ;(pst1<npts2 (vxs(car (entsel)))(vxs(car (entsel))))
  13. (defun pst1<npts2 (pts1 pts2 /  pntonline ptisorout x pt)
  14. ;功能:判断点在直线上的位置
  15. ;参数:p1,p2:直线上的两点,例如直线上的起点和端点,p3:所要判断的点
  16. ;返回值:点的位置,等于0时(equal k 0.0 0.00000001)点在线上,
  17. ;大于0时点在线的左侧,小于0时点在线的右侧
  18. ;示例:(setq k(pntonline (getpoint) (getpoint) (getpoint)))  
  19. (defun pntonline(p3 p1 p2 / p c B C P)
  20.   (setq p p3)
  21.   (apply '+ (mapcar '(lambda (b)
  22.     (setq c(- (* (car p) (cadr b)) (* (cadr p) (car b))) p b )c )
  23.     (list p1 p2 p3)))
  24. )
  25. ;判断点是否在多边形外,返回nil则不在界外
  26. ;(ptisorout (getpoint) (vxs(car (entsel))))
  27. (defun ptisorout (pt pts / jgls x lines)
  28.         (while (cadr pts)
  29.       (setq lines(cons(list (car pts)(cadr pts))lines))
  30.       (setq pts(cdr pts))
  31.     );多边形分解为单边
  32.         (setq jgls(mapcar  
  33.                 '(lambda (x)(pntonline pt (car x) (cadr x)))lines)
  34.         )
  35.         (vl-member-if '(lambda (x)(> x 0.00001))jgls)
  36. )
  37. ;--主函数就这句话------------
  38.         (vl-remove-if '(lambda (x)(equal x nil))
  39.                 (mapcar '(lambda (pt)(ptisorout pt pts2))pts1)
  40.         )
  41. )
  42. ;-----------------------------
  43. ;应用
  44. ;取得多边形内线实体, 不含多边形本身,实体不超过边界就算
  45. ;多边形范围必须在屏幕内
  46. ; 使用(ssget "wP" <pt-list> [filter-list])时,实体挂边就选不上,故写此函数
  47. ;(if(setq ss(ssgetpolyline (car(entsel))))(sslength ss))
  48. (defun ssgetpolyline (en /  ss ss1  pts en1 nn)
  49. (setq pts(vxs en))
  50. (setq ss(ssget "CP" pts '((0 . "*polyline"))));这句可再进一步过滤,比如选地块内房屋
  51. (setq ss1 (ssadd) nn -1)
  52. (while (setq en1(ssname  ss (setq nn(1+ nn))))
  53.         (if(not(equal en1 en))
  54.                 (if(not(pst1<npts2 (vxs en1) pts))
  55.                         (setq ss1(ssadd en1 ss1));或进行其他函数操作
  56.                 )
  57.         )
  58. )(if(> (sslength ss1)1)ss1)
  59. )

点评

谢谢分享,都有什么拓扑关系处理?  详情 回复 发表于 2018-12-24 22:55

评分

参与人数 1D豆 +5 收起 理由
Lisphk + 5 很给力!经验;技术要点;资料分享奖!

查看全部评分

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

使用道具 举报

发表于 2018-12-24 22:31:33 | 显示全部楼层

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

使用道具 举报

已领礼包: 19个

财富等级: 恭喜发财

发表于 2018-12-24 22:55:30 | 显示全部楼层
wzg356 发表于 2018-12-24 22:26
编辑误操作了,现补上代码,有些函数属本论坛收集的

谢谢分享,都有什么拓扑关系处理?

点评

这期间地籍工作,需要对宗地内房屋添加宗地的一些属性,或者把房屋的一些信息写入宗地扩展属性,目的是根据宗地选房屋。只是拓扑判断,扩展一下可判断房屋或地物是否超出宗地边界(这种情况要处理的)。  详情 回复 发表于 2018-12-24 23:14
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2018-12-24 23:14:47 | 显示全部楼层
Lisphk 发表于 2018-12-24 22:55
谢谢分享,都有什么拓扑关系处理?

这期间地籍工作,需要对宗地内房屋添加宗地的一些属性,或者把房屋的一些信息写入宗地扩展属性,目的是根据宗地选房屋。只是拓扑判断,扩展一下可判断房屋或地物是否超出宗地边界(这种情况要处理的)。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2021-3-4 05:49 , Processed in 0.111903 second(s), 51 queries , Gzip On, WinCache On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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