1. ;;不闭合多段线检查并标记,且使能闭合的图元闭合
    2. (defun c:PC(/ ent gss i pt1 pt2 r ss)
    3. (setvar "CMDECHO" 0)
    4. (command "UNDO" "be")
    5. (if (setq ss (ssget '((0 . "LWPOLYLINE") (70 . 0))))
    6. (progn
    7. (setq i 0 gss (ssadd))
    8. (repeat (sslength ss)
    9. (setq
    10. ent (entget (ssname ss i))
    11. pt1 (cdr(assoc 10 ent))
    12. pt2 (cdr(assoc 10 (reverse ent)))
    13. r (* (getvar "DIMSCALE") 2)
    14. )
    15. (ssadd (entmakex (list '(0 . "circle") (cons 10 pt1) (cons 40 r) (cons 62 2)))gss)
    16. (ssadd (entmakex (list '(0 . "circle") (cons 10 pt2) (cons 40 r) (cons 62 2)))gss)
    17. (if (equal pt1 pt2 1E-8) (entmod (subst '(70 . 1) (assoc 70 ent) ent)))
    18. (setq i (1+ i))
    19. )
    20. (command "-group" "" "*" "" gss "")
    21. )
    22. )
    23. (command "UNDO" "e")
    24. (setvar "CMDECHO" 1)
    25. (princ)
    26. )
    27. ;;不闭合多段线检查并标记
    28. (defun c:tt (/ ent i pt1 pt2 r ss)
    29. (setvar "CMDECHO" 0)
    30. (if (setq ss (ssget '((0 . "LWPOLYLINE") (70 . 0))))
    31. (progn
    32. (setq i 0)
    33. (repeat (sslength ss)
    34. (setq ent (entget(ssname ss i))
    35. pt1 (cdr(assoc 10 ent))
    36. pt2 (cdr(assoc 10 (reverse ent)))
    37. r (* (getvar "DIMSCALE") 2)
    38. )
    39. (command ".CIRCLE" "non" pt1 "non" r ".CIRCLE" "non" pt2 "non" r)
    40. (setq i (1+ i))
    41. )
    42. )
    43. )
    44. (setvar "CMDECHO" 1)
    45. (princ)
    46. )