Chuyển đến nội dung
Diễn đàn CADViet
  • Thông báo

    • Nguyen Hoanh

      CADViet đã hoàn tất nâng cấp   14/09/2017

      Chào các bạn, CADViet đã hoàn tất việc nâng cấp lên phiên bản mới. Tất cả các chức năng đã hoạt động theo kỳ vọng của ban quản trị. Nếu có vấn đề gì cần phản hồi, các bản post ở đây nhé: Trân trọng, Nguyễn Hoành.
Detailing

[Thảo luận] Điều khiển AutoCAD bằng VC++ (ObjectARX)

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

Detailing    278

Bạn Detailing cho mình hỏi là giữa C#.Net, VB.Net và Object ARX thì nên chọn học thằng nào. Tại mình có đọc đâu đó một bài của bạn nói Object ARX tuy rằng mạnh nhất, được Autodesk dùng để phát triển cad nhưng lại khó sử dụng hơn .Net 

Thanks !

Chào bạn,

Mình cũng ko biết nên khuyên bạn chọn cái nào :D mình chỉ có thể góp vài ý kiến cá nhân dưới đây hy vọng giúp bạn có thể quyết định được nên chọn cái nào.

  • Nếu bạn chỉ muốn dừng ở mức cơ bản: tạo các command vẽ các entity, tính toán bình thường bạn có thể chọn C# hoặc VB .NET. Nếu bạn dùng C++ thì bạn phải tự khai báo các vùng nhớ và phải tự báo cho máy tính biết bạn đã dùng xong và trả lại cho window nếu ko sẽ ko có chương trình nào sử dụng dc các vùng nhớ đó (gọi là leak memory) -> hết bộ nhớ  :D, C# và VB ,NET có Garbage Collection làm giúp việc này rồi nên bạn ko cần quan tâm
  • Nếu bạn muốn tạo các chương trình hơi phức tạp một chút, sử dụng nhiều hàm hệ thống thì việc bạn tìm được 1 resource (code sample) viết bằng C# hay C++ sẽ dễ dàng hơn là VB .NET (mặc dù bạn có thể convert từ C# sang VB) lý do là những người lập trình chuyên nghiệp họ thường dùng C/C# hơn là VB. Ở mức này thì C++ có lợi thế hơn C# và VB .NET một chút do nó có thể tương tác dễ dàng hơn nhưng việc quản lý bộ nhớ thì cũng như trên, ở mức này thì khi dùng C# hay VB .NET đôi khi bạn phải sử dụng các com object để tương tác với AutoCAD. Đối với VB .NET thì các cú pháp (syntax) về event, delegate,... (VBA ko có cái này) nó hơi dài dòng và khó hiểu (ý kiến cá nhân). Ở mức độ này khi dùng C# hay VB .NET đôi khi bạn cũng cần phải yêu cầu Garbage Collection giải phóng bộ nhớ cho bạn ngay lập tức khi bạn vừa xài quá nhiều nên đôi khi bạn cũng cần quan tâm đến vấn đề này (bạn xem qua IDispose và Garbage Collection) nhưng cách thức thì dễ dàng hơn C++. Dĩ nhiên nếu bạn muốn tiến lên mức cao cấp thì giữa C# và VB .NET thì C# sẽ là 1 lưa chọn tốt vì syntax tương tự như C++.
  • Nếu bạn muốn kiểm soát hoàn toàn chương trình của mình, từ việc load đến việc đối tương của bạn thể hiện ra sao trên màn hình, khi in ra, khi copy, save như thế nào,... nghĩa là bạn đang cần tạo 1 loại đối tương cho riêng bạn thì C++ là lựa chọn duy nhất.

Đối với .NET thì ngoài việc ko cần quản lý bộ nhớ thì nó cũng có 1 điểm có lợi hơn C++ là: đây là ngôn ngữ mới và đang được MS phát triển và có rất nhiều thứ bạn chỉ cần vài dòng code là xong trong khi C++ có thể sẽ rất vất vả mà chưa chắc đạt được như mong muốn (chủ yếu ở phần giao diện)

Vài ý kiên cá nhân hy vọng giúp dc bạn.

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

ok, cảm ơn Detailing nhiều. Mình cũng tham khảo nhiều ý kiến trên các forum nước ngoài, thấy họ cũng nói tương tự bạn : Với những cái cơ bản thì dùng C#.NET, VB.NET, còn Object ARX thì dùng cho nhiệm vụ có yêu cầu cao. Và giữa C# và VB thì nên chọn C# vì nó phổ biến hơn rất 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
lenhatanh    2

Hi Detailing !

mình đang học và thử build một file *.arx (dùng VS2005, CAD2007, ObjectARX 2007, 2006) nhưng khi build project thi bị lỗi như sau: ... cannot open file 'mfc70.lib'

Nhờ bạn chỉ cho mình cách khắc phục lỗi trên với. (mình đã tìm 'mfc70.lib' trên máy và trên "Google" nhưng không tìm thấy file mfc70.lib).

Chỉnh sửa theo lenhatanh

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
TRUNGNGAMY    91

mfc70.lib nằm trong bộ vc7.0 (hay còn gọi là vc.net hay vc2002), bộ này đã "mất gốc" rồi. Hồi trước mình có mua bộ này (5CD) nhưng đến nay đã hư, may mà đã cài trên winxp, sau đó lưu và giữ lại trên file ghost chứ mình vẫn chưa chuyển đc hoàn toàn code lên vc2005 (nó gây lỗi ở kiểu chuỗi do mình kết hợp với Delphi). Mình định tìm mua lại bộ này nhưng chưa đc. Nếu bạn mới làm thì nên dùng vc2005 với cad2007 và arx2007, đừng dùng cad và arx2006 nữa.

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

Chào mọi người !

Mình sử dụng Visual Studio 2005 làm thử ArxProject.arx

vẽ đường tròn như hướng dẫn ở trang 1 nhưng khi Build thì bị lỗi.

Nhờ mọi người xem và sửa giúp các lỗi nhé.

Xin cảm ơn.

Link Project:

http://www.mediafire.com/download/slcrr3anhvw5198/ArxProject.rar

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
ndtnv    397

Code sai các chỗ sau:

AcDbDatabace *db = acdbHostAplicationServices()->workingDatabase();

...

acCircle->close;

 

Sửa thành:
AcDbDatabase *db = acdbHostApplicationServices()->workingDatabase();

...

acCircle->close();

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


×