巧克力
- (defun c:remseg (/ ss pts_ pts i before after bd dup)
- ;;; pBe 23Nov2013 ;;;
- [color="blue"](setvar 'pdmode 34)[/color]
- (if (setq pts_ nil
- ss (ssget "_:L" '((0 . "LWPOLYLINE")))
- )
- (repeat (setq i (sslength ss))
- (setq pts_ nil [color="blue"]dup nil[/color]
- pl (vlax-ename->vla-object (ssname ss (setq i (1- i))))
- )
- (setq before (/ (length
- (setq pts (Vlax-get pl 'Coordinates))
- )
- 2
- )
- )
- (while pts
- (setq pts_ (cons (list (car pts) (cadr pts)) pts_)
- pts (cddr pts)
- )
- )
- (while pts_
- (setq pts (cons (car pts_) pts)
- [color="blue"] bf (length pts_)[/color]
- pts_ (vl-remove (car pts_) pts_)
- )
- [color="blue"](if (> (- bf (length pts_) ) 1)
- (setq dup (cons (car pts) dup)))[/color]
- )
- (setq after (length pts))
- (vlax-put pl 'Coordinates (apply 'append pts))
- (if (> before after)
- [color="blue"](progn
- (foreach p dup
- (entmakex (list (cons 0 "POINT")
- (cons 10 p))))[/color]
- (princ (Strcat "\nBefore: "
- (itoa before)
- "\tAfter : "
- (itoa after)
- )
- )
- )
- (princ "\n<<No Duplicates found>>")
- )
- )
- )
- (princ)
- )
- (vl-load-com)
|