Đến nội dung


Hình ảnh
* * * * * 1 Bình chọn

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


  • Please log in to reply
61 replies to this topic

#1 Nguyen Hoanh

Nguyen Hoanh

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 4105 Bài viết
Điểm đánh giá: 4495 (đỉnh cao)

Đã gửi 04 October 2015 - 05:31 PM

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.c...tocad/?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.
____________________________________________
  • 8

#2 Lisphnvn72015

Lisphnvn72015

    biết vẽ line

  • Members
  • PipPip
  • 25 Bài viết
Điểm đánh giá: 1 (bình thường)

Đã gửi 05 October 2015 - 12:38 PM

Bác Hoanh ơi sao k chạy được nhi?


  • 0

#3 Nguyen Hoanh

Nguyen Hoanh

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 4105 Bài viết
Điểm đánh giá: 4495 (đỉnh cao)

Đã gửi 05 October 2015 - 09:29 PM

Bạn thử lại xem được chưa?
  • 0

#4 vanngeonhuxua

vanngeonhuxua

    biết vẽ pline

  • Members
  • PipPip
  • 62 Bài viết
Điểm đánh giá: 8 (bình thường)

Đã gửi 05 October 2015 - 10:00 PM

Xong phải đổi lại Text style. Bạn có thể thêm chức năng chọn Text style khi Conver. Vẫn còn lỗi khi chuyển, cái được cái không.


  • 0

#5 Nguyen Hoanh

Nguyen Hoanh

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 4105 Bài viết
Điểm đánh giá: 4495 (đỉnh cao)

Đã gửi 05 October 2015 - 10:20 PM

Bạn vanngeonhuxua có thể upload file dwg mà khi lisp convert vẫn còn lỗi font được không?
Để mình fix lỗi.
  • 0

#6 ndtnv

ndtnv

    biết lệnh minsert

  • Members
  • PipPipPipPipPipPip
  • 437 Bài viết
Điểm đánh giá: 384 (khá)

Đã gửi 06 October 2015 - 10:06 AM

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


  • 0

#7 levisx

levisx

    biết zoom

  • Members
  • Pip
  • 12 Bài viết
Điểm đánh giá: 5 (bình thường)

Đã gửi 06 October 2015 - 10:39 AM

cảm ơn bác nhé. lisp này rất hữu ích.


  • 1
Money money . . .

#8 phamtronghuy

phamtronghuy

    biết pan

  • Members
  • Pip
  • 5 Bài viết
Điểm đánh giá: 0 (bình thường)

Đã gửi 06 October 2015 - 12:02 PM

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 ạ


  • 0

#9 Nguyen Hoanh

Nguyen Hoanh

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 4105 Bài viết
Điểm đánh giá: 4495 (đỉnh cao)

Đã gửi 06 October 2015 - 01:05 PM

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?
  • 0

#10 phamtronghuy

phamtronghuy

    biết pan

  • Members
  • Pip
  • 5 Bài viết
Điểm đánh giá: 0 (bình thường)

Đã gửi 06 October 2015 - 03:49 PM

nó không báo gì bác ạ


  • 0

#11 Nguyen Hoanh

Nguyen Hoanh

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 4105 Bài viết
Điểm đánh giá: 4495 (đỉnh cao)

Đã gửi 06 October 2015 - 04:34 PM

Bạn có thể gửi file dwg mà bạn chạy không được cho mình xem được không?
  • 0

#12 phamtronghuy

phamtronghuy

    biết pan

  • Members
  • Pip
  • 5 Bài viết
Điểm đánh giá: 0 (bình thường)

Đã gửi 06 October 2015 - 06:16 PM

http://www.cadviet.c...84_tuan_anh.dwg


  • 0

#13 Nguyen Hoanh

Nguyen Hoanh

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 4105 Bài viết
Điểm đánh giá: 4495 (đỉnh cao)

Đã gửi 06 October 2015 - 09:16 PM

http://www.cadviet.c...84_tuan_anh.dwg

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)
  • 0

#14 ThuyLinh313

ThuyLinh313

    biết lệnh mtext

  • Members
  • PipPipPipPip
  • 288 Bài viết
Điểm đánh giá: 142 (tàm tạm)

Đã gửi 05 November 2015 - 06:08 PM

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!


  • 0

#15 Nguyen Hoanh

Nguyen Hoanh

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 4105 Bài viết
Điểm đánh giá: 4495 (đỉnh cao)

Đã gửi 05 November 2015 - 09:14 PM

Bạn cứ tự nhiên.
  • 1

#16 rongdat309

rongdat309

    Chưa sử dụng CAD

  • Members
  • Pip
  • 4 Bài viết
Điểm đánh giá: 1 (bình thường)

Đã gửi 06 November 2015 - 05:14 PM

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.c...nuoc_lk81_1.dwg


  • 0

#17 congchivo

congchivo

    biết vẽ line

  • Members
  • PipPip
  • 24 Bài viết
Điểm đánh giá: 1 (bình thường)

Đã gửi 20 November 2015 - 11:36 PM

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.c...22_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


  • 0

#18 congchivo

congchivo

    biết vẽ line

  • Members
  • PipPip
  • 24 Bài viết
Điểm đánh giá: 1 (bình thường)

Đã gửi 21 November 2015 - 07:54 PM

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


  • 0

#19 Nguyen Hoanh

Nguyen Hoanh

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 4105 Bài viết
Điểm đánh giá: 4495 (đỉnh cao)

Đã gửi 21 November 2015 - 08:04 PM

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ữ.
  • 1

#20 congchivo

congchivo

    biết vẽ line

  • Members
  • PipPip
  • 24 Bài viết
Điểm đánh giá: 1 (bình thường)

Đã gửi 22 November 2015 - 03:03 PM

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.)


  • 0