Chuyển đến nội dung
Diễn đàn CADViet
Doan Van Ha

Tiếng Việt trong hộp thoại Acad

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

Thưa các Bác!

Từ Acad2007, Autodesk đã bổ sung mã Unicode vào. Do đó, có thể đưa tiếng Việt lên hộp thoại.

Việc đưa tiếng Việt lên trên Acad thể hiện ở 2 vị trí:

1. Ở dòng lệnh command. Việc này thì không khó (tôi đã làm được).

2. Ở các hộp thoại. Việc này cũng không khó (và tôi cũng đã làm được),nhưng tốn rất nhiều thời gian,

vì để hiển thị tiếng Việt thì phải chuyển các ký tự đặc biệt này về mã ANSI tương ứng.

VD: chữ "à" thì phải ghi là "U+00E0", chữ "ạ" thì phải ghi là "U+1EA1"... Có đến 134 chữ như thế.

Vậy, có cách nào để chuyển các chữ "à", "ạ"... kia sang "U+00E0", "U+1EA1"... một cách nhanh nhất?

Vì nếu điều này là hiện thực thì khi đó ta cứ mạnh dạn viết "à", "ạ"... vô tư trong lisp rồi chuyển

cái rụp là OK.

Tôi nghĩ rất nhiều người đang cần đến nó và đang cần sự giúp đỡ của các Bác.

Sẵn đây, tặng CADViet "134 thứ rắc rối rườm rà" luôn để dễ nghiên cứu.

http://www.cadviet.com/upfiles/3/test.txt

  • 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

các bạn có thể dùng cái này: cho cả thông báo ở command và hộp thoại

(lisp này triển khai từ lisp convert của bác Hoành đã post trong topic Viết lisp theo yêu cầu fân 1)

;;;---------------Chuyen Font TCVN3 sang Unicode---------------------------
(defun TCVN3-Unicode (stsua / index stdich chuht chusua tapsua)
 (if (= (getvar "acadver") "16.1s (LMS Tech)") stsua (progn
 (setq tapsua
	 (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")))
 (setq index 1 stdich "")
 (repeat (strlen stsua)
   (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)))

Test : (alert (TCVN3-UNICODE "Chào mừng đến với cadviet.com"))

  • Vote tăng 3

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òn đây là code chuyển về chữ hoa. cái này mình hay dùng trong tile hộp thoại.

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

Lưu ý: do mình chỉ dùng cad2005 acadver = 16.1s (LMS Tech) và 2010 nên viết điều kiện chuyển mã như trên. các bạn cần chính sửa lại cho phù hợp nhu cầu

  • 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

Lips hay quá các bạn cho mình hỏi download về rồi thì sử dụng như thế nào vậy? :blink:

Thưa các Bác!

Vấn đề ở đây không phải là chuyện Bác Hoành viết cách đây bao lâu và viết như thế nào.

Vấn đề ở đây là thế này: chúng ta muốn viết một chương trình Lisp (có thể sử dụng hộp thoại và dòng lệnh command), và chúng ta muốn:

1. Nếu có bất cứ cái gì xuất hiện trên Cad (do phần mềm của mình sinh ra) thì phải có ngôn ngữ là tiếng Việt.

2. Do đó, chưa thấy có cách gì ưu việt cho đến giờ.

3. Cái của Bác Hoành hay nhưng chưa phải là cái topic mong muốn, là: nói tóm lại, làm sao để có 1 lisp mà chúng ta cứ a,á, â, ... vô tư, Nhưng khi in ra trên Cad vẫn là a, á, â...

  • 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

Thưa các Bác!

Vấn đề ở đây không phải là chuyện Bác Hoành viết cách đây bao lâu và viết như thế nào.

Vấn đề ở đây là thế này: chúng ta muốn viết một chương trình Lisp (có thể sử dụng hộp thoại và dòng lệnh command), và chúng ta muốn:

1. Nếu có bất cứ cái gì xuất hiện trên Cad (do phần mềm của mình sinh ra) thì phải có ngôn ngữ là tiếng Việt.

2. Do đó, chưa thấy có cách gì ưu việt cho đến giờ.

3. Cái của Bác Hoành hay nhưng chưa phải là cái topic mong muốn, là: nói tóm lại, làm sao để có 1 lisp mà chúng ta cứ a,á, â, ... vô tư, Nhưng khi in ra trên Cad vẫn là a, á, â...

Nói thật là tôi thấy nản với bác quá! đêck hiểu ý bác là sao luôn. cái này không thỏa mãn bác thì cái nào nữa đây trời!

sử dụng cái hàm con trên (fải nói lại với bác là nó chỉ chạy trên các bản cad có hỗ trợ Unicode) thì bác muốn viết tiếng việt thế nào chả đuợc.

các buớc thế này này:

- chuyển cái font chữ hiển thị của trình soạn thảo lisp của bác về TCVN3. font .vnarial chẳng hạn. Notepad thì đơn giản rồi, còn Vlide thì vào menu->tool->window atributes -> font.

- giờ soạn lisp thì cứ vô tư mà gõ TCVN3. với các chuỗi trong code thì sử dụng (TCVN3-unicode "Nội dung chuôi")

Edit: thêm cho bác tấm hình trình soạn thảo của tôi. hi vọng đúng ý bác

tcvn3unicode.jpg

còn đây là notepad

tcvn3unicode1.jpg

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

Nói thật là tôi thấy nản với bác quá! đêck hiểu ý bác là sao luôn. cái này không thỏa mãn bác thì cái nào nữa đây trời!

sử dụng cái hàm con trên (fải nói lại với bác là nó chỉ chạy trên các bản cad có hỗ trợ Unicode) thì bác muốn viết tiếng việt thế nào chả đuợc.

các buớc thế này này:

- chuyển cái font chữ hiển thị của trình soạn thảo lisp của bác về TCVN3. font .vnarial chẳng hạn. Notepad thì đơn giản rồi, còn Vlide thì vào menu->tool->window atributes -> font.

- giờ soạn lisp thì cứ vô tư mà gõ TCVN3. với các chuỗi trong code thì sử dụng (TCVN3-unicode "Nội dung chuôi")

Edit: thêm cho bác tấm hình trình soạn thảo của tôi. hi vọng đúng ý bác

tcvn3unicode.jpg

còn đây là notepad

tcvn3unicode1.jpg

Bác giỏi, và Bác nhiệt tình. Nhưng sao Bác cứ hằn học với một người khi mà họ chưa hiểu nhỉ.

Như Bác nói, tôi copy và paste dòng (alert (TCVN3-unicode "Tôi chán Bác Thaistreetz lắm.")) vào command thì 99% là đúng ý Bác.

Còn 1% này thì sao hè: nếu Bác "vô tình" đặt font trong window không phải là TCVN3 thì nó ra cái gì?

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 giỏi, và Bác nhiệt tình. Nhưng sao Bác cứ hằn học với một người khi mà họ chưa hiểu nhỉ.

Như Bác nói, tôi copy và paste dòng (alert (TCVN3-unicode "Tôi chán Bác Thaistreetz lắm.")) vào command thì 99% là đúng ý Bác.

Còn 1% này thì sao hè: nếu Bác "vô tình" đặt font trong window không phải là TCVN3 thì nó ra cái gì?

Xin lỗi nếu bác cảm thấy lời tôi nói có "hằn học". Bởi tôi đã không thể hiểu đuợc bác thực sự muốn cái gì khi mọi thứ đã quá rõ ràng như vậy

Bác chuyển 1 chuỗi từ mã TCVN3 sang mã unicode thì bác phải thừa hiểu chuỗi nguồn của bác phải được gõ theo mã TCVN3 và để nó hiển thị được thì bác phải chỉnh font. cái này làm word với excel mãi rồi thì chắc bác fải thừa hiều. vậy mà bản thân bác chưa chịu suy nghĩ đã có thể kết luận thứ người khác cung cấp cho bác là đồ bỏ như vậy. Tôi không giỏi, cái này cũng là do tôi mót được của người khác. tôi chỉ chịu khó suy nghĩ tìm câu trả lời cho mỗi câu hỏi trước khi tôi muốn nhờ người khác thôi.

PS: bác có vẻ là người nhạy cảm. một lần nữa xin lỗi bác :huh:

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

Xin lỗi nếu bác cảm thấy lời tôi nói có "hằn học". Bởi tôi đã không thể hiểu đuợc bác thực sự muốn cái gì khi mọi thứ đã quá rõ ràng như vậy

Bác chuyển 1 chuỗi từ mã TCVN3 sang mã unicode thì bác phải thừa hiểu chuỗi nguồn của bác phải được gõ theo mã TCVN3 và để nó hiển thị được thì bác phải chỉnh font. cái này làm word với excel mãi rồi thì chắc bác fải thừa hiều. vậy mà bản thân bác chưa chịu suy nghĩ đã có thể kết luận thứ người khác cung cấp cho bác là đồ bỏ như vậy. Tôi không giỏi, cái này cũng là do tôi mót được của người khác. tôi chỉ chịu khó suy nghĩ tìm câu trả lời cho mỗi câu hỏi trước khi tôi muốn nhờ người khác thôi.

Nó là thế này: dòng trong "..." tuy luôn được viết trong TCVN3, đọc trong file rất rõ ràng, nhưng không hẳn lúc nào in ra màn hình cũng là tiếng Việt. Vì nó còn phụ thuộc thứ khác nữa đấy

(alert (TCVN3-unicode "Tôi chán Bác Thaistreetz 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

Nó là thế này: dòng trong "..." tuy luôn được viết trong TCVN3, đọc trong file rất rõ ràng, nhưng không hẳn lúc nào in ra màn hình cũng là tiếng Việt. Vì nó còn phụ thuộc thứ khác nữa đấy

(alert (TCVN3-unicode "Tôi chán Bác Thaistreetz lắm."))

Bởi vậy tôi mới nói. cần fải chịu khó suy nghĩ câu trả lời cho mỗi câu hỏi. vì sao lại thế? khắc phục thế nào? có thể làm được không?...

Câu trả lời cho fần gạch chân:

Vì sao lại thế? - có thể do nguồn không fải tcvn3 hoặc có thể do font hiển thị kết quả không fải Unicode

Khắc fục thế nào? - cần kiểm tra lại nguồn hoặc đổi font hiển thị kết quả.

Có thể làm được không? - Làm được, làm cái này mãi rồi.

Tôi tin là những câu trả lời trên hoàn toàn nằm trong khả năng của bác. không lẽ nào bác lại chối bỏ điều này. :rolleyes:

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

......

Edit: thêm cho bác tấm hình trình soạn thảo của tôi. hi vọng đúng ý bác

tcvn3unicode.jpg

còn đây là notepad

tcvn3unicode1.jpg

Cái này áp dụng khi viết trực tiếp DCL ngay trong Lisp. Còn nếu viết DCL riêng, chắc có lẽ sử dụng cách khác thôi bạn ạ.

Với mình, thì mình viết DCL riêng ra để có thể tận dụng các tính năng hỗ trợ viết DCL của Víual Lisp Editor. Đương nhiên, là mình vẫn biết nhược điểm của nó, nhưng không thể nói nó không có ưu điểm được. Với cách viết code như trên rất hay, tuy nhiên nó sẽ làm giảm tốc độ của chương trình vì nó phải duyệt qua toàn bộ String trong DCL mà bạn viết trực tiếp trên Lisp.

Mình nghĩ ý của chủ topic chính là ý nà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

Bởi vậy tôi mới nói. cần fải chịu khó suy nghĩ câu trả lời cho mỗi câu hỏi. vì sao lại thế? khắc phục thế nào? có thể làm được không?...

Câu trả lời cho fần gạch chân:

Vì sao lại thế? - có thể do nguồn không fải tcvn3 hoặc có thể do font hiển thị kết quả không fải Unicode

Khắc fục thế nào? - cần kiểm tra lại nguồn hoặc đổi font hiển thị kết quả.

Có thể làm được không? - Làm được, làm cái này mãi rồi.

Tôi tin là những câu trả lời trên hoàn toàn nằm trong khả năng của bác. không lẽ nào bác lại chối bỏ điều này. :rolleyes:

Vì sao lại thế? - có thể do nguồn không fải tcvn3 hoặc có thể do font hiển thị kết quả không fải Unicode

Đâu đến nổi tệ hơn vợ thằng Đậu vậy Bác!

Nói chi cho xa. Bác thử sửa hàm "alert" thành "princ" trong dòng test thì xác suất ra tiếng Việt chỉ là... 7.69% thôi,

còn 92,31% là ra tiếng... Campuchia đấy.

Có lẽ, lát nữa đây tôi sẽ tổng kết vấn đề này để Bác thấy, và post lên cho mọi người dùng.

P/S: tất cả phần mềm của tôi đều hiển thị tiếng Việt cách đây 6 năm (không dùng cái của bác Hoành). Tôi cũng viết bằng TCVN3, dùng thêm một phần mềm nhỏ dịch ra tiếng Việt, nhưng vì mới đây phát hiện thằng Vista không chơi được nên không post lên CADViet cho mọi người dùng. Thấy từ Cad2007 có Unicode nên muốn giải quyết vấn đề triệt để luô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

....

3. Cái của Bác Hoành hay nhưng chưa phải là cái topic mong muốn, là: nói tóm lại, làm sao để có 1 lisp mà chúng ta cứ a,á, â, ... vô tư, Nhưng khi in ra trên Cad vẫn là a, á, â...

Cái này cũng không đúng ý với bạn rồi

 

(alert (strcat "Vì sao l\U+1EA1i th\U+1EBF? - có th\U+1EC3 do ngu\U+1ED3n không f\U+1EA3i tcvn3 ho\U+1EB7c có th\U+1EC3 do font hi\U+1EC3n th\U+1ECB k\U+1EBFt qu\U+1EA3 không f\U+1EA3i Unicode

\nÐâu \U+0111\U+1EBFn n\U+1ED5i t\U+1EC7 h\U+01A1n v\U+1EE3 th\U+1EB1ng Ð\U+1EADu v\U+1EADy Bác!

\nNói chi cho xa. Bác th\U+1EED s\U+1EEDa hàm \"alert\" thành \"princ\" trong dòng test thì xác su\U+1EA5t ra ti\U+1EBFng Vi\U+1EC7t ch\U+1EC9 là... 7.69% thôi,

\ncòn 92,31% là ra ti\U+1EBFng... Campuchia \U+0111\U+1EA5y.

\nCó l\U+1EBD, lát n\U+1EEFa \U+0111ây tôi s\U+1EBD t\U+1ED5ng k\U+1EBFt v\U+1EA5n \U+0111\U+1EC1 này \U+0111\U+1EC3 Bác th\U+1EA5y, và post lên cho m\U+1ECDi ng\U+01B0\U+1EDDi dùng.

\nP/S: t\U+1EA5t c\U+1EA3 ph\U+1EA7n m\U+1EC1m c\U+1EE7a tôi \U+0111\U+1EC1u hi\U+1EC3n th\U+1ECB ti\U+1EBFng Vi\U+1EC7t cách \U+0111ây 6 n\U+0103m (không dùng cái c\U+1EE7a bác Hoành). Tôi c\U+0169ng vi\U+1EBFt

\nb\U+1EB1ng TCVN3, dùng thêm m\U+1ED9t ph\U+1EA7n m\U+1EC1m nh\U+1ECF d\U+1ECBch ra ti\U+1EBFng Vi\U+1EC7t, nh\U+01B0ng vì m\U+1EDBi \U+0111ây phát hi\U+1EC7n th\U+1EB1ng Vista không ch\U+01A1i \U+0111\U+01B0\U+1EE3c

\nnên không post lên CADViet cho m\U+1ECDi ng\U+1EDDi dùng. Th\U+1EA5y t\U+1EEB Cad2007 có Unicode nên mu\U+1ED1n gi\U+1EA3i quy\U+1EBFt v\U+1EA5n \U+0111 \U+1EC1 tri\U+1EC7t \U+0111\U+1EC3 luô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

Cái này áp dụng khi viết trực tiếp DCL ngay trong Lisp. Còn nếu viết DCL riêng, chắc có lẽ sử dụng cách khác thôi bạn ạ.

Với mình, thì mình viết DCL riêng ra để có thể tận dụng các tính năng hỗ trợ viết DCL của Víual Lisp Editor. Đương nhiên, là mình vẫn biết nhược điểm của nó, nhưng không thể nói nó không có ưu điểm được. Với cách viết code như trên rất hay, tuy nhiên nó sẽ làm giảm tốc độ của chương trình vì nó phải duyệt qua toàn bộ String trong DCL mà bạn viết trực tiếp trên Lisp.

Mình nghĩ ý của chủ topic chính là ý này

Thực ra khi viết code DCL em cũng viết riêng, chỉ đến khi hoàn thiện chương trình thì em mới cho vào chung với file lsp như thế này cho gọn, đồng thời dễ quản lý cũng như chỉnh sửa nâng cấp sau này bác ạ. Một project chỉ cần 1-2 chục lệnh có sử dụng DCL mà tách riêng chúng ra với code điều khiển thì quản lý đã mệt mỏi lắm rồi.

Về vấn đề tốc độ, em cũng rất quan tâm đến vấn đề này khi viết các chương trình lớn lớn 1 chút. về lý thuyết thì đúng như bác nhận xét,tuy nhiên khi sử dụng cách này em không cảm nhận được sự khác biệt nên chấp nhận nó.

@Bác Ha: về vấn đề tiếng việt trong hộp thoại thì từ thời cad14 người ta đã làm rồi. vấn đề là nhiều người không muốn sử dụng nó vì nó ảnh hưởng đến các chương trình khác.

Nói chi cho xa. Bác thử sửa hàm "alert" thành "princ" trong dòng test thì xác suất ra tiếng Việt chỉ là... 7.69% thôi

Với nhận xét này của bác thì tôi có thể khẳng định được bác chưa hiểu được cách làm rồi. bản thân tôi cũng đang thắc mắc rằng "tại sao bác lại không hiểu?"

bác có biết diễn đàn này hay bất kỳ diễn đàn nào khác trên net đều sử dụng unicode không? hình như bác đã copy luôn cả cái dòng test của tôi rồi cứ thế fệt vào cad thì fải. như vậy nguyên nhận hiển thị sai kết quả là do đâu chắc bác tự trả lời được rồi.

Edit: sau khi đọc lại 1 hồi nữa, tôi thấy có thể là bác chưa chỉnh font hiển thị các menu và hộp thoại của window về Unicode. có lẽ nào lại 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

Cái này cũng không đúng ý với bạn rồi

 

(alert (strcat "Vì sao l\U+1EA1i th\U+1EBF? - có th\U+1EC3 do ngu\U+1ED3n không f\U+1EA3i tcvn3 ho\U+1EB7c có th\U+1EC3 do font hi\U+1EC3n th\U+1ECB k\U+1EBFt qu\U+1EA3 không f\U+1EA3i Unicode

\nÐâu \U+0111\U+1EBFn n\U+1ED5i t\U+1EC7 h\U+01A1n v\U+1EE3 th\U+1EB1ng Ð\U+1EADu v\U+1EADy Bác!

\nNói chi cho xa. Bác th\U+1EED s\U+1EEDa hàm \"alert\" thành \"princ\" trong dòng test thì xác su\U+1EA5t ra ti\U+1EBFng Vi\U+1EC7t ch\U+1EC9 là... 7.69% thôi,

\ncòn 92,31% là ra ti\U+1EBFng... Campuchia \U+0111\U+1EA5y.

\nCó l\U+1EBD, lát n\U+1EEFa \U+0111ây tôi s\U+1EBD t\U+1ED5ng k\U+1EBFt v\U+1EA5n \U+0111\U+1EC1 này \U+0111\U+1EC3 Bác th\U+1EA5y, và post lên cho m\U+1ECDi ng\U+01B0\U+1EDDi dùng.

\nP/S: t\U+1EA5t c\U+1EA3 ph\U+1EA7n m\U+1EC1m c\U+1EE7a tôi \U+0111\U+1EC1u hi\U+1EC3n th\U+1ECB ti\U+1EBFng Vi\U+1EC7t cách \U+0111ây 6 n\U+0103m (không dùng cái c\U+1EE7a bác Hoành). Tôi c\U+0169ng vi\U+1EBFt

\nb\U+1EB1ng TCVN3, dùng thêm m\U+1ED9t ph\U+1EA7n m\U+1EC1m nh\U+1ECF d\U+1ECBch ra ti\U+1EBFng Vi\U+1EC7t, nh\U+01B0ng vì m\U+1EDBi \U+0111ây phát hi\U+1EC7n th\U+1EB1ng Vista không ch\U+01A1i \U+0111\U+01B0\U+1EE3c

\nnên không post lên CADViet cho m\U+1ECDi ng\U+1EDDi dùng. Th\U+1EA5y t\U+1EEB Cad2007 có Unicode nên mu\U+1ED1n gi\U+1EA3i quy\U+1EBFt v\U+1EA5n \U+0111 \U+1EC1 tri\U+1EC7t \U+0111\U+1EC3 luôn.

\n

"))

Bác Tuệ "siêng" thế!

Chính xác thì cái của Bác Hoành là một hàm chuyển rất tốt. Nhưng còn vài vấn đề phải bổ sung nữa mới hy vọng có tiếng Việt triệt để đươc. Chẳng hạn:

1. Bác thay hàm alert bằng hàm princ thì nó có ra tiếng Việt không? (mà tiếng Việt ở dòng command cũng cần không kém ở dialog).

2. Dù dùng hàm alert đi chăng nữa thì cũng chưa chắc ra tiếng Việt Bác à. Với code của Bác, dán vào command, nhưng tôi có thể cho ra tiếng Campuchia đó nghe.

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

Thực ra khi viết code DCL em cũng viết riêng, chỉ đến khi hoàn thiện chương trình thì em mới cho vào chung với file lsp như thế này cho gọn, đồng thời dễ quản lý cũng như chỉnh sửa nâng cấp sau này bác ạ. Một project chỉ cần 1-2 chục lệnh có sử dụng DCL mà tách riêng chúng ra với code điều khiển thì quản lý đã mệt mỏi lắm rồi.

Về vấn đề tốc độ, em cũng rất quan tâm đến vấn đề này khi viết các chương trình lớn lớn 1 chút. về lý thuyết thì đúng như bác nhận xét,tuy nhiên khi sử dụng cách này em không cảm nhận được sự khác biệt nên chấp nhận nó.

@Bác Ha: về vấn đề tiếng việt trong hộp thoại thì từ thời cad14 người ta đã làm rồi. vấn đề là nhiều người không muốn sử dụng nó vì nó ảnh hưởng đến các chương trình khác.

 

Với nhận xét này của bác thì tôi có thể khẳng định được bác chưa hiểu được cách làm rồi. bản thân tôi cũng đang thắc mắc rằng "tại sao bác lại không hiểu?"

bác có biết diễn đàn này hay bất kỳ diễn đàn nào khác trên net đều sử dụng unicode không? hình như bác đã copy luôn cả cái dòng test của tôi rồi cứ thế fệt vào cad thì fải. như vậy nguyên nhận hiển thị sai kết quả là do đâu chắc bác tự trả lời được rồi.

Edit: sau khi đọc lại 1 hồi nữa, tôi thấy có thể là bác chưa chỉnh font hiển thị các menu và hộp thoại của window về Unicode. có lẽ nào lại vậy?

1. Có thể cho nó hiện tiếng Việt viết bằng VNI lên hộp thoại cũng được luôn, chứ không chỉ Unicode. Sửa font trong Windows thì chắc không đến nổi như Bác nghĩ đâu.

2. Còn in dòng tiếng Việt từ command bằng hàm princ thì sao 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

mệt nhỉ. thôi để mình gắp luôn cho bác vậy.

yêu cầu:

- chỉnh tất cả các font dùng để hiển thị giao diện của window về mặc đinh là unicode. nếu bác chưa biết thì làm thế này: từ màn hình desktop vào properties và thẻ appearance -> advance.

- vào autocad, bác kiểm tra lại xem font hiển thị ở command của bác gì bằng cách vào option -> display -> font. bác có thể đặt font có tên Courier New làm font hiển thị, đây là 1 font unicode.

OK, giờ bác load file này vào rồi gõ lệnh df sau đó xem kết quả ở hộp thoại và duới dòng command. Nếu đến nước này rồi mà vẫn chưa hiển thị được thì có thể do bác đang dùng bản cad hơi đặc biệt nằm ngoài khả năng của mình.

Đây là kết quả của mình

iiiiiiiiiii.jpg

 

về vấn đề sử dụng bảng mã khác: Có thể dùng VNI hay TCVN3. fải rồi, cái đó thì ai chả biết, đâu fải chờ bác nói mọi người mới biết. Nhưng vì sao nguời ta không muốn dùng TCVN3 hay VNI hay bất kỳ bảng mã tiếng việt nào khác ngoài Unicode cho hộp thoại? bởi khi đó buộc fải chỉnh font hệ thống của cả hệ điều hành. việc này vô tính lại làm những chuơng trình khác sử dụng tiếng việt unicode không hiển thị đuợc, đuợc cái nọ thì mất cái kia. chính bản thân bác cũng đã gặp vấn đề với nó khi mà vista không cho phép nguời dùng thay đổi font hệ thống.

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ệt nhỉ. thôi để mình gắp luôn cho bác vậy.

yêu cầu: chỉnh tất cả các font dùng để hiển thị giao diện của window về mặc đinh là unicode. nếu bác chưa biết thì làm thế này: từ màn hình desktop vào properties và thẻ appearance -> advance.

 

vào autocad, bác kiểm tra lại xem font hiển thị ở command của bác gì bằng cách vào option -> display -> font. bác có thể đặt font có tên Courier New làm font hiển thị, đây là 1 font unicode.

OK, giờ bác load file này vào rồi gõ lệnh df sau đó xem kết quả ở hộp thoại và duới dòng command.

 

Có thể dùng VNI hay TCVN3. fải rồi, cái đó thì ai chả biết rồi, đâu fải chờ bác nói mọi người mới biết. Nhưng vì sao nguời ta không muốn dùng TCVN3 hay VNI hay bất kỳ bảng mã tiếng việt nào khác ngoài Unicode cho hộp thoại? bởi khi đó buộc fải chỉnh font hệ thống của cả hệ điều hành. việc này vô tính lại làm những chuơng trình khác sử dụng tiếng việt unicode không hiển thị đuợc, đuợc cái nọ thì mất cái kia. chính bản thân bác cũng đã gặp vấn đề với nó khi mà vista không cho phép nguời dùng thay đổi font hệ thống.

Tôi cũng mệt luôn. DF thì dialog là Việt, còn command vẫn là Campuchia.

Và, cái chính là chỉ có duy nhất font Courier New mới cho ra tiếng Việt thôi. Có mấy font Unicode trong đó nhưng không hiểu sao chỉ có Courier New. Bây giờ Bác mới thật sự nói được cái điều ai cũng cần. Bác làm như khi cài Cad thì ai cũng biết cách để chuyển nó về Courier New trong số 13 font..

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 cũng mệt luôn. DF thì dialog là Việt, còn command vẫn là Campuchia.

Và, cái chính là chỉ có duy nhất font Courier New mới cho ra tiếng Việt thôi. Có mấy font Unicode trong đó nhưng không hiểu sao chỉ có Courier New. Bây giờ Bác mới thật sự nói được cái điều ai cũng cần. Bác làm như khi cài Cad thì ai cũng biết cách để chuyển nó về Courier New trong số 13 font.

---

Xin kết thúc phần tranh luận với Bác ThaiStreetz.

---

Túm lại. Với các Bác đã sử dụng rành tiếng Việt trong hộp thoại thì có thể không quan tâm đến cái này. Nhưng có lẽ vẫn còn nhiều người chưa đưa tiếng Việt vào hộp thoại được. Tôi xin tổng hợp lại trên cơ sở chất xám của nhiều Bác trên CADViet, gồm các bước như sau:

1. Phải sử dụng Cad từ 2007 trở về sau.

2. Trong Window: phải chuyển font về 1 font Unicode nào đó.

3. Trong Cad: phải chuyển font của dòng command về "Courier New".

(có mấy font Unicode trong này nhưng chưa hiểu vì sao chỉ được 1 thằng).

4. Tải file chuyển font của Bác Hoành về trong chương trình của mình (file cadvietlisp.lsp ở trong topic này).

5. Soạn thảo các file lisp bằng mã TCVN3-ABC. Trong các file này dòng nào muốn hiển thị tiếng Việt ở dialog hoặc command thì dùng hàm chuyển đổi

(TCVN3-Unicode "Dòng tiếng Việt").

Chúc mọi người vui lễ Giỗ tổ Hùng Vương!

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 cũng mệt luôn. DF thì dialog là Việt, còn command vẫn là Campuchia.

Và, cái chính là chỉ có duy nhất font Courier New mới cho ra tiếng Việt thôi. Có mấy font Unicode trong đó nhưng không hiểu sao chỉ có Courier New. Bây giờ Bác mới thật sự nói được cái điều ai cũng cần. Bác làm như khi cài Cad thì ai cũng biết cách để chuyển nó về Courier New trong số 13 font.

Mấy font kia không fải Unicode. mặc định winxp chỉ cung cấp 1 vài font unicode gồm: arial, time new roman, tahoma, Courier... Courier New luôn là font mặc định của cad ở command trừ khi bác chỉnh nó để chạy với bảng mã khác. giờ bác sài unicode mà không chỉnh lại, mình đã nói rõ rằng cần kiểm tra mã nguồn hoặc mã hiển thị của kết quả rồi còn gì.

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ấy font kia không fải Unicode. mặc định winxp chỉ cung cấp 1 vài font unicode gồm: arial, time new roman, tahoma, Courier... Courier New luôn là font mặc định của cad ở command trừ khi bác chỉnh nó để chạy với bảng mã khác. giờ bác sài unicode mà không chỉnh lại, mình đã nói rõ rằng cần kiểm tra mã nguồn hoặc mã hiển thị của kết quả rồi còn gì.

Bác à!

1. Khi dùng Cad có rất nhiều người "vọc" đủ thứ trên đó. Nên nếu nghĩ là nó mặc định rồi "quên" nó luôn thì... nguy.

2. Hình như có 1 số font trong display là Unicode? Bởi vì dùng các font đó mà đánh trong word bằng unicode thì thấy nó ra tiếng Việt.

Túm lại, không vấn đề gì lớn. Chúc Bác vui.

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 Tuệ "siêng" thế!

Chính xác thì cái của Bác Hoành là một hàm chuyển rất tốt. Nhưng còn vài vấn đề phải bổ sung nữa mới hy vọng có tiếng Việt triệt để đươc. Chẳng hạn:

1. Bác thay hàm alert bằng hàm princ thì nó có ra tiếng Việt không? (mà tiếng Việt ở dòng command cũng cần không kém ở dialog).

2. Dù dùng hàm alert đi chăng nữa thì cũng chưa chắc ra tiếng Việt Bác à. Với code của Bác, dán vào command, nhưng tôi có thể cho ra tiếng Campuchia đó nghe.

Ơ, cái này mình ra tiếng Việt mà bạn?

(alert (strcat "Vì sao l\U+1EA1i th\U+1EBF? - có th\U+1EC3 do ngu\U+1ED3n không f\U+1EA3i tcvn3 ho\U+1EB7c có th\U+1EC3 do font hi\U+1EC3n th\U+1ECB k\U+1EBFt qu\U+1EA3 không f\U+1EA3i Unicode

\nÐâu \U+0111\U+1EBFn n\U+1ED5i t\U+1EC7 h\U+01A1n v\U+1EE3 th\U+1EB1ng Ð\U+1EADu v\U+1EADy Bác!

\nNói chi cho xa. Bác th\U+1EED s\U+1EEDa hàm \"alert\" thành \"princ\" trong dòng test thì xác su\U+1EA5t ra ti\U+1EBFng Vi\U+1EC7t ch\U+1EC9 là... 7.69% thôi,

\ncòn 92,31% là ra ti\U+1EBFng... Campuchia \U+0111\U+1EA5y.

\nCó l\U+1EBD, lát n\U+1EEFa \U+0111ây tôi s\U+1EBD t\U+1ED5ng k\U+1EBFt v\U+1EA5n \U+0111\U+1EC1 này \U+0111\U+1EC3 Bác th\U+1EA5y, và post lên cho m\U+1ECDi ng\U+01B0\U+1EDDi dùng.

\nP/S: t\U+1EA5t c\U+1EA3 ph\U+1EA7n m\U+1EC1m c\U+1EE7a tôi \U+0111\U+1EC1u hi\U+1EC3n th\U+1ECB ti\U+1EBFng Vi\U+1EC7t cách \U+0111ây 6 n\U+0103m (không dùng cái c\U+1EE7a bác Hoành). Tôi c\U+0169ng vi\U+1EBFt

\nb\U+1EB1ng TCVN3, dùng thêm m\U+1ED9t ph\U+1EA7n m\U+1EC1m nh\U+1ECF d\U+1ECBch ra ti\U+1EBFng Vi\U+1EC7t, nh\U+01B0ng vì m\U+1EDBi \U+0111ây phát hi\U+1EC7n th\U+1EB1ng Vista không ch\U+01A1i \U+0111\U+01B0\U+1EE3c

\nnên không post lên CADViet cho m\U+1ECDi ng\U+1EDDi dùng. Th\U+1EA5y t\U+1EEB Cad2007 có Unicode nên mu\U+1ED1n gi\U+1EA3i quy\U+1EBFt v\U+1EA5n \U+0111 \U+1EC1 tri\U+1EC7t \U+0111\U+1EC3 luôn.

\n

"))

 

Mình chẳng cần chuyển Font gì gì trong WIN ráo trọi, cũng chẳng sử dụng Lisp bác Hoành làm giảm tốc độ chương trình, chưa tính đến Dialog có vẽ hình bằng Vectơ

Mình dùng chính CAD2004 để chuyển

Tuy nhiên, được cái nọ thì cũng mất cái kia.

Để chiều này viết tiế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


×