明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: soly2006

检查折线间有无裂缝,请各高手提供个算法[已解决]

  [复制链接]
发表于 2012-5-2 16:49:39 | 显示全部楼层
G版说的好像是这个意思,能不能麻烦你说一下算法的思路

点评

有代码,自己慢慢学,等你看明白了,也就学会了!  发表于 2012-5-2 16:52
发表于 2012-5-2 17:02:19 | 显示全部楼层
Gu_xl 发表于 2012-5-2 15:31

请问G,这个检查的物体是需要块还是。。。。我自己弄一个图为什么没法选定对象
 楼主| 发表于 2012-5-2 17:04:05 | 显示全部楼层
哈哈,谢谢GU版,就是这个效果。
自己水平太次了,我搞了几天的烂尾楼可以推倒了。
 楼主| 发表于 2012-5-3 17:23:22 | 显示全部楼层
本帖最后由 soly2006 于 2012-5-3 17:30 编辑
Gu_xl 发表于 2012-5-2 15:31

GU版请看一下,这种情况下不能处理,就是少结点的情况下,可能会出现。是否可以以结点为中心,对一定范围的线进行点对线距离求算,然后标出有小距离的位置,只是标有重复情况。
发表于 2012-5-3 18:36:28 来自手机 | 显示全部楼层
soly2006 发表于 2012-5-3 17:23
GU版请看一下,这种情况下不能处理,就是少结点的情况下,可能会出现。是否可以以结点为中心,对一定范围 ...

这也是比较不错的思路!
发表于 2012-5-3 19:10:16 | 显示全部楼层
边界检查:

本帖子中包含更多资源

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

x

评分

参与人数 1明经币 +1 收起 理由
flytoday + 1 院长这个好。哈时候发出来啊。。。期待

查看全部评分

 楼主| 发表于 2012-5-4 11:17:20 | 显示全部楼层
xyp1964 发表于 2012-5-3 19:10
边界检查:

院长把交叉、裂缝、冗余点检查集成,超强!
发表于 2012-5-4 13:40:33 | 显示全部楼层
本帖最后由 Gu_xl 于 2012-5-11 16:02 编辑
soly2006 发表于 2012-5-4 11:17
院长把交叉、裂缝、冗余点检查集成,超强!

命令:zxjxjc

  1. ;;仅供思路参考
  2. (defun c:ZXJXJC  (/ MKCIRCLE GETBOX N NN PICKBOX SS
  3.   BOXSIZE S I L PL OLDPT PTBOX
  4.   PLS PLSS FLAG
  5.         ) ;_ /

  6.   (defun mkcircle  (pt r)
  7.     (entmake (list '(0 . "circle")
  8.                    (cons 10 pt)
  9.                    (cons 40 r)
  10.                    (cons 62 1)
  11.                    (cons 8 "检查标记")))
  12.     )
  13.   (defun getbox (pt size)
  14.     (list (polar pt (* pi 1.25) (sqrt (* 0.5 size size)))
  15.    (polar pt (* pi 0.25) (sqrt (* 0.5 size size)))
  16.    )
  17.     )
  18.   (setierr)
  19.   (setq n 0 nn 0 pickbox (getvar 'pickbox))
  20.   (setvar 'pickbox 5)
  21.   (while (progn
  22.            (princ "\n选择要检查的物体:")
  23.            (setq ss (ssget '((0 . "lwpolyline"))))
  24.            )
  25.     (gxl-SYS-STORESVIEWSIZE)
  26.     (gxl-SYS-ZOOM_WINDOW (gxl-GETSSBOX ss))
  27.     (setq boxsize (gxl-SYS-GETPICKBOX))
  28.     (setq s nil n 0)
  29.   (repeat (setq i (sslength ss))
  30.     (setq s (cons (ssname ss (setq i (1- i))) s))
  31.     )
  32.     (foreach en         s
  33.       (setq l (vl-remove en s))
  34.       (setq pl (mapcar 'cdr
  35.                        (vl-remove-if-not
  36.                          '(lambda (x) (= 10 (car x)))
  37.                          (entget en)))
  38.      oldpt nil)
  39.       (foreach pt  pl
  40. (if (equal pt oldpt 1e-6)
  41.    (progn
  42.   (mkcircle pt (* boxsize 2))
  43.   (setq n (1+ n))
  44.        )
  45.    )
  46. (setq oldpt pt)
  47. (setq ptbox (getbox pt boxsize))
  48. (setq pls (ssget "c" (car ptbox) (cadr ptbox) '((0 . "lwpolyline"))))
  49. (if pls
  50.    (progn
  51.      (setq plss nil)
  52.      (repeat (setq i (sslength pls))
  53.        (setq plss (cons (ssname pls (setq i (1- i))) plss))
  54.      ) ;_ repeat
  55.      (setq Flag
  56.      (vl-some
  57.        '(lambda (x)
  58.    (not
  59.    (equal (vlax-curve-getclosestpointto en pt)
  60.           (vlax-curve-getclosestpointto x pt)
  61.           1e-6
  62.    ) ;_ equal
  63.    )
  64.         ) ;_ lambda
  65.        plss
  66.      ) ;_ vl-some
  67.      ) ;_ setq
  68.      (if Flag
  69.        (progn
  70.   (mkcircle pt (* boxsize 2))
  71.   (setq n (1+ n))
  72.        ) ;_ progn
  73.      ) ;_ if
  74.    ) ;_ progn
  75. ) ;_ if
  76.         )
  77.       )
  78.     (gxl-SYS-RESTORESVIEWSIZE)
  79.     (princ (strcat "\n发现 " (itoa n) "处问题:"))
  80.     (setq nn (+ n nn))
  81.     )
  82.   (princ (strcat "\n总共发现 " (itoa nn) "处问题:"))
  83.   (setvar 'pickbox pickbox)
  84.   (reerr)
  85.   (princ)
  86.   )

  87. (princ "\n折线间隙检查 By 明经通道 Gu_xl 命令:ZXJXJC")




本帖子中包含更多资源

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

x

点评

命令: zxjxjc ; 错误: no function definition: SETIERR G版存在这个错误咋啦啊。。麻烦改下啊谢谢  发表于 2012-5-11 15:17
发表于 2012-5-4 14:02:14 | 显示全部楼层
请问楼主,这个检查的对象必须两个块嘛。。还是一般的线就行了?
发表于 2012-5-4 14:30:37 | 显示全部楼层
看看 主要是为了学悍将
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-19 12:29 , Processed in 0.249232 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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