TẠO DỰNG CÁC KHỐI BLOCK
Trang 1I TẠO DỰNG CÁC KHỐI BLOCK
Trong quá trình vẽ một bản vẽ kỹ thuật hay vẽ nhiêu bản vẽ thì sẽ có nhiều hình vẽgiống nhau Trong quá trình vẽ người vẽ có thể dùng các kỹ thuật sao chép nhưCopy/Paste, Array, Mirror… để không phải vẽ lại nhiều lần, nhưng cách đó thườngmất nhiều thời gian và có thể gây sai sót, nhầm lẫn
Để khắc phục được vấn đề này, trong AutoCAD đưa ra khái niệm Block (nhóm cácđối tượng liên kết thành một đối tượng) Việc Insert các Block cho phép rút ngắnđáng kể thời gian, tăng cao hiệu quả và độ chính xác khi vẽ
Để tạo một block : đầu tiên ta vẽ block cần tạo bằng các lệnh thông thường sau đóvào Draw – block – make
Trang 2từ hộp thoại đặt tên cho block, chọn diểm chèn và đối tượng làm block.
Ta được các block sau:
a.Mặt cắt dầm:
b Tạo block về mặt cắt cột BTCT
Ta tạo hai loại cột : Cột tròn và cột chữ nhật
Có dạng
Trang 3Và mặt cắt cột chữ nhật có dạng
Để đảm bảo phục vụ cho nhiều chi tiết nên không ghi kích thước trong mặt cắt
Block về con tiện
Trang 4d Block về hoa sắt ban công
e Block về cấu tạo và kiến trúc của mặt cắt ngang ban công
f Block về kết cấu sênô
3 Từ các block in ra bản vẽ các block ứng với từng tỷ lệ trong không gian giấy
vẽ
Trang 5Từ các block trên ghi ra file dang *.dwg Để tổ chức in ra các block ta chuyển sang không gian giấy vẽ dùng khung nhìn động Floadting viewport để định dạng lại các đối tượng sau đó tiến hành in bản vẽ
4 Tổ chức các block thành một thư viện và viết mênu sử dụng
Từ các block đã có ta tiến hành các thao tác tạo lập thư viện block như sau
Dùng lệnh Zoom ext để tràn hết màn hình
Dùng lệnh mslide để chụp các đối tượng là block lưu file lại dạng *.sld
Đưa các file *.dwg và *.sld vào thư mục surport của autocad và tiến hành viết mênu
sử dụng lưu file dưới dạng *.mnu Ở đây ta sử dụng file acad.mnu của autocad làmfile Thu_vien_block cơ bản, sau đó ta thêm phần tạo menu “ Thuvienblock” và cácmêenu con tương ứng vào Dưới đây là phần chương trinh ta chèn thêm vào:
Phần tạo menu “ thuvienblock” với các menu images tương ứng
***POP12
**[Thu vien block]
[Cua]$I=image_cua $I=*
[Do dung]$I=image_dodung $I=*
[Ve sinh]$I=image_vs $I=*
[Oto,xe may]$I=image_otxm $I=*
[Nguoi]$I=image_nn $I=*
[Con tien]$I=image_ct $I=*
[Cay]$I=image_cay $I=*
[Bac thang]$I=image_bacthang $I=*
[Mat cat dam BTCT]$I=image_btct $I=*
[Hoa sat]$I=image_hoasat $I=*
[Mat Cat Cot]$I=image_MCcot $I=*
[Ban Cong]$I=image_Bancong $I=*
[Se No]$I=image_Seno $I=*
Chương trình tạo các menu images :(chèn vào phần “ ***images” của file nguồn
Trang 6[ghesl]^C^Cinsert;ghesl;1.0;1.0;0.0
[giuong11]^C^Cinsert;giuong11;1.0;1.0;0.0 [giuongngu]^C^Cinsert;giuongngu;1.0;1.0;0.0 [pan]^C^Cinsert;pan;1.0;1.0;0.0
[giuongngu]^C^Cinsert;giuongngu;1.0;1.0;0.0 [pkanh]^C^Cinsert;pkanh;1.0;1.0;0.0
[pkhach]^C^Cinsert;pkhach;1.0;1.0;0.0
**image_vs
[Ve sinh]
[mb-vs1]^C^Cinsert;mb-vs1;1.0;1.0;0.0 [mb-vs2]^C^Cinsert;mb-vs2;1.0;1.0;0.0 [md-vs1]^C^Cinsert;md-vs1;1.0;1.0;0.0 [md-vs2]^C^Cinsert;md-vs2;1.0;1.0;0.0 [btam]^C^Cinsert;btam;1.0;1.0;0.0
Trang 8Hộp thoại menu bar cho ta biết các thanh menu có trong thanh menu
Do ta tận dụng file acad.mnu nên ta có đầy đủ các menu bar của cad ngoai ra ta còntạo thêm cho mình một menu bar mới đó là menu “ Thuvienblock” với menu nàygiúp ta rất tiên lợi cho việc chèn block
Trang 9Sau khi load se cho ta hộp thoại:
Nếu chọn yes ta sẽ có thanh menu mới còn no thì ta vẫn ở thanh menu cũ
Menu mới có dạng:
Trang 10Các Menu con thành phần như sau:
PHẦN II: LẬP TRÌNH TRONG AUTOCAD
Tuỳ biến bản vẽ giúp người hoạ viên tăng hiệu quả, hiệu suất và tốc độ khi vẽ trongmôi trường AutoCAD Nhưng như vậy vẫn chưa đủ, một hoạ viên chuyên nghiệpcần nắm rõ cả các ngôn ngữ lập trình được hỗ trợ trong AutoCAD để có thể rút ngắncác thao tác làm việc, nhất là khi công việc đòi hỏi một khối lượng vẽ lớn Thay vìphải vẽ từng tý một, người hoạ viên chỉ cần gõ lệnh là có thể hoàn thành bản vẽ mộtcách chính xác, nhanh chóng
Trang 11Một trong những ngôn ngữ lập trình thông dụng được hỗ trợ trong AutoCAD đó làngôn ngữ VBA, với cấu trúc, cú pháp, câu lệnh dễ hiểu, ngôn ngữ VBA thực sựmạnh và phù hợp cho những hoạ viên mới bắ đầu làm quen với việc lập trình trongmôi trường AutoCAD
Trong khuôn khổ bài làm em chỉ xin giới thiệu về phương thức sử dụng ngôn ngữVBA trong một số các thao tác đối với Layer
Để sử dụng một chương trình viết bằng VBA ta thao tác như sau:
Tại không gian Model space ta phải Load chương trình đó vào trong AutoCad Cónhiều cách làm
Ta có thể làm như sau :Từ menu polldown \ Tools\ Load Aplication
Sau đó ta sẽ được giao diện như sau :
Trang 12Sau bước này ta vào thư mục có chứa File chương trình , để Load và trong autoCad.Chọn file cần thiết sau ddos kích vào Load.
Trang 13Chọn run để vào được menu chính :
Đây chính là giao diện menu chính:
Trang 14Tại cửa sổ giao diện này ta có thể kích hoạt để sử dụng cho công việc vẽ được rồi.
Ở trên là một ví dụ : Ta muốn vẽ đường Hidden tỉ lệ Scale là 20
Kích hoạt nút “Kich vao day de bat dau” , Sau đó dung chuột để chọn các giá trị điểm đầu cuối ta đã có một đường thằng cần vẽ :
Trang 15Để tạo và sửa chữa chương trình ta vào mã nguồn bằng phím tắt : Alt + F11Hoặc Từ menu pollDown / Tools/ Macro /Visual Basic Editor.
Trang 18Đây là mã nguồn để Load một dạng đường thẳng trong File Acad.lin Các đường này
đã được ta tạo sẵn và lưu vào trong File Acad.lin :
Sub Linetp(linetypeName As String, scaleLine As Double)
On Error Resume Next
ThisDrawing.Linetypes.Load linetypeName, "acad.lin"
ThisDrawing.ActiveLinetype = ThisDrawing.Linetypes.Item("HIDDEN")
If Err.Description = "Duplicate record name" Then
MsgBox "A line type named '" & linetypeName
End If
Dim returnObj As AcadObject
Dim basePnt As Variant
Dim sPnt As Variant
Dim ePnt As Variant
Dim eePnt(0 To 2) As Double
Dim ssPnt(0 To 2) As Double
Dim lineObj As AcadLine
sPnt = ThisDrawing.Utility.GetPoint(, "Select first object")
ssPnt(0) = sPnt(0): ssPnt(1) = sPnt(1): ssPnt(2) = sPnt(2)
Trang 19ePnt = ThisDrawing.Utility.GetPoint(, "Select second object")
eePnt(0) = ePnt(0): eePnt(1) = ePnt(1): eePnt(2) = ePnt(2)
Set lineObj = ThisDrawing.ModelSpace.AddLine(ssPnt, eePnt)
Đoạn chương trình này được gắn vào một From để ta dễ dàng sử dụng Dưới đây là
mã nguồn để tạo ra một From
Private Sub ct_Click()
End Sub
Private Sub Drwl_Click()
Linetpe.Hide
If ct.Value = True Then
LineType.Linetp "CENTER", lscl.Value
Else
If hi.Value = True Then
LineType.Linetp "HIDDEN", lscl.Value
Else
If cont.Value = True Then
LineType.Linetp "continuous", lscl.Value
Else
If Border.Value = True Then
LineType.Linetp "Border", lscl.Value
Else
If Dashed.Value = True Then
LineType.Linetp "Dashed", lscl.Value
Else
If Divide.Value = True Then
LineType.Linetp "Divide", lscl.Value
Else
If Dot.Value = True Then
LineType.Linetp "Dot", lscl.Value
End If
If Tracks.Value = True Then
LineType.Linetp "Tracks", lscl.Value
Trang 20Các lệnh kích hoạt VBA tại Command line của AutoCAD
Loại bỏ một file VBA project từ phiên làm việc hiện thời của AutoCAD
Nếu file VBA project đã được sửa đổi mà chưa được lưu thì người dùng sẽ nhậnđược yêu cầu lưu
VBAMAN
Trang 21Hiển thị chương trinh quản lý VBA cho phép người dùng xem, tao, nhập, đóng, gắnvào, trích ra các projects.
III LẬP TRÌNH TẠO MỘT KHUNG TÊN
Vẽ khung tên bản vẽ
Tạo khung tên bản vẽ bằng lập trình VBA
Sử dụng VBA để vẽ khung tên bản vẽ Tạo một giao diện như sau
Trang 22Vơi đoạn mã viết trong VBA như sau:
Private Sub CommandButton1_Click()
UserForm1.hide
'Viet chu trong ban ve
Dim textObj As AcadMText
Trang 23Set textObj = ThisDrawing.ModelSpace.AddMText(dc, Width, mt(4)) ZoomAll
Trang 24'Ve khung ten
Dim lineObj As AcadLine
Set lineObj = ThisDrawing.ModelSpace.AddLine(d, c)
'Ve khung ten
Trang 25Unload Me
End Sub
Ta khai báo các hộp textbox là tên các nhãn
Nhập trường , lớp , sinh viên thực hiện, mã sinh viên, ngày vẽ ,ngày hoàn thành, số hiệu bản vẽ sau đó nhấn vào vẽ khung tên ta được như hình vẽ sau