Chuyển đến nội dung
Diễn đàn CADViet
NGUYENVANHIEUGTVT

Nhờ mọi người phát triển lisp !

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

Mình tham khảo lòng vòng trên diễn đàn mấy ngày và chỉnh sửa được cái lisp tính tổng Dimension này. Bây giờ mình muốn nhờ mọi người viết thêm cho lisp này chút nữa là kết quả sau khi quét được thì sẽ ghi vào text có sẵn và ghi vào sau chữ "L=" như trên hình (giữ nguyên nội dung text phía trước) Cảm ơn Mn quan tâm và giúp đỡ ạ!

Quote

(defun c:abc(/ ss n i S duyet ent sst nt j St duyett entt Skq)
(prompt "\n Chon cac Dim cong:")
(setq ss (ssget '((0 . "DIMENSION"))))

(setq n (sslength ss) i 0 S 0 duyet 0)

(while (< i n)
(setq ent (entget(ssname ss i)))

(if (= (cdr(assoc 1 ent)) "")
(setq duyet (cdr(assoc 42 ent)))
(setq duyet (atof(cdr(assoc 1 ent))))
)
(setq S (+ S duyet))
(setq i (1+ i))
)
(Luachon S)
(princ)
)
(defun Luachon(tbinh)
 (setq elst (entget (car (entsel "\n Thay cho so: "))))
 (setq elst (subst (cons 1 (rtos tbinh 2 0)) (assoc 1 elst) elst))
(if (assoc 62 elst)
(setq elst (subst (cons 62 80) (assoc 62 elst) elst))
(setq elst (append elst (list (cons 62 80))))
)
(entmod elst)
(princ)
)
 

 

image.png.5119981df43062411a6ba50e155a7c6c.png

  • 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
(defun c:abc(/ ss n i S duyet ent sst nt j St duyett entt Skq)
(prompt "\n Chon cac Dim cong:")
(setq ss (ssget '((0 . "DIMENSION"))))

(setq n (sslength ss) i 0 S 0 duyet 0)

(while (< i n)
(setq ent (entget(ssname ss i)))

(if (= (cdr(assoc 1 ent)) "")
(setq duyet (cdr(assoc 42 ent)))
(setq duyet (atof(cdr(assoc 1 ent))))
)
(setq S (+ S duyet))
(setq i (1+ i))
)
(Luachon S)
(princ)
)
(defun Luachon(tbinh)
 (setq elst (entget (car (entsel "\n Thay cho so: "))))
 (setq ndc (cdr (assoc 1 elst)))
 (setq elst (subst (cons 1 (strcat ndc ", L=" (rtos tbinh 2 0))) (assoc 1 elst) elst))
(if (assoc 62 elst)
(setq elst (subst (cons 62 80) (assoc 62 elst) elst))
(setq elst (append elst (list (cons 62 80))))
)
(entmod elst)
(princ)
)

Chỉ sửa chút chổ xuất kết quả thôi nghen. các phần khác mình ko chịu trách nhiệm nhé.

  • Like 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
7 phút trước, duy782006 đã nói:

(defun c:abc(/ ss n i S duyet ent sst nt j St duyett entt Skq)
(prompt "\n Chon cac Dim cong:")
(setq ss (ssget '((0 . "DIMENSION"))))

(setq n (sslength ss) i 0 S 0 duyet 0)

(while (< i n)
(setq ent (entget(ssname ss i)))

(if (= (cdr(assoc 1 ent)) "")
(setq duyet (cdr(assoc 42 ent)))
(setq duyet (atof(cdr(assoc 1 ent))))
)
(setq S (+ S duyet))
(setq i (1+ i))
)
(Luachon S)
(princ)
)
(defun Luachon(tbinh)
 (setq elst (entget (car (entsel "\n Thay cho so: "))))
 (setq ndc (cdr (assoc 1 elst)))
 (setq elst (subst (cons 1 (strcat ndc ", L=" (rtos tbinh 2 0))) (assoc 1 elst) elst))
(if (assoc 62 elst)
(setq elst (subst (cons 62 80) (assoc 62 elst) elst))
(setq elst (append elst (list (cons 62 80))))
)
(entmod elst)
(princ)
)

Chỉ sửa chút chổ xuất kết quả thôi nghen. các phần khác mình ko chịu trách nhiệm nhé.

Em cảm ơn Bác nhé, có cách nào lúc mình xuất kết quả thì kết quả sẽ thay thế giá trị sau chữ "L=".
VD: ban đầu text là "L=123" sau khi dùng lệnh thì kết quả mới sẽ thay thế thành "L=456".

 

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:abc(/ ss n i S duyet ent sst nt j St duyett entt Skq)
(prompt "\n Chon cac Dim cong:")
(setq ss (ssget '((0 . "DIMENSION"))))

(setq n (sslength ss) i 0 S 0 duyet 0)

(while (< i n)
(setq ent (entget(ssname ss i)))

(if (= (cdr(assoc 1 ent)) "")
(setq duyet (cdr(assoc 42 ent)))
(setq duyet (atof(cdr(assoc 1 ent))))
)
(setq S (+ S duyet))
(setq i (1+ i))
)
(Luachon S)
(princ)
)
(defun Luachon(tbinh)
 (setq elst (entget (car (entsel "\n Thay cho so: "))))
 (setq ndc (cdr (assoc 1 elst)))
 (setq ndc (duy:xd_chuoitruoc<kytu ndc "="))
 (setq elst (subst (cons 1 (strcat ndc "=" (rtos tbinh 2 0))) (assoc 1 elst) elst))
(if (assoc 62 elst)
(setq elst (subst (cons 62 80) (assoc 62 elst) elst))
(setq elst (append elst (list (cons 62 80))))
)
(entmod elst)
(princ)
)

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;Xac dinh vi tri ky tu kytu trong chuoi tinh tai vi tri xuat hien cuoi cung
;;;Cu phap su dung (duy:xd_vitri<kytu chuoi kytu)
;;;Gia tri tra ve la vi tri cua kytu trong chuoi 
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(Defun duy:xd_vitri<kytu (chuoi kytu / chuoi kytu a b l v)  
(setq b 1)
(setq l (fix (strlen chuoi)))
(repeat l
(setq a (substr chuoi b 1))
(cond
((= a kytu) (setq v b))
)
(setq b (+ b 1))
)
v)

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;Xac dinh chuoi nam phia truoc kytu
;;;Cu phap su dung (duy:xd_chuoitruoc<kytu chuoi kytu)
;;;Gia tri tra ve la chuoi ckq
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(Defun duy:xd_chuoitruoc<kytu (chuoi kytu / chuoi kytu ckq)  
(setq ckqt (substr chuoi 1 (- (duy:xd_vitri<kytu chuoi kytu) 1)))
ckqt)


Đây.

  • 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

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

×