Chuyển đến nội dung
Diễn đàn CADViet
Nguyen Hoanh

Lisp Chuyển Đổi Mã Font Chữ Trong Autocad

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

Dưới đây là lisp convert các mã font thông dụng (unicode, tcvn, vni, xược) trong AutoCAD. Chương trình tự nhận dạng mã font hiện hành của đối tượng text.

 

Sau khi Appload xong:

Dùng lệnh cfu để chuyển font sang unicode

Dùng lệnh cft để chuyển font sang tcvn

Dùng lệnh cfv để chuyển font sang vni

Dùng lệnh cfx để chuyển font sang xược (/)

Dùng lệnh cfk để chuyển font sang không dấu

Dùng lệnh cf+ để chuyển font sang chữ hoa

Dùng lệnh cf- để chuyển font sang chữ thường

 

File lisp: Download Lisp chuyển font (để tham khảo)

File vlx: convertfont.vlx (download và sử dụng file này)

 

Câu hỏi thường gặp

Hỏi: Sau khi chuyển font, tôi vẫn chưa đọc được

Đáp: Sau khi chuyển font, bạn phải chỉnh cả style phù hợp thì mới đọc được (nếu style chưa phù hợp với mã font)

 

Hỏi: Text của tôi là TCVN (vì sử dụng font .vnArial hiển thị bình thường), nhưng không thể convert được sang bất cứ mã nào. Khi convert dường như Text không hề thay đổi.

Đáp: Có thể mã chữ của bạn được viết theo mã %%. Cách kiểm tra xem có phải mã này không bằng cách dùng lệnh LIST rồi chọn một text có tiếng việt. Nếu bạn thấy tại các vị trí ký tự nguyên âm là dấu %%, thì bạn phải "sửa" text trước khi dùng mã lệnh này. Cách sửa bạn xem ở đây: http://www.cadviet.com/forum/topic/150896-lisp-chuya-n-a-i-ma-font-cha-trong-autocad/?p=386883

 

Hỏi: Tại sao khi tôi chuyển từ TCVN sang các mã khác, các chữ có dấu bị hoa-thường không đúng.

Đáp: Vì font TCVN có nhược điểm là dùng chung mã chữ (char code) cho cả chữ hoa hoa và chữ thường thường. Vì vậy khi convert sang mã khác, sẽ không đúng ý.

Muốn được đúng, bạn cần convert sang mã khác, sau đó dùng lệnh cf+ hoặc cf-.

 

Lịch sử phát triển

2015-10-04: Phiên bản đầu tiên

2015-10-05:

- Hiệu chỉnh lỗi tên file

- Tính năng tự tìm mã font

- Tính năng loại bỏ dấu

2015-10-06:

- Sửa lỗi

- Tính năng chữ hoa / chữ thường

- Sửa / rút ngắn số lệnh

2015-11-23:

- Cải tiến tính năng tự tìm mã font

- Cải tiến tốc độ chạy chương trình

- Bổ sung tính năng xác định thời gian

2015-11-27:

- Upload file lisp thay vì download file.

____________________________________________

  • Like 9
  • Vote tăng 8

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

Lisp này sẽ có lỗi trên các máy có code page Asian, trên máy của tôi dùng code page 932

Các ký tự Fonts tcvn và vni bị lỗi như sau:

Bên trái là code download, bên phải là copy từ code box:

19626_fonts.jpg

 

Nh­ưng nếu lấy mã ký tự từ IME thì lisp đọc được

19626_ime.jpg

Đây là mã của tcvn lấy từ IME pad

(setq tcvn
'("\\U+00B8" "\\U+00B5" "\\U+00B6" "\\U+00B7" "\\U+00B9" ; a
"\\U+00A8" "\\U+00BE" "\\U+00BB" "\\U+00BC" "\\U+00BD" "\\U+00C6"
"\\U+00A9" "\\U+00CA" "\\U+00C7" "\\U+00C8" "\\U+00C9" "\\U+00CB"
"\\U+00D0" "\\U+00CC" "\\U+00CE" "\\U+00CF" "\\U+00D1" ; e
"\\U+00AA" "\\U+00D5" "\\U+00D2" "\\U+00D3" "\\U+00D4" "\\U+00D6"
"\\U+00DD" "\\U+00D7" "\\U+00D8" "\\U+00DC" "\\U+00DE" ; i
"\\U+00E3" "\\U+00DF" "\\U+00E1" "\\U+00E2" "\\U+00E4" ; o
"\\U+00AB" "\\U+00E8" "\\U+00E5" "\\U+00E6" "\\U+00E7" "\\U+00E9"
"\\U+00AC" "\\U+00ED" "\\U+00EA" "\\U+00EB" "\\U+00EC" "\\U+00EE"
"\\U+00F3" "\\U+00EF" "\\U+00F1" "\\U+00F2" "\\U+00F4" ; u
"\\U+00AD" "\\U+00F8" "\\U+00F5" "\\U+00F6" "\\U+00F7" "\\U+00F9"
"\\U+00FD" "\\U+00FA" "\\U+00FB" "\\U+00FC" "\\U+00FE" ; y
"\\U+00AE"
))

Tôi test trên máy tôi code page 932 thì chạy đúng (unicode - tcvn), nhưng chưa test với các code page khác vì nếu đổi code page phải mất công restart lại máy

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ôi test trên máy tôi code page 932 thì chạy đúng (unicode - tcvn), nhưng chưa test với các code page khác vì nếu đổi code page phải mất công restart lại máy

Bạn thử test với code page khác xem nếu lỗi thì báo lại để mình fix nhé. 

 

e dùng cái cũ của bác còn chuyển từ tcvn - un được, dùng cái mới sao không được ạ

lisp báo gì 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
Mình đã điều chỉnh,

Bạn thử dùng lại.

 

bạn lưu ý: Lisp này khác với lisp t2u cũ ở chỗ không tự động chuyển thành chữ hoa sau khi convert.

Sau khi sử dụng lệnh cfu, bạn phải sử dụng lệnh cf+ để biến chữ thành chữ hoa (nếu muố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

Nguyen Hoanh có phiền không nếu mình sử dụng hàm detectfont của bạn cho lần update tiếp theo của lisp tự động thiết lập bảng mã gõ và bật tắt bộ gõ ? Hồi trước viết lisp đó mình nghĩ hoài không ra phương pháp kiểm tra bảng mã đối với text dùng font shx. Hàm trên của bạn rất hay!

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 cứ tự nhiên.

 Bác cho em hỏi chút. Em có một số bản vẽ trên cad như file đính kèm nhưng vì khi thành lập lại sử dụng nhiều loại font chữ khác nhau. Bây giờ em muốn chuyển hết về TCVN ạ, nếu làm thủ công thì hơi lâu nên em muốn hỏi bác xem có cách nào giúp em chuyển toàn bộ font của bản vẽ về một font cố định được không? Đây là file mẫu cần làm: http://www.cadviet.com/upfiles/5/23696_bieu_do_hut_nuoc_lk81_1.dwg

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ác hoành ơi!!!!!!!!

không hiểu sao em thấy mấy anh trên cảm ơn bác là lisp cua bác đã ok.

Vậy mà em chuyển ko được.

mỗi lần chuyển máy chạy khá lâu, và hiện tượng ko xẩy ra điều gì cả.

có lúc chuyển rồi và đổi lại stye nó cũng bị lỗi.

em load file lên bác xem giúphttp://www.cadviet.com/upfiles/5/56922_ban_ve_a.dwg.

địa chỉ email của em là:  congchivo@gmail.com

trước tiên cảm ơn bác nhiều

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

Anh hoành đi đâu rồi!!!!!

em nhờ anh giúp với để hoàn thiện một số bản vẽ cho trùng khớp.

ko anh giúp em một lisp đua tất cả các font trong bảng vẽ về unicot

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 rongdat309 chỉ cần dùng lệnh cft, rồi chọn All.

sau đó, dùng lệnh style rồi đặt tất cả các font về .vnArial là được.

 

bạn congchivo chỉ cần dùng lệnh cfu, , rồi chọn All.

sau đó, dùng lệnh style rồi đặt tất cả các font về Arial là được.

 

Các bạn search và đọc thêm lệnh style - lệnh sửa font chữ.

  • 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

Em cảm ơn anh hoành nhiều. nhưng em chuyển font sao nố chạy hơi lâu anh ahf. em dùng cad 2007 và dùng win7 64bit.ko biết trong lisp của anh hoành có đề cập tới đường dẫn của cad ko anh.

chứ em chay thấy cad nhấp nháy và hiện lên hình màu đen và thêm di dòng chữ (not responding).

em chân thành nhờ anh giúp đỡ.

cảm ơn anh nhiều.

(File em gửi anh phía trên anh chạy có ra kết quả ko anh:    http://www.cadviet.c...22_ban_ve_a.dwg.)

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

Xinh chào các anh em trên diễn đàn, nhất là tác giả của lsp chuyển font chữ của anh nguyễn hoành.

em thật sự ko biết gì về lsp, nhưng em xin các anh chuyển giúp dùm em font chữ như bản vẽ em đã mail phía trên.

thật sự em ko biết lỗi gì cả, các anh có thể giúp em một lsp chuyển các font chữ trên bản vẽ có rất nhiều loại font, chuyển về cùng 1 loại.

khi thấy lsp của anh hoành em thấy mình đã gặp phải lsp đúng như ý, thật sự khi dowload về thì bản vẽ em không sử dụng được. không hiểu vì sao.

chắc cuối năm mấy anh bận công việc. vậy khi nào rãnh nhờ anh hoành cho em xin lại lsp mới như ý muốn.

Chân thành cảm ơn anh nguyễn hoành và các anh em trên diễn đà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

Chuyển sang Unicode bị lỗi  kiểu chữ bác Hoành à: Ví Cộng hòa xã hội chủ nghĩa Việt Nam  --(cfu)-> CỘng hÒa xà hỘi chỦ nghĨa ViỆt Nam  --(cf-)--> cộng hÒa xà hội chủ nghĩa việt nam.

p/s. Em đang thử chuyển từ TCVN sang Uni

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

Theo mình biết là bạn dùng font tcvn3 là loại font chữ in hoa hoàn toàn,ko phải do lỗi lsp bác hoành đâu.

khi bạn dùng chữ in hoa chuyển qua loại chữ thường là do quá khứ bạn gõ thôi.

bạn thử gõ loại TCVN thường rồi chuyển lại thử xem chắc là ok

  • Like 1
  • Vote giảm 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

Bạn hiểu ý mình chứ. là khi bạn gõ font chữ loại chữ in, thì quá khứ bạn gõ có chữ thường trong đó, nhưng kết quả chữ gốc của bạn vẫn là chữ in đó.

Bạn sử dụng lsp cua bac hoành được ah, vậy là chắc chắn máy mình có vấn đề rồi.

 Thôi em xin lỗi bác hoành nhé, để em cài lại máy sử dụng lại rồi nhờ bác sau vậy

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

Em cảm ơn anh hoành nhiều. nhưng em chuyển font sao nố chạy hơi lâu anh ahf. em dùng cad 2007 và dùng win7 64bit.ko biết trong lisp của anh hoành có đề cập tới đường dẫn của cad ko anh.

chứ em chay thấy cad nhấp nháy và hiện lên hình màu đen và thêm di dòng chữ (not responding).

em chân thành nhờ anh giúp đỡ.

cảm ơn anh nhiều.

(File em gửi anh phía trên anh chạy có ra kết quả ko anh:    http://www.cadviet.c...22_ban_ve_a.dwg.)

Mình vừa cập nhật mã code để tăng tốc độ xử lý.

Bạn thử download và dùng nhé.

 

Với file cad của bạn, có tất cả 22549 đối tượng text, chạy hết khoảng 1 phút.

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

Theo mình biết là bạn dùng font tcvn3 là loại font chữ in hoa hoàn toàn,ko phải do lỗi lsp bác hoành đâu.

khi bạn dùng chữ in hoa chuyển qua loại chữ thường là do quá khứ bạn gõ thôi.

bạn thử gõ loại TCVN thường rồi chuyển lại thử xem chắc là ok

Tớ gõ đúng như ví dụ ở trên: Font chữ .vntime , nhưng khi chuyển thì những chữ việt có dấu và cả thanh (huyền, sắc, hỏi, ngã, nặng) thì có vấn đề. Nhờ bác Hoành kiểm tra 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

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

×