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

[Yêu Cầu]Thay đổi Text trong Block (Text không phải thuộc tính)

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

Hi anh em,

Mình có một Block có chứa một chuỗi Text (Text này không phải là Attribute nhé). Vậy có lisp nào có thể thay đổi nội dụng của Text này hay ko nhỉ? (Cách làm tay thì mình đã biết, nhưng do số lượng bản vẽ chứa Block n ày n hiều nên mình muốn tự động công việc này)

Nếu được xin ội người giúp đỡ nhé.

Thanks so much!

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 muốn thay hàng loạt thì bạn gởi bản vẽ lên, nêu rõ yêu cầu thay A bằng B như thế nào nhé. Lisp làm được chuyện này.

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 muốn thay hàng loạt thì bạn gởi bản vẽ lên, nêu rõ yêu cầu thay A bằng B như thế nào nhé. Lisp làm được chuyện này.

http://www.cadviet.com/upfiles/3/37575_needyourhelp.dwg

Đây Mr Hà ơi, bên Layout mình có khung tên, là một Block mình muốn thay đổi chữ "CONTRACTOR" thành chữ "SUB-CONTRACTOR".Phiền Mr Hà và mọi người quá mục và giúp đỡ mình nhé

Thanks so much!

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

Hi anh em,

Mình có một Block có chứa một chuỗi Text (Text này không phải là Attribute nhé). Vậy có lisp nào có thể thay đổi nội dụng của Text này hay ko nhỉ? (Cách làm tay thì mình đã biết, nhưng do số lượng bản vẽ chứa Block n ày n hiều nên mình muốn tự động công việc này)

Nếu được xin ội người giúp đỡ nhé.

Thanks so much!

Lisp EditText sử dụng cho :

- Text và MText

- Text trong Dim

- Text trong block (thay đổi tất cả Text của block có trong bản vẽ)

- Text trong block attribute

(defun c:EditText ( / doc e obj str)
  ;; By : Gia_Bach 2014  
  (vl-load-com) 
  (setq doc (vla-get-ActiveDocument (vlax-get-acad-object)))
  (while (setq e (car (nentsel)))
    (if (and
	  (wcmatch (vla-get-ObjectName (setq obj(vlax-ename->vla-object e))) "*Text,*Attribute")
	  (setq str (getstring T (strcat "Input new value <" (vla-get-TextString obj) "> : ")))
	  (/= str ""))
      (progn
	(vla-StartUndoMark doc)
	(vla-put-TextString obj str)
	(vla-regen (vla-get-ActiveDocument (vlax-get-acad-object)) acAllViewports)
	(vla-EndUndoMark doc)  )))
  (princ))

 

(defun c:EditText ( / doc e obj str)
  ;; By : Gia_Bach 2014  
  (vl-load-com) 
  (setq doc (vla-get-ActiveDocument (vlax-get-acad-object)))
  (while (setq e (car (nentsel)))
    (if (and
 (wcmatch (vla-get-ObjectName (setq obj(vlax-ename->vla-object e))) "*Text,*Attribute")
 (setq str (getstring T (strcat "Input new value <" (vla-get-TextString obj) "> : ")))
 (/= str ""))
      (progn
(vla-StartUndoMark doc)
(vla-put-TextString obj str)
(vla-regen (vla-get-ActiveDocument (vlax-get-acad-object)) acAllViewports)
(vla-EndUndoMark doc)  )))
 
(defun c:EditText ( / doc e obj str)
  ;; By : Gia_Bach 2014  
  (vl-load-com) 
  (setq doc (vla-get-ActiveDocument (vlax-get-acad-object)))
  (while (setq e (car (nentsel)))
    (if (and
 (wcmatch (vla-get-ObjectName (setq obj(vlax-ename->vla-object e))) "*Text,*Attribute")
 (setq str (getstring T (strcat "Input new value <" (vla-get-TextString obj) "> : ")))
 (/= str ""))
      (progn
(vla-StartUndoMark doc)
(vla-put-TextString obj str)
(vla-regen (vla-get-ActiveDocument (vlax-get-acad-object)) acAllViewports)
(vla-EndUndoMark doc)  )))
 
  • Vote tăng 3

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

 

Lisp EditText sử dụng cho :

- Text và MText

- Text trong Dim

- Text trong block (thay đổi tất cả Text của block có trong bản vẽ)

- Text trong block attribute

(defun c:EditText ( / doc e obj str)
  ;; By : Gia_Bach 2014  
  (vl-load-com) 
  (setq doc (vla-get-ActiveDocument (vlax-get-acad-object)))
  (while (setq e (car (nentsel)))
    (if (and
	  (wcmatch (vla-get-ObjectName (setq obj(vlax-ename->vla-object e))) "*Text,*Attribute")
	  (setq str (getstring T (strcat "Input new value <" (vla-get-TextString obj) "> : ")))
	  (/= str ""))
      (progn
	(vla-StartUndoMark doc)
	(vla-put-TextString obj str)
	(vla-regen (vla-get-ActiveDocument (vlax-get-acad-object)) acAllViewports)
	(vla-EndUndoMark doc)  )))
  (princ))

 

(defun c:EditText ( / doc e obj str)
  ;; By : Gia_Bach 2014  
  (vl-load-com) 
  (setq doc (vla-get-ActiveDocument (vlax-get-acad-object)))
  (while (setq e (car (nentsel)))
    (if (and
 (wcmatch (vla-get-ObjectName (setq obj(vlax-ename->vla-object e))) "*Text,*Attribute")
 (setq str (getstring T (strcat "Input new value <" (vla-get-TextString obj) "> : ")))
 (/= str ""))
      (progn
(vla-StartUndoMark doc)
(vla-put-TextString obj str)
(vla-regen (vla-get-ActiveDocument (vlax-get-acad-object)) acAllViewports)
(vla-EndUndoMark doc)  )))
 
(defun c:EditText ( / doc e obj str)
  ;; By : Gia_Bach 2014  
  (vl-load-com) 
  (setq doc (vla-get-ActiveDocument (vlax-get-acad-object)))
  (while (setq e (car (nentsel)))
    (if (and
 (wcmatch (vla-get-ObjectName (setq obj(vlax-ename->vla-object e))) "*Text,*Attribute")
 (setq str (getstring T (strcat "Input new value <" (vla-get-TextString obj) "> : ")))
 (/= str ""))
      (progn
(vla-StartUndoMark doc)
(vla-put-TextString obj str)
(vla-regen (vla-get-ActiveDocument (vlax-get-acad-object)) acAllViewports)
(vla-EndUndoMark doc)  )))

Thanks Gia_Bach nhiều nhé

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  

×