Đến nội dung


Hình ảnh
- - - - -

làm thế nào để insert text tiếng việt


  • Please log in to reply
5 replies to this topic

#1 nguyenthaodang

nguyenthaodang

    biết vẽ line

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

Đã gửi 09 June 2010 - 11:25 PM

e sử dụng VBA để insert text lên màn hình làm việc của autocad.

Vấn đề là làm thế nào để insert tiếng việt.

mong mọi người giúp đỡ

em thử gán cái biến text đó theo kiểu gõ vni or unicode mà hiện thị bị lỗi

cảm ơn mọi người quan tâm
  • 0

#2 anhcos

anhcos

    biết lệnh hatchedit

  • Advance Member
  • PipPipPipPip
  • 260 Bài viết
Điểm đánh giá: 170 (tàm tạm)

Đã gửi 10 June 2010 - 09:55 AM

e sử dụng VBA để insert text lên màn hình làm việc của autocad.

Vấn đề là làm thế nào để insert tiếng việt.

mong mọi người giúp đỡ

em thử gán cái biến text đó theo kiểu gõ vni or unicode mà hiện thị bị lỗi

cảm ơn mọi người quan tâm


ACAD VBA hỗ trợ Unicode rất kém, sử dụng mã VNI-WIN or TCVN3 (ABC) thì được. Bảng mã phải phù hợp với font chữ trong tẽt style thôi.
  • 0
Clear sky!

MF Rock collection.

#3 hoa35ktxd

hoa35ktxd

    biết lệnh move

  • Members
  • PipPipPip
  • 125 Bài viết
Điểm đánh giá: 38 (tàm tạm)

Đã gửi 10 June 2010 - 10:41 PM

Theo mình thì tiếng Việt trong các ứng dụng nên dùng Unicode. Vấn đề là có biết cách sử dụng hay không thôi.
Tôi dùng thấy rất Good kể cả Command line.
  • 0

#4 phantuhuong

phantuhuong

    biết dimstyle

  • Moderator
  • PipPipPipPipPip
  • 383 Bài viết
Điểm đánh giá: 200 (khá)

Đã gửi 10 June 2010 - 11:53 PM

Tôi đã kiểm tra lại, dùng InputBox để nhập. Nếu kiểu gõ Unicode thì chữ hiện ra trong InputBox rõ ràng là tiếng Việt, nhưng vào bản vẽ một số ký tự thành ? (như ệ, ế,...). Còn TCVN thì chữ nhập trong InputBox loằng ngoằng nhưng Text lại ngon lành. Mời mọi người kiểm tra nhé (trước khi chạy nhớ chỉnh Style cho phù hợp với kiểu gõ):

Sub Example_AddMtext()
' This example creates an MText object in model space.

Dim MTextObj As AcadMText
Dim corner(0 To 2) As Double
Dim width As Double
Dim text As String
corner(0) = 0#: corner(1) = 10#: corner(2) = 0#
width = 10
text = InputBox("Hay nhap noi dung vao:", "www.cadviet.com")

' Creates the mtext Object
Set MTextObj = ThisDrawing.ModelSpace.AddMText(corner, width, text)
ZoomAll

End Sub

  • 0
Bồi dưỡng Excel & VBA cho các đơn vị ở Hà Nội và khu vực lân cận

Từng bước loại đồ Tàu ra khỏi cuộc sống!


#5 trongtamxd08

trongtamxd08

    Chưa sử dụng CAD

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

Đã gửi 11 June 2010 - 12:38 AM

Bạn chọn bãn mã Vni WIndown nhé
  • 0

#6 anhcos

anhcos

    biết lệnh hatchedit

  • Advance Member
  • PipPipPipPip
  • 260 Bài viết
Điểm đánh giá: 170 (tàm tạm)

Đã gửi 11 June 2010 - 08:23 AM

Tôi đã kiểm tra lại, dùng InputBox để nhập. Nếu kiểu gõ Unicode thì chữ hiện ra trong InputBox rõ ràng là tiếng Việt, nhưng vào bản vẽ một số ký tự thành ? (như ệ, ế,...). Còn TCVN thì chữ nhập trong InputBox loằng ngoằng nhưng Text lại ngon lành. Mời mọi người kiểm tra nhé (trước khi chạy nhớ chỉnh Style cho phù hợp với kiểu gõ):

Sub Example_AddMtext()
' This example creates an MText object in model space.

Dim MTextObj As AcadMText
Dim corner(0 To 2) As Double
Dim width As Double
Dim text As String
corner(0) = 0#: corner(1) = 10#: corner(2) = 0#
width = 10
text = InputBox("Hay nhap noi dung vao:", "www.cadviet.com")

' Creates the mtext Object
Set MTextObj = ThisDrawing.ModelSpace.AddMText(corner, width, text)
ZoomAll

End Sub



VBA hỗ trợ Unicod rất kém. Trước khi tạo đối tượng tẽt cần phải chuyển về định dạng text riêng của CAD thì mới hiển thị đúng tiếng Việt unicode.

VD: nguyên âm
à sẽ phải chuyển thành \U+00E0
ú sẽ phải chuyển thành \U+00FA ...

Như vậy câu chữ: "Cành trúc" --> "C\U+00E0nh tr\U+00FAc"

Lập trình từ visual studio sẽ không cần thao tác này, vì nó hỗ trợ unicode rất tốt.

VD về một vài dạng hexa của nguyên âm trong AutoCAD
Hình đã gửi
  • 0
Clear sky!

MF Rock collection.