28
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 3 1 Tạo đối tượng Point 3 3 Tạo đối tượng Circle 6 Tạo đối tượng văn bản 8 Tạo đối tượng LWPolyline, Polyline 3 5 Tạo đối tượng Arc 3 7

BaiGiangVBAForAutoCAd Bai 4

  • Upload
    road2it

  • View
    223

  • Download
    2

Embed Size (px)

DESCRIPTION

Bài giảng VBA for AutoCAD

Citation preview

Page 1: BaiGiangVBAForAutoCAd Bai 4

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

Page 2: BaiGiangVBAForAutoCAd Bai 4

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

Page 3: BaiGiangVBAForAutoCAd Bai 4

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

Page 4: BaiGiangVBAForAutoCAd Bai 4

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.

Page 5: BaiGiangVBAForAutoCAd Bai 4

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

Page 6: BaiGiangVBAForAutoCAd Bai 4

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

Page 7: BaiGiangVBAForAutoCAd Bai 4

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

Page 8: BaiGiangVBAForAutoCAd Bai 4

8

Xác định nơi chứa đối tượng3A

Page 9: BaiGiangVBAForAutoCAd Bai 4

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

Page 10: BaiGiangVBAForAutoCAd Bai 4

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

Page 11: BaiGiangVBAForAutoCAd Bai 4

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

Page 12: BaiGiangVBAForAutoCAd Bai 4

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.

Page 13: BaiGiangVBAForAutoCAd Bai 4

13

Tạo đối tượng Point 3A

Ví dụ

Page 14: BaiGiangVBAForAutoCAd Bai 4

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 .

Page 15: BaiGiangVBAForAutoCAd Bai 4

15

Tạo đối tượng dạng đường thẳng3A

Ví dụ

Page 16: BaiGiangVBAForAutoCAd Bai 4

16

Tạo đối tượng dạng đường thẳng3A

Ví dụ

Page 17: BaiGiangVBAForAutoCAd Bai 4

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

Page 18: BaiGiangVBAForAutoCAd Bai 4

18

Tạo  đối  tượng  LWPolyline 3A

Ví dụ

Page 19: BaiGiangVBAForAutoCAd Bai 4

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ẽ.

Page 20: BaiGiangVBAForAutoCAd Bai 4

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

Page 21: BaiGiangVBAForAutoCAd Bai 4

21

Tạo  đối  tượng  Circle3A

Ví dụ

Page 22: BaiGiangVBAForAutoCAd Bai 4

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

Page 23: BaiGiangVBAForAutoCAd Bai 4

23

Tạo  đối  tượng  Arc3A

Ví dụ

Page 24: BaiGiangVBAForAutoCAd Bai 4

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

Page 25: BaiGiangVBAForAutoCAd Bai 4

25

Tạo  văn  bản  đơn  (Text) 3A

Ví dụ

Page 26: BaiGiangVBAForAutoCAd Bai 4

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

Page 27: BaiGiangVBAForAutoCAd Bai 4

27

Tạo  văn  bản  nhiều  dòng  (MText)) 3A

Ví dụ

Page 28: BaiGiangVBAForAutoCAd Bai 4

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