明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: CAD83

[源码] 有没有LISP检查哪些PLINE没有闭合,亮显没有闭合地方

  [复制链接]
发表于 2011-3-10 16:06 | 显示全部楼层
CAD83 发表于 2011-3-10 15:07
能否加上选择对象一个,也可是多个,框选择这样好用好多,哪位帮再了改下,

帮你改了一个,去掉"X"就可以了

;;检查多段线是否闭合,在没有闭合的地方画个圈
;;by ZZXXQQ mjtd.com
(defun c:tt ()
  (setvar "CMDECHO" 0)
  (if (setq ss (ssget '((0 . "LWPOLYLINE") (70 . 0))))
    (progn
      (setq i 0)
      (repeat (sslength ss)
        (setq ent (entget (ssname ss i))
              pt1 (cdr (assoc 10 ent))
              pt2 (cdr (assoc 10 (reverse ent)))
              r          (* (getvar "DIMSCALE") 2)
        )
        (command ".CIRCLE" pt1 r ".CIRCLE" pt2 r)
        (setq i (1+ i))
      )
    )
  )
  (setvar "CMDECHO" 1)
  (princ)
)
发表于 2011-3-10 16:07 | 显示全部楼层
  1. ;16:02 2011-3-10  zxjing    修改Z版程序 2011-3-09 20:26
  2. ;向Z版学习
  3. (defun HJSZ ;|环境设置|;   ()
  4.   (setq cmd_bak (getvar "cmdecho"))
  5.   (setq os_bak (getvar "osmode"))
  6.   (setq lay_bak (getvar "clayer"))
  7.   (setvar "cmdecho" 0)
  8.   (setvar "osmode" 0)
  9.   (princ)
  10. )

  11. (defun HFHJSZ ;|恢复环境设置|;         ()
  12.   (setvar "cmdecho" cmd_bak)
  13.   (setvar "osmode" os_bak)
  14.   (setvar "clayer" lay_bak)
  15.   (princ)
  16. )

  17. (defun c:tt ()
  18. (HJSZ)
  19.   (if (= (tblobjname "layer" "0-未闭合") nil)
  20.     (command "-layer" "m" "0-未闭合" "c" "6" "" "")
  21.       (setvar "clayer" "0-未闭合")
  22.   )
  23. (if (setq ss (ssget  '((0 . "LWPOLYLINE") (70 . 0))))
  24.     (progn
  25.       (setq i 0)
  26.       (repeat (sslength ss)
  27.         (setq ent (entget (ssname ss i))
  28.               pt1 (cdr (assoc 10 ent))
  29.               pt2 (cdr (assoc 10 (reverse ent)))
  30.               r          (* (getvar "DIMSCALE") 2)
  31.         )
  32.         (command ".CIRCLE" pt1 r ".CIRCLE" pt2 r)
  33.         (setq i (1+ i))
  34.       )
  35.     )
  36.   )
  37.   
  38. ;;;  (if (setq ss (ssget "X" '((0 . "LWPOLYLINE") (70 . 0))))
  39. ;;;    (progn
  40. ;;;      (setq i 0)
  41. ;;;      (repeat (sslength ss)
  42. ;;;        (setq ent (entget (ssname ss i))
  43. ;;;              pt1 (cdr (assoc 10 ent))
  44. ;;;              pt2 (cdr (assoc 10 (reverse ent)))
  45. ;;;              r          (* (getvar "DIMSCALE") 2)
  46. ;;;        )
  47. ;;;        (command ".CIRCLE" pt1 r ".CIRCLE" pt2 r)
  48. ;;;        (setq i (1+ i))
  49. ;;;      )
  50. ;;;    )
  51. ;;;  )
  52. (HFHJSZ)
  53. )



发表于 2011-3-10 16:09 | 显示全部楼层
本帖最后由 zxjing 于 2011-3-10 16:09 编辑

回复 CAD83 的帖子

(ssget "X" '((0 . "LWPOLYLINE") (70 . 0))))
只要去掉那个 "X",好像就可以了
12楼那个应该可以直接用 了,你试试
发表于 2011-3-10 16:11 | 显示全部楼层
本帖最后由 zxjing 于 2011-3-10 16:13 编辑

回复 cxs259 的帖子

可以设置圈圈画在专门的一层上,不想要了 的时候将其删除就可以了,参12楼程序
 楼主| 发表于 2011-3-10 16:33 | 显示全部楼层
呵。世上还是有好多好心人的,谢了,
发表于 2011-3-12 11:47 | 显示全部楼层
看不到!发帖要大于五,pe合并后怎么查的?
发表于 2011-3-13 01:25 | 显示全部楼层
看不到。。哎
发表于 2011-3-13 15:42 | 显示全部楼层




本帖子中包含更多资源

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

x
发表于 2011-3-14 06:32 | 显示全部楼层
谢谢楼上的分享
下来试试学习学习
发表于 2011-3-14 20:19 | 显示全部楼层
好好学习CAD 一劳永逸。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-4-27 13:14 , Processed in 0.282093 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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