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

xin trợ giúp về làm tròn text

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

chào mọi ng. Hiện e có 1 vấn đề đó là việc làm tròn số các text trong cad. ví dụ 2.35 -> 2.60,  3.63 -> 3.60 , 3.66-> 3.70,   3.96->4.00

mà có rất nhiều đối tượng text cần làm tròn như vạy. Mong các pro giúp đỡ :) thank all 

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

chào mọi ng. Hiện e có 1 vấn đề đó là việc làm tròn số các text trong cad. ví dụ 2.35 -> 2.60,  3.63 -> 3.60 , 3.66-> 3.70,   3.96->4.00

mà có rất nhiều đối tượng text cần làm tròn như vạy. Mong các pro giúp đỡ :) thank all 

 

Phần tô đỏ hơi khó :D :D :D

  • 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

- nhoc mới thử viết bạn test thử ^^

(defun c:bongbong(/ c ss ename info text1 so num)
(setq c -1)
(prompt "Chon text so: ")
 (if (setq ss (ssget '((0 . "TEXT"))))
 (progn
    (while (setq ename (ssname ss (setq c (1+ c))))
      (if (setq num (distof (cdr (assoc 1 (entget ename)))))
            num
      );if
	  (if num
	  (progn
	   (setq info (entget ename))
	   (setq text1 (distof (rtos (distof (cdr (assoc 1 info))) 2 2)))
	   (if (or (> (rem text1 0.1) 0.05) (equal (rem text1 0.1) 0.05 0.01))
	   (setq so (rtos (lamtron text1 0.1) 2 2))
	   (setq so (rtos (- text1 (rem text1 0.1)) 2 2))
	   )
	   (entmod (subst (cons 1 so) (assoc 1 info) info))
	   )
	   )
	   )
  )
 )
(princ)
)
(defun lamtron (n k / sodu)
  (setq sodu (rem n k))
  (if (/= sodu 0)
    (setq n (+ (- n sodu) k))
  )
  n
)	   
  • 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

- nhoc mới thử viết bạn test thử ^^

(defun c:bongbong(/ c ss ename info text1 so num)
(setq c -1)
(prompt "Chon text so: ")
 (if (setq ss (ssget '((0 . "TEXT"))))
 (progn
    (while (setq ename (ssname ss (setq c (1+ c))))
      (if (setq num (distof (cdr (assoc 1 (entget ename)))))
            num
      );if
	  (if num
	  (progn
	   (setq info (entget ename))
	   (setq text1 (distof (rtos (distof (cdr (assoc 1 info))) 2 2)))
	   (if (or (> (rem text1 0.1) 0.05) (equal (rem text1 0.1) 0.05 0.01))
	   (setq so (rtos (lamtron text1 0.1) 2 2))
	   (setq so (rtos (- text1 (rem text1 0.1)) 2 2))
	   )
	   (entmod (subst (cons 1 so) (assoc 1 info) info))
	   )
	   )
	   )
  )
 )
(princ)
)
(defun lamtron (n k / sodu)
  (setq sodu (rem n k))
  (if (/= sodu 0)
    (setq n (+ (- n sodu) k))
  )
  n
)	   

thank bác :D lisp dùng rất tốt :D 

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  

×