hhhhgggg 29 Báo cáo bài đăng Đã đăng Tháng 12 9, 2008 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 ? 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
leejang 5 Báo cáo bài đăng Đã đăng Tháng 12 9, 2008 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 ? Cái này mình cũng đang quan tâm, bác nào biết Lisp thì viết cho mọi người đ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
xunghe 1 Báo cáo bài đăng Đã đăng Tháng 12 9, 2008 Cái này mình cũng đang quan tâm, bác nào biết Lisp thì viết cho mọi người đi ! bạn gõ UN vao Precision chọn 0.00 hoặc bao nhiêu tùy 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
damletam 21 Báo cáo bài đăng Đã đăng Tháng 12 9, 2008 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: 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
leejang 5 Báo cáo bài đăng Đã đăng Tháng 12 9, 2008 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: [/quote¦ Trời ạ ! Ở đây là các Text có sẵn từ trước rùi cơ mà, làm sao các cách thiết đặt có thể thay đổi được. Các các đó của các bác chỉ áp dụng cho bản vẽ mình làm ra từ đầu thôi, còn các bản vẽ do người khác làm mình phải làm tiếp thì phải Dùng Lisp mới làm tròn được chứ ? Mong có bác Pro nào quan tâm viết 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
duy782006 1.550 Báo cáo bài đăng Đã đăng Tháng 12 9, 2008 bạn gõ UN vao Precision chọn 0.00 hoặc bao nhiêu tùy bạn 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ách của hai bạn không đáp ứng được câu hỏi đâu. Trước khi trả lời người ta thì nên thử trước đã. @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ị). +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 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
daotukl 107 Báo cáo bài đăng Đã đăng Tháng 12 9, 2008 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: [/quote¦ Trời ạ ! Ở đây là các Text có sẵn từ trước rùi cơ mà, làm sao các cách thiết đặt có thể thay đổi được. Các các đó của các bác chỉ áp dụng cho bản vẽ mình làm ra từ đầu thôi, còn các bản vẽ do người khác làm mình phải làm tiếp thì phải Dùng Lisp mới làm tròn được chứ ? Mong có bác Pro nào quan tâm viết giúp ! chọn hết các đường kt rồi vào PROPERTIES chỉnh lạ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
hhhhgggg 29 Báo cáo bài đăng Đã đăng Tháng 12 9, 2008 chọn hết các đường kt rồi vào PROPERTIES chỉnh lại 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 ? 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
Tue_NV 3.912 Báo cáo bài đăng Đã đăng Tháng 12 9, 2008 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))))) (setq i (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) (setq ss (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)) )) (setq d (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) Đoạn Code này chưa được hoàn thiện lắm vì theo yêu cầu của người sử dụng là khi đánh số thập phân vào thì chương trình sẽ hiểu. Nhưng ở đây lại phải thay đổi số thập phân bằng cách vào file Lisp sửa lại dòng (setq thapphan 2) mới ra được kết quả như ý. Mình đã thử thay câu (setq thapphan 2) bằng câu (setq thapphan (getint "\nSo 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. Chân thành cảm ơn tất cả mọi người. :cheers: 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
ssg 1.102 Báo cáo bài đăng Đã đăng Tháng 12 10, 2008 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 ? Bạn dùng lisp này thử xem. Lệnh LTT: ;;;------------------------------------------------------- (defun etype (e) ;;;Entity Type (cdr (assoc 0 (entget e))) ) ;;;------------------------------------------------------- (defun C:LTT( / ss n i oldDimzin e d v S) (if (not n0) (setq n0 2)) (setq ss (ssget '((0 . "TEXT,MTEXT"))) n (getint (strcat "\nSo chu so thap phan <" (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) ) ;;;------------------------------------------------------- @Tue_NV Ssg đã xem lại vấn đề hôm nọ. Trong các system var liên quan, chỉ có dimzin ảnh hưởng trực tiếp, các "thằng" khác không thấy tác dụng gì khi dùng (rtos value 2 n). Có lẽ do số 2 đã xác định kiểu decimal. Nếu vậy, ta cứ "chơi" như trên đơn giản hơ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
hhhhgggg 29 Báo cáo bài đăng Đã đăng Tháng 12 10, 2008 Bạn dùng lisp này thử xem. Lệnh LTT: ;;;------------------------------------------------------- (defun etype (e) ;;;Entity Type (cdr (assoc 0 (entget e))) ) ;;;------------------------------------------------------- (defun C:LTT( / ss n i oldDimzin e d v S) (if (not n0) (setq n0 2)) (setq ss (ssget '((0 . "TEXT,MTEXT"))) n (getint (strcat "\nSo chu so thap phan <" (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) ) ;;;------------------------------------------------------- @Tue_NV Ssg đã xem lại vấn đề hôm nọ. Trong các system var liên quan, chỉ có dimzin ảnh hưởng trực tiếp, các "thằng" khác không thấy tác dụng gì khi dùng (rtos value 2 n). Có lẽ do số 2 đã xác định kiểu decimal. Nếu vậy, ta cứ "chơi" như trên đơn giản hơn. ok ! Cảm ơn bác SSG , lisp của bác chạy tốt lắm ! Diễn đàn của mình thật là tuyệt vời ! 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
huycad 0 Báo cáo bài đăng Đã đăng Tháng 12 25, 2008 Cho mình hỏi có thể sửa Lisp này thành dạng làm tròn đến 5, 10,...tùy chọn như trong Dim ko nhỉ ? Thanks a lot Bạn dùng lisp này thử xem. Lệnh LTT: ;;;------------------------------------------------------- (defun etype (e) ;;;Entity Type (cdr (assoc 0 (entget e))) ) ;;;------------------------------------------------------- (defun C:LTT( / ss n i oldDimzin e d v S) (if (not n0) (setq n0 2)) (setq ss (ssget '((0 . "TEXT,MTEXT"))) n (getint (strcat "\nSo chu so thap phan <" (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) ) ;;;------------------------------------------------------- @Tue_NV Ssg đã xem lại vấn đề hôm nọ. Trong các system var liên quan, chỉ có dimzin ảnh hưởng trực tiếp, các "thằng" khác không thấy tác dụng gì khi dùng (rtos value 2 n). Có lẽ do số 2 đã xác định kiểu decimal. Nếu vậy, ta cứ "chơi" như trên đơn giản hơn. 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
Tue_NV 3.912 Báo cáo bài đăng Đã đăng Tháng 12 25, 2008 Cho mình hỏi có thể sửa Lisp này thành dạng làm tròn đến 5, 10,...tùy chọn như trong Dim ko nhỉ ?Thanks a lot Chưa hiểu ý bạn? Có thể nói rõ hơn không? Lisp trên nhập vào số chữ số thập phân cần làm tròn mà. 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
duy782006 1.550 Báo cáo bài đăng Đã đăng Tháng 12 25, 2008 Chưa hiểu ý bạn? Có thể nói rõ hơn không?Lisp trên nhập vào số chữ số thập phân cần làm tròn mà. Theo mình hiểu thì ý bạn í thế này: -Có số _______________________________________0.132456789 -Làm tròn với 5 chử số nó ra _____________________0.12345 -Làm tròn cái kết quả vừa rồi với 10 chử số nó ra ____0.1234567890 Đúng không bạn huycad? 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
huycad 0 Báo cáo bài đăng Đã đăng Tháng 12 25, 2008 Ko. Là thế này, VD có số 123.2 Làm tròn đến 2 có: 124 Làm tròn đến 5 có: 125 Làm tròn đến 10 có: 120 Cái này tương tự trong Dimstyle, dùng rất hữu ích. Theo mình hiểu thì ý bạn í thế này:-Có số _______________________________________0.132456789 -Làm tròn với 5 chử số nó ra _____________________0.12345 -Làm tròn cái kết quả vừa rồi với 10 chử số nó ra ____0.1234567890 Đúng không bạn huycad? 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
duylinh85_xd 0 Báo cáo bài đăng Đã đăng Tháng 2 27, 2009 Tôi xin cảm ơn bạn ssq rất nhiều! Nhờ có lisp của bản mà tôi đã giải quyết công việc của mình rất dễ dàng và đơn giản! Chân thành cảm ơn 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
phuquang113 4 Báo cáo bài đăng Đã đăng Tháng 5 25, 2009 Xin admin và các cao thủ giúp thêm về vấn đề tròn số: VD: số 0.34% thì kết qủa giữ nguyên = 0.34% Nếu số 2.00% thì bỏ bớt số phía sau đi = 2% Tôi phải chỉnh sửa rất nhiều bản vẽ như vậy. Rất mong được các bạn giúp đỡ cho. Cám ơn trướ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
Tue_NV 3.912 Báo cáo bài đăng Đã đăng Tháng 5 25, 2009 Xin admin và các cao thủ giúp thêm về vấn đề tròn số: VD: số 0.34% thì kết qủa giữ nguyên = 0.34% Nếu số 2.00% thì bỏ bớt số phía sau đi = 2% Tôi phải chỉnh sửa rất nhiều bản vẽ như vậy. Rất mong được các bạn giúp đỡ cho. Cám ơn trước! Tue_NV vẫn chưa hiểu là trong bản vẽ của bạn vừa có cả số thập phân (0.34) và có cả số %(0.34) hay không?. Vì bạn chưa nói rõ Thế này nhé : Tue_NV sẽ lược bỏ theo ý của bạn : 0.34% -> thì kết qủa giữ nguyên = 0.34 Nếu số 2.00% thì bỏ bớt số phía sau đi = 2 Còn đuôi % thì bạn sử dụng Lisp thêm Text thêm vào vậy vì lí do : Tue_NV vẫn chưa hiểu là trong bản vẽ của bạn vừa có cả số thập phân (0.34) và có cả số % (0.34%) hay không? Vì bạn chưa nói rõ Code này có chỉnh lại Lisp của bác ssg 1 chút : ;;;------------------------------------------------------- (defun etype (e);;;Entity Type (cdr (assoc 0 (entget e))) ) ;;;------------------------------------------------------- (defun C:LTT( / ss n i oldDimzin e d v S) (if (not n0) (setq n0 2)) (setq ss (ssget '((0 . "TEXT,MTEXT"))) n (getint (strcat "\nSo chu so thap phan :")) i 0 oldDimzin (getvar "dimzin") ) (if n (setq n0 n) (setq n n0)) (setvar "dimzin" 8) (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) ) :s_big: 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
phuquang113 4 Báo cáo bài đăng Đã đăng Tháng 5 26, 2009 Em thử rồi bác ơi! không có tác dụng gì hết. Hu...hu... các bác giúp em chứ em mỏi mệt vì nó lắm rồ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
Tue_NV 3.912 Báo cáo bài đăng Đã đăng Tháng 5 26, 2009 Em thử rồi bác ơi! không có tác dụng gì hết. Hu...hu... các bác giúp em chứ em mỏi mệt vì nó lắm rồi! Bạn hãy upload file của bạn lên đây và nói rõ cái mà bạn muốn. Chứ viết ra không đúng ý của bạn thì mất thời giờ lắm 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
phuquang113 4 Báo cáo bài đăng Đã đăng Tháng 5 26, 2009 Thì bác cứ thử cái lisp của bác đi nó đâu có tác dụng gì đâu mà bảo? 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
Tue_NV 3.912 Báo cáo bài đăng Đã đăng Tháng 5 26, 2009 Thì bác cứ thử cái lisp của bác đi nó đâu có tác dụng gì đâu mà bảo? Xin lỗi bạn mình bị lỗi 1 chỗ và đã sửa lại. Bạn thử nhé : Xin admin và các cao thủ giúp thêm về vấn đề tròn số: VD: số 0.34% thì kết qủa giữ nguyên = 0.34% Nếu số 2.00% thì bỏ bớt số phía sau đi = 2% Tôi phải chỉnh sửa rất nhiều bản vẽ như vậy. Rất mong được các bạn giúp đỡ cho. Cám ơn trước! Tue_NV vẫn chưa hiểu là trong bản vẽ của bạn vừa có cả số thập phân (0.34) và có cả số %(0.34%) hay không?. Vì bạn chưa nói rõ Thế này nhé : Tue_NV sẽ lược bỏ theo ý của bạn : 0.34% -> thì kết qủa giữ nguyên = 0.34 Nếu số 2.00% thì bỏ bớt số phía sau đi = 2 Còn đuôi % thì bạn sử dụng Lisp thêm Text thêm vào vậy vì lí do : Tue_NV vẫn chưa hiểu là trong bản vẽ của bạn vừa có cả số thập phân (0.34) và có cả số % (0.34%) hay không? Vì bạn chưa nói rõ Code này có chỉnh lại Lisp của bác ssg 1 chút : ;;;------------------------------------------------------- (defun etype (e);;;Entity Type (cdr (assoc 0 (entget e))) ) ;;;------------------------------------------------------- (defun C:LTT( / ss n i oldDimzin e d v S) (if (not n0) (setq n0 2)) (setq ss (ssget '((0 . "TEXT,MTEXT"))) n (getint (strcat "\nSo chu so thap phan :")) i 0 oldDimzin (getvar "dimzin") ) (if n (setq n0 n) (setq n n0)) (setvar "dimzin" 8) (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) ) :s_big: 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
ht.thichvobien 0 Báo cáo bài đăng Đã đăng Tháng 5 25, 2013 e dùng cad 2010. sao down lisp lệnh ltt về k dùng đc nhỉ? 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
unbroken 0 Báo cáo bài đăng Đã đăng Tháng 9 7, 2013 Bạn dùng lisp này thử xem. Lệnh LTT: ;;;-------------------------------------------------------(defun etype (e) ;;;Entity Type(cdr (assoc 0 (entget e))));;;-------------------------------------------------------(defun C:LTT( / ss n i oldDimzin e d v S)(if (not n0) (setq n0 2))(setq ss (ssget '((0 . "TEXT,MTEXT"))) n (getint (strcat "\nSo chu so thap phan <" (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));;;------------------------------------------------------- @Tue_NV Ssg đã xem lại vấn đề hôm nọ. Trong các system var liên quan, chỉ có dimzin ảnh hưởng trực tiếp, các "thằng" khác không thấy tác dụng gì khi dùng (rtos value 2 n). Có lẽ do số 2 đã xác định kiểu decimal. Nếu vậy, ta cứ "chơi" như trên đơn giản hơn. cái của bạn k dùng được bạn ơ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
unbroken 0 Báo cáo bài đăng Đã đăng Tháng 9 7, 2013 Tue_NV vẫn chưa hiểu là trong bản vẽ của bạn vừa có cả số thập phân (0.34) và có cả số %(0.34) hay không?. Vì bạn chưa nói rõ Thế này nhé : Tue_NV sẽ lược bỏ theo ý của bạn : 0.34% -> thì kết qủa giữ nguyên = 0.34 Nếu số 2.00% thì bỏ bớt số phía sau đi = 2 Còn đuôi % thì bạn sử dụng Lisp thêm Text thêm vào vậy vì lí do : Tue_NV vẫn chưa hiểu là trong bản vẽ của bạn vừa có cả số thập phân (0.34) và có cả số % (0.34%) hay không? Vì bạn chưa nói rõ Code này có chỉnh lại Lisp của bác ssg 1 chút : ;;;------------------------------------------------------- (defun etype (e);;;Entity Type (cdr (assoc 0 (entget e))) ) ;;;------------------------------------------------------- (defun C:LTT( / ss n i oldDimzin e d v S) (if (not n0) (setq n0 2)) (setq ss (ssget '((0 . "TEXT,MTEXT"))) n (getint (strcat "\nSo chu so thap phan <" (itoa n0) ">:")) i 0 oldDimzin (getvar "dimzin") ) (if n (setq n0 n) (setq n n0)) (setvar "dimzin" 8) (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) ) cái bạn sửa vẫn chưa ổ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