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

chuyển bảng mã từ TCVN3 sang UNICODE

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

em đã đọc được bài của anh Nguyễn Hoành đổi từ bảng mã VNI và TCVN3 nhưng không có bài nào nói về chuyển từ TCVN3 về UNICODE cả có anh nào có thể giúp em không?( em đã dùng cách chuyển của UNIKEY nhưng cái đó chỉ dùng được với WORD còn CAD lại bị lỗi, em đang dùng cad 2008). đây là file của em em xin cảm ơn trước

http://www.cadviet.com/upfiles/file_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
em đã đọc được bài của anh Nguyễn Hoành đổi từ bảng mã VNI và TCVN3 nhưng không có bài nào nói về chuyển từ TCVN3 về UNICODE cả có anh nào có thể giúp em không?( em đã dùng cách chuyển của UNIKEY nhưng cái đó chỉ dùng được với WORD còn CAD lại bị lỗi, em đang dùng cad 2008). đây là file của em em xin cảm ơn trước

http://www.cadviet.com/upfiles/file_1.dwg

Bạn dùng lệnh T2U (TCVN3 to Unicode)

(defun c:t2u (/ taptext)
 (defun chuyenfontstr
	     (stsua / daichuoi index stdich chuht CHUSUA tAPSUA)                              
 (setq
   tapsua (list
(cons "®" "\U+0110")
(cons "§" "\U+0110")
(cons "µ" "À")
(cons "¸" "Á")
(cons "¶" "\U+1EA2")
(cons "·" "Ã")
(cons "¹" "\U+1EA0")
(cons "©" "Â")
(cons "¢" "Â")
(cons "Ç" "\U+1EA6")
(cons "Ê" "\U+1EA4")
(cons "È" "\U+1EA8")
(cons "É" "\U+1EAA")
(cons "Ë" "\U+1EAC")
(cons "¨" "\U+0102")
(cons "¡" "\U+0102")
(cons "»" "\U+1EB0")
(cons "¾" "\U+1EAE")
(cons "¼" "\U+1EB2")
(cons "½" "\U+1EB4")
(cons "Æ" "\U+1EB6")
(cons "Ì" "È")
(cons "Ð" "É")
(cons "Î" "\U+1EBA")
(cons "Ï" "\U+1EBC")
(cons "Ñ" "\U+1EB8")
(cons "ª" "Ê")
(cons "£" "Ê")
(cons "Ò" "\U+1EC0")
(cons "Õ" "\U+1EBE")
(cons "Ó" "\U+1EC2")
(cons "Ô" "\U+1EC4")
(cons "Ö" "\U+1EC6")
(cons "×" "Ì")
(cons "Ý" "Í")
(cons "Ø" "\U+1EC8")
(cons "Ü" "\U+0128")
(cons "Þ" "\U+1ECA")
(cons "ß" "Ò")
(cons "ã" "Ó")
(cons "á" "\U+1ECE")
(cons "â" "Õ")
(cons "ä" "\U+1ECC")
(cons "«" "Ô")
(cons "¤" "Ô")
(cons "å" "\U+1ED2")
(cons "è" "\U+1ED0")
(cons "æ" "\U+1ED4")
(cons "ç" "\U+1ED6")
(cons "é" "\U+1ED8")
(cons "¬" "\U+01A0")
(cons "¥" "\U+01A0")
(cons "ê" "\U+1EDC")
(cons "í" "\U+1EDA")
(cons "ë" "\U+1EDE")
(cons "ì" "\U+1EE0")
(cons "î" "\U+1EE2")
(cons "ï" "Ù")
(cons "ó" "Ú")
(cons "ñ" "\U+1EE6")
(cons "ò" "\U+0168")
(cons "ô" "\U+1EE4")
(cons "­" "\U+01AF")
(cons "¦" "\U+01AF")
(cons "õ" "\U+1EEA")
(cons "ø" "\U+1EE8")
(cons "ö" "\U+1EEC")
(cons "÷" "\U+1EEE")
(cons "ù" "\U+1EF0")
(cons "ú" "\U+1EF2")
(cons "ý" "Ý")
(cons "û" "\U+1EF6")
(cons "ü" "\U+1EF8")
(cons "þ" "\U+1EF4")
(cons "a" "A")
(cons "b" "B")
(cons "c" "C")
(cons "d" "D")
(cons "e" "E")
(cons "f" "F")
(cons "g" "G")
(cons "h" "H")
(cons "i" "I")
(cons "j" "J")
(cons "k" "K")
(cons "l" "L")
(cons "m" "M")
(cons "n" "N")
(cons "o" "O")
(cons "p" "P")
(cons "q" "Q")
(cons "r" "R")
(cons "s" "S")
(cons "t" "T")
(cons "u" "U")
(cons "v" "V")
(cons "w" "W")
(cons "x" "X")
(cons "y" "Y")
(cons "z" "Z")

   )
 ) 
 (setq
   daichuoi (strlen stsua)
   index    1
   stdich   ""
 )
 (repeat daichuoi
   (setq
     chuht  (substr stsua index 1)
     index  (1+ index)
     chusua
     (cond
       ((assoc chuht tapsua) (cdr (assoc chuht tapsua)))
       (t chuht)
     )
     stdich (strcat stdich chusua)
   )
 )
 stdich
)

 (defun doone(ent / new old tt)
   (setq
     tt (entget ent)
     old (assoc 1 tt)
     new (cons 1 (chuyenfontstr (cdr old)))      
   )
   (if (/= new old)
     (progn
(setq tt (subst new old tt))
(entmod tt)
(entupd ent)
     )
   )
 )

 (setq	taptext	(ssget '((0 . "TEXT"))))
 (sudung doone taptext)

)
(defun sudung (ham ss / sodt index entdt soapp)
 (setq	sodt  (cond
	(ss (sslength ss))
	(t 0)
      )
soapp 0
index 0
 )
 (repeat sodt
   (setq entdt	(ssname ss index)
  index	(1+ index)
   )
   (if	(ham entdt)
     (setq soapp (1+ soapp))
   )
 )
 soapp
)

  • Vote tăng 7

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 dùng lệnh T2U (TCVN3 to Unicode)

(defun c:t2u (/ taptext)
 (defun chuyenfontstr
	     (stsua / daichuoi index stdich chuht CHUSUA tAPSUA)                              
 (setq
   tapsua (list
(cons "®" "\U+0110")
(cons "§" "\U+0110")
(cons "µ" "À")
(cons "¸" "Á")
(cons "¶" "\U+1EA2")
(cons "·" "Ã")
(cons "¹" "\U+1EA0")
(cons "©" "Â")
(cons "¢" "Â")
(cons "Ç" "\U+1EA6")
(cons "Ê" "\U+1EA4")
(cons "È" "\U+1EA8")
(cons "É" "\U+1EAA")
(cons "Ë" "\U+1EAC")
(cons "¨" "\U+0102")
(cons "¡" "\U+0102")
(cons "»" "\U+1EB0")
(cons "¾" "\U+1EAE")
(cons "¼" "\U+1EB2")
(cons "½" "\U+1EB4")
(cons "Æ" "\U+1EB6")
(cons "Ì" "È")
(cons "Ð" "É")
(cons "Î" "\U+1EBA")
(cons "Ï" "\U+1EBC")
(cons "Ñ" "\U+1EB8")
(cons "ª" "Ê")
(cons "£" "Ê")
(cons "Ò" "\U+1EC0")
(cons "Õ" "\U+1EBE")
(cons "Ó" "\U+1EC2")
(cons "Ô" "\U+1EC4")
(cons "Ö" "\U+1EC6")
(cons "×" "Ì")
(cons "Ý" "Í")
(cons "Ø" "\U+1EC8")
(cons "Ü" "\U+0128")
(cons "Þ" "\U+1ECA")
(cons "ß" "Ò")
(cons "ã" "Ó")
(cons "á" "\U+1ECE")
(cons "â" "Õ")
(cons "ä" "\U+1ECC")
(cons "«" "Ô")
(cons "¤" "Ô")
(cons "å" "\U+1ED2")
(cons "è" "\U+1ED0")
(cons "æ" "\U+1ED4")
(cons "ç" "\U+1ED6")
(cons "é" "\U+1ED8")
(cons "¬" "\U+01A0")
(cons "¥" "\U+01A0")
(cons "ê" "\U+1EDC")
(cons "í" "\U+1EDA")
(cons "ë" "\U+1EDE")
(cons "ì" "\U+1EE0")
(cons "î" "\U+1EE2")
(cons "ï" "Ù")
(cons "ó" "Ú")
(cons "ñ" "\U+1EE6")
(cons "ò" "\U+0168")
(cons "ô" "\U+1EE4")
(cons "­" "\U+01AF")
(cons "¦" "\U+01AF")
(cons "õ" "\U+1EEA")
(cons "ø" "\U+1EE8")
(cons "ö" "\U+1EEC")
(cons "÷" "\U+1EEE")
(cons "ù" "\U+1EF0")
(cons "ú" "\U+1EF2")
(cons "ý" "Ý")
(cons "û" "\U+1EF6")
(cons "ü" "\U+1EF8")
(cons "þ" "\U+1EF4")
(cons "a" "A")
(cons "b" "B")
(cons "c" "C")
(cons "d" "D")
(cons "e" "E")
(cons "f" "F")
(cons "g" "G")
(cons "h" "H")
(cons "i" "I")
(cons "j" "J")
(cons "k" "K")
(cons "l" "L")
(cons "m" "M")
(cons "n" "N")
(cons "o" "O")
(cons "p" "P")
(cons "q" "Q")
(cons "r" "R")
(cons "s" "S")
(cons "t" "T")
(cons "u" "U")
(cons "v" "V")
(cons "w" "W")
(cons "x" "X")
(cons "y" "Y")
(cons "z" "Z")

   )
 ) 
 (setq
   daichuoi (strlen stsua)
   index    1
   stdich   ""
 )
 (repeat daichuoi
   (setq
     chuht  (substr stsua index 1)
     index  (1+ index)
     chusua
     (cond
       ((assoc chuht tapsua) (cdr (assoc chuht tapsua)))
       (t chuht)
     )
     stdich (strcat stdich chusua)
   )
 )
 stdich
)

 (defun doone(ent / new old tt)
   (setq
     tt (entget ent)
     old (assoc 1 tt)
     new (cons 1 (chuyenfontstr (cdr old)))      
   )
   (if (/= new old)
     (progn
(setq tt (subst new old tt))
(entmod tt)
(entupd ent)
     )
   )
 )

 (setq	taptext	(ssget '((0 . "TEXT"))))
 (sudung doone taptext)

)
(defun sudung (ham ss / sodt index entdt soapp)
 (setq	sodt  (cond
	(ss (sslength ss))
	(t 0)
      )
soapp 0
index 0
 )
 (repeat sodt
   (setq entdt	(ssname ss index)
  index	(1+ index)
   )
   (if	(ham entdt)
     (setq soapp (1+ soapp))
   )
 )
 soapp
)

 

em đã load máy báo thành công nhưng khi đánh lệnh máy không hiểu lệnh t2u là gì? em cho thêm câu lệnh

(defun c:fff () (command "line"))

vào đầu thì máy vẫn sử dụng được lệnh fff chứng tỏ lisp đã load thành công. anh xem lai ho em

  • 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

Hay quá! Lần đầu tiên em thấy đc sự kỳ diệu cùa Lisp. Nghe nói nhiều về Lisp rồi mà giờ mới tận mắt chứng kiến. Các bác còn Lisp nào chuyển qua lại giữa 3 bảng mã Unicode, TCVN và VNI thì cho em xin luôn thể? Cảm ơn các 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
À, em hỏi thêm chút nữa. Lisp này chỉ áp dụng đc với Text thôi phải không bác? Mtext thì không đc thì phải?

co anh n có bảng mã UNICODE tiếng việt không để em chỉnh lại cái lisp theo ý em cái,lis của anh nó convert thành chữ hoa hết cả, em muốn chỉnh cho nó thành chữ thường . Thứ 2 anh có lệnh nâo thêm vào lisp để cho nó có thể xử lí được ca Mtext ko ? em cam on

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 được bài của anh Nguyễn Hoành đổi từ bảng mã VNI và TCVN3 nhưng không có bài nào nói về chuyển từ TCVN3 về UNICODE cả có anh nào có thể giúp em không?( em đã dùng cách chuyển của UNIKEY nhưng cái đó chỉ dùng được với WORD còn CAD lại bị lỗi, em đang dùng cad 2008). đây là file của em em xin cảm ơn trước

http://www.cadviet.com/upfiles/file_1.dwg

em đã đối lisp của anh cho phù hợp hơn ? nhưng chỉ chọn được text anh có thể bổ sung câu lệnh để chọn được luôn mtext kô ??

http://www.cadviet.com/upfiles/NGHIA.lsp

có anh nào bít cách để cho lisp này có thể chọn được cả mtext được không ?? giờ nó chỉ chọn được text. em cam ơn

http://www.cadviet.com/upfiles/NGHIA.lsp

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 đã đối lisp của anh cho phù hợp hơn ? nhưng chỉ chọn được text anh có thể bổ sung câu lệnh để chọn được luôn mtext kô ??

http://www.cadviet.com/upfiles/NGHIA.lsp

có anh nào bít cách để cho lisp này có thể chọn được cả mtext được không ?? giờ nó chỉ chọn được text. em cam ơn

http://www.cadviet.com/upfiles/NGHIA.lsp

có anh nào bít cách để cho lisp này có thể chọn được cả mtext được không ?? giờ nó chỉ chọn được text. em cam ơn

http://www.cadviet.com/upfiles/NGHIA.lsp

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

Thanks các anh Nguyen Hoanh và nghiautc đã gởi các lisp.

Mình không rành lắm về Autolisp, mình đang cần chuyển từ Vni sang Unicode, mình định ghép 2 lisp v2t và t2u không biết có được không?

Tuy nhiên phần mã của ký tự đang không bằng nhau (Vni đang ít hơn Unicode), không biết mình tìm mã bổ sung ở đâu.

Mong các anh giúp.

Thanks all,

Hugo3d

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 cho em xin cái Lisp chuyển từ Unicode sang TCVN được không anh?

Cảm ơn anh trước nha!

Đây bạn: Bài số #2 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

Đây bạn: Bài số #2 nhé

Đây là chuyển từ TCVN3 sang Unicode mà. Anh xem lại đi. Hì hì!

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

Đây là chuyển từ TCVN3 sang Unicode mà. Anh xem lại đi. Hì hì!

Unicode và TCVN3: chuyển text, chuyển file, hay chuyển gì vậy bạn? Bạn có thể nói rõ hơn không?

  • 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

Hì hì.

@fetfet003: anh Hoành ơi cho em xin cái Lisp chuyển từ Unicode sang TCVN được không anh?

Cảm ơn anh trước nha!

@HoangSon614:Đây bạn: Bài số #2 nhé

Nhưng bài số #2 là chuyển từ TCVN3 sang Unicode mà. Hơn nữa em cũng đang cần lisp chuyển bảng mã từ Unicode sang TCVN3

Hề hề. ThankS!

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

Hì hì.

@fetfet003: anh Hoành ơi cho em xin cái Lisp chuyển từ Unicode sang TCVN được không anh?

Cảm ơn anh trước nha!

@HoangSon614:Đây bạn: Bài số #2 nhé

Nhưng bài số #2 là chuyển từ TCVN3 sang Unicode mà. Hơn nữa em cũng đang cần lisp chuyển bảng mã từ Unicode sang TCVN3

Hề hề. ThankS!

Tôi hỏi mà bạn chưa trả lời. Tôi có lisp chuyển qua lại giữa chúng nhưng không biết có đúng y/c của bạn không? Bạn có thể nói rõ?

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

Unicode và TCVN3: chuyển text, chuyển file, hay chuyển gì vậy bạn? Bạn có thể nói rõ hơn không?

Chuyển text anh ơi. Hì hì

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 text anh ơi. Hì hì

Text đó nằm ở đâu?

Lisp của tôi chuyển các string. Các string này được nhập hoặc paste vào dialoge, sau đó chuyển, tạo thành 1 string trong dialoge

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

Hix

Trong CAD bình thường thôi. Một đoạn text được gõ bằng bảng mã Unicode, font Unicode. Bây h em muốn chuyển sang bảng mã TCVN3 để khi chuyển font không bị lỗi font.

Thanks anh!

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 dùng lệnh T2U (TCVN3 to Unicode)

(defun c:t2u (/ taptext)  (defun chuyenfontstr	         (stsua / daichuoi index stdich chuht CHUSUA tAPSUA)                                (setq    tapsua (list(cons "®" "\U+0110")(cons "§" "\U+0110")(cons "µ" "À")(cons "¸" "Á")(cons "¶" "\U+1EA2")(cons "·" "Ã")(cons "¹" "\U+1EA0")(cons "©" "Â")(cons "¢" "Â")(cons "Ç" "\U+1EA6")(cons "Ê" "\U+1EA4")(cons "È" "\U+1EA8")(cons "É" "\U+1EAA")(cons "Ë" "\U+1EAC")(cons "¨" "\U+0102")(cons "¡" "\U+0102")(cons "»" "\U+1EB0")(cons "¾" "\U+1EAE")(cons "¼" "\U+1EB2")(cons "½" "\U+1EB4")(cons "Æ" "\U+1EB6")(cons "Ì" "È")(cons "Ð" "É")(cons "Î" "\U+1EBA")(cons "Ï" "\U+1EBC")(cons "Ñ" "\U+1EB8")(cons "ª" "Ê")(cons "£" "Ê")(cons "Ò" "\U+1EC0")(cons "Õ" "\U+1EBE")(cons "Ó" "\U+1EC2")(cons "Ô" "\U+1EC4")(cons "Ö" "\U+1EC6")(cons "×" "Ì")(cons "Ý" "Í")(cons "Ø" "\U+1EC8")(cons "Ü" "\U+0128")(cons "Þ" "\U+1ECA")(cons "ß" "Ò")(cons "ã" "Ó")(cons "á" "\U+1ECE")(cons "â" "Õ")(cons "ä" "\U+1ECC")(cons "«" "Ô")(cons "¤" "Ô")(cons "å" "\U+1ED2")(cons "è" "\U+1ED0")(cons "æ" "\U+1ED4")(cons "ç" "\U+1ED6")(cons "é" "\U+1ED8")(cons "¬" "\U+01A0")(cons "¥" "\U+01A0")(cons "ê" "\U+1EDC")(cons "í" "\U+1EDA")(cons "ë" "\U+1EDE")(cons "ì" "\U+1EE0")(cons "î" "\U+1EE2")(cons "ï" "Ù")(cons "ó" "Ú")(cons "ñ" "\U+1EE6")(cons "ò" "\U+0168")(cons "ô" "\U+1EE4")(cons "­" "\U+01AF")(cons "¦" "\U+01AF")(cons "õ" "\U+1EEA")(cons "ø" "\U+1EE8")(cons "ö" "\U+1EEC")(cons "÷" "\U+1EEE")(cons "ù" "\U+1EF0")(cons "ú" "\U+1EF2")(cons "ý" "Ý")(cons "û" "\U+1EF6")(cons "ü" "\U+1EF8")(cons "þ" "\U+1EF4")(cons "a" "A")(cons "b" "B")(cons "c" "C")(cons "d" "D")(cons "e" "E")(cons "f" "F")(cons "g" "G")(cons "h" "H")(cons "i" "I")(cons "j" "J")(cons "k" "K")(cons "l" "L")(cons "m" "M")(cons "n" "N")(cons "o" "O")(cons "p" "P")(cons "q" "Q")(cons "r" "R")(cons "s" "S")(cons "t" "T")(cons "u" "U")(cons "v" "V")(cons "w" "W")(cons "x" "X")(cons "y" "Y")(cons "z" "Z")                )  )   (setq    daichuoi (strlen stsua)    index    1    stdich   ""  )  (repeat daichuoi    (setq      chuht  (substr stsua index 1)      index  (1+ index)      chusua         (cond           ((assoc chuht tapsua) (cdr (assoc chuht tapsua)))           (t chuht)         )      stdich (strcat stdich chusua)    )  )  stdich)  (defun doone(ent / new old tt)    (setq      tt (entget ent)      old (assoc 1 tt)      new (cons 1 (chuyenfontstr (cdr old)))          )    (if (/= new old)      (progn	(setq tt (subst new old tt))	(entmod tt)	(entupd ent)      )    )  )   (setq	taptext	(ssget '((0 . "TEXT"))))  (sudung doone taptext) )(defun sudung (ham ss / sodt index entdt soapp)  (setq	sodt  (cond		(ss (sslength ss))		(t 0)      	)	soapp 0	index 0  )  (repeat sodt    (setq entdt	(ssname ss index)  	index	(1+ index)    )    (if	(ham entdt)      (setq soapp (1+ soapp))    )  )  soapp)

bác nguyenhoanh ơi, co thể cho em xin đc mail hoặc nik yahoo của bác đc không, đẻ có gì em ll với bác cho 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

Bạn tìm ứng dụng chuyển đổi của bác Gia_Bach hoặc bác anhcos xem sao

Đã có lisp chuyển đổi từ TCVN3 sang Unicode thì làm ngược lại chắc là được. Hì hì, mỗi tội em chưa biết 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

Đã có lisp chuyển đổi từ TCVN3 sang Unicode thì làm ngược lại chắc là được. Hì hì, mỗi tội em chưa biết làm

Bạn post cái lisp chuyển xuôi lên, xem thử có giúp chuyển ngược cho bạn được không?

  • 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

Chính là cái lisp này nè anh:

http://www.cadviet.c...140_nghia_1.lsp

LIsp này dùng để: Chuyển text trên bản vẽ, từ TCVN3 => UNICODE, và ngược lại, từ UNICODE => TCVN3.

;Doan Van Ha - CADViet.com - Ngay 23/4/2012
;Muc dich: Chuyen Text tren ban ve tu TCVN3 => UNICODE, va nguoc lai, tu UNICODE => TCVN3.
;Font Name theo Style Name duoc chon lam mau.
; "µ Ì ß ï ¸ Ð ã ó ¶ Î á ñ · Ï â ò ¹ Ñ ä ô © ª « ­ Ç Ò å õ Ê Õ è ø È Ó æ ö É Ô ç ÷ Ë Ö é ù ¨ × ¬ ú » Ý ê ý ¾ Ø í û ¼ Ü ë ü ½ Þ ì þ ¨ ® î ¦ ¢ § ¤ ¥ ¡ £"
;----- ChuyÓn tõ TCVN3 => UNICODE
(defun C:HAT2U( / entlst sty)
(princ "\nChon cac Text TCVN3 can chuyen sang UNICODE...")
(setq entlst (vl-remove-if 'listp (mapcar 'cadr (ssnamex (ssget '((0 . "TEXT")))))))
(setq sty (cdr (assoc 7 (entget (car (entsel "\nChon Text de lay Font Unicode mau: "))))))
(foreach ent entlst
 (entmod (subst (cons 1 (TCVN3-Unicode (cdr (assoc 1 (entget ent))))) (assoc 1 (entget ent)) (entget ent)))
 (entmod (subst (cons 7 sty) (assoc 7 (entget ent)) (entget ent))))
(princ))
;----- ChuyÓn tõ UNICODE => TCNN3
(defun C:HAU2T( / entlst sty)
(princ "\nChon cac Text UNICODE can chuyen sang TCVN3...")
(setq entlst (vl-remove-if 'listp (mapcar 'cadr (ssnamex (ssget '((0 . "TEXT")))))))
(setq sty (cdr (assoc 7 (entget (car (entsel "\nChon Text de lay Font TCVN3 mau: "))))))
(foreach ent entlst
 (entmod (subst (cons 1 (Unicode-TCVN3 (HEXA3 (HEXA2 (HEXA1 (cdr (assoc 1 (entget ent)))))))) (assoc 1 (entget ent)) (entget ent)))
 (entmod (subst (cons 7 sty) (assoc 7 (entget ent)) (entget ent))))
(princ))
;----- Hµm bá ký tù ®· thªm "\" tr­íc khi chuyÓn sang TCVN3.
(defun HEXA3(str)
(setq x 1)
(repeat (strlen str)
 (cond ((= "\U+005C" (substr str x 7)) (setq str (vl-string-subst "\\" "\U+005C" str))))
 (setq x (1+ x)))
str)
;----- Hµm chuyÓn 20 ký tù (µ, ó,...) tõ Unicode sang Hexa.
(defun HEXA2(str)
(setq x 1)
(repeat (strlen str)
 (cond ((= (chr 194) (substr str x 1)) (setq str (vl-string-subst "\U+00C2" (substr str x 1) str) x (+ x 6)))
   	((= (chr 202) (substr str x 1)) (setq str (vl-string-subst "\U+00CA" (substr str x 1) str) x (+ x 6)))
   	((= (chr 208) (substr str x 1)) (setq str (vl-string-subst "\U+0110" (substr str x 1) str) x (+ x 6)))
   	((= (chr 212) (substr str x 1)) (setq str (vl-string-subst "\U+00D4" (substr str x 1) str) x (+ x 6)))
   	((= (chr 224) (substr str x 1)) (setq str (vl-string-subst "\U+00E0" (substr str x 1) str) x (+ x 6)))
   	((= (chr 225) (substr str x 1)) (setq str (vl-string-subst "\U+00E1" (substr str x 1) str) x (+ x 6)))
   	((= (chr 226) (substr str x 1)) (setq str (vl-string-subst "\U+00E2" (substr str x 1) str) x (+ x 6)))
   	((= (chr 227) (substr str x 1)) (setq str (vl-string-subst "\U+00E3" (substr str x 1) str) x (+ x 6)))
   	((= (chr 232) (substr str x 1)) (setq str (vl-string-subst "\U+00E8" (substr str x 1) str) x (+ x 6)))
   	((= (chr 233) (substr str x 1)) (setq str (vl-string-subst "\U+00E9" (substr str x 1) str) x (+ x 6)))
   	((= (chr 234) (substr str x 1)) (setq str (vl-string-subst "\U+00EA" (substr str x 1) str) x (+ x 6)))
   	((= (chr 236) (substr str x 1)) (setq str (vl-string-subst "\U+00EC" (substr str x 1) str) x (+ x 6)))
   	((= (chr 237) (substr str x 1)) (setq str (vl-string-subst "\U+00ED" (substr str x 1) str) x (+ x 6)))
   	((= (chr 242) (substr str x 1)) (setq str (vl-string-subst "\U+00F2" (substr str x 1) str) x (+ x 6)))
   	((= (chr 243) (substr str x 1)) (setq str (vl-string-subst "\U+00F3" (substr str x 1) str) x (+ x 6)))
   	((= (chr 244) (substr str x 1)) (setq str (vl-string-subst "\U+00F4" (substr str x 1) str) x (+ x 6)))
   	((= (chr 245) (substr str x 1)) (setq str (vl-string-subst "\U+00F5" (substr str x 1) str) x (+ x 6)))
   	((= (chr 249) (substr str x 1)) (setq str (vl-string-subst "\U+00F9" (substr str x 1) str) x (+ x 6)))
   	((= (chr 250) (substr str x 1)) (setq str (vl-string-subst "\U+00FA" (substr str x 1) str) x (+ x 6)))
   	((= (chr 253) (substr str x 1)) (setq str (vl-string-subst "\U+00FD" (substr str x 1) str) x (+ x 6))))
 (setq x (1+ x)))
str)
;----- Hµm gi÷ nguyªn m· Hexa (kh«ng cho chuyÓn qua Unicode).
(defun HEXA1(str)
(setq x 1 moi "")
(repeat (strlen str)
 (setq kytu7 (substr str x 7))
 (setq x (+ x 1))
 (if (= (substr kytu7 1 3) "\\U+")
  (setq moi (strcat moi (strcat "\U+005C" (substr kytu7 2 7))) x (+ x 6))
  (setq moi (strcat moi (substr kytu7 1 1))))))
;----- ChuyÓn thuËn tõ TCVN --> Unicode.
(defun TCVN3-Unicode (stsua / i stdich chuht chusua)
(TAO_TAPSUA)
(setq i 1 stdich "")
(repeat (strlen stsua)
 (setq chuht (substr stsua i 1)
   	i (1+ i)
   	chusua (cond ((assoc chuht tapsuax) (cdr (assoc chuht tapsuax))) (t chuht))
   	stdich (strcat stdich chusua)))
stdich)
;----- ChuyÓn ng­îc tõ Unicode --> TCVN3.
(defun Unicode-TCVN3 (stsua / i stdich chuht)
(TAO_TAPSUA)
(setq i 1)
(repeat (- (strlen stsua) 6)
 (setq chuht (substr stsua i 7)
   	i (1+ i))
 (cond ((assoc chuht tapsuan)
		(setq stsua (THAY_CONV stsua (car (assoc chuht tapsuan)) (cdr (assoc chuht tapsuan)))))))
(setq stdich stsua))
;----- Hµm con cña chuyÓn ng­îc.
(defun THAY_CONV(str old new / n strpp strtt)
(while (setq n (vl-string-search old str))
 (setq strpp (substr str (+ 1 n (strlen old))))
 (setq strtt (substr str 1 (- (strlen str) (strlen old) (strlen strpp))))
 (setq str (strcat strtt new strpp))))
;----- T¹o 2 danh s¸ch c¬ së ®Ó chuyÓn thuËn vµ ng­îc.
(defun TAO_TAPSUA()
(setq tapsuan '() tapsuax
 (list (cons "µ" "\U+00E0") (cons "Ì" "\U+00E8") (cons "ß" "\U+00F2") (cons "ï" "\U+00F9")
   (cons "¸" "\U+00E1") (cons "Ð" "\U+00E9") (cons "ã" "\U+00F3") (cons "ó" "\U+00FA")
   (cons "¶" "\U+1EA3") (cons "Î" "\U+1EBB") (cons "á" "\U+1ECF") (cons "ñ" "\U+1EE7")
   (cons "·" "\U+00E3") (cons "Ï" "\U+1EBD") (cons "â" "\U+00F5") (cons "ò" "\U+0169")
   (cons "¹" "\U+1EA1") (cons "Ñ" "\U+1EB9") (cons "ä" "\U+1ECD") (cons "ô" "\U+1EE5")
   (cons "©" "\U+00E2") (cons "ª" "\U+00EA") (cons "«" "\U+00F4") (cons "­" "\U+01B0")
   (cons "Ç" "\U+1EA7") (cons "Ò" "\U+1EC1") (cons "å" "\U+1ED3") (cons "õ" "\U+1EEB")
   (cons "Ê" "\U+1EA5") (cons "Õ" "\U+1EBF") (cons "è" "\U+1ED1") (cons "ø" "\U+1EE9")
   (cons "È" "\U+1EA9") (cons "Ó" "\U+1EC3") (cons "æ" "\U+1ED5") (cons "ö" "\U+1EED")
   (cons "É" "\U+1EAB") (cons "Ô" "\U+1EC5") (cons "ç" "\U+1ED7") (cons "÷" "\U+1EEF")
   (cons "Ë" "\U+1EAD") (cons "Ö" "\U+1EC7") (cons "é" "\U+1ED9") (cons "ù" "\U+1EF1")
   (cons "¨" "\U+0103") (cons "×" "\U+00EC") (cons "¬" "\U+01A1") (cons "ú" "\U+1EF3")
   (cons "»" "\U+1EB1") (cons "Ý" "\U+00ED") (cons "ê" "\U+1EDD") (cons "ý" "\U+00FD")
   (cons "¾" "\U+1EAF") (cons "Ø" "\U+1EC9") (cons "í" "\U+1EDB") (cons "û" "\U+1EF7")
   (cons "¼" "\U+1EB3") (cons "Ü" "\U+0129") (cons "ë" "\U+1EDF") (cons "ü" "\U+1EF9")
   (cons "½" "\U+1EB5") (cons "Þ" "\U+1ECB") (cons "ì" "\U+1EE1") (cons "þ" "\U+1EF5")
   (cons "Æ" "\U+1EB7") (cons "®" "\U+0111") (cons "î" "\U+1EE3") (cons "¦" "\U+01AF")
   (cons "¢" "\U+00C2") (cons "§" "\U+0110") (cons "¤" "\U+00D4") (cons "¥" "\U+01A0")
   (cons "¡" "\U+0102") (cons "£" "\U+00CA")))
(foreach n tapsuax (setq tapsuan (reverse (cons (cons (cdr n) (car n)) (reverse tapsuan))))))
(prompt "\nL\U+1EC7nh ConVert TCVN3 to UNICODE: HAT2U")
(prompt "\nL\U+1EC7nh ConVert UNICODE to TCVN3: HAU2T")

  • Vote tăng 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

LIsp này dùng để: Chuyển text trên bản vẽ, từ TCVN3 => UNICODE, và ngược lại, từ UNICODE => TCVN3.

Không ổn rồi anh Hà ơi.

Em dùng cái lisp Nghia.lsp kia thấy ổn nhưng có điều không đổi ngược lại được từ Unicode sang TCVN3

Còn lisp của anh gửi trên đủ 2 chiều nhưng bị lỗi. Ví dụ như đoạn text của em là thế này: "đá hộc không phân loại t=50cm" gõ bằng bảng mã Unicode, em muốn chuyển sang TCVN3. Sau khi dùng lisp của anh thì nó ra thế này:

89140_untitled_2.jpg

Anh xem lại giúp em vớ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

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

×