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

Hỏi về OBJECTARX !

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

mình cũng đang làm việc với Object ARX đây (Cad 2013+VS2010), rất vui đc cùng thảo luận với mọi ng về vấn đề này.

trước giờ mình toàn tự học ở trang

http://arxdummies.bl...s-database.html

(Hiện tại toàn phải dùng proxy mới vào đc)

 

trong này họ hướng dẫn cũng chi tiết, từ những thứ cơ bản nhấ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

Chào bạn, Mình đã lập trình c++ & ObjectARX trong khoảng 10 năm, có thể giúp được bạn. Hãy liên lạc với mình :)

Đây là một số sản phẩm mà bên mình đã làm, cho lên đây không phải để quảng cáo đâu, mà là để mọi người không nghĩ là mình chém gió thôi.

 

http://vietbuddytech.com/

  • 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



chào bác CAD_Development that sự thằng  ObjectARX không dễ chinh phục.. nhung có vẻ như ít người biết về anh chàng đẹp trai này . bác lập trình 10 năm chắc bác giỏi lắm nhỉ. bác có chương trình dịch ngược file arx khong chia sẻ anh em di 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

VS2010 vẫn có thể Build được Object từ 2004 đế các phiên bản cao hơn đấy. Cái cần là Tools để setup thông số khi Build.

Bạn có thể hướng dẫn chi tiết giúp mình được kg, mình cần chuyển cad2006 lên cao hơn. Cám ơn bạ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

Chào các bạn!

Mình muốn hỏi các bạn về cách viết 1 lệnh trên Arx khi mà lệnh đó có đối số.

Lấy 1 ví dụ nhỏ trong Arx là thư mục "\\ObjectARX 2007\samples\misc\fact_dg".

Trong đó có lệnh (hàm) "sqr".

Ở phiên bản cad R14:

- Tại dòng command đánh lệnh sqr sẽ được hỏi tiếp đối số, ví dụ nhập 2 sẽ cho kq là 4

- hoặc có thể viết (c:sqr 2) se cho kq 4.

Từ bản 2000 trở đi cách tạo lệnh đã khác.

-Tại dòng command đánh lệnh sqr sẽ trả về nil,

- còn viết (sqr 2) sẽ cho ra 4

Như vậy rõ là cách của cad2000 về sau khá bất tiện. Một số lệnh có đối số mình viết từ thời cadR14 nếu giữ nguên thế mà biên dịch vẫn sd chung với lisp bình thường, nhưng lên cad2007 nó bắt đầu xuất hiện lỗi dễ bị treo khi viết theo kiểu cũ làm mình phải chuyển qua kiểu mới làm cho những lệnh tương tự (C:...) khi gọi trên lisp đều bị lỗi (nó kg nhận ra hàm đó).

Có thể do kiến thức của mình chưa sâu nên chưa biết giải quyết bằng cách nào, bạn nào có kinh nghiệm chỉ giúp mình cách viết để có thể ứng dụng như hồi cad R14.

Có nghĩa khi gọi lệnh kg có đối số nó sẽ hỏi rồi tính, còn nếu cung cấp đối số rồi nó tính luôn *trên dònh lệnh cũng như trên lisp).

Cám ơn các bạ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

Chào các bạn!

Mình muốn hỏi các bạn về cách viết 1 lệnh trên Arx khi mà lệnh đó có đối số.

Lấy 1 ví dụ nhỏ trong Arx là thư mục "\\ObjectARX 2007\samples\misc\fact_dg".

Trong đó có lệnh (hàm) "sqr".

Ở phiên bản cad R14:

- Tại dòng command đánh lệnh sqr sẽ được hỏi tiếp đối số, ví dụ nhập 2 sẽ cho kq là 4

- hoặc có thể viết (c:sqr 2) se cho kq 4.

Từ bản 2000 trở đi cách tạo lệnh đã khác.

-Tại dòng command đánh lệnh sqr sẽ trả về nil,

- còn viết (sqr 2) sẽ cho ra 4

Như vậy rõ là cách của cad2000 về sau khá bất tiện. Một số lệnh có đối số mình viết từ thời cadR14 nếu giữ nguên thế mà biên dịch vẫn sd chung với lisp bình thường, nhưng lên cad2007 nó bắt đầu xuất hiện lỗi dễ bị treo khi viết theo kiểu cũ làm mình phải chuyển qua kiểu mới làm cho những lệnh tương tự (C:...) khi gọi trên lisp đều bị lỗi (nó kg nhận ra hàm đó).

Có thể do kiến thức của mình chưa sâu nên chưa biết giải quyết bằng cách nào, bạn nào có kinh nghiệm chỉ giúp mình cách viết để có thể ứng dụng như hồi cad R14.

Có nghĩa khi gọi lệnh kg có đối số nó sẽ hỏi rồi tính, còn nếu cung cấp đối số rồi nó tính luôn *trên dònh lệnh cũng như trên lisp).

Cám ơn các bạn

Bác tìm hiểu về Function Overloading  (hình như tiếng Việt gọi là QUÁ TẢI) cho phép tạo ra nhiều hàm có cùng tên nhưng số lượng các đối số khác nhau.

Vi dụ : Tính thể tích :

// thể tích hình lập phương
int volume(int s)
{
return s*s*s;
}
// thể tích hình trụ tròn
double volume(double r, int h)
{
return 3.14*r*r*static_cast<double>(h);
}
// thể tích hình hộp chữ nhật
long volume(long l, int b, int h)
{
return l*b*h;
}
// gọi hàm, tuỳ thuộc vào số lượng đối số mà gọi hàm tương ứng
int main()
{
std::cout << volume(10);
std::cout << volume(2.5, 8);
std::cout << volume(100, 75, 15);
}
 

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 bác nhưng mình nghĩ kg phải vấn đề này bác ạ. Vấn đề ở đây do arx đã thay đổi nhưng mình chưa hiểu được để vận dụng chứ biên dịch trên cad từ R14 đến cad2006 vẫn bình 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

Chào các bạn!

Mình muốn hỏi các bạn về cách viết 1 lệnh trên Arx khi mà lệnh đó có đối số.

Lấy 1 ví dụ nhỏ trong Arx là thư mục "\\ObjectARX 2007\samples\misc\fact_dg".

Trong đó có lệnh (hàm) "sqr".

Ở phiên bản cad R14:

- Tại dòng command đánh lệnh sqr sẽ được hỏi tiếp đối số, ví dụ nhập 2 sẽ cho kq là 4

- hoặc có thể viết (c:sqr 2) se cho kq 4.

Từ bản 2000 trở đi cách tạo lệnh đã khác.

-Tại dòng command đánh lệnh sqr sẽ trả về nil,

- còn viết (sqr 2) sẽ cho ra 4

Như vậy rõ là cách của cad2000 về sau khá bất tiện. Một số lệnh có đối số mình viết từ thời cadR14 nếu giữ nguên thế mà biên dịch vẫn sd chung với lisp bình thường, nhưng lên cad2007 nó bắt đầu xuất hiện lỗi dễ bị treo khi viết theo kiểu cũ làm mình phải chuyển qua kiểu mới làm cho những lệnh tương tự (C:...) khi gọi trên lisp đều bị lỗi (nó kg nhận ra hàm đó).

Có thể do kiến thức của mình chưa sâu nên chưa biết giải quyết bằng cách nào, bạn nào có kinh nghiệm chỉ giúp mình cách viết để có thể ứng dụng như hồi cad R14.

Có nghĩa khi gọi lệnh kg có đối số nó sẽ hỏi rồi tính, còn nếu cung cấp đối số rồi nó tính luôn *trên dònh lệnh cũng như trên lisp).

Cám ơn các bạn

Mình tìm ra rồi, nó phải dùng cấu trúc này để đăng ký lệnh hì sau đó sẽ dùng đc như lisp, mình đưa lên nếu ai cần thì tham khảo:

 

struct func_entry { TCHAR *func_name; int (*func)(); };

static struct func_entry func_table[] = {

    {_T(/*MSG0*/"C:LENH1"), hamcualenh1},//r

    {_T(/*MSG0*/"C:LENH2"), hamcualenh2},//r

}

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 thân mến.

Trước giờ viết trên Arx mình không làm cách nào gỡ rối được. Mình nghĩ khi biên dịch xong mới vào cad chạy do đó đã tách khỏi trình biên dịch nên không gỡ rối được (ý mình nói không phải lỗi do cú pháp gây ra). Mỗi lần như vậy rất khó khăn để tìm ra vị trí gây lỗi.

Vậy có cách này để trình biên dịch báo lỗi trên code như khi mình viết và biên dịch trực tiếp ra file exe không. Bạn nào biết chỉ giúp mình với.

Cám ơn các bạ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

Chào bạn,

Việc cài VS2005 thì bình thường, còn muốn cài VS2008 SP1 thì hơi gian nan. Nếu máy bạn đã lỡ update hotfix trước khi cài SP1 thì phải remove hết ra có tool trên Microsoft để làm việc đó mà hình như ko hiệu quả. Mình đã phải cài lại win và setup VS2008 + SP1 lại từ đầu mới bắt đầu vọc dc.

tại sao phải cài VS2008 + SP1 thì bạn xem các phiên bản VS tương ứng với AutoCAD version:

  • AutoCAD & ObjectARX 2004 – 2006 (R16.x) – Microsoft Visual Studio 2001 .Net (7.0)
  • AutoCAD & ObjectARX 2007 – 2009 (R17.x) – Microsoft Visual Studio 2005 (8.0)
  • AutoCAD & ObjectARX 2010 – 2012 (R18.x) – Microsoft Visual Studio 2008 + SP1 (9.0)

 

Hi bạn,

Hiện tại mình đang rất muốn tìm hiểu về ARX, nhưng công việc của mình chỉ sử dụng CAD 2006 thôi, mà mình tìm trên mạng không thấy cái "Microsoft Visual Studio 2001 .Net(7.0)", bạn có link hay file cài đặt của nó không cho mình xin với, mình cám ơ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

1. Bạn tạo 1 project mới, với Templates là ObjectArx/... Templates này sẽ có khi bạn cài ObjARXWiz.msi

5987103980_c31aeb69b7.jpg

h2 của kthung78, trên Flickr

2. Thứ tự các bước khởi tạo cho Project Arx của bạn

5987104042_8576f2e735.jpg

h3 của kthung78, trên Flickr

 

5987104096_4d2afb9ce9.jpg

h4 của kthung78, trên Flickr

 

5986545209_8595b54d28.jpg

h5 của kthung78, trên Flickr

 

5986545247_a115038eef.jpg

h6 của kthung78, trên Flickr

 

5987104310_3bd4aa406d.jpg

h8 của kthung78, trên Flickr

 

5986545423_c70c8faab0.jpg

h9 của kthung78, trên Flickr

 

5986545473_9dab0ebff1.jpg

h10 của kthung78, trên Flickr

 

5987104558_790ddecbf9.jpg

h13 của kthung78, trên Flickr

 

5987104634_6ca91967fc.jpg

h14 của kthung78, trên Flickr

 

5987104692_0d36602f79.jpg

h15 của kthung78, trên Flickr

 

5987104812_0712ca240e.jpg

h17 của kthung78, trên Flickr

 

Bạn có thể gửi cho mình Project này không, mình bắt đầu học về Object ARX.

địa chỉ mail:  dunggiamdinh@gmail.com

rất cảm ơ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ác bạn thân mến.

Trước giờ viết trên Arx mình không làm cách nào gỡ rối được. Mình nghĩ khi biên dịch xong mới vào cad chạy do đó đã tách khỏi trình biên dịch nên không gỡ rối được (ý mình nói không phải lỗi do cú pháp gây ra). Mỗi lần như vậy rất khó khăn để tìm ra vị trí gây lỗi.

Vậy có cách này để trình biên dịch báo lỗi trên code như khi mình viết và biên dịch trực tiếp ra file exe không. Bạn nào biết chỉ giúp mình với.

Cám ơn các bạn

Bạn build ở mode debug, xong mở CAD lên load binary mà bạn vừa build ra.

Bạn vào Visual studio, chọn menu debug -> Attach process, vào đây bạn chọn option Native (cái này quan trọng), và attach acad.exe vào.

Bạn add break point vào dòng code trong Visual Studio, mà bạn sắp debug. sau đó bạn thao tác bên CAD, khi chạy đến dòng code đó, nó sẽ nhảy vào break point đó.

Tiếp đó bạn step in code thô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

×