Upload
road2it
View
223
Download
2
Embed Size (px)
DESCRIPTION
Bài giảng VBA for AutoCAD
Citation preview
1
TẠO MỚI ĐỐI TƯỢNG HÌNH HỌC
Khai báo và tạo đối tượng hình học 2
Tạo đối tượng dạng đường thẳng 4
Xác định nơi chứa đối tượng 31
Tạo đối tượng Point 33
Tạo đối tượng Circle 6
Tạo đối tượng văn bản 8
Tạo đối tượng LWPolyline, Polyline 35
Tạo đối tượng Arc 37
2
Tổng quan3A
Lập trình sử dụng các lệnh sẵn có của AutoCad
Cách tạo
Lập trình sử dụng các đối tượng được hỗ trợ bởi AutoCad
3
Tổng quan3A
Để lập trình tạo ra các đối tượng hình học bằng VBA thì người dùng cần phải thông thuộc cách tạo ra đối tượng đó bằng lệnh thông thường trực tiếp trong AutoCAD.
Tạo đối tượnghình học
VBA trong AutoCAD, mỗi đối tượng chỉ có thể được tạo bằng một phương thức với một loại thông số nhất định
Hầu hết các đối tượng hình học trong AutoCAD, tuy khác nhau về hình dáng, nhưng cách tạo ra chúng bằng VBA lại tương tự nhau
4
Lập trình sử dụng các lệnh sẵn có3A
Các lệnh sẵn có của AutoCAD có thể được sử dụng từ chương trình VBA thông qua phương
thức SendCommand của đối tượng Document tương ứng
Thực chất của phương thức SendCommand là yêu cầu AutoCAD thực thi một lệnh từ dòng lệnh trong AutoCAD.
5
Lập trình sử dụng các lệnh sẵn có3A
Sub Tao_Hinh_Tron()
ThisDrawing.SendCommand "_Circle" & vbCr & "2,2,0" &
vbCr & "4" &vbCr
ThisDrawing.SendCommand "_zoom" & vbCr & "a" & vbCr
End Sub
Ví dụ lập trình vẽ hình tròn
6
Xác định nơi chứa đối tượng 3A
Hầu hết tất cả các thao tác xây dựng bản vẽ đều được thực hiện trên không gian mô hình. Trong AutoCAD, chỉ có một không gian mô hình, ModelSpace (không gian mô hình) là một phần của bản vẽ, là nơi để người dùng tạo các đối tượng hình học để tạo nên mô hình hoặc bản vẽ mà người dùng dự định thiết kế.
AutoCAD nhóm các đối tượng hình học trong tập đối tượng ModelSpace, PaperSpace và
trong đối tượng Block
PaperSpace (không gian in) cũng cho phép chứa các đối tượng hình học như trong không gian mô hình, tuy nhiên mục đích chính của không gian in là để phục vụ cho quá trình sắp xếp bản vẽ và in ấn. Không gian in thường chứa các khung nhìn theo một tỷ lệ định trước thể hiện một phần của bản vẽ trong không gian mô hình,… Trong AutoCAD, người dùng có thể tạo nhiều không gian in khác nhau
7
Xác định nơi chứa đối tượng3A
Tại một thời điểm, trong AutoCAD chỉ có một không gian là hiện hành, có thể là không gian mô hình hoặc không gian in. Để xác định xem không gian nào là không gian hiện hành, người lập trình có thể sử dụng thuộc tính ActiveSpace có trong đối tượng kiểu Document. Thuộc tính này chỉ nhận giá trị là 2 hằng số sau
8
Xác định nơi chứa đối tượng3A
9
Khai báo và tạo đối tượng hình học 3A
Tất các các đối tượng trong AutoCAD (kể cả đối tượng hình học và phi hình học) đều được khai báo trong VBA theo dạng thức
Acad<TênĐốiTượng>.
Dim Ten_bien_Obj as AcadXXX
Cú pháp
trong đó XXX là tên của loại đối tượng hình học cần tạo . Ví dụDim CircleObj as AcadCircle
10
Khai báo và tạo đối tượng hình học3A
Để tạo đối tượng mới, sử dụng phương thức AddXXX có trong tập đối tượng ModelSpace và PaperSpace, trong đó XXX là tên của loại đối tượng hình học cần tạo
Set Biến_đối_tượng = Object.AddXXX(Danh_sách_tham_số)
Cú pháp
Trong đó :
Object là tập đối tượng ModelSpace hoặc PaperSpace
11
Sau khi tạo mới (hoặc hiệu chỉnh) đối tượng, thì kết quả hiển thị trên bản vẽ sẽ không được cập nhật ngay cho đến khi gọi phương thức Update của bản thân đối tượng đó, hoặc phương thức Update của đối tượng Application hoặc phương thức
Regen của đối tượng Document
Mỗi phương thức AddXXX sẽ trả về một đối tượng tham chiếu đến đối tượng vừa mới được tạo, vì vậy bắt buộc phải sử dụng câu lệnh Set trong khi tạo đối tượng và biến_đối_tượng phải có kiểu phù hợp với đối tượng trả về của phương thức AddXXX.
Ví dụ :Dim CircleObj as AcadCircle Set Circle = ThisDrawing.ModelSpace.AddCircle(CenterPoint, Radius)
Khai báo và tạo đối tượng hình học3A
12
Tạo đối tượng Point 3A
Set RetVal = object.AddPoint(Point) ]
Sử dụng phương thức AddPoint để thêm một điểm tại vị trí mong muốn
Cú pháp
Ghi chú
Sau khi tạo đối tượng Point, người lập trình có thể thay đổi kiểu hiển thị của điểm bằng cách thiết lập giá trị cho các biến hệ thống PDMODE và PDSIZE.
13
Tạo đối tượng Point 3A
Ví dụ
14
Tạo đối tượng dạng đường thẳng 3A
Set RetVal = object.AddLine(StartPoint, EndPoint)
Sử dụng phương thức Phương thức thức AddLine sẽ tạo đối tượng Line
Cú pháp
Ghi chú
Đường thẳng là đối tượng hình học cơ bản hay được dùng nhất trong AutoCAD. Nhìn chung, ta có thể vẽ các đường thẳng bằng cách nhập vào tham số là tọa độ của các điểm của đường thẳng .
15
Tạo đối tượng dạng đường thẳng3A
Ví dụ
16
Tạo đối tượng dạng đường thẳng3A
Ví dụ
17
Tạo đối tượng LWPolyline, Polyline 3A
Set RetVal = object.AddLightweightPolyline(VerticesList)
Để tạo đối tượng LWPolyline, sử dụng phương thức AddLightweightPolyline
Cú pháp
Ghi chú
LWPolyline là đối tượng dùng để biểu diễn đường đa tuyến “phẳng” và do đó chỉ dùng để thể hiện các đối tượng trong không gian 2D
18
Tạo đối tượng LWPolyline 3A
Ví dụ
19
Tạo đối tượng Polyline 3A
Set RetVal = object.AddPolyline(VerticesList)
Để tạo đối tượng Polyline, sử dụng phương thức AddPolyline
Cú pháp
Ghi chú
Khi muốn tạo đường đa tuyến phẳng, nên sử dụng phương thứcAddLightweightPolyline, vì đối tượng LWPolyline đã tối ưu hoá
cho quá trình hiển thị và lưu trữ trong bản vẽ.
20
Tạo đối tượng Circle 3A
Set RetVal = object.AddCircle(Center, Radius)
Để tạo đối tượng Circle, sử dụng phương thức AddCircle
Cú pháp
Ghi chú
VBA trong AutoCAD cho phép tạo nhiều loại đối tượng dạng đường cong khác nhau, trong đó có hai loại đối tượng rất phổ biến là Circle - đường tròn và Arc - cung tròn. Tất cả các phương thức này đều tạo đối tượng trong mặt phẳng XY
21
Tạo đối tượng Circle3A
Ví dụ
22
Tạo đối tượng Arc 3A
Set RetVal = object.AddArc(Center, Radius, StartAngle, EndAngle)
Để tạo đối tượng Arc, sử dụng phương thức AddArc. Cú pháp
Ghi chú
Phương thức này sẽ tạo ra một cung tròn dựa trên 4 thông số
khác nhau để xác định vị trí và kích thước của cung tròn
CHÚ Ý Hầu hết các tham số có liên quan đến góc trong VBA
đều có đơn vị là Radian
23
Tạo đối tượng Arc3A
Ví dụ
24
Tạo văn bản đơn (Text) 3A
Set RetVal = object.AddText(TextString, InsertionPoint, Height)
Để tạo đối tượng văn bản đơn, sử dụng phương thức AddText của tập đối tượng ModelSpace Cú pháp
Ghi chú
Tương đương với lệnh Text va DText cuar AutoCad
25
Tạo văn bản đơn (Text) 3A
Ví dụ
26
Tạo văn bản nhiều dòng (MText) 3A
Set RetVal = object.AddMText(InsertionPoint, Width, Text)
Để tạo đối tượng MText, sử dụng phương thức AddMText.
Cú pháp
Ghi chú
Tương đương với lệnh MText của AutoCad
27
Tạo văn bản nhiều dòng (MText)) 3A
Ví dụ
28
Với sinh viên thì đó phải là bất đẳng thức mà
dấu < phải hướng về phần
Học !
Học và chơilà hai vế của một
đẳng thức
Nghỉ thôi