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

Tự động hoá thiết kế trong AutoCad từ VB6

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

1. Tạo chương trình chạy exe để điều khiển AutoCad:

 

Cách này rất đơn giản, dễ thực hiện, nhất là ai đã thành thạo VBA:

 

FormVB6inAutoCad.jpg

 

File kèm theo:

http://www.cadviet.com/upfiles/3/vb6exeacad.rar

 

2. Tạo thư viện dll để AutoCad truy cập:

 

Món này hơi độc chiêu và gần như không có tài liệu, tôi mò mẫm chuyển đổi theo phương pháp trong Office.

 

DllVB6AutoCad.jpg

 

File kèm theo (đã sửa lỗi download):

http://www.cadviet.com/upfiles/3/dll_in_autocad.rar

 

 

Hướng dẫn sử dụng VB6 trong AutoCad đây, mời các bạn nghiên cứu:

 

http://www.cadviet.com/upfiles/3/vb6_trong...phantuhuong.rar

 

Hai ứng dụng tôi mới upload lại do bổ sung 1 chút.

  • Vote tăng 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

Trên diễn đàn có bác nào giành về Object Arx ko nhỉ?em đang tìm hiểu về Object Arx nhưng mà khó quá,có cao thủ chỉ dẫn vẫn hơn.thanks!!

:mellow:

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ên diễn đàn có bác nào giành về Object Arx ko nhỉ?em đang tìm hiểu về Object Arx nhưng mà khó quá,có cao thủ chỉ dẫn vẫn hơn.thanks!!

:mellow:

 

Muốn xây dựng được Arx phải thành thạo C, tham khảo tài liệu tiếng Anh

 

http://www.cadviet.com/upfiles/objectarx_2010_training.zip

  • 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ên diễn đàn có bác nào giành về Object Arx ko nhỉ?em đang tìm hiểu về Object Arx nhưng mà khó quá,có cao thủ chỉ dẫn vẫn hơn.thanks!!

:mellow:

Ở mức độ căn bản, Arx gần giống như AutoLisp. Mỗi hàm của AutoLisp thường có một hàm tương ứng với Arx với các đối số gần như giống nhau nhưng Arx đòi hỏi chặt chẽ hơn. Với Arx, tận dụng thế mạnh của Visual C++, bạn có thể phát triển CT vượt xa AutoLisp. Tuy nhiên, nếu yêu cầu công việc không cao (không sử dụng con trỏ, không dùng lớp, không cần đến CSDL, liên kết động ...) bạn không nên dùng Arx, vì nó khá phức tạp, việc thiết kế một hàm trong Arx khó hơn Lisp lại dễ bị lỗi bộ nhớ có khi do người viết CT cũng có khi do Arx quản lý bộ nhớ không tốt bằng Lisp (bạn thấy các tiện ích đc phát triển bằng Arx do các Cty phần mềm chuyên nghiệp của VN viết vẫn bị một số lỗi khi chạy CT), hơn nữa phải biên dịch và phụ thuộc phiên bản cad. File Arx chỉ chạy trên bản cad phù hợp mà thôi. Vài lời cùng bạn, mình cũng là dân học mót.

  • Vote tăng 6

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
Ở mức độ căn bản, Arx gần giống như AutoLisp. Mỗi hàm của AutoLisp thường có một hàm tương ứng với Arx với các đối số gần như giống nhau nhưng Arx đòi hỏi chặt chẽ hơn. Với Arx, tận dụng thế mạnh của Visual C++, bạn có thể phát triển CT vượt xa AutoLisp. Tuy nhiên, nếu yêu cầu công việc không cao (không sử dụng con trỏ, không dùng lớp, không cần đến CSDL, liên kết động ...) bạn không nên dùng Arx, vì nó khá phức tạp, việc thiết kế một hàm trong Arx khó hơn Lisp lại dễ bị lỗi bộ nhớ có khi do người viết CT cũng có khi do Arx quản lý bộ nhớ không tốt bằng Lisp (bạn thấy các tiện ích đc phát triển bằng Arx do các Cty phần mềm chuyên nghiệp của VN viết vẫn bị một số lỗi khi chạy CT), hơn nữa phải biên dịch và phụ thuộc phiên bản cad. File Arx chỉ chạy trên bản cad phù hợp mà thôi. Vài lời cùng bạn, mình cũng là dân học mót.

 

Như thế này thì rất hạn chế, thua đứt VB6, 2 chương trình trên có thể chạy được từ Cad 2000 đến 2010. Mình nhớ Nova cũ của Hài Hoà chạy trên Cad 14, hiện nay nhiều người vẫn cài vì chỉ chạy trên Cad đời cao hơn thì không được (hiện nay Hài Hoà có cập nhật Nova đời Cad mới 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
Như thế này thì rất hạn chế, thua đứt VB6, 2 chương trình trên có thể chạy được từ Cad 2000 đến 2010. Mình nhớ Nova cũ của Hài Hoà chạy trên Cad 14, hiện nay nhiều người vẫn cài vì chỉ chạy trên Cad đời cao hơn thì không được (hiện nay Hài Hoà có cập nhật Nova đời Cad mới hơn)

Đúng rồi. Về mặt này thì Arx không tiện bằng VBA và VB, VC, Delphi ..., vì VBA, VB, VC, Delphi can thiệp vào cad, excel, word ... bằng công nghệ OLE Automation. Chỉ cần phần mềm đang sử dụng có cung cấp dịch vụ này thì các trình VBA, VB, VC, Delphi can thiệp đc, không phụ thuộc phiên bản. Tuy nhiên, nó không nhanh. Còn Arx chạy trực tiếp như chính bản thân cad, nó sử dụng thư viện chung với cad để tạo ra file Arx (các file *.lib do VC++ tạo ra) nên chạy rất nhanh, nếu các file thư viện này thay đổi thì Arx thay đổi theo (phải biên dịch lại). Ví dụ, file Arx trên cad14 không chạy trên cad2000..2002 mặc dù cùng đc biên dịch trên VC++6. cad2004..2006 trên VC++2000, cad2007..2008 trên VC++2005, còn cad2009..2010 hình như trên VC++2008.

Tuy có hơi bất tiện nhưng đối với người lập trình chuyên nghiệp hoặc chương trình đòi hỏi cao về cấu trúc dữ liệu và tốc độ thì người ta vẫn chọn ARX.

  • 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

Nếu không phải dân lập trình chuyên nghiệp hoặc chỉ can thiệp ở mức độ vừa phải thì có lẽ dù.ng VBA hoặc VB6 là hay 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
Nếu không phải dân lập trình chuyên nghiệp hoặc chỉ can thiệp ở mức độ vừa phải thì có lẽ dù.ng VBA hoặc VB6 là hay nhất..

Dùng VBA thì nên nhưng VB, VC, Delphi ... thì không nên. VBA đã đc nhúng vào cad nên chạy trực tiếp và nhanh hơn. Việc sử dụng VB, VC, Delphi ... thông qua công nghệ OLE Automation do hệ điều hành điều khiển nên chậm và thậm chí đôi khi nhầm lẫn khi trên máy của bạn đang chạy nhiều hơn một CT CAD. Việc điều khiển CAD từ bên ngoài chỉ nên dùng khi bạn viết một chương trình khác mà chỉ có một ít công đoạn cần đến cad. Ví dụ trong bài toán bình sai lưới trắc địa, sau khi có kq bình sai người ta dùng cad để vẽ lưới hoặc đẩy tọa độ điểm chi tiết vào cad. Tuy nhiên, ở mức căn bản ARX rất giống Lisp nên ai đã từng sử dụng Lisp thì sẽ dễ dàng sử dụng ARX (tất nhiên phải biết C). Ở mức cao hơn của ARX cũng giống như VBA, VB, Delphi đều phải lập trình thông qua lớp (sử dụng các thuộc tính và phương thức). Vấn đề để lựa chọn có lẽ là thói quen và tốc độ.

Đó là những hiểu biết mang tính ngiệp dư của mình, các bạn biết nhiều hơn thì góp ý nhé.

  • 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
Dùng VBA thì nên nhưng VB, VC, Delphi ... thì không nên. VBA đã đc nhúng vào cad nên chạy trực tiếp và nhanh hơn.

 

Nói gì thì nói, VBA vẫn chỉ mang tính ứng dụng, hạn chế về nhiều thứ (không biên dịch, khó bảo mật, hỗ trợ ActiveX ít,...). Gọi là "chương trình" một cách đúng nghĩa khi dùng môi trường lập trình điều khiển AutoCad (và còn nhiều ứng dụng khác nữa). Ví dụ VSTA (Visual Studio Tools for Applications) đang được phát triển, đó chính là VB.NET phát triển trong các ứng dụng như Office, AutoCad,...

Cho dù hơi chậm nhưng không ảnh hưởng vì tốc độ máy tính cao.

 

Ví dụ chương trình vẽ mặt cắt Địa chất công trình GeoSection do tôi viết tôi dùng nền Excel, toàn bộ project viết trong VB6. VBA chỉ có chức năng gọi dll để chạy thôi. Tốc độ nhìn chung khá nhanh:

 

http://www.giaiphapexcel.com/forum/showthr...7210#post157210

  • 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
Nói gì thì nói, VBA vẫn chỉ mang tính ứng dụng, hạn chế về nhiều thứ (không biên dịch, khó bảo mật, hỗ trợ ActiveX ít,...). Gọi là "chương trình" một cách đúng nghĩa khi dùng môi trường lập trình điều khiển AutoCad (và còn nhiều ứng dụng khác nữa). Ví dụ VSTA (Visual Studio Tools for Applications) đang được phát triển, đó chính là VB.NET phát triển trong các ứng dụng như Office, AutoCad,...

Cho dù hơi chậm nhưng không ảnh hưởng vì tốc độ máy tính cao.

 

Ví dụ chương trình vẽ mặt cắt Địa chất công trình GeoSection do tôi viết tôi dùng nền Excel, toàn bộ project viết trong VB6. VBA chỉ có chức năng gọi dll để chạy thôi. Tốc độ nhìn chung khá nhanh:

 

http://www.giaiphapexcel.com/forum/showthr...7210#post157210

 

 

Giờ thì nên dùng Visual studio , C# hoặc C++ thì có nhiều tiện ích, vì VBA hay VB (nếu không thuần túy can thiệp ở ngoài vào) thì hạn chế

 

Nhưng tóm lại ngôn ngữ không quan trọng mà là quan trọng liên kết thế nào 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
Giờ thì nên dùng Visual studio , C# hoặc C++ thì có nhiều tiện ích, vì VBA hay VB (nếu không thuần túy can thiệp ở ngoài vào) thì hạn chế

Nhưng tóm lại ngôn ngữ không quan trọng mà là quan trọng liên kết thế nào thôi?

 

Cái này mới quan trọng anh ạ, ai có súng dùng súng, ai có dao dùng dao ---> quan trọng là giết được địch :s_big:

 

Ai theo VB.NET, VB6, VBA, C, Delphi,... thì cứ phát triển theo hướng đó, quan trọng là mục đích cuối cùng phải đạt được 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
Cái này mới quan trọng anh ạ, ai có súng dùng súng, ai có dao dùng dao ---> quan trọng là giết được địch :lol2:

 

Ai theo VB.NET, VB6, VBA, C, Delphi,... thì cứ phát triển theo hướng đó, quan trọng là mục đích cuối cùng phải đạt được thôi.

 

Vấn đề không có súng có dao thì dùng GẬY, hiiiiii

 

hoặc bí quá thì dùng tay vẽ luông

 

Nói vậy, nhưng tùy ai mạnh gì dùng đó, chứ không nên áp đặt VB6 đúng khô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
1. Tạo chương trình chạy exe để điều khiển AutoCad:

 

Cách này rất đơn giản, dễ thực hiện, nhất là ai đã thành thạo VBA:

 

FormVB6inAutoCad.jpg

 

File kèm theo:

http://www.cadviet.com/upfiles/VB6exeAcad.zip

 

2. Tạo thư viện dll để AutoCad truy cập:

 

Món này hơi độc chiêu và gần như không có tài liệu, tôi mò mẫm chuyển đổi theo phương pháp trong Office.

 

DllVB6AutoCad.jpg

 

File kèm theo:

http://www.cadviet.com/upfiles/DLL_in_AutoCad_1.zip

 

Tôi sẽ viết huớng dẫn sử dụng sau ...

 

 

Há há, em chạy được 2 VD của bác Hướng ròi!!! Hay phết!!!

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. Tạo chương trình chạy exe để điều khiển AutoCad:

Tôi sẽ viết huớng dẫn sử dụng sau ...

Bác cho em 01 bài HDSD đi bác thank bác trước nhé!

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 cho em 01 bài HDSD đi bác thank bác trước nhé!

bác hướng ơi bác có thể cho em bản hướng dẫn dc ko ạ?

vì năm nay em ra trường đang cầm về chuyên đè bác viết em rất thich

mong bác post lê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

Thực ra lập trình còn tuỳ vào mục đích, đơn giản thì làm mấy câu LÍP, khó hơn tẹo thì VB (giờ thì C#), Tôi làm các bài lớn toàn phải dùng ObjectARX, C# có hay nhưng đến lúc debug thì ngại vô cùng (khởi động lại CAD). Nói chung mức độ nào thì xào cái đấy. Tuy nhiên có phương pháp này cũng hay áp dụng. Giao diện làm bang C#, tính toán dùng DLL của VSC-> tiện vô cùng tậ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
Thực ra lập trình còn tuỳ vào mục đích, đơn giản thì làm mấy câu LÍP, khó hơn tẹo thì VB (giờ thì C#), Tôi làm các bài lớn toàn phải dùng ObjectARX, C# có hay nhưng đến lúc debug thì ngại vô cùng (khởi động lại CAD). Nói chung mức độ nào thì xào cái đấy. Tuy nhiên có phương pháp này cũng hay áp dụng. Giao diện làm bang C#, tính toán dùng DLL của VSC-> tiện vô cùng tận.

mong các bác hướng dẫn thêm do đang hạn chế về lường kiến thức trong trường đại học nên rất mong dc các bác hướng dẫn và cho bài để tham khảo thêm!cảm ơn các bác

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 chờ khoảng 1 tuần nữa nhé, có hướng dẫn sơ bộ thôi, nhưng đủ để hiểu.

bác phantuhuong ạ. bác đã có hướng dẫn sơ bộ chưa ạ?em đợi lâu quá mong bác đưa lên sớm

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 chờ khoảng 1 tuần nữa nhé, có hướng dẫn sơ bộ thôi, nhưng đủ để hiểu.

bác phantuhuong ạ cho em hỏi?em làm dc thư viện dll kết nối với cad dc nhưng khi chậy thì em bị vướng khi vẽ ra cad thì đang bị lỗi bác có thể nối rõ chỗ này dc ko ạ.khi tạo fỏm vẽ các đối tượng có giống VBA trong cad ko ạ?em làm giống trong cad nhưng bị lỗi ko hiểu nó thiếu hay chưa đúng chỗ nào

  • 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 Huong. Em đang cần viết 1 chương trình viết bằng VB6 cho CAD mong bác chỉ giúp.

Yêu cầu: Tạo 1 Form có 4 textbox và 1 command, khi chạy chương trình sẽ kiểm tra cad đã được mở hay chưa, nếu chưa được mở thì mở Cad lên sau đó nhập text vào 4 textbox rồi bấm vào Command, khi đó các text sẽ được ghi lên Model của Cad ở các vị trí được chỉ định. VD: text1 ở vị trí (0.000,0.000), text2(10.000,0.000), text3(10.000,10.000), text4(0.000,10.000)

Nếu được thì bác thêm cho em đoạn code để tạo cho Model hiện hành 1 text Style VNI-Times để các Text trên bản vẽ là Font VNI-Times.

Bác cho en xin code luôn nhé, Thanks bác!

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 nhiều nhiều,em là dân quân sự(HVKT), đang năm t3 chuyên nghành Cầu,em đang muốn phát triển theo hướng AUTO,muốn mọi công việc của người kĩ sư phải đc auto một cách tối đa,ích lợi thì không thể nói hết đc.cảm ơn mọi ng đa share tài liệu.mình có cũng kha khá tài liệu VB,VBA nhưng toàn sách đc truyền tay như cửu âm chân kinh ấy,cũ lắm

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 nhiều nhiều,em là dân quân sự(HVKT), đang năm t3 chuyên nghành Cầu,em đang muốn phát triển theo hướng AUTO,muốn mọi công việc của người kĩ sư phải đc auto một cách tối đa,ích lợi thì không thể nói hết đc.cảm ơn mọi ng đa share tài liệu.mình có cũng kha khá tài liệu VB,VBA nhưng toàn sách đc truyền tay như cửu âm chân kinh ấy,cũ lắm

 

bác hướng ạ.bác cho em hỏi chút về VB6.em đang làm một ứng dụng nhỏ về lập trình tự động vẽ cad.và em có tạo một form thiết lập ví dụ:thiết lập kiểu chữ kích thước,mầu,chiều cao chữ ...sau khi thiết lập song thì nó làm việc cho tất cả các form khác mà e có.mong bác hướng dẫn cho em chỉ dẫn em cho em rõ hơn.thanks 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

các bác hãy chỉ cho mình 1 tài liêu nào đó để cho người mới bắt đầu với vba trong cad với ! Nói chung cad thì mình sdụng ngon rồi nhưng vba thì chưa biết gì hết ! Bây giờ thích ng.cứu vba để lập trình ứng dụng trong cad để phụ trợ cho công việc thiết kế của mình . . .

Những tiện ích phụ trợ cho tthiết kế thì có rất nhiều trên mạng (ketcau.com , cadviet.com , tailieukythuat.com, . . .) Nhưng ai cũng chờ người khác lập trình sẵn rồi đưa lên cho mình sdụng thì đến 1 lúc nào đó lấy ai ra để làm việc này ! . . .

Chi bằng mỗi thành viên chúng ta hãy cùng nhau n.cứu và học tập . . .

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

Object ARX thì Flex là một trong những người thành thạo ở VN bây giờ. Theo như Anh Hương viết trong công việc thì mình có cái gì thì sử dụng cái đó, còn nếu có thời gian thì mình cái tiến thêm.

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

×