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

NHỜ CÁC BÁC CHỈNH SỬA LISP

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

Chào các bác, em có 1 lisp download ở trên mạng. Đó là lisp ghi chú thép vào text có sẵn, lệnh là như thế này:

- Chọn khoảng rải thép

- Khoảng cách thanh thép

- Đường kính thép

- Chọn ghi giá trị (text hoặc ATT)

Các bác giúp em thêm 1 bước nữa là:

- Chọn khoảng rải thép

- Khoảng cách thanh thép

- Đường kính thép

- Chiều dài thanh thép (làm tròn lên 10)

- Chọn ghi giá trị (text hoặc ATT)

Nó ra xuất ra text hoặc ATT với cú pháp: 38∅10a200-5850

File em đã up lên, cám ơn các bác.

SL-tinh so luong thep dai ghi ra text.lsp

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
(defun c:SL ( / luu lay a1 a hbv c *num num demo str ent)
(setq luu (getvar "osmode"))
(setq lay (getvar "clayer"))
(setq a1 (getdist "\nCh\U+1ECDn kho\U+1EA3ng r\U+1EA3i th\U+00E9p: ")) 
(or (and a (or (= (type a) 'int) (= (type a) 'real))) (setq a 200))
(setq a (cond ((getdist (strcat "\nKho\U+1EA3ng c\U+00E1ch thanh th\U+00E9p <" (rtos a 2 2) ">:"))) (a)))
(or (and hbv (or (= (type hbv) 'int) (= (type hbv) 'real))) (setq hbv 10))
(setq hbv (cond ((getreal (strcat "\nduong kinh thep <" (rtos hbv 2 2) ">: "))) (hbv)))
(setq c (+ (/ a1 a) 1))
  (or *num (setq *num 500))
  (or (setq num (getreal (strcat "\n Chieu dai thanh thep <" (rtos *num 2 0) ">:" )))
  (setq num *num))
  (setq *num num)
  (setq demo (/ *num 10))
  (setq str (strcat (rtos demo 2 0) "0"))
  (while (setq ent (nentsel "\nCh\U+1ECDn ghi gi\U+00E1 tr\U+1ECB (Text ho\U+0103c ATT):" ))
(and (wcmatch (cdr (assoc 0 (entget (car ent)))) "ATTRIB,*TEXT")
(vla-put-textstring (vlax-ename->vla-object  (car ent)) (strcat (rtos c 2 0) "%%c" (rtos hbv 2 0) "a" (rtos a 2 0) "-" str ) )))
(SETVAR "clayer" lay)
(setvar "osmode" luu)
(princ)
)

Bạn xem đã đạt chưa? 

  • Like 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
5 giờ trước, Doan Nguyen Van đã nói:

(defun c:SL ( / luu lay a1 a hbv c *num num demo str ent)
(setq luu (getvar "osmode"))
(setq lay (getvar "clayer"))
(setq a1 (getdist "\nCh\U+1ECDn kho\U+1EA3ng r\U+1EA3i th\U+00E9p: ")) 
(or (and a (or (= (type a) 'int) (= (type a) 'real))) (setq a 200))
(setq a (cond ((getdist (strcat "\nKho\U+1EA3ng c\U+00E1ch thanh th\U+00E9p <" (rtos a 2 2) ">:"))) (a)))
(or (and hbv (or (= (type hbv) 'int) (= (type hbv) 'real))) (setq hbv 10))
(setq hbv (cond ((getreal (strcat "\nduong kinh thep <" (rtos hbv 2 2) ">: "))) (hbv)))
(setq c (+ (/ a1 a) 1))
  (or *num (setq *num 500))
  (or (setq num (getreal (strcat "\n Chieu dai thanh thep <" (rtos *num 2 0) ">:" )))
  (setq num *num))
  (setq *num num)
  (setq demo (/ *num 10))
  (setq str (strcat (rtos demo 2 0) "0"))
  (while (setq ent (nentsel "\nCh\U+1ECDn ghi gi\U+00E1 tr\U+1ECB (Text ho\U+0103c ATT):" ))
(and (wcmatch (cdr (assoc 0 (entget (car ent)))) "ATTRIB,*TEXT")
(vla-put-textstring (vlax-ename->vla-object  (car ent)) (strcat (rtos c 2 0) "%%c" (rtos hbv 2 0) "a" (rtos a 2 0) "-" str ) )))
(SETVAR "clayer" lay)
(setvar "osmode" luu)
(princ)
)

Bạn xem đã đạt chưa? 

Hi bạn, ở đoạn - Chiều dài thanh thép (làm tròn lên 10) bạn có thể giúp mình sửa thành 2 lựa chọn:

1. Nhập trực tiếp chiều dài

2. Chọn poliline có sẵn (làm tròn lên 10)

Mong bạn giúp mình.

  • Vote giảm 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
13 giờ trước, vanhuyou đã nói:

Hi bạn, ở đoạn - Chiều dài thanh thép (làm tròn lên 10) bạn có thể giúp mình sửa thành 2 lựa chọn:

1. Nhập trực tiếp chiều dài

2. Chọn poliline có sẵn (làm tròn lên 10)

Mong bạn giúp mình.

(vl-load-com)
(defun c:SL ( / luu lay a1 c demo str ent sel)
(setq luu (getvar "osmode"))
(setq lay (getvar "clayer"))
(setq a1 (getdist "\nCh\U+1ECDn kho\U+1EA3ng r\U+1EA3i th\U+00E9p: ")) 
(or (and a (or (= (type a) 'int) (= (type a) 'real))) (setq a 200))
(setq a (cond ((getdist (strcat "\nKho\U+1EA3ng c\U+00E1ch thanh th\U+00E9p <" (rtos a 2 2) ">:"))) (a)))
(or (and hbv (or (= (type hbv) 'int) (= (type hbv) 'real))) (setq hbv 10))
(setq hbv (cond ((getreal (strcat "\nduong kinh thep <" (rtos hbv 2 2) ">: "))) (hbv)))
(setq c (+ (/ a1 a) 1))
  (if (setq sel (car (entsel "\nPick Polyline hoac Pick khoang trang de nhap chieu dai")))
    (setq *num (vla-get-length (vlax-ename->vla-object sel))) (progn 
  (or *num (setq *num 500))
  (or (setq num (getreal (strcat "\n Chieu dai thanh thep <" (rtos *num 2 0) ">:" )))
  (setq num *num))
  (setq *num num)))
  (alert (rtos *num 2 0))
  (setq demo (/ *num 10))
  (setq str (strcat (rtos demo 2 0) "0"))
  (while (setq ent (nentsel "\nCh\U+1ECDn ghi gi\U+00E1 tr\U+1ECB (Text ho\U+0103c ATT):" ))
(and (wcmatch (cdr (assoc 0 (entget (car ent)))) "ATTRIB,*TEXT")
(vla-put-textstring (vlax-ename->vla-object  (car ent)) (strcat (rtos c 2 0) "%%c" (rtos hbv 2 0) "a" (rtos a 2 0) "-" str ) )))
(SETVAR "clayer" lay)
(setvar "osmode" luu)
(princ)
)

Pick Polyline hoặc nhập chiều dài nhé bạn

  • Like 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
Vào lúc 23/2/2019 tại 08:56, Doan Nguyen Van đã nói:

(vl-load-com)
(defun c:SL ( / luu lay a1 c demo str ent sel)
(setq luu (getvar "osmode"))
(setq lay (getvar "clayer"))
(setq a1 (getdist "\nCh\U+1ECDn kho\U+1EA3ng r\U+1EA3i th\U+00E9p: ")) 
(or (and a (or (= (type a) 'int) (= (type a) 'real))) (setq a 200))
(setq a (cond ((getdist (strcat "\nKho\U+1EA3ng c\U+00E1ch thanh th\U+00E9p <" (rtos a 2 2) ">:"))) (a)))
(or (and hbv (or (= (type hbv) 'int) (= (type hbv) 'real))) (setq hbv 10))
(setq hbv (cond ((getreal (strcat "\nduong kinh thep <" (rtos hbv 2 2) ">: "))) (hbv)))
(setq c (+ (/ a1 a) 1))
  (if (setq sel (car (entsel "\nPick Polyline hoac Pick khoang trang de nhap chieu dai")))
    (setq *num (vla-get-length (vlax-ename->vla-object sel))) (progn 
  (or *num (setq *num 500))
  (or (setq num (getreal (strcat "\n Chieu dai thanh thep <" (rtos *num 2 0) ">:" )))
  (setq num *num))
  (setq *num num)))
  (alert (rtos *num 2 0))
  (setq demo (/ *num 10))
  (setq str (strcat (rtos demo 2 0) "0"))
  (while (setq ent (nentsel "\nCh\U+1ECDn ghi gi\U+00E1 tr\U+1ECB (Text ho\U+0103c ATT):" ))
(and (wcmatch (cdr (assoc 0 (entget (car ent)))) "ATTRIB,*TEXT")
(vla-put-textstring (vlax-ename->vla-object  (car ent)) (strcat (rtos c 2 0) "%%c" (rtos hbv 2 0) "a" (rtos a 2 0) "-" str ) )))
(SETVAR "clayer" lay)
(setvar "osmode" luu)
(princ)
)

Pick Polyline hoặc nhập chiều dài nhé bạn

Cám ơn bạ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

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  

×