Chuyển đến nội dung
Diễn đàn CADViet
  • Thông báo

    • Nguyen Hoanh

      CADViet đã hoàn tất nâng cấp   14/09/2017

      Chào các bạn, CADViet đã hoàn tất việc nâng cấp lên phiên bản mới. Tất cả các chức năng đã hoạt động theo kỳ vọng của ban quản trị. Nếu có vấn đề gì cần phản hồi, các bản post ở đây nhé: Trân trọng, Nguyễn Hoành.
Đăng nhập để thực hiện theo  
TokyoNhat

Cách sử a ký tự thép trong ATT block

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

Các anh cho e hỏi với . Em đang gia công hàng loạt bản vẽ , em có khoảng 300 block ATT , ghi ký hiệu thép , sau khi chuyển sang font của bọn em thì ký hiệu thép trong ATT bị thay đổi thành 1 loạt các dấu ' bọn em phải chuyển thành %%c , nhưng nếu cứ hiệu chỉnh từng block thì mất thời gian cả text nữa , em dùng lệnh find để thay ký tự nhưng máy báo ko tìm đc . Vậỵ các anh cho e hỏi có giải pháp nào thay 1 loạt ký tự cũ của m = ký tự mới trong text và ATT ko ạ ? Nếu có lisp dùng thì cho e xin .Cám ơn các anh nhiều ạ .

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

Các anh cho e hỏi với . Em đang gia công hàng loạt bản vẽ , em có khoảng 300 block ATT , ghi ký hiệu thép , sau khi chuyển sang font của bọn em thì ký hiệu thép trong ATT bị thay đổi thành 1 loạt các dấu ' bọn em phải chuyển thành %%c , nhưng nếu cứ hiệu chỉnh từng block thì mất thời gian cả text nữa , em dùng lệnh find để thay ký tự nhưng máy báo ko tìm đc . Vậỵ các anh cho e hỏi có giải pháp nào thay 1 loạt ký tự cũ của m = ký tự mới trong text và ATT ko ạ ? Nếu có lisp dùng thì cho e xin .Cám ơn các anh nhiều ạ .

Bạn up thử cái block ATT đó lên xem mặt mũi nó thế nào.

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ện tại e không để cái block đó trong máy ở nhà . Nó là ATT trong block động là chính xác hơn ạ . Vì khi e bedit nó các ATT là những ghi chú trong block động . em chỉ có thể chỉnh đc font của ghi chú thành font mới . Sau đó muốn chỉnh lại kí hiệu thép thì phải ed từng block . Nêu đc mai e sẽ gửi a cái block này ạ . Cám ơn a vì đã quan tâm tới câu hỏi của e .

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ện tại e không để cái block đó trong máy ở nhà . Nó là ATT trong block động là chính xác hơn ạ . Vì khi e bedit nó các ATT là những ghi chú trong block động . em chỉ có thể chỉnh đc font của ghi chú thành font mới . Sau đó muốn chỉnh lại kí hiệu thép thì phải ed từng block . Nêu đc mai e sẽ gửi a cái block này ạ . Cám ơn a vì đã quan tâm tới câu hỏi của e .

Bạn dùng tạm hàng ngoại nhập nhé :

(defun C:FAT (/ *error* adoc atts cnt layer locked newvalue oldvalue)
(grtext -1 "Free Lisp from CADVIET.com @ketxu")
(defun *error* (msg)
 (if (and msg (vl-position msg '("console break"  "Function cancelled" "quit / exit abort")))
    (princ (strcat "Error >>> " (princ msg)))
    (princ msg)
    )
  (vla-endundomark (vla-get-activedocument (vlax-get-acad-object))) 
)
 (setq adoc (vla-get-activedocument(vlax-get-acad-object))) 
 (vla-startundomark adoc) 
 (setq cnt 0)
 (setq old (getstring T "\nText c\U+1EA7n thay th\U+1EBF :")
	new (getstring T "\nText m\U+1EDBi :"))  

 (vlax-for layout  (vla-get-layouts adoc)
   (vlax-for obj  (vla-get-block layout) 
 (if (and (eq "AcDbBlockReference" (vla-get-objectname obj))
    (eq :vlax-true (vla-get-hasattributes obj)))
(progn
  (setq layer (vla-item (vla-get-layers adoc) (vla-get-layer obj)))
  (if (eq :vlax-true (vla-get-lock layer))
    (progn
      (setq locked (cons (vla-get-layer obj) locked))
      (vla-put-lock layer :vlax-false))   
    )
  (setq atts (vlax-invoke obj 'GetAttributes))
  (foreach att atts
    (setq oldvalue (vla-get-textstring att)) 
    (if (wcmatch oldvalue (strcat "*" old "*")) 
      (progn
 (setq cnt (1+ cnt))   
 (setq newvalue (vl-string-subst new old oldvalue))
 (vla-put-textstring att newvalue)
 (vla-update att)
 (princ (strcat "\n\t\t\t\t\>> Text : "
         (vl-princ-to-string oldvalue)
         " \U+0111\U+00E3 \U+0111\U+1ED5i th\U+00E0nh "
         (vl-princ-to-string newvalue)))
 )
      )
    )
  (vla-update obj)
  )
)
     )
   )

(if locked
 (foreach layer  locked
   (vla-put-lock
     (vla-item (vla-get-layers adoc) layer)
     :vlax-true))
 )
(setq locked nil)
(alert (strcat "\n\U+0110\U+00E3 thay \U+0111\U+1ED5i "
       (itoa cnt)
       " attributes trong t\U+1EA5t c\U+1EA3 c\U+00E1c Layouts"))
(*error* nil)
(princ)
 )
(prompt "\n\t\t\t\tThay \U+0111\U+1ED5i  ATTs. L\U+1EC7nh FAT")
(princ)
(vl-load-com)

  • 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

bạn dùng lệnh battman đi. Chỉnh sửa block att tiện lợi lắm đó.

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

Cho mình hỏi chút,nếu phá khối Bockl của att rồi,sau đó dùng lệnh gì để đưa att đấy về block cũ.Bạn nào có lisp không,giúp t với,t đang rất cần nó để chỉnh sửa bản vẽ.Mục đích mình muốn làm là chuyển hàng loạt các ATT đấy về Bock của nó ban đầu,sau đó chuyển toàn bộ Block về text,rồi chuyển toàn bộ text về Mtext để chỉnh điền ký hiệu và chỉnh sửa trong MText.Mình không biết chuyển att về text,bạn nào biết hướng dẫn mình cách chuyển với.Cám ơn mọi người trước 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  

×