autocad2012 0 Báo cáo bài đăng Đã đăng Tháng 11 17, 2012 Mới bị xóa nên làm lại cái topic mới ^^ Ví dụ em có 1 số như thế này: 90.58 Em muốn chỉnh hàng loạt những số tương tự như thế này thành: 90 (bỏ luôn cả dấu chấm) 90.0 90.00 Mình có thể chỉnh được số chữ số 0 phía sau dấu chấm hoặc có thể bỏ luôn. Cảm ơn mọi người đã 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
Doan Van Ha 3.185 Báo cáo bài đăng Đã đăng Tháng 11 17, 2012 Lisp tùy chọn số chữ số 0 sau dấu chấm thập phân: ;Doan Van Ha - CADViet.com - Ngay 17/11/2012 ;Chuc nang: Tuy chon so chu so 0 sau dau cham. (defun C:HA( / txt) (or (and *stp* (= (type *stp*) 'INT)) (setq *stp* 0)) (setq stp (getint (strcat "\nSo chu so thap phan sau dau cham <" (itoa *stp*) ">: "))) (if (not stp) (setq stp *stp*) (setq *stp* stp)) (while (setq ss (ssget '((0 . "TEXT,MTEXT")))) (foreach ent (vl-remove-if 'listp (mapcar 'cadr (ssnamex ss))) (if (setq txt (distof (cdr (assoc 1 (entget ent))))) (entmod (subst (cons 1 (rtos (fix txt) 2 stp)) (assoc 1 (entget ent)) (entget ent)))))) (princ)) 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
autocad2012 0 Báo cáo bài đăng Đã đăng Tháng 11 17, 2012 Thank bác Doan Van Ha. Chỉnh sửa giùm mình chút nữa ko bạn. Ví dụ 90.58 Mình muốn làm tròn số lên 91 luôn hoặc nếu 1 số thập phân thì nó thành: 90.6 Thanks bác 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
avi612 15 Báo cáo bài đăng Đã đăng Tháng 11 17, 2012 Lần sau nhớ xác định rõ mục đích và yêu cầu của bạn trước khi nhờ người khác giúp nhá.... ; Write by avi612 (defun C:LTT( / ss n i oldDimzin e d v S) (defun etype (e) ;;;Entity Type (cdr (assoc 0 (entget e))) ) (if (not n0) (setq n0 2)) (setq ss (ssget '((0 . "TEXT,MTEXT"))) n (getint (strcat "\nS\U+1ED1 ch\U+1EEF s\U+1ED1 th\U+1EADp phân: <" (itoa n0) ">")) i 0 oldDimzin (getvar "dimzin") ) (if n (setq n0 n) (setq n n0)) (setvar "dimzin" 1) (repeat (sslength ss) (setq e (ssname ss i)) (if (= (etype e) "MTEXT") (progn (command "explode" e "") (setq e (entlast)) )) (setq d (entget e) v (atof (cdr (assoc 1 d))) S (rtos v 2 n) d (subst (cons 1 S) (assoc 1 d) d) ) (entmod d) (setq i (1+ i)) ) (setvar "dimzin" oldDimzin) (princ) ) 4 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
Hoan1111 695 Báo cáo bài đăng Đã đăng Tháng 11 17, 2012 Mới bị xóa nên làm lại cái topic mới ^^ Ví dụ em có 1 số như thế này: 90.58 Em muốn chỉnh hàng loạt những số tương tự như thế này thành: 90 (bỏ luôn cả dấu chấm) 90.0 90.00 Mình có thể chỉnh được số chữ số 0 phía sau dấu chấm hoặc có thể bỏ luôn. Cảm ơn mọi người đã giúp đỡ. Hoằn cũng được vinh dự vào thùng rác, cùng chung ngửi mùi hôi với chủ thớt! 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
BuiHuuNghia 1 Báo cáo bài đăng Đã đăng Tháng 1 2, 2014 Ai giúp sửa lisp này thành lisp làm tròn lên với. VD: 90.1 --> 91; 90.6 --> 91; 91.05 --> 92 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
Polyline 19 Báo cáo bài đăng Đã đăng Tháng 1 3, 2014 <p>Theo như các yêu cầu của bạn thì cách làm tròn là khác nhau, tương đương với 3 hàm trong MS Excel:<br /> - Hàm Round: Làm tròn thông thường với số lẻ tùy ý, ví dụ: Round(9.16,1) -> 9.2; Round(7.61,1) -> 7.6; Round (7.61,0) -> 8.<br /> - Hàm Ceiling: Làm tròn trên với bước tùy ý, ví dụ: Ceiling(9.16,0.1) -> 9.2; Ceiling(7.61,0.1) -> 7.7; Ceiling (7.61,1) -> 8.<br /> - Hàm Floor: Làm tròn dưới với bước tùy ý, ví dụ: Floor (9.16,0.1) -> 9.1; Floor (7.61,0.1) -> 7.6; Floor (7.61,1) -> 7.</p> <p> </p> <p>Ngoài ra, các hàm này còn cho phép nhập đối số âm. Ví dụ Round(123456,-3)->123000.</p> <p>Như vậy, bạn cần 3 hàm xử lý khác nhau tùy theo yêu cầu, có thể gộp chung trong 1 lisp hoặc tách riêng từng hàm một.</p> <p> </p> <p>Hehe, yêu cầu thì như vậy, nhờ bác nào upgrade các lisp ở trên.</p> <p> </p> <p>P/s: Nên bổ sung tính năng lọc số trước khi làm tròn, nghĩa là nếu nó là số thì làm tròn, không là số thì bỏ qua.</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
Polyline 19 Báo cáo bài đăng Đã đăng Tháng 1 3, 2014 Hic, cái gì thế kia! Mình soạn thảo bình thường mà sao lại có kết quả như trên hả bác Admin ơi!!! 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
ndtnv 481 Báo cáo bài đăng Đã đăng Tháng 1 3, 2014 Ai giúp sửa lisp này thành lisp làm tròn lên với. VD: 90.1 --> 91; 90.6 --> 91; 91.05 --> 92 Đây là cách dùng cho số >=0, nếu muốn cho số âm. bạn tự sửa (defun RoundUp (x)(+ (fix x) (if (> (rem x 1) 0) 1 0))) 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
BuiHuuNghia 1 Báo cáo bài đăng Đã đăng Tháng 1 5, 2014 He, làm được rồi. Rất cám ơn bạn đã giúp! Đây là cách dùng cho số >=0, nếu muốn cho số âm. bạn tự sửa (defun RoundUp (x)(+ (fix x) (if (> (rem x 1) 0) 1 0))) 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
chien_lv 7 Báo cáo bài đăng Đã đăng Tháng 3 9, 2022 Vào lúc 5/1/2014 tại 23:17, BuiHuuNghia đã nói: He, làm được rồi. Rất cám ơn bạn đã giúp! Đây là cách dùng cho số >=0, nếu muốn cho số âm. bạn tự sửa (efun RoundUp (x)(+ (fix x) (if (> (rem x 1) 0) 1 0)))d Làm như thế nào đấy bạn? cho mình xin cái bạn lisp bạn chỉnh lại được ko? 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