Đến nội dung


Hình ảnh
- - - - -

Ký hiệu ặt cắt


  • Please log in to reply
3 replies to this topic

#1 ducluongx3

ducluongx3

    Chưa sử dụng CAD

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

Đã gửi 06 June 2009 - 04:48 PM

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

#2 q288

q288

    biết lệnh fillet

  • Members
  • PipPipPipPip
  • 209 Bài viết
Điểm đánh giá: 164 (tàm tạm)

Đã gửi 06 June 2009 - 07:47 PM

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

  • 1

#3 q288

q288

    biết lệnh fillet

  • Members
  • PipPipPipPip
  • 209 Bài viết
Điểm đánh giá: 164 (tàm tạm)

Đã gửi 07 June 2009 - 09:42 AM

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

#4 thiep

thiep

    biết dimbaseline

  • Members
  • PipPipPipPipPip
  • 369 Bài viết
Điểm đánh giá: 260 (khá)

Đã gửi 08 June 2009 - 01:43 PM

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.c...es/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
  • 2