Các bác à, em muốn có 1 lisp làm tròn số trong CAD, đề bài : Có các text là các số từ trước, bây giờ em muốn làm tròn các text đó ( lấy sau dấu phẩy x ký tự mình nhập vào ) . Bác Pro nào viết cho em đi ?

Đang xem: Cách bỏ số 0 sau dấu phẩy trong cad

*

Các bác à, em muốn có 1 lisp làm tròn số trong CAD, đề bài : Có các text là các số từ trước, bây giờ em muốn làm tròn các text đó ( lấy sau dấu phẩy x ký tự mình nhập vào ) . Bác Pro nào viết cho em đi ?

Xem thêm: Trịnh Y Kiện Và Hôn Nhân Không Con Cái, Tai Tiếng Phụ Bạc 2 Minh Tinh

*

Xem thêm: Hướng Dẫn Cài Win 7 Trên Máy Ảo Vmware Workstation Chi Tiết, Hướng Dẫn Cài Windows 7 Trên Máy Ảo Vmware

*

Bạn vào Dimension style chỉnh trong Modify rồi chỉnh Primany unit /Precision = 0.0………(tuỳ)

=0 làm tròn xoe :cheers:

Bạn vào Dimension style chỉnh trong Modify rồi chỉnh Primany unit /Precision = 0.0………(tuỳ)

=0 làm tròn xoe :cheers:

duy782006 1.502

PHẠM QUỐC DUYkhanhhoatrip.com Team 1.5022.376 bài viếtGiới tính:MaleVị trí:Bình Sơn – Quảng NgãiBạn vào Dimension style chỉnh trong Modify rồi chỉnh Primany unit /Precision = 0.0………(tuỳ)

=0 làm tròn xoe :cheers:

hhhggg

-Dùng lisp thì có mấy cái vướng:

+Dấu phân cách là dấu phẩy hay dấu chấm là tùy thuộc vào thiết lập của bạn nên có khi lisp đúng có khi không (khi đọc giá trị).Bạn đang xem: Cách bỏ số 0 sau dấu phẩy trong cad

+Phân biệt text số và text chữ (vấn đề này bàn vài lẩn rồi nhưng mình vẫn chưa nắm vấn đề).

+Làm tròn thì dư bỏ bớt còn thiếu thì sao. Ví dụ 12 thì ra 12 hay ra 12,00

Bạn vào Dimension style chỉnh trong Modify rồi chỉnh Primany unit /Precision = 0.0………(tuỳ)

=0 làm tròn xoe :cheers:

Các bác phải phân biệt rõ, đây là text chứ ko phải Dim, như vậy làm sao chỉnh bằng Properties được ? Dấu ngăn cách hàng thập phân và chữ số ta dùng dâuc Chấm. Trong CAD hay Nova đều dùng dấu chấm mà. Và ta thống nhất là làm tròn sau dấu phẩy hai chữ số ! Tốt nhất là làm tròn với số chữ số sau dấu phẩy là do người dùng nhập vào ?

Các bác phải phân biệt rõ, đây là text chứ ko phải Dim, như vậy làm sao chỉnh bằng Properties được ? Dấu ngăn cách hàng thập phân và chữ số ta dùng dâuc Chấm. Trong CAD hay Nova đều dùng dấu chấm mà. Và ta thống nhất là làm tròn sau dấu phẩy hai chữ số ! Tốt nhất là làm tròn với số chữ số sau dấu phẩy là do người dùng nhập vào ?

Ứng dụng hàm Round của bác SSG đã trả lời trong topic Lisp nhân thêm hệ số K vào Text. Mình đã phát triển nên đoạn Code này để làm tròn các Text sau các chữ số thập phân

;;;——————————————————-;;;——————————————————-(defun etype (e);;;Entity Type(cdr (assoc 0 (entget e))));;;——————————————————-(defun rnd(x);;;Round x, return INT(if (>= x 0) (fix (+ x 0.5)) (fix (- x 0.5)))) ;;;——————————————————-(defun TP()(setq thapphan 2);Ban co the thay doi so thap phan o dong nay)(defun round3(x / tue S i j S1 S3)(setq tue (TP))(setq S (itoa (rnd (* (abs x) (expt 10 tue)))))(setqi (strlen S)j (- i tue)S1 (substr S 1 j)S3 (substr S (1+ j) tue))(if (>= x 0) (strcat S1 “.” S3) (strcat “-” S1 “.” S3)));;;——————————————————-(defun C:Round( / ss k i e d v S)(setqss (ssget “((0 . “TEXT,MTEXT”)))i 0)(repeat (sslength ss)(setq e (ssname ss i))(if (= (etype e) “MTEXT”) (progn(command “explode” e “”)(setq e (entlast))))(setqd (entget e)v (atof (cdr (assoc 1 d)))S (round3 v)d (subst (cons 1 S) (assoc 1 d) d))(entmod d)(setq i (1+ i)))(princ))

 

Bạn có thể thay đổi số thập phân ở dòng này : (setq thapphan 2)

 

Mình đã thử thay câu (setq thapphan 2) bằng câu (setq thapphan (getint ”
So chu so thap phan la :”))

Nhưng kết quả lại không theo như ý. Vì dưới tác dụng của vòng lặp Repeat cái câu nhắc “nSo chu so thap phan la :” được lặp lại cho đến Text cuối cùng. Điều này nó không theo được ý của người sử dụng.

 

Mong bác SSG và tất cả mọi người cùng góp ý để đoạn Code trên được hoàn thiện một cách trọn vẹn.

Leave a Reply

Your email address will not be published. Required fields are marked *