CÁC ĐỐI TƯỢNG VẼ TRONG CAD

Một phần của tài liệu giáo trình VBA for CAD (Trang 26 - 31)

Không gian mô hình (Model Space) và không gian giấy vẽ (Paper Space) AutoCad quản lý không mô hình và không gian giấy vẽ thông qua 2 biến acModelSpace và acPaperSpace.

acModelSpace = 1 acPaperSpace = 0

Đoạn code sau dùng để kiểm tra xem bạn đang ở không gian nào.

Private Sub CommandButton1_Click()

If ThisDrawing.ActiveSpace = acModelSpace Then MsgBox "Ban dang o khong gian Model"

Else

MsgBox "Ban dang o khong gian giay ve"

End If End Sub

Private Sub CommandButton1_Click()

If ThisDrawing.ActiveSpace = acModelSpace Then MsgBox "Ban dang o khong gian Model"

Else

MsgBox "Ban dang o khong gian giay ve"

End If End Sub

I. Arc, Circle và Ellipse 1. Arc

Để vẽ một đối tượng cung tròn ta dùng phương thức AddCircle. Phương thức này cần có 4 thông số:

Set ArcObject = Object.AddArc(CenterPoint, Radius, StartAngle, EndAngle)

Name Data Type Description

CenterPoint Variant Một mảng gồm 3 phần tử, mỗi phần tử lưu trữ lần lượt tọa độ X,Y,Z trong WCS hệ tọa độ gốc dùng để xác định tâm của cung tròn.

Radius Double Đường kính của đường tròn bao cung tròn cần tạo ra

StartAngle Double Góc bắt đầu của cung tròn, tính theo WCS EndAngle Double Góc cuối của cung tròn, tính theo WCS

Dưới đây là đoạn code tham khảo vẽ một cung tròn:

Dim Tam As Variant Dim BanKinh As Double Dim StartPoint As Double Dim EndPoint As Double Dim ArcObj As AcadArc UserForm1.Hide

Tam = ThisDrawing.Utility.GetPoint(, vbCr & "Chon diem")

BanKinh = ThisDrawing.Utility.GetDistance(Tam, vbCr & "Nhap vao duong kinh")

StartPoint = ThisDrawing.Utility.GetAngle(Tam, vbCr & "Nhap vao goc 1")

EndPoint = ThisDrawing.Utility.GetAngle(Tam, vbCr & "Nhap vao goc thu 2")

If ThisDrawing.ActiveSpace = acModelSpace Then

Set ArcObj = ThisDrawing.ModelSpace.AddArc(Tam, BanKinh, StartPoint, EndPoint)

Else

Set ArcObj = ThisDrawing.PaperSpace.AddArc(Tam, BanKinh, StartPoint, EndPoint)

End If

ArcObj.Update UserForm1.Show

2. Circle

Để tạo ra một đường tròn chúng ta dùng câu lệnh

Set CircleObject = Object.AddCircle (CenterPoint, Radius)

Tên Kiểu dữ liệu Chú giải

CenterPoint Variant Một mảng gồm 3 phần tử, mỗi phần tử lưu trữ lần lượt tọa độ X,Y,Z trong WCS hệ tọa độ gốc để xác định tâm của đường tròn.

Radius Double Đường kính của đường tròn

Dưới đây là đoạn code tham khảo vẽ một đường tròn tham khảo:

Private Sub CommandButton4_Click() Dim VarCenter As Variant

Dim Radius As Double Dim CircleObj As AcadCircle UserForm1.Hide

With ThisDrawing.Utility

VarCenter = .GetPoint(, vbCr & "Chon tam duong tron")

Radius = .GetDistance(VarCenter, vbCr & "Nhap vao ban kinh") If ThisDrawing.ActiveSpace = acModelSpace Then

Set CircleObj = ThisDrawing.ModelSpace.AddCircle(VarCenter, Radius) Else

Set CircleObj = ThisDrawing.PaperSpace.AddCircle(VarCenter, Radius) End If

CircleObj.Update End With

UserForm1.Show End Sub

3. Ellipse

Để vẽ một đối tượng cung tròn ta dùng phương thức AddCircle. Phương thức này cần có 4 thông số:

Set ArcObject = Object.AddEllipse(CenterPoint, MajorAxis, RadiusRatio)

Tên Kiểu dữ liệu Chú giải

CenterPoint Variant Một mảng gồm 3 phần tử, mỗi phần tử lưu trữ lần lượt tọa độ X,Y,Z trong WCS hệ tọa độ gốc để xác định tâm của đường tròn.

MajorAxis Variant Một mảng gồm 3 phần tử, mỗi phần tử lưu trữ lần lượt tọa độ X,Y,Z trong WCS hệ tọa độ gốc để xác định một vector từ tâm đường tròn đến điểm lựa chọn dùng để xác định trục cạnh dài của Ellipse.

RadiusRati

o Double Tỉ lệ giữa trục cạnh ngắn và cạnh dài của Ellip, 0≤RadiusRatio≤1.

MajorAxis: Trục đối xứng trục cạnh dài.

RadiusRatio: Tỉ lệ MinorAxis/Trục MajorAxis World Coordinate Systerm: Hệ tọa độ gốc

Dưới đây là đoạn code tham khảo vẽ một đường Ellip tham khảo:

Private Sub CommandButton5_Click() Dim dblCenter As Variant

Dim dblMajor As Variant Dim dblRatio As Double Dim dblStart As Double Dim dblEnd As Double Dim ElipObj As AcadEllipse UserForm1.Hide

On Error Resume Next

dblCenter = ThisDrawing.Utility.GetPoint(, vbCr & "Chon Tam ve Elip") dblMajor = ThisDrawing.Utility.GetPoint(, vbCr & "Chon diem lam truc canh dai cua Elip")

dblRatio = 0.5

If ThisDrawing.ActiveSpace = acModelSpace Then

Set CircleObj = ThisDrawing.ModelSpace.AddEllipse(dblCenter, dblMajor, dblRatio)

Else

Set CircleObj = ThisDrawing.PaperSpace.AddEllipse(dblCenter, dblMajor, dblRatio)

End If

ElipObj.Update UserForm1.Show End Sub

II. Line, Ray, Polyline 1. Line

i. Line Object

Để vẽ một đường thẳng nối giữa 2 điểm ta dùng phương thức sau:

Set LineObject = Object.AddLine(StartPoint,EndPoint)

Tên Kiểu dữ liệu Chú giải

StartPoint Variant Một mảng gồm 3 phần tử, mỗi phần tử lưu trữ lần lượt tọa độ X,Y,Z trong WCS hệ tọa độ gốc để xác định điểm đầu của đoạn thẳng.

EndPoint Variant Một mảng gồm 3 phần tử, mỗi phần tử lưu trữ lần lượt tọa độ X,Y,Z trong WCS hệ tọa độ gốc để xác định điểm cuối của đoạn thẳng.

ii.

2. Ray 3. Polyline

III. Solid, Hatch, Region IV.

Một phần của tài liệu giáo trình VBA for CAD (Trang 26 - 31)

Tải bản đầy đủ (DOC)

(32 trang)
w