Chuyển đến nội dung chính

Lập trình VBA trong AutoCAD

Kể từ hôm nay mình mở topic này để trao đổi với các bạn về lập trình VBA trong AutoCAD. Theo kinh nghiệm của mình thì không nhất thiết các bạn phải hiểu rõ các lệnh, cách dùng AutoCAD mới học được. Chỉ cần các bạn cài được CAD, đã dùng được con chuột để vẽ được điểm, đoạn thẳng, đường gấp khúc là đủ để chúng ta bắt đầu.


1. Giới thiệu qua.
Từ phiên bản AutoCAD 2000 đã bắt đầu hỗ trợ VBA và không có nhiều cải tiến đáng kể trong các phiên bản từ 2000 so với các bản tiếp theo. Các bạn có máy PC ghẻ tốt nhất cài AutoCAD 2000. Theo mình đánh giá AutoCAD 2000 vừa tốt, nhanh, nhẹ mà vẫn đáp ứng đủ nhu cầu học lập trình.
Cài CAD xong các bạn gõ VBAIDE tại cửa sổ lệnh của AutoCAD hoặc vào Tool-Macro-Visual Basic Editor để mở cửa sổ lập trình VBA. Trông nó như thế này:



Cửa sổ này chắc bạn nào đã học qua lập trình là thấy quen quen ngay. Nó giống với IDE của visual Basic 6.0 và các môi trường VBA của các phần mềm khác.
2. Kinh thánh (Bible) của những người mới học.
Bạn nào đọc sách tin học của nước ngoài chắc cũng từng đọc tiêu đề kiểu như “xyz bible”. Vậy thì: “ActiveX and VBA Reference” thực sự là cuốn kinh thánh cho người định học VBA trong CAD. Bạn tìm cuốn sách này ở đâu? Câu trả lời là ngay trong phần help của AutoCAD: Bạn bấm F1 để gọi help bạn sẽ thấy ActiveX Automation and VBA bấm vào đây bạn sẽ thấy:

Nó là cái link thứ hai sau cái ActiveX and VBA Developer’s Guide đấy. Nhấp chuột vào cái link đó nó sẽ gọi quyển Kinh thánh của mình ra. :d
Để ban đầu làm quen và tạo hứng thú cho bạn tìm hiểu cách lập trình, bạn tập trung vào mục Code Examples cho mình đã, các phần khác, mục khác mình sẽ cần để tra cứu sau khi mà bạn đã nắm rõ cách lập trình.
Bạn mở phần Code Examples sẽ được như thế này:

Giờ ta bắt đầu vẽ cái để lấy hứng thú học tiếp nhé. Bạn kéo thanh cuộn để tìm đến mục AddLine example cho mình, chọn vào sẽ được như thế này:

Copy toàn bộ đoạn code bên khung bên phải rồi quay trở lại cửa sổ VBA chuột phải vào chọn như hình:

Tại cửa sổ CAD các bạn dán đoạn code ví dụ ở bước trên vào, được như thế này:

Giờ thì các bạn chỉ cần đặt con chuột vào bất cứ dòng code nào ở trên rồi nhấn vào cái nút run hình tam giác hoặc vào Run – Run sub/userform hoặc nhấn F5 rồi chuyển sang môi trường CAD đã thấy một đoạn thẳng nằm ở đó rồi.
Phân tích code tý để các bạn hiểu:
Dòng: 

1
Dim lineObj As AcadLine

‘Để khai báo một đối tượng line – trong AutoCAD muốn vẽ đối tượng nào bạn phải khai báo đối tượng đó với đúng kiểu
Hai dòng:

1
2
3
Dim startPoint(0 To 2) As Double
Dim endPoint(0 To 2) As Double

‘Để khai báo hai mảng, mỗi mảng 3 phần tử lưu các tọa độ X,Y,Z của mỗi đầu đoạn thẳng. CAD thông thường quản lý một điểm bằng 3 phần tử, như vậy, trong các bài học sau bạn sẽ biết đôi khi chỉ dùng hai với một vài đối tượng. Với các đối tượng là một chuỗi các đỉnh liên tiếp, CAD cũng dùng một mảng có số phần tử là bội của 3 để quản lý. Ví dụ một Polyline có 4 đỉnh thì khai báo mảng sẽ là: Dim arr(0 to 11) as Double
Hai dòng:

1
2
3
startPoint(0) = 1#: startPoint(1) = 1#: startPoint(2) = 0#
endPoint(0) = 5#: endPoint(1) = 5#: endPoint(2) = 0#

‘Để định tọa độ các điểm theo đó điểm đầu của line sẽ có tọa độ (1,1,0) điểm cuối của line sẽ có tọa độ (5,5,0)
Dòng:

1
2
Set lineObj = ThisDrawing.ModelSpace.AddLine(startPoint, endPoint)

‘ Để vẽ line lên môi trường CAD:
lineObj là một object nên phải dùng lệnh set; ThisDrawing là cửa sổ CAD; ModelSpace là phần thể hiện đồ họa vì trong ThisDrawing còn có phần quản lý Layer, Layout… nên phải chỉ định rõ sẽ vẽ vào Môi trường đồ họa ModelSpace; Phương thức AddLine có hai đối số là điểm đầu và điểm cuối
Dòng:
ZoomAll
Để gọi lệnh Zoom All trong CAD.

Bài mở đầu tạm thời chúng ta dừng tại đây. 
Bài tập cho các bạn:
- Thành thạo việc gọi môi trường lập trình, Help, tạo module
- Sử dụng code ví dụ từ help để vẽ được Point, Polyline, Circle
- Ứng với mỗi code ví dụ các bạn thay đổi giá trị các biến để hiểu rõ các phương thức.





Ps: Bài này mình copy ở đây: http://www.geovn.com/showthread.php?t=108&page=1

Nhận xét

Bài đăng phổ biến từ blog này

Download AutoCAD 2012 Full + Crack, AutoCAD 2012 Full,

Update: More on AutoCAD would be available on Mastering AutoCAD 2012 The next release of AutoCAD is in development & codenamed “Ironman”. If you are interested to be part of the testing team for AutoCAD 2012., register at https://beta.autodesk.com/signup/ AutoCAD 2012 | CAD Professor: The next release of AutoCAD is in development & codenamed Ironman. If you are inte... http://bit.ly/ezBIRD

DOWNLOAD AutoCad 2013 (32&64bit) Full Crack

DOWNLOAD AutoCad 2013 (32&64bit) Full Crack TỔNG QUAN VỀ AUTODESK AUTOCAD Autodesk AutoCad cho phép bạn để giải quyết những vấn đề thiết kế phức tạp nhất. Phương tiện của việc tạo ra các hình dạng tùy ý mô phỏng theo một loạt các cơ quan thẩm định thiết kế bề mặt và thời gian sẽ giảm đáng kể; bản vẽ tham số giúp đỡ để giữ trên tay tất cả các thông tin có ích. ý tưởng dự án có thể được hình tượng trong PDF, cũng như trong thực hiện mô hình, thu được bằng 3D in. Ngay cả khi không có những ý tưởng không được biến thành hiện thực để nhanh chóng. Hơn nữa bạn là một kỹ sư, kiến trúc sư thiết kế quan tâm nhiều đến AutoCAD, công cụ hỗ trợ chính cho công việc của mình, thì hẳn bạn cũng sẽ rất quan tâm đến sự phát triển của AutoCad qua các phiên bản phát triển CAD của hãng Autodesk. Qua mỗi phiên bản phát triển, hãng Autodesk đều mang lại cho người dùng những sự ngạc nhiên , bất ngờ bởi những công cụ hỗ trợ bổ xung, các tính năng mới giúp cho công việc đồ hoạ, thiết kế vốn đã rất khó k...

Lệnh DR (draworder) đảo 2 đối tượng xếp chồng lên nhau trong CAD

Bạn có 2 đối tượng, VD: 1 đường thẳng và 1 hình tròn. Hình tròn của bạn đang đè lên (che khuất) đường thẳng. Bạn muốn đảo ngược lại tức là cho đường thẳng đè lên hình tròn. Bạn dùng Lệnh DR (draworder) để đảo 2 đối tượng xếp chồng lên nhau trong CAD Các bước: DR (draworder): Enter Lựa chọn đường thẳng: Enter Gõ tiếp A (Above objects): Enter Chọn đường tròn: Enter