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

Ứng dụng AutoCAD .NET: chuyển đổi các bảng mã tiếng Việt thông dụng

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

Ứng dụng của AutoCAD .NET API thực hiện việc chuyển đổi bảng mã tiếng Việt của Text,Mtext trong bản vẽ qua các bảng mã khác.

Các bảng mã hỗ trợ : Unicode, VNI-Windows, TCVN3(ABC), Unicode tổ hợp, UTF-8.

 

changecode.jpg

 

File download

 

Cách sử dụng :

1. giải nén và copy file "ChangeCode.dll" vào hệ thống(đĩa cứng, USB, ...).

2. Khởi động AutoCAD, open file Cad cần chuyển đổi bảng mã tiếng Việt .

3. Tại dấu nhắc (Command ) của CAD gõ lệnh NETLOAD và chỉ đến vị trí file "ChangeCode.dll" vừa copy ở buớc 1, chọn OPEN để hoàn thành lệnh NETLOAD .

4. gõ lệnh ChangeCode để bắt đầu ...

(Nếu bạn đã quen với AutoLisp, các buớc 1-2-4 tuơng tự như cách load 1 ứng dụng AutoLisp, chỉ thay lệnh APPLOAD bằng lệnh NETLOAD ở buớc 3.)

 

Lưu ý :

1. từ Cad 2005 mới có lệnh NETLOAD

2. do là ứng dụng AutoCAD .NET API nên yêu cầu hệ thống phải có .Net Framework đã cài đặt.

3. với bảng mã nguồn : bạn nên chọn chính xác bảng mã nguồn, trong truờng hợp chọn "unKnown", độ chính xác của kết quả chỉ đạt khoảng 80% :D

4. sau khi Convert, bạn phải đổi sang TextStyle có font chữ phù hợp với bảng mã đích.

Thật tuyệt vời. Cảm ơn anh gia_bach thật nhiều.

Tue_NV có câu hỏi này đã lâu -> rất mong anh gia_bach hồi âm ạ. Em rất mong là trên diễn đàn mình thời gian sắp tới sẽ thảo luận về AutoCAD . NET API nhiều hơn nữa

 

..........

Hiên nay CAD cung cấp thư viện AutoCAD .NET API có thể truy xuất cơ sở dữ liệu của bản vẽ (database of a drawing file) ở mức cao hơn.

Các bạn quan tâm có thể tham khảo http://docs.autodesk.com/ACD/2010/ENU/Auto...uide/index.html

Hy vọng trong một tuơng lai gần, CadViet sẽ có nhiều member trao đổi về AutoCAD .NET API .

Anh gia_bach có thể vui lòng giới thiệu sơ qua về AutoCAD .NET API được không?

Công cụ để lập trình nó, cách tiếp cận với nó......

Cảm ơn anh.

Một lần nữa, cảm ơn anh

Chúc anh thật nhiều sức khoẻ

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

Biết sơ sơ 1 chút, xin tham gia 1 chân, hy vọng đóng góp được chút ít.

Chưa test cụ thể nhưng thấy rất mừng vì vấn đề này tôi cũng đã quan tâm từ lâu, chỉ có điều mới xử lý được với TEXT còn MTEXT thì chưa biết phải làm thế nào.

Có 1 điều mà tôi từng thấy là khi động tới .Net thì coi như API về hưu. Rất tuyệt.

  • 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
Biết sơ sơ 1 chút, xin tham gia 1 chân, hy vọng đóng góp được chút ít.

Chưa test cụ thể nhưng thấy rất mừng vì vấn đề này tôi cũng đã quan tâm từ lâu, chỉ có điều mới xử lý được với TEXT còn MTEXT thì chưa biết phải làm thế nào.

Có 1 điều mà tôi từng thấy là khi động tới .Net thì coi như API về hưu. Rất tuyệt.

 

Cái này mình viết đã lâu rồi, phiên bản mới có giao diện đẹp hơn cũng sắp hoàn thành.

 

Bản chuyểnmã của mình có thể chuyển mã cho Text, MText, BlockRef (kể cả block con), DIM, Attr.

Riêng MText có thể chuyển mã trong trường hợp dùng nhiều font, nhiều mã.

 

Tham khảo ở đây nhé

  • Vote giảm 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
Anh gia_bach có thể vui lòng giới thiệu sơ qua về AutoCAD .NET API được không?

Công cụ để lập trình nó, cách tiếp cận với nó......

Cảm ơn anh.

Chào Tuệ.

Vì hiểu biết có giới hạn, không biết bắt đầu như thế nào, xin tóm vài dòng sơ khai về công cụ lập trinh với AutoCAD .NET API:

 

Cũng như AutoLisp, AutoCAD .NET API cho phép bạn tự động hóa các nhiệm vụ như tạo và chỉnh sửa các đối tượng được lưu trong cơ sở dữ liệu của một bản vẽ hoặc thay đổi nội dung của một tập tin. 

 

Một số thuận lợi khi thực hiện một .NET API cho AutoCAD: 

- truy cập vào bản vẽ AutoCAD được thuận lợi hơn. Trước khi .NET API, các phát triển bị giới hạn trong ActiveX và ngôn ngữ hỗ trợ COM, AutoLISP, và C + + với ObjectARX. 

- Tích hợp với các ứng dụng khác của Windows (như thư viện hộp thọai của Windows_Win Form, Microsoft Excel, Word) được thực hiện dễ dàng hơn đáng kể bằng cách sử dụng ứng dụng API hoặc với .NET ActiveX / COM.

- NET Framework được thiết kế cho cả hệ điều hành 32-bit và 64-bit. Visual Basic Applications (VBA) chỉ được thiết kế cho các hệ điều hành 32-bit. 

- Cho phép truy cập vào các giao diện chương trình tiên tiến (tuơng tác với các ứng dụng khác).

- hỗ trợ bảng mã Unicode

- kế thừa các thư viện của nguời khác.

 

Để tiếp cận, Bạn cần biết sử dụng ngôn ngữ lập trình trên nền tảng .NET (.NET Framework ).

Hai ngôn ngữ lập trình thông dụng trên nền tảng .NET là MS Visual Basic .NET (VB.NET) và MS Visual C# trong bộ Microsoft Visual Studio của Microsoft . Phiên bản mới nhất là Microsoft Visual Studio 2010

Visual Basic .NET (VB.NET) đuợc nhiều nguời sử dụng vì đa số truớc đó đã sử dụng Visual Basic 6 hay VBA (for Office hay AutoCad)

Tuy nhiên MS Visual C# đuợc các nhà phát triển AutoCad sử dụng nhiều hơn.

 

Truớc tiên, bạn cứ cài đặt Microsoft Visual Studio và tìm hiếu sơ qua về các khái niệm : Project ,  Add New Project, Solution, cách mở một Solution từ Project có sẵn, Add Reference, Debug,  Compile …

 

Tui sẽ cập nhật cách tạo 1 lệnh Acad sau.

  • 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

Có thể là không quá đáng lắm nếu như tui hỏi xin bạn code lập trình của file

ChangeCode.dll để tiếp tục phát triển.

Tại vì nó có một trục trặc là khi chạy code convert xong thì các ký tự chuyển thành chữ thường hết.

 

Cho nên nếu có thể bạn share code để mọi người tham gia phát triển cho tốt hơ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

Update : Chuyển đổi các bảng mã tiếng Việt thông dụng trong CAD

Cập nhật :

- tùy chọn thay đổi qua lại giữa chữ thường và chữ hoa (Change Text Case)

- tùy chọn thay đổi TextStyle

changecode_1.jpg

 

link download : xin đọc bài đầu tiên.

  • 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

Tôi sử dụng gặp lỗi sau:

 

Command: changecode

Unknown command "CHANGECODE". Press F1 for help.

Nhờ Anh Gia_Bach xem giúp. thanks

 

Update : Chuyển đổi các bảng mã tiếng Việt thông dụng trong CAD

Cập nhật :

- tùy chọn thay đổi qua lại giữa chữ thường và chữ hoa (Change Text Case)

- tùy chọn thay đổi TextStyle

changecode_1.jpg

 

1.Cài đặt :

- giải nén và copy file "ChangeCode.dll" vào hệ thống(đĩa cứng, USB, ...).

- khởi động AutoCAD, tại dấu nhắc (Command ) của CAD gõ lệnh NETLOAD và chỉ đến vị trí file "ChangeCode.dll" vừa copy ở buớc 1, chọn OPEN để hoàn thành lệnh NETLOAD .

- phiên bản này chỉ cần gọi lệnh NETLOAD 1 lần, khi khởi động CAD lần kế tiếp Tool sẽ đuợc tự động load khi gọi lệnh ChangeCode

 

2. Sử dụng : gõ lệnh ChangeCode để bắt đầu ...

 

3. Xóa lệnh : gõ lệnh RemoveChangeCode để dừng việc load tự động khi khởi động CAD

 

Lưu ý :

1. từ Cad 2005 mới có lệnh NETLOAD

2. do là ứng dụng AutoCAD .NET API nên yêu cầu hệ thống phải có .Net Framework đã cài đặt.

3. với bảng mã nguồn : bạn nên chọn chính xác bảng mã nguồn, trong truờng hợp chọn "unKnown", độ chính xác của kết quả chỉ đạt khoảng 80%

4. sau khi Convert, bạn phải đổi sang TextStyle có font chữ phù hợp với bảng mã đích.

 

Về bảng mã TCVN3 (ABC)

Do bảng mã TCVN3 sử dụng 1 byte bộ nhớ trong đó phân biệt giữa chữ hoa và chữ thuờng, do đó khi sử dụng bảng mã TCVN3 bạn cần phải chọn đúng font chữ thì kết quả mới chính xác.

Font biểu diễn theo 1 byte chữ thường của ABC có tên file bắt đầu bằng Vn (Vntime.ttf, Vnarial.ttf...). Tên font bắt đằu bằng .Vn (.VnArial, .VnTime...).

Font biểu diễn theo 1 byte chữ hoa có tên file bắt đầu là Vh (Vharial.ttf, Vhtime.ttf...). Tên font có chữ H cuối cùng (.VnArialH, .VnTimeH).

 

File Download

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 sử dụng gặp lỗi sau:

 

Command: changecode

Unknown command "CHANGECODE". Press F1 for help.

Nhờ Anh Gia_Bach xem giúp. thanks

Bác đã cài đặt chưa ạ ?

 

1.Cài đặt :

- giải nén và copy file "ChangeCode.dll" vào hệ thống(đĩa cứng, USB, ...).

- khởi động AutoCAD, tại dấu nhắc (Command ) của CAD gõ lệnh NETLOAD và chỉ đến vị trí file "ChangeCode.dll" vừa copy ở buớc 1, chọn OPEN để hoàn thành lệnh NETLOAD .

...

  • 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

Bác đã cài đặt chưa ạ ?

 

1.Cài đặt :

- giải nén và copy file "ChangeCode.dll" vào hệ thống(đĩa cứng, USB, ...).

- khởi động AutoCAD, tại dấu nhắc (Command ) của CAD gõ lệnh NETLOAD và chỉ đến vị trí file "ChangeCode.dll" vừa copy ở buớc 1, chọn OPEN để hoàn thành lệnh NETLOAD .

...

Bác gia_bach ơi! file mà pác post lên lần đầu tiên thì ok nhưng file mà pác update bị lỗi như pác vbao đã nói mặc dù em đã cài đặt như bác nói rồi, sẳn tiện pác cho em hỏi sao có mtext thì convert được có mtext không convert được. 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ác gia_bach ơi! file mà pác post lên lần đầu tiên thì ok nhưng file mà pác update bị lỗi như pác vbao đã nói mặc dù em đã cài đặt như bác nói rồi, sẳn tiện pác cho em hỏi sao có mtext thì convert được có mtext không convert được. Cám ơn bác nhiều

Gọi là "cài đặt" cho sang chứ thực sự chỉ là luu vào Registry đuờng dẫn đến file ChangeCode.dll để Cad tư tìm và load theo đuờng dẫn này.

 

Nguyên nhân có thể là sau khi "cài đặt", bạn đã xóa luôn file ChangeCode.dll nên khi Acad khởi động nó không tìm thấy file và thông báo : "Unknown command ...."

 

Về ý : có mtext thì convert được có mtext không convert được.

Bạn vui lòng post file Cad lên xem sao, "chẩn đoán từ xa" đành pótay.

  • 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

File changeCode.dll không xóa, nhưng vẫn gặp lỗi anh ạ. (file đầu tiên không gặp lỗi này)

 

Gọi là "cài đặt" cho sang chứ thực sự chỉ là luu vào Registry đuờng dẫn đến file ChangeCode.dll để Cad tư tìm và load theo đuờng dẫn này.

 

Nguyên nhân có thể là sau khi "cài đặt", bạn đã xóa luôn file ChangeCode.dll nên khi Acad khởi động nó không tìm thấy file và thông báo : "Unknown command ...."

 

Về ý : có mtext thì convert được có mtext không convert được.

Bạn vui lòng post file Cad lên xem sao, "chẩn đoán từ xa" đành pótay.

  • 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

File changeCode.dll không xóa, nhưng vẫn gặp lỗi anh ạ. (file đầu tiên không gặp lỗi này)

Ý của em cũng như bác bảo, không xóa file cũng không move đi đâu hết nhưng vẫn gặp phải lỗi, bác giabach xem lại tí nha. 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

Trở về cách cũ (mỗi lần sử dụng phải gọi lệnh NetLoad )

tên lệnh là : ChCode

link download : xin đọc bài đầu tiên.

 

Cách sử dụng :

1. giải nén và copy file "ChCode.dll" vào hệ thống(đĩa cứng, USB, ...).

2. Khởi động AutoCAD, open file Cad cần chuyển đổi bảng mã tiếng Việt .

3. Tại dấu nhắc (Command ) của CAD gõ lệnh NETLOAD và chỉ đến vị trí file "ChCode.dll" vừa copy ở buớc 1, chọn OPEN để hoàn thành lệnh NETLOAD .

4. gõ lệnh ChCode để bắt đầu ...

(Nếu bạn đã quen với AutoLisp, các buớc 1-2-4 tuơng tự như cách load 1 ứng dụng AutoLisp, chỉ thay lệnh APPLOAD bằng lệnh NETLOAD ở buớc 3.)

 

Về bảng mã TCVN3 (ABC)

Do bảng mã TCVN3 sử dụng 1 byte bộ nhớ trong đó phân biệt giữa chữ hoa và chữ thuờng, do đó khi sử dụng bảng mã TCVN3 bạn cần phải chọn đúng font chữ thì kết quả mới chính xác.

Font biểu diễn theo 1 byte chữ thường của ABC có tên file bắt đầu bằng Vn (Vntime.ttf, Vnarial.ttf...). Tên font bắt đằu bằng .Vn (.VnArial, .VnTime...).

Font biểu diễn theo 1 byte chữ hoa có tên file bắt đầu là Vh (Vharial.ttf, Vhtime.ttf...). Tên font có chữ H cuối cùng (.VnArialH, .VnTimeH).

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 sử dụng gặp lỗi sau:

 

Command: changecode

Unknown command "CHANGECODE". Press F1 for help.

Nhờ Anh Gia_Bach xem giúp. thanks

Đầu tiên cảm ơn gia bach về ứng dụng rất hay.Và sorry vì post ko đúng chỗ lắm.

Mình bắt đầu học vb.NeT có lỗi, mình ko hiểu được nhờ bạn giúp đỡ

Đây là link trước khi dùng form.show thì build được nhưng khi thêm vào thì báo lỗi

http://www.mediafire.com/?xxibwbr0tant50h

http://i1227.photobucket.com/albums/ee439/nghiauct/Loi.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

Đầu tiên cảm ơn gia bach về ứng dụng rất hay.Và sorry vì post ko đúng chỗ lắm.

Mình bắt đầu học vb.NeT có lỗi, mình ko hiểu được nhờ bạn giúp đỡ

Đây là link trước khi dùng form.show thì build được nhưng khi thêm vào thì báo lỗi

http://www.mediafire.com/?xxibwbr0tant50h

http://i1227.photobucket.com/albums/ee439/nghiauct/Loi.jpg

Bạn thay dòng :

Form1.Show()

bằng dòng :

Dim modalForm As Form1 = New Form1()

Autodesk.AutoCAD.ApplicationServices.Application.ShowModalDialog(modalForm)

 

Tham khảo tại sao trong CommandMethod lại không nhận được Form

 

đặt thuộc tính “Copy Local” là False cho 2 file : "acmgd.dll" và "acdbmgd.dll"

  • 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

Bạn thay dòng :

Form1.Show()

bằng dòng :

Dim modalForm As Form1 = New Form1()

Autodesk.AutoCAD.ApplicationServices.Application.ShowModalDialog(modalForm)

 

Tham khảo tại sao trong CommandMethod lại không nhận được Form

 

đặt thuộc tính “Copy Local” là False cho 2 file : "acmgd.dll" và "acdbmgd.dll"

Cảm ơn gia bach mình làm được rồi nhưng mình để nguyên thuộc tính true cho 2 file : "acmgd.dll" và "acdbmgd.dll"

thì vẫn build được? Có 1 câu hỏi nữa mình muốn hỏi làm sao để cad tự động load .Dll khi mở cad.

 

Bổ sung:

Nếu đặt thuộc tính true cho "acmgd.dll" và "acdbmgd.dll" có thể gây ra lỗi khi cad load file DLL

(mới đọc được trong quyển AutoCad .NET Developer's Guide)

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ảm ơn gia bach mình làm được rồi nhưng mình để nguyên thuộc tính true cho 2 file : "acmgd.dll" và "acdbmgd.dll"

thì vẫn build được? Có 1 câu hỏi nữa mình muốn hỏi làm sao để cad tự động load .Dll khi mở cad.

 

Bạn để nguyên thuộc tính cho 2 file "acmgd.dll" và "acdbmgd.dll" khi build sẽ có thêm một số dll của CAD -> dung lượng chương trình bạn tăng lên (khá lớn)

Để CAD tự động load dll bạn tạo file .reg với cú pháp như sau và append vào regíter của window

ví dụ cho CAD 2007

 

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Autodesk\AutoCAD\R17.0\ACAD-5001:409\Applications\tên app của bạn]

"DESCRIPTION"="giới thiệu App của bạn"

"LOADCTRLS"=dword:00000002

"MANAGED"=dword:00000001

"LOADER"="đường dẫn đến app của bạn"

 

Hy vọng giúp được bạn

Thân!

  • 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ảm ơn Detailing hồi âm thực sự mình chưa hiểu,mình thấy file Dll của gia bach tự động load khi mở bản vẽ > phải có code trong file DLL >Khi lần đầu load lên sẽ ghi vào Registry> máy sẽ tự đông load lên khi mở cad.

Mình cần đoạn code có thể làm được diều đó.Mình chưa hiểu ý của bạn lắm "bạn tạo file .reg" làm sao để tạo được file này, các đoạn mã của bạn có phải viết cho .Net ko ?

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 copy đoạn text dưới đây dán vào notepad sửa lại mấy cái "của bạn" rồi save thành file tên gì cũng được nhưng có duoi là .reg sau đó double click vô để nó append vào registry của window. Xong!

 

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Autodesk\AutoCAD\R17.0\ACAD-5001:409\Applications\tên app của bạn]

"DESCRIPTION"="giới thiệu App của bạn"

"LOADCTRLS"=dword:00000002

"MANAGED"=dword:00000001

"LOADER"="đường dẫn đến app của bạn"

 

Nếu bạn thích Code thì có thể xem cuốn "AutoCAD .NET Developer Guide" (bạn search trên diễn đàn) trang 509. có đủ sỏuce cho VB.NET và C#

Hy vọng giúp được bạn

Thâ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

Chiron thấy cần thêm tính năng "Loại bỏ dấu"

 

Update : Chuyển đổi các bảng mã tiếng Việt thông dụng trong CAD

- bổ sung thêm tính năng "Loại bỏ dấu"

 

link download : xin đọc bài đầu tiên.

  • 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

Trở về cách cũ (mỗi lần sử dụng phải gọi lệnh NetLoad )

tên lệnh là : ChCode

Link download : Change Code.zip

 

Cách sử dụng :

1. giải nén và copy file "ChCode.dll" vào hệ thống(đĩa cứng, USB, ...).

2. Khởi động AutoCAD, open file Cad cần chuyển đổi bảng mã tiếng Việt .

3. Tại dấu nhắc (Command ) của CAD gõ lệnh NETLOAD và chỉ đến vị trí file "ChCode.dll" vừa copy ở buớc 1, chọn OPEN để hoàn thành lệnh NETLOAD .

4. gõ lệnh ChCode để bắt đầu ...

(Nếu bạn đã quen với AutoLisp, các buớc 1-2-4 tuơng tự như cách load 1 ứng dụng AutoLisp, chỉ thay lệnh APPLOAD bằng lệnh NETLOAD ở buớc 3.)

 

Về bảng mã TCVN3 (ABC)

Do bảng mã TCVN3 sử dụng 1 byte bộ nhớ trong đó phân biệt giữa chữ hoa và chữ thuờng, do đó khi sử dụng bảng mã TCVN3 bạn cần phải chọn đúng font chữ thì kết quả mới chính xác.

Font biểu diễn theo 1 byte chữ thường của ABC có tên file bắt đầu bằng Vn (Vntime.ttf, Vnarial.ttf...). Tên font bắt đằu bằng .Vn (.VnArial, .VnTime...).

Font biểu diễn theo 1 byte chữ hoa có tên file bắt đầu là Vh (Vharial.ttf, Vhtime.ttf...). Tên font có chữ H cuối cùng (.VnArialH, .VnTimeH).

link die rùi bác ơ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

×