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ường mấ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àm file Thu_vien_block cơ bản, sau đó ta thêm phần tạo menu “ Thuvienblock” và các mê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.
**[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 7Sau đó vào chương trình AutoCAD, tại Menu Tools Customize Menus… Hộp thoại sau sẽ xuất hiện, tại đây ta load vào file Block.mnu vừa tạo.
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òn tạo thêm cho mình một menu bar mới đó là menu “ Thuvienblock” với menu này giú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ẽ trong môi trường AutoCAD Nhưng như vậy vẫn chưa đủ, một hoạ viên chuyên nghiệp cần nắm rõ cả các ngôn ngữ lập trình được hỗ trợ trong AutoCAD để có thể rút ngắn cá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ột cá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 trong mô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 + F11 Hoặ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 '" & linetypeNameEnd If
Dim returnObj As AcadObjectDim basePnt As VariantDim sPnt As VariantDim ePnt As Variant
Dim eePnt(0 To 2) As DoubleDim ssPnt(0 To 2) As DoubleDim 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.ValueElse
If hi.Value = True Then
LineType.Linetp "HIDDEN", lscl.ValueElse
If cont.Value = True Then
LineType.Linetp "continuous", lscl.ValueElse
If Border.Value = True Then
LineType.Linetp "Border", lscl.ValueElse
If Dashed.Value = True Then
LineType.Linetp "Dashed", lscl.ValueElse
If Divide.Value = True Then
LineType.Linetp "Divide", lscl.ValueElse
If Dot.Value = True Then
LineType.Linetp "Dot", lscl.ValueEnd 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
VBALOAD
Load một file VBA Project vào trong phiên làm việc hiện tại của AutoCAD
VBARUN
Chạy một đoạn macro của VBA từ hộp thoại Macros dialog hay từ dòng Command line của AutoCAD
VBAUNLOAD
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ắn vào, trích ra các projects.
Kết luận
Phần trên ta đã tóm tắt sơ lược quá trình tạo và sử dụng một trình ứng dụng viết bằng ngôn ngữ lập trình VBA for AutoCad
Do thời gian nghiên cứu ngắn ,Tầm hiểu biết có hạn cho nên chương trình này còn rất mhiều hạn chế Chưa đủ để đáp ứng nhu cầu đề ra rất mong sự góp ý của thầy giáo để sau này em có những chương trình hay phù hợp để có thể áp dụng vào trong thực tế.
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 veDim textObj As AcadMTextDim dc(0 To 2) As DoubleDim i As Integer
Dim mt(0 To 6) As String
mt(6) = "TRUONG " & UCase(CStr(truong)): mt(5) = "LOP: " & CStr(lop): mt(4) = "NGUOI VE: " & CStr(nguoive): mt(3) = "MA SV: " & CStr(masv): mt(2) = CStr(ngayve)
mt(1) = "SO HIEU: " & CStr(sohieu): mt(0) = CStr(ngayht):
Trang 23Set textObj = ThisDrawing.ModelSpace.AddMText(dc, Width, mt(4))
Trang 24'Ve khung ten
Dim lineObj As AcadLine
Set lineObj = ThisDrawing.ModelSpace.AddLine(d, c)'Ve khung ten
Trang 25ZoomAllUnload MeEnd 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