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

[Yêu cầu] Lisp chèn thêm ký hiêu sau tên nhiều block

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

Gần đây mình co nhiều bản vẽ cần nhiều người vẽ chung,khi tạo block thì bị trùng tên.Nên khi copi block cua người khác vào bản vẽ lắp tổng,thì block bị nhảy chổ khác(làm không thể kiểm tra đươc vị trí lăp).Bản vẽ thì đên mấy trăm block.Dùng lệnh Xref thì nó tự động sinh ra layer mới(cài này thì khách hàng không chịu).Dùng lệnh rename thì cực quá(hiện tại vẫn đang dùng cách này :( huhu...).Mình muốn có 1 lisp chèn thêm ký hiệu sau tên tất cả các block trong bản vẽ để dễ dàng chèn block vào ma không bị nhảy block.

VD: Các block cua mình la 11-1 ;12-1 ; 13-1,muốn chèn thêm chử "A" sau tên các block này 1 cách tự động thành 11-1A ; 12-1A ; 13-1A....(1 lệnh có thể xử lý toàn bộ block trong bản vẽ).Làm ơn viết dùm mình.Xin cảm ơn nhiều 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

Bạn search chuỗi Add prefix suffix block name lisp trên GG đảm bảo có một kho để chọn

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ám ơn bạn nhiều lắm,biết vậy mình sớm hỏi trên diễn đàn,sáng hwa mình mới làm xong dự án đó.cái này để dùng lần sau vậy hehe...thx 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

http://www.cadviet.com/upfiles/3/116801_block_rename.lsphttp://www.cadviet.com/upfiles/3/116801_block_rename_1.lspMình copi lisp trên mạng.nó chỉ rename các block có ký tự giống nhau,nếu tên block dài ngắn khác nhau thì không được.Bạn có thể viết lại để có thể làm cho tất cả các tên không.

VD Block tên là: 13-1 va Truc cac dang ,Sau khi dùng lisp chuyển thành 13-1A va Truc cac dangA

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

Sửa nhanh cho bạn đây.

;;  By CAB 12.30.08
(defun c:BlockRename (/ prefix siffix n usercmd)
;; ignore xref, xref dependent and anonymous
 (defun GetBlkNames (/ data result)
(while (setq data (tblnext "block" (null data)))
 	(if (zerop (logand 21 (cdr (assoc 70 data))))
   	(setq result (cons (cdr (assoc 2 data)) result))
 	)
)
(acad_strlsort result)
 )

 (if (and
   	(setq prefix (getstring t "\nEnter Block prefix: "))
   	(setq suffix (getstring t "\nEnter Block suffix: "))
 	)
(progn
 	(setq usercmd (getvar "CMDECHO"))
 	(setvar "CMDECHO" 0)
 	(command "_undo" "_begin")
 	;;  Walk through the collection
 	(foreach n (GetBlkNames)
     	(if (vl-catch-all-error-p
           	(vl-catch-all-apply
             	'(lambda ()
                	(command "_.-rename" "_b" n (strcat prefix n suffix))
                	(princ (strcat "\n" n " --> " prefix n suffix))
              	)
           	)
         	)
       	(prompt (strcat "\nError for block name: " prefix n suffix))
     	)
 	)
 	(command "_undo" "_end")
 	(setvar "CMDECHO" usercmd)
)
 )
 (princ)
)

  • 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

×