Chuyển đến nội dung
Diễn đàn CADViet
Đăng nhập để thực hiện theo  
MrCGIS

Scale text block

Các bài được khuyến nghị

Vào lúc 13/4/2022 tại 15:03, 7o7 đã nói:

Tâm boundingbox với điểm chèn block Center cũng có kc chứ chưa hẳn đã trùng, do đó nếu có 2 bl N-Thua cách nhau nhỏ hơn kc đó thì kết quả không còn đúng.

Về lý thuyết thì đúng như vậy bạn, nhưng đây là bài toán thực tế và mình cũng đã nói ở trên "... ít gặp rắc rối hơn..."

Vào lúc 13/4/2022 tại 16:20, MrCGIS đã nói:

Em cảm ơn anh lisp sài rất tốt nếu quét chọn những vùng nhỏ ạ....Tks anh nhiều

Có lẽ Zoom lên để quét vùng lớn...

(defun c:tt  (/ blc cen ent llp mid obj ss1 ss2 urp)
  (if (setq ss1 (ssget '((0 . "INSERT") (2 . "N_THUA_*"))))
    (while (and (setq ent (ssname ss1 0)) (ssdel ent ss1))
      (vla-getboundingbox (setq obj (vlax-ename->vla-object ent)) 'llp 'urp)
      (vla-ZoomWindow (vlax-get-acad-object) llp urp)
      (setq llp (vlax-safearray->list llp)
            urp (vlax-safearray->list urp)
            mid (mapcar '(lambda (m n) (* (+ m n) 0.5)) llp urp)
            cen nil)
      (cond ((setq ss2 (ssget "C" llp urp '((0 . "INSERT") (2 . "CENTRD_1"))))
             (while (and (setq blc (ssname ss2 0)) (ssdel blc ss2))
               (setq cen (cons (cdr (assoc 10 (entget blc))) cen)))
             (setq cen (vl-sort cen '(lambda (x y) (< (distance mid x) (distance mid y)))))
             (vlax-invoke obj 'scaleentity (car cen) 0.01)))
      (vla-ZoomPrevious (vlax-get-acad-object))))
  (princ))

 

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Tạo một tài khoản hoặc đăng nhập để nhận xét

Bạn cần phải là một thành viên để lại một bình luận

Tạo tài khoản

Đăng ký một tài khoản mới trong cộng đồng của chúng tôi. Điều đó dễ mà.

Đăng ký tài khoản mới

Đăng nhập

Bạn có sẵn sàng để tạo một tài khoản ? Đăng nhập tại đây.

Đăng nhập ngay
Đăng nhập để thực hiện theo  

×