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  
ducluongx3

Ký hiệu ặt cắt

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

ducluongx3    0

Ai có cái lisp như sau:

Copy text "Mặt cắt 1-1" tự động chuyển thành "Mặt cắt 2-2" rồi thành "Mặt cắt 3-3" ....

Copy text "Mặt cắt A-A" tự động chuyển thành "Mặt cắt B-B" rồi thành "Mặt cắt C-C" ....

Gần như copy tăng nhưng ở đây là 1-1 thành 2-2, 3-3...

Ducluongx3@gmail.com

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
q288    164
Ai có cái lisp như sau:

Copy text "Mặt cắt 1-1" tự động chuyển thành "Mặt cắt 2-2" rồi thành "Mặt cắt 3-3" ....

Copy text "Mặt cắt A-A" tự động chuyển thành "Mặt cắt B-B" rồi thành "Mặt cắt C-C" ....

Gần như copy tăng nhưng ở đây là 1-1 thành 2-2, 3-3...

Ducluongx3@gmail.com

 

Bạn thử dùng cái này xem.

(defun c:cdt()
 (defun dnt(tx)
   (vl-list->string (reverse (vl-string->list tx)))
 )
 (vl-load-com)
 (setq ent  (car (entsel "\nChon text:"))
       eget (entget ent)
tt1  (cdr (assoc 1 eget))
ttd  (cdr (assoc 10 eget))
dn   (dnt tt1)
tt10 (dnt (substr dn (+ 2 (vl-string-search " " dn))))
tt11 (dnt (substr dn 1 (vl-string-search " " dn)))
sc   (substr tt11 1 (vl-string-search "-" tt11)))
 (if (> (setq sc1 (atoi sc)) 0)
   (setq tt12 (strcat tt10 " " (itoa (1+ sc1)) "-" (itoa (1+ sc1))))
   (setq tt12 (strcat tt10 " " (chr (1+ (ascii sc))) "-" (chr (1+ (ascii sc))))))
 (command "copy" ent "" ttd pause)  
 (vla-put-TextString (vlax-ename->vla-object (entlast)) tt12)  
)

  • 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
q288    164

Dạo này CadViet có đổi mới nhỉ , tự động tạo ra file .lsp từ codebox và dặt tên file trùng với tên lệnh luôn. Như vậy tiện cho việc copy

và download . Rất hoan nghê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
thiep    263
Bạn thử dùng cái này xem.

(defun c:cdt()
 (defun dnt(tx)
   (vl-list->string (reverse (vl-string->list tx)))
 )
 (vl-load-com)
 (setq ent  (car (entsel "\nChon text:"))
       eget (entget ent)
tt1  (cdr (assoc 1 eget))
ttd  (cdr (assoc 10 eget))
dn   (dnt tt1)
tt10 (dnt (substr dn (+ 2 (vl-string-search " " dn))))
tt11 (dnt (substr dn 1 (vl-string-search " " dn)))
sc   (substr tt11 1 (vl-string-search "-" tt11)))
 (if (> (setq sc1 (atoi sc)) 0)
   (setq tt12 (strcat tt10 " " (itoa (1+ sc1)) "-" (itoa (1+ sc1))))
   (setq tt12 (strcat tt10 " " (chr (1+ (ascii sc))) "-" (chr (1+ (ascii sc))))))
 (command "copy" ent "" ttd pause)  
 (vla-put-TextString (vlax-ename->vla-object (entlast)) tt12)  
)

Bạn G288 thân,

Lisp của bạn chỉ thật tuyệt vời khi dòng text bạn copy chỉ có 1 khoảng trống trước vị trí 1-1 hoặc A-A. Còn nếu nó là 1 - 1 hoặc A - A, thì Lisp của bạn hiểu sai ngay. Thiep có một giải pháp khác: Trên bản vẽ của cựu CT nước, chưa có dòng text "MAT CAT 1-1" nào cả. Cựu CT chỉ gọi lệnh, cho chiều cao text, cad sẽ hỏi tên mặt cắt là số hay chữ, trả lời xong chỉ cần Pick Pick mà thôi. Lisp như thế này đây:

http://www.cadviet.com/upfiles/ghichuMC.lsp

Gửi Ducluongx3, khi bạn post bài, nhớ kiểm tra chính tả trước khi post nhé. Khi dùng được lisp nhớ bấm THANK cho mọi người vui

  • Vote tăng 2

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  

×