Đến nội dung


Hình ảnh
- - - - -

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


  • Please log in to reply
49 replies to this topic

#1 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5454 Bài viết
Điểm đánh giá: 2626 (tuyệt vời)

Đã gửi 10 April 2011 - 04:15 PM

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.c...iles/3/test.txt
  • 2

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#2 duyhung

duyhung

    biết vẽ rectang

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

Đã gửi 10 April 2011 - 05:23 PM

Thế nghĩa là trong table của Autodesk cũng có thể viết tiếng việt phải không bác? Nếu thế thì mừng quá :D
  • 0
Song va chien dau!

#3 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5454 Bài viết
Điểm đánh giá: 2626 (tuyệt vời)

Đã gửi 10 April 2011 - 05:29 PM

Thế nghĩa là trong table của Autodesk cũng có thể viết tiếng việt phải không bác? Nếu thế thì mừng quá :D

chính xác
  • 0

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#4 Thaistreetz

Thaistreetz

    biết lệnh adcenter

  • Advance Member
  • PipPipPipPipPipPipPip
  • 903 Bài viết
Điểm đánh giá: 505 (tốt)

Đã gửi 10 April 2011 - 06:53 PM

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"))
  • 3

Hình đã gửi
IN HIM, I TRUST. THE TRUST IN MY GOD


#5 Thaistreetz

Thaistreetz

    biết lệnh adcenter

  • Advance Member
  • PipPipPipPipPipPipPip
  • 903 Bài viết
Điểm đánh giá: 505 (tốt)

Đã gửi 10 April 2011 - 06:56 PM

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
  • 2

Hình đã gửi
IN HIM, I TRUST. THE TRUST IN MY GOD


#6 KHONGMINH

KHONGMINH

    biết vẽ line

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

Đã gửi 10 April 2011 - 07:39 PM

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

#7 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5454 Bài viết
Điểm đánh giá: 2626 (tuyệt vời)

Đã gửi 10 April 2011 - 09:33 PM

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, á, â...
  • 1

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#8 Thaistreetz

Thaistreetz

    biết lệnh adcenter

  • Advance Member
  • PipPipPipPipPipPipPip
  • 903 Bài viết
Điểm đánh giá: 505 (tốt)

Đã gửi 10 April 2011 - 10:26 PM

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
Hình đã gửi
còn đây là notepad
Hình đã gửi
  • 0

Hình đã gửi
IN HIM, I TRUST. THE TRUST IN MY GOD


#9 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5454 Bài viết
Điểm đánh giá: 2626 (tuyệt vời)

Đã gửi 10 April 2011 - 11:10 PM

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
Hình đã gửi
còn đây là notepad
Hình đã gửi

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

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#10 Thaistreetz

Thaistreetz

    biết lệnh adcenter

  • Advance Member
  • PipPipPipPipPipPipPip
  • 903 Bài viết
Điểm đánh giá: 505 (tốt)

Đã gửi 10 April 2011 - 11:30 PM

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

Hình đã gửi
IN HIM, I TRUST. THE TRUST IN MY GOD


#11 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5454 Bài viết
Điểm đánh giá: 2626 (tuyệt vời)

Đã gửi 10 April 2011 - 11:39 PM

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

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#12 Thaistreetz

Thaistreetz

    biết lệnh adcenter

  • Advance Member
  • PipPipPipPipPipPipPip
  • 903 Bài viết
Điểm đánh giá: 505 (tốt)

Đã gửi 11 April 2011 - 12:15 AM

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

Hình đã gửi
IN HIM, I TRUST. THE TRUST IN MY GOD


#13 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

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

Đã gửi 11 April 2011 - 07:27 AM

......
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
Hình đã gửi
còn đây là notepad
Hình đã gửi

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

#14 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5454 Bài viết
Điểm đánh giá: 2626 (tuyệt vời)

Đã gửi 11 April 2011 - 07:30 AM

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

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#15 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

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

Đã gửi 11 April 2011 - 09:08 AM

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

  • 0

#16 Thaistreetz

Thaistreetz

    biết lệnh adcenter

  • Advance Member
  • PipPipPipPipPipPipPip
  • 903 Bài viết
Điểm đánh giá: 505 (tốt)

Đã gửi 11 April 2011 - 09:20 AM

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

Hình đã gửi
IN HIM, I TRUST. THE TRUST IN MY GOD


#17 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5454 Bài viết
Điểm đánh giá: 2626 (tuyệt vời)

Đã gửi 11 April 2011 - 09:35 AM

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

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#18 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5454 Bài viết
Điểm đánh giá: 2626 (tuyệt vời)

Đã gửi 11 April 2011 - 09:50 AM

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

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#19 Thaistreetz

Thaistreetz

    biết lệnh adcenter

  • Advance Member
  • PipPipPipPipPipPipPip
  • 903 Bài viết
Điểm đánh giá: 505 (tốt)

Đã gửi 11 April 2011 - 10:33 AM

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
Hình đã gửi

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

Hình đã gửi
IN HIM, I TRUST. THE TRUST IN MY GOD


#20 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5454 Bài viết
Điểm đánh giá: 2626 (tuyệt vời)

Đã gửi 11 April 2011 - 10:47 AM

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

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.