Chuyển đến nội dung
Diễn đàn CADViet
ryback

Chọn Tất Cả Các Text Trên Một Đường Thẳng!

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

chào các anh em trên diễn đàn, chả là giờ mình có một vấn đề về mấy cái text, mày mò mãi mà chưa xử lý được. Chả là mình có 2 dòng ,mỗi dòng gồm có nhiều text thẳng hàng nhau (trùng toạ độ X hoặc Y), nhưng 2 dòng này nó lại nằm đè lên nhau một chút, giờ mình muốn chọn toàn bộ text trên một dòng để move nó đi, thì có cách hay lisp nào thực hiện được không ạ. Mong anh em và các cao thủ giúp đỡ với!

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

Nếu bạn Move thì xài cái này xem.

(defun c:CTTH (/ L1 L2  PNT SSTEXT STT X)
  (vl-load-com)
  (setvar "CMDECHO" 0)
  (setq ssText (ssget (list (cons 0 "TEXT"))))
  (setq L1 (LM:ss->ent ssText))
  (setq
    Pnt	(TD:Text-Base (car (entsel "\nChon Text chuan lam mau: ")))
  )
  (if Pnt
    (setq L2 (vl-remove
	       nil
	       (mapcar '(lambda	(x)
			  (if (or (equal (car Pnt)
					 (car (TD:Text-Base x))
					 0.000000001
				  )
				  (equal (cadr Pnt)
					 (cadr (TD:Text-Base x))
					 0.000000001
				  )
			      )
			    x
			    nil
			  )
			)
		       L1
	       )
	     )
    )
  )
  (command "Move" (CV:List-to-ss L2) "" Pause Pause)
  (princ)
)




(defun TD:Text-Base (ent / MA71 MA72 X11)
  (setq Ma10 (cdr (assoc 10 (entget ent))))
  (setq Ma11 (cdr (assoc 11 (entget ent))))
  (setq X11 (car Ma11))
  (setq Ma71 (cdr (assoc 71 (entget ent))))
  (setq Ma72 (cdr (assoc 72 (entget ent))))
  (if (or (and (= Ma71 0) (= Ma72 0) (= X11 0))
	  (and (= Ma71 0) (= Ma72 3))
	  (and (= Ma71 0) (= Ma72 5))
      )
    Ma10
    Ma11
  )
)

(defun LM:ss->ent (ss / i l)
  (if ss
    (repeat (setq i (sslength ss))
      (setq l (cons (ssname ss (setq i (1- i))) l))
    )
  )
)

(defun CV:List-to-ss (lst / ss)
  (setq ss (ssadd))
  (foreach item	lst
    (or	(= (type item) 'Ename)
	(setq item (vlax-vla-object->ename item))
    )
    (setq ss (ssadd item ss))
  )
  ss
)
  • Vote tăng 1

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


×