Đến nội dung


Hình ảnh
- - - - -

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


  • Please log in to reply
5 replies to this topic

#1 marksman18

marksman18

    Chưa sử dụng CAD

  • Members
  • Pip
  • 4 Bài viết
Điểm đánh giá: 0 (bình thường)

Đã gửi 04 February 2013 - 11:37 PM

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.
  • 0

#2 ketxu

ketxu

    Copier - Paster - Editor

  • Moderator
  • PipPipPipPipPipPipPip
  • 5684 Bài viết
Điểm đánh giá: 2606 (tuyệt vời)

Đã gửi 05 February 2013 - 12:19 AM

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

Thành viên nhóm CadMagic.
Mời bạn ghé thăm facebook nhóm - Page viết lisp theo yêu cầu  :
CAD MAGIC


#3 marksman18

marksman18

    Chưa sử dụng CAD

  • Members
  • Pip
  • 4 Bài viết
Điểm đánh giá: 0 (bình thường)

Đã gửi 05 February 2013 - 06:15 AM

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.
  • 0

#4 marksman18

marksman18

    Chưa sử dụng CAD

  • Members
  • Pip
  • 4 Bài viết
Điểm đánh giá: 0 (bình thường)

Đã gửi 05 February 2013 - 06:24 AM

http://www.cadviet.c...lock_rename.lsphttp://www.cadviet.c...ck_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
  • 0

#5 Chiron

Chiron

    biết dimradius

  • Members
  • PipPipPipPipPip
  • 310 Bài viết
Điểm đánh giá: 90 (tàm tạm)

Đã gửi 05 February 2013 - 08:30 AM

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)
)

  • 1

#6 marksman18

marksman18

    Chưa sử dụng CAD

  • Members
  • Pip
  • 4 Bài viết
Điểm đánh giá: 0 (bình thường)

Đã gửi 05 February 2013 - 07:16 PM

cám ơn nhiều lắm.....
  • 0