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

Phân biệt text

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

Khi dùng lisp cộng text trên diễn đàn, e cộng đc tất cả các text có trên bản vẽ, nhưng giờ e muốn cộng giá trị + và - riêng, làm thế nào đây mọi người, mong đc giúp đỡ.

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
Khi dùng lisp cộng text trên diễn đàn, e cộng đc tất cả các text có trên bản vẽ, nhưng giờ e muốn cộng giá trị + và - riêng, làm thế nào đây mọi người, mong đc giúp đỡ.

Bạn không up file lên nên tôi không thật sự hiểu ý bạn. Upfile lên đi 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
Bạn không up file lên nên tôi không thật sự hiểu ý bạn. Upfile lên đi bạn.

Thế này nhá. Trên diễn đàn có 1 lisp cộng text trên cad, khi mình chọn tất cả cá text muốn cộng lại và chọn điểm đặt kết quả là đc tổng các text đó, nhưng bây giờ e muốn cộng riêng text dương và text âm, tức là khi mình chọn text, lisp sẽ phân biệt đâu là text âm, dương cho mình và kết quả in ra trên mà hình cad là 2 giá trị, giá trị 1 là tổng tất cả số âm, giá trị 2 là tổng tất cả số đương, mong các bác giúp đỡ.

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
Thế này nhá. Trên diễn đàn có 1 lisp cộng text trên cad, khi mình chọn tất cả cá text muốn cộng lại và chọn điểm đặt kết quả là đc tổng các text đó, nhưng bây giờ e muốn cộng riêng text dương và text âm, tức là khi mình chọn text, lisp sẽ phân biệt đâu là text âm, dương cho mình và kết quả in ra trên mà hình cad là 2 giá trị, giá trị 1 là tổng tất cả số âm, giá trị 2 là tổng tất cả số đương, mong các bác giúp đỡ.

Bạn sử dụng Lisp này nhé :

(defun c:Loctext(/ ss tp i s1 s2 ent content)
(setq oldim (getvar "Dimzin"))
(setvar "Dimzin" 0)
(setq ss (ssget '((0 . "TEXT"))))
(setq tp (getint "So chu so thap phan :"))
(setq i 0 s1 0 s2 0)

(while ((setq ent (ssname ss i))
(if (and (setq content (distof(cdr(assoc 1 (entget ent))))) ((setq S1 (+ S1 content))
)

(if (and (setq content (distof(cdr(assoc 1 (entget ent))))) (>= content 0))
(setq S2 (+ S2 content))
)

(setq i (1+ i))
)

(setq S (+ S1 S2))
(alert (strcat "\n Tong cac so duong la : " (rtos S2 2 tp)
"\n Tong cac so am la : " (rtos S1 2 tp)
"\n Tong cac so la : " (rtos S 2 tp)
)
)
(setvar "Dimzin" oldim)
(princ)
)

  • Vote tăng 3

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 sử dụng Lisp này nhé :

(defun c:Loctext(/ ss tp i s1 s2 ent content)
(setq oldim (getvar "Dimzin"))
(setvar "Dimzin" 0)
(setq ss (ssget '((0 . "TEXT"))))
(setq tp (getint "So chu so thap phan :"))
(setq i 0 s1 0 s2 0)

(while (< i (sslength ss))
(setq ent (ssname ss i))
(if (and (setq content (distof(cdr(assoc 1 (entget ent))))) (< content 0))
(setq S1 (+ S1 content))
)

(if (and (setq content (distof(cdr(assoc 1 (entget ent))))) (>= content 0))
(setq S2 (+ S2 content))
)

(setq i (1+ i))
)

(setq S (+ S1 S2))
(alert (strcat "\n Tong cac so duong la : " (rtos S2 2 tp)
"\n Tong cac so am la : " (rtos S1 2 tp)
"\n Tong cac so la : " (rtos S 2 tp)
)
)
(setvar "Dimzin" oldim)
(princ)
)

Rất cám ơn bạn, ngon rùi :s_dead:

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  

×