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

Ký hiệu ặt cắt

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

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

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

×