GMD Giảm mật độ Text/block/point
Xóa các Text/point/block theo điều kiện khoảng cách tối thiểu bằng cách pick 2 điểm
Trước khi giảm
Sau khi giảm
1 Thêm file GMD by lisp.vn.lsp
Lưu mã sau dưới dạng tệp tin GMD by lisp.vn.lsp
Code:
(defun c:GMD (/ ss dist i ent p c-x c-y grid-list key count-del obj-type) (vl-load-com) (princ "\n--- Lisp Giam Mat Do: TEXT, BLOCK, POINT ---") ;; 1. Nhập khoảng cách lưới (setq dist (getdist "\nNhap khoang cach luoi de giu lai 1 doi tuong (vi du 5.0): ")) (if (not dist) (setq dist 5.0)) ;; 2. Chọn đối tượng (Loc Text, MText, Block, Point) (prompt "\nChon vung doi tuong can giam mat do: ") (setq ss (ssget '((0 . "TEXT,MTEXT,INSERT,POINT")))) (if ss (progn (setq grid-list '() i 0 count-del 0) (repeat (sslength ss) (setq ent (ssname ss i)) (setq p (cdr (assoc 10 (entget ent)))) ;; Lay toa do diem chen/vi tri point ;; 3. Tinh toan o luoi (Grid Cell) (setq c-x (fix (/ (car p) dist))) (setq c-y (fix (/ (cadr p) dist))) (setq key (strcat (itoa c-x) "_" (itoa c-y))) ;; 4. Kiem tra va xu ly (if (member key grid-list) (progn (entdel ent) ;; Xoa neu o nay da co doi tuong duoc giu (setq count-del (1+ count-del)) ) (setq grid-list (cons key grid-list)) ;; Danh dau o da co doi tuong ) (setq i (1+ i)) ) (princ (strcat "\nKet qua: Da xoa " (itoa count-del) " doi tuong du thua.")) ) (princ "\nKhong tim thay doi tuong phu hop (Text, Block, Point).") ) (princ "\nLenh dung: GMD - Giam Mat Do Text - lisp.vn") (princ "\nfrom lisp.vn") (princ) ) (princ "\nLenh dung: GMD - Giam Mat Do Text - lisp.vn") (princ "\nfrom lisp.vn") (princ)
Tác giả: AJS
Link tải (MediaFire)
---------------------------------------------------------------------------------------------
Mọi thông tin xin liên hệ Fanpage AutoLISP Thật là đơn giản!
Cảm ơn bạn đã theo dõi!

Không có nhận xét nào:
Đăng nhận xét