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.