1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

Giáo trình VBA autocad

133 130 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 133
Dung lượng 2,14 MB

Nội dung

Đinh Văn Tráng PHỤ LỤC Chương TỔNG QUAN VỀ VBA TRONG AUTOCAD .8 1.1 Khái niệm dự án nhúng dự án độc lập 1.2 Trình quản lý dự án VBA 1.3 Định nghĩa lệnh Autolisp Chương .11 HỆ THỒNG ĐỐI TƯỢNG VÀ MỘT SỐ THAO TÁC CƠ BẢN TRONG AUTOCAD .11 2.1 Mơ hình đối tượng AutoCad 11 2.2 Một số đối tượng AutoCad 12 2.1.1 Đối tượng Application 12 2.1.2 Khái niệm tập đối tượng 12 2.1.3 Tập đối tượng Documents đối tượng Document 12 2.2 Các thao tác AutoCad 13 2.2.1 Mở vẽ - Phương thức Open 13 2.2.2 Tạo vẽ – Phương thức Add 13 2.2.3 Lưu vẽ -Phương thức Save, SaveAs 14 2.2.4 Đóng vẽ - Phương thức Close 15 2.2.5 Thoát khỏi chương trình AutoCad – Phương thức Quit 16 Chương .17 CÁC KIỂU DỮ LIỆU VÀ CÁCH KHAI BÁO BIẾN TRONG VBA 17 3.1 Những quy đinh cú pháp VBA 17 3.2 Khai báo biến VBA 18 3.2.1 Tổng Quát 18 3.2.2 Cách thức khai báo biến 18 Basic VBA for AutoCad Page Đinh Văn Tráng 3.3 Các kiểu liệu VBA 19 3.3.1 Kiểu Logic – Boolean 19 3.3.2 Kiểu số nguyên – Byte/Integer/Long 20 3.3.3 Kiểu số thực – Single/Double 20 3.3.4 Kiểu Chuỗi – String 21 3.3.5 Kiểu Mảng 21 3.3.6 Kiểu Variant 23 Chương .24 TỐN TỬ VÀ CÁC HÀM THƠNG DỤNG 24 4.1 Các hàm số học VBA 25 4.2 Các toán tử so sánh thường sử dụng VBA 26 4.3 Toán tử Logic thường dùng VBA 27 4.3.1 Toán tử AND 27 4.3.2 Toán tử OR 28 4.3.3 Toán tử NOT 29 4.4 Các hàm chuyển đồi liệu 29 4.5 Các hàm xử lý chuỗi 30 4.5.1 Hàm LEFT 30 4.5.2 Hàm RIGHT 30 4.5.3 Hàm MID 30 4.5.4 Hàm LEN 31 4.5.5 Hàm UCase 31 4.5.6 Hàm LCase 32 4.5.7 Hàm InStr 32 4.5.8 Hàm InStrRev 34 Basic VBA for AutoCad Page Đinh Văn Tráng 4.5.9 Hàm Ltrim, RTrim 35 4.5.10 Hàm Space 36 4.5.11 Hàm Split 36 4.5.12 Hàm Replace 38 4.5.13 Hàm StrComp 39 Chương .41 CẤU TRÚC ĐIỀU KIỆN VÀ VÒNG LẶP 41 5.1 Cấu Trúc Điều Kiện 41 5.1.1 Cấu trúc : “If … Then …” 41 5.1.2 Cấu trúc : “If … Then… Else … End If” 42 5.1.3 Cấu trúc : “If … Then… Else … End If” mở rộng 43 5.1.4 Cấu trúc: “Select Case … Case…End Select” 44 5.2 Cấu Trúc Vòng Lặp 45 5.2.1 Cấu trúc: “For … Next” 45 5.2.2 Cấu trúc : “For Each … Next” 47 5.2.3 Cấu trúc : “Do While … Loop” 48 5.2.4 Cấu trúc : “Do … Loop While” 48 5.2.5 Cấu trúc : “Do Until … Loop” 49 5.2.6 Cấu trúc : “Do … Loop Until ” 49 Chương .50 CÁC HÀM NHẬP LIỆU 50 6.1 Phương thức : Prompt 51 6.2 Phương thức: GetString 52 6.3 Phương thức : GetPoint 53 6.4 Phương thức : GetInteger GetReal 54 Basic VBA for AutoCad Page Đinh Văn Tráng 6.5 Phương thức : GetDistance 55 6.6 Phương thức : GetKeyWord 56 6.7 Phương thức GetEntity 57 6.8 Phương thức: GetCorner 58 6.9 Phương thức : InitializeUserInput 59 Chương .61 TẠO MỚI ĐỐI TƯỢNG TRONG AUTOCAD .61 7.1 Xác định nơi chứa đối tượng 62 7.2 Khai báo phương thức tạo đối tượng hình học 63 7.2.1 Tạo đường thẳng –Phương thức AddLine 63 7.2.2 Tạo đối tượng LWPolyline - Phương thức AddLightWeightPolyline 64 7.2.3 Tạo đối tượng đường tròn – Phương thức AddCircle 65 7.2.4 Tạo đối tượng cung tròn –Phương thức AddArc 66 7.2.5 Tạo đối tượng văn đơn - phương thức AddText 67 7.2.6 Tạo đối tượng văn nhiều dòng-Phương thức AddMtext 68 Chương .69 LÀM VIỆC VỚI ĐỐI TƯỢNG SELECTIONSET 69 8.1 Quy trình làm việc với đối tượng SelectionSet 70 8.2 Khai báo khởi tạo đối tượng SelectionSet 70 8.3 Thêm đối tượng vào SelectionSet 71 8.3.1 Phương thức AddItems 72 8.3.2 Phương thức Select 73 8.3.3 Phương Thức SelectOnScreen 75 8.3.4 Thao tác với đối tượng SelectionSet 76 8.4 Bộ lọc cho đối tượng SelectionSet 76 Basic VBA for AutoCad Page Đinh Văn Tráng 8.4.1 Lọc theo điều kiện 77 8.4.2 Lọc theo nhiều điều kiện 78 8.5 Một số phương thức khác đối tượng SelectionSet 80 8.5.1 Phương thức RemoveItems 80 8.5.2 Phương thức Clear 82 8.5.3 Phương thức Eraser 82 8.5.4 Phương thức Delete 82 Chương .84 HIỆU CHỈNH CÁC ĐỐI TƯỢNG HÌNH HỌC .84 9.1 Tổng quan việc hiệu chỉnh đối tượng hình học VBA 85 9.2 Sao chép đối tượng – Phương thức Copy 85 9.3 Xóa đối tượng –Phương thức Delete 86 9.4 Di chuyển đối tượng – Phương thức Move 86 9.5 Lấy đối xứng – Phương thức Mirror 88 9.6 Phương thức OffSet 89 9.7 Xoay đối tượng – Phương thức Rotate 90 9.8 Thay đổi tỉ lệ đối tượng – Phương thức ScaleEntity 92 9.9 Thay đổi màu đối tượng – Thuộc tính Color 93 9.10 Thay đổi Layer cho đối tượng – Thuộc tính Layer 95 9.11 Thay đổi kiểu đường cho đối tượng – Thuộc tính LineType 96 9.12 Thay đổi bề rộng nét vẽ đối tượng – Thuộc tính LineWeight 98 Chương 10 100 LÀM VIỆC VỚI ĐỐI TƯỢNG LAYER 100 10.1 Duyệt qua tập đối tượng Layers 101 10.2 Khai báo khởi tạo Layer – Phương thức Add 101 Basic VBA for AutoCad Page Đinh Văn Tráng 10.3 Đổi tên Layer – Thuộc tính Name 102 10.4 Thiết lập Layer hành 103 10.5 Gán màu cho Layer – Thuộc tính Color 103 10.6 Gán kiểu đường cho Layer – Thuộc tính LineType 105 10.7 Gán LineWeight cho Layer – Thuộc tính LineWeight 107 10.8 Một số thuộc tính khác đối tượng Layer 109 10.8.1 Bật, Tắt Layer – Thuộc tính LayOn 109 10.8.2 Đơng cứng, Làm tan Layer – Thuộc tính Freeze, UnFreeze 110 10.8.3 Khóa, Mở Khóa Layer – Thuộc tính Lock, UnLock 110 10.8.4 Xóa Layer – Thuộc tính Delete 111 Chương 11 112 LÀM VIỆC VỚI ĐỐI TƯỢNG BLOCK 112 11.1 Duyệt qua tập đối tượng Block 113 11.2 Khai báo khởi tạo Block 113 11.3 Đổi tên Block – Thuộc tính NAME 114 11.4 Xóa Block – Thuộc tinh Delete 115 11.5 Chèn Block vào vẽ - Phương thức InsertBlock 117 11.6 Phá vỡ Block – Phương thức Explode 120 11.7 Block chứa thuộc tính – Attributes 122 11.7.1 Tạo thuộc tính cho Block –Phương thức AddAttribute 122 11.7.2 Thao tác với thuộc tính – Phương thức GetAttributes 125 Làm việc với vẽ tham khảo – External References 127 11.8 11.8.1 Gắn tham chiếu vào vẽ – Phương thức AddExternalReference 127 11.8.2 Gỡ bỏ tham chiếu khỏi vẽ - Phương thức Detach 130 Basic VBA for AutoCad Page Đinh Văn Tráng 11.8.3 Tải lại tham chiếu – Phương thức Reload 130 11.8.4 Loại bỏ tham chiếu khỏi vẽ - Phương thức Unload 131 11.8.5 Ràng buộc tham chiếu – Phương thức Bind 132 TÀI LIỆU THAM KHẢO 133 Basic VBA for AutoCad Page Đinh Văn Tráng Chương TỔNG QUAN VỀ VBA TRONG AUTOCAD 1.1 Khái niệm dự án nhúng dự án độc lập 1.1.1 Dự án nhúng Dự án nhúng dự án đính kèm với vẽ Đặc điểm dự án nhúng :  Không cần phải nhớ nơi lưu trử dự án, tải dự án vào Autocad sử dụng chức có sẵn dự án, tự động tải vào vẽ mở  Những chức lập trình dự án VBA nhúng có hiệu lực vẽ chứa muốn sử dụng chứa cho vẽ khác người dùng buộc phải chép dự án VBA 1.1.2 Dự án độc lập Dự án độc lập dự án tách biệt tệp tin có phần mở rộng *.dvb không phụ thuộc vào vẽ Đặc điểm dự án độc lập :  Muốn sử dụng dự án độc lập người dùng phải tải dự án vào Autocad  Dự án độc lập tác động lên tất vẽ mở  Khi cần chia chức dự án cần mang theo tệp “.dvb” đủ 1.2 Trình quản lý dự án VBA Trong Autocad việc quản lý dự án VBA thực dễ dàng = thơng qua trình quản lý dự án – VBA Manager.Để hiển thị VBA Manager chọn Tool -> Macros -> VBA Manager (Hoặc đánh lệnh VBAMAN) Basic VBA for AutoCad Page Đinh Văn Tráng Ý nghĩa số thành phần trình quản lý dự án  New : Tạo dự án VBA (Mặc định dự án độc lập)  Save As : Lưu dự án VBA  Load : Tải dự án VBA vào VBAIDE.Người dùng yêu cầu chọn tệp dự án VBA (*.dvb) để Load vào  Macros : Hiển thị trình quản lý Macros  Visual Basic Editor : Hiển thị môi trường VBAIDE, môi trường thực viết mã lệnh thiết kế giao diện chương trình 1.3 Định nghĩa lệnh Autolisp Việc định nghĩa lệnh Autolisp làm cho trình thực thi Macro đơn giản nhiều Autolisp cầu nối tạo liên kết dòng lệnh AutoCad với Macro dự án VBA Để lệnh có hiệu lực AutoCad khởi động người lập trình cần lưu dự án VBA thành tệp có tên ACAD.DVB tệp Autolisp có tên ACAD.LSP hai tệp phải lưu vào thư mục Support AutoCad.Hai tệp tự động tải lên sau AutoCad khởi động người dùng sử dụng lệnh tự định nghĩa Basic VBA for AutoCad Page Đinh Văn Tráng Cách tạo file Autolisp  Tại thư mục bất kỳ, nhấn chuột phải, chọn New -> Text Document  Đổi tên file vừa tạo thành tên file ta muốn với phần mở rộng LSP (thay txt)  Trong trường hợp Window bạn bỏ chế độ hiển thị đuôi mở rộng, Open file Text vừa tạo, Save As file thành dạng “Tên_file.LSP” Chú ý2 dấu “” để đảm bảo file chuyển thành đuôi mở rộng LSP Cách thức định nghĩa lệnh AutoLisp Basic VBA for AutoCad Page 10 Đinh Văn Tráng  Ví dụ Trong ví dụ yêu cầu người dùng nhập đường dẫn chứa vẽ cần chèn vào (bao gồm phần mở rộng “.dwg”).Đồng thời thông số InsertPoint,Xscal, Yscale, Zscale, RotationAngle người dùng nhập vào Basic VBA for AutoCad Page 119 Đinh Văn Tráng 11.6 Phá vỡ Block – Phương thức Explode Với đối tượng “Block Reference” sử dụng phương thức Explode để phá vỡ chúng.Đối tượng trả phương thức mảng (kiểu Variant) chứa đối tượng cấu thành nên  Cú pháp VarArray = BlockReferenceObj.Explode Basic VBA for AutoCad Page 120 Đinh Văn Tráng  Giải thích Tham số VarArray BlockReferenceObj Giải thích Kiểu Variant – Mảng chứa đối tượng BlockReferenceObj bị phá vỡ Kiểu acadBlockReference – Đối tượng Block bị phá vỡ  Chú ý Phương thức Explode thực chất tạo đối tượng gốc, sau thực việc phá vỡ Block đối tượng này.Đối tượng gốc giữ ngun.Nếu khơng muốn giữ đối tượng xóa khỏi vẽ phương thức Delete  Ví dụ Ví dụ yêu cầu người dùng chọn Block hình vẽ điểm để di chuyển kết phương thức Explode Basic VBA for AutoCad Page 121 Đinh Văn Tráng 11.7 Block chứa thuộc tính – Attributes Thuộc tính Block chuỗi Text kèm với để miêu tả Block.Mỗi thuộc tính gồm có Tag - Tên gọi thuộc tính , Value – Giá trị thuộc tính, Prompt – Dòng thơng báo người dùng nhập giá trị cho thuộc tính.Một Block có nhiều thuộc tính 11.7.1 Tạo thuộc tính cho Block –Phương thức AddAttribute  Cú pháp Set AttributeObject = SPACE.AddAttribute (Height, Mode, Prompt, _ InsertionPoint, Tag, Value)  Giải thích Tham số Giải thích AttributeObject Kiểu acadAttribute – Đối tượng thuộc tính SPACE Height Mode Prompt InsertionPoint Tag Value Basic VBA for AutoCad Nơi chứa đối tượng thuộc tính (ModelSpace, PaperSpace Block) Kiểu Double – Chiều cao chữ thuộc tính Kiểu Long - Thơng số điều khiển thuộc tính chèn vào vẽ Kiểu String – Chuỗi thông báo Block Attribute chèn vào vẽ Kiểu Variant Double – Mảng phần tử chứa tọa độ thuộc tính chèn vào vẽ hay Block Kiểu String – Tên thuộc tính, chứa ký tự không chứa khoảng trắng Kiểu String – Giá trị mặc định cho thuộc tính Page 122 Đinh Văn Tráng  Giá trị tham số Mode Tham số Giá trị acAttributeModeNormal acAttributeModeInvisible acAttributeModeConstant acAttributeModeVerify Giải thích Giá trị mặc định, với giá trị khơng giá trị lại tham số Mode gán Giá trị thuộc tính khơng lên Block chèn vào Giá trị thuộc tính khơng thể Edit chèn vào vẽ Khi Block chèn vào giá trị thuộc tính nhập dòng nhắc Block chèn vào với giá trị mặc định acAttributeModePreset thuộc tính, người dùng Edit giá trị sau Block chèn vào vẽ  Ví dụ Ví dụ tạo Block Attribute, thuộc tính mơ tả giá trị tham số Mode Basic VBA for AutoCad Page 123 Đinh Văn Tráng Basic VBA for AutoCad Page 124 Đinh Văn Tráng 11.7.2 Thao tác với thuộc tính – Phương thức GetAttributes Phương thức GetAttributes “Block Reference” dùng để lấy giá trị thuộc tính có “Block Reference”.Đối tượng trả phương thức mảng chứa thuộc tính Block (Riêng với tham số Mode khác acAttributeModeConstant giá trị thuộc tính khơng lấy đuợc) Để xác định xem “Block Reference” có chứa thuộc tính hay khơng sử dụng thuộc tính HasAttributes có đối tượng “Block Reference”.Nếu kết TRUE Block có thuộc tính, FALSE Block khơng chứa thuộc tính  Cú pháp VarAttributes = BlockReferenceObj.GetAttributes  Giải thích Tham số VarAttributes BlockReferenceObj Basic VBA for AutoCad Giải thích Kiểu Variant – Mảng chứa thuộc tính “Block Reference” Đối tượng “Block Reference” Page 125 Đinh Văn Tráng  Ví dụ Ví dụ yêu cầu người dùng chọn đối tượng hình vẽ, kiểm tra xem có phải Block thuộc tính hay không hiển thị tên giá trị thuộc tính cho người dùng  Ví dụ Trong ví dụ thay đổi giá trị thuộc tính “Block Reference” có tên “TestAttribute” (Sử dụng ví dụ phương thức AddAttribute để tạo Block này) Basic VBA for AutoCad Page 126 Đinh Văn Tráng 11.8 Làm việc với vẽ tham khảo – External References Bản vẽ tham khảo ngồi có nhiều ứng dụng đặc biệt làm việc theo nhóm 11.8.1 Gắn tham chiếu vào vẽ – Phương thức AddExternalReference  Cú pháp Set ExternalReferenceObject = Thisdrawing.SPACE.AttachExternalReference _ (FileName, BlockName, InsertionPoint, Xscale, Yscale, Zscale, _ RotationAngle, Overlay) Basic VBA for AutoCad Page 127 Đinh Văn Tráng  Giải thích Tham số ExternalReferenceObject SPACE FileName BlockName InsertionPoint Giải thích Kiểu AcadExternalReference – Biến chứa đối tượng trả phương thức AttachExternalReference ModelSpace PaperSpace Kiểu String – Đường dẫn tới vẽ tham khảo (bao gồm phần mở rộng “dwg”) Kiểu String – Tên đặt cho vẽ tham khảo chèn vào vẽ Kiểu Variant – Mảng phần tử kiểu Double chứa tọa độ điểm chèn vẽ tham khảo Xscale Kiểu Double – Hệ số Scale theo phương X Yscale Kiểu Double – Hệ số Scale theo phương Y Zscale Kiểu Double – Hệ số Scale theo phương Z RotationAngle Kiểu Double – Góc quay vẽ tham khảo chèn vào vẽ (Đơn vị : Radians) Kiểu Boolean – Điều khiển vẽ tham khảo gán vào vẽ  TRUE : Bản vẽ tham khảo ngồi khơng hiển thị vẽ “được gán tham khảo” trở thành vẽ tham Overlay khảo vẽ khác  FALSE : Bản vẽ tham khảo hiển thị vẽ “được gán tham khảo” trở thành vẽ tham khảo vẽ khác Basic VBA for AutoCad Page 128 Đinh Văn Tráng  Ví dụ  Ví dụ Basic VBA for AutoCad Page 129 Đinh Văn Tráng 11.8.2 Gỡ bỏ tham chiếu khỏi vẽ - Phương thức Detach Chúng ta gỡ bỏ tham chiếu ngồi phương thức Detach.Khi gỡ bỏ tham chiếu tất đối tượng ràng buộc với tham chiếu LineTypes, TextStyles, DimStyles, Layers… bị gỡ bỏ  Ví dụ 11.8.3 Tải lại tham chiếu – Phương thức Reload Nếu vẽ tham chiếu ngồi có thay đổi việc cập nhật lại thay đổi vẽ “được gán tham khảo” cần thiết.Để cập nhật lại thay đổi sử dụng phương thức Reload Nếu vẽ tham khảo ngồi bị loại bỏ (Bằng phương thức UnLoad) tải lại lúc phương thức Reload Basic VBA for AutoCad Page 130 Đinh Văn Tráng  Ví dụ 11.8.4 Loại bỏ tham chiếu khỏi vẽ - Phương thức Unload Sử dụng phương thức Unload để loại bỏ tham khảo khỏi vẽ.Khi loại bỏ tham chiếu ngồi tốc độ làm việc AutoCad tăng cường đọc hiển thị thơng tin hình học hay ký hiệu khơng cần thiết.Các đối tượng hình học thơng tin liên quan đến tham khảo ngồi khơng thể vẽ tham khảo tải lại  Chú ý : Cần phân biệt khác phương thức Detach Unload  Phương thức Unload : Chỉ loại bỏ tạm thời tham chiếu khỏi vẽ tải lại tham chiếu ngồi phương thức Reload  Phương thức Detach : Sẽ loại bỏ tham hoàn toàn tham chiếu khỏi vẽ sử dụng phương thức AddExternalReference để gắn lại tham chiếu Basic VBA for AutoCad Page 131 Đinh Văn Tráng 11.8.5 Ràng buộc tham chiếu – Phương thức Bind Khi sử dụng phương thức Bind chuyển tham chiếu trở thành “Block Refrerence” vẽ.Lúc vẽ “được gán tham khảo” không cập nhật vẽ tham chiếu bị thay đổi.Quá trình liên kết toàn sở liệu vẽ tham khảo (bao gồm bảng ký hiệu) với vẽ hành.Bảng ký hiệu đối tượng phi hình học, ví dụ khối, kiểu kích thước, lớp, kiểu chữ Phương thức Bind có tham số PrefixName Nếu tham số gán giá trị TRUE tên bảng ký hiệu vẽ tham chiếu thêm tiền tố$x$ vẽ tại, x : sốnguyên tự động tăng để tránh ghi đè lên định nghĩa khối có Nếu tham số nhận giá trị FALSE tên bảng ký hiệu ghép chung vào vẽ mà khơng có tiền tố Nếu có tên trùng AutoCAD sửdụng ký hiệu vừa định nghĩa vẽ  Ví dụ Basic VBA for AutoCad Page 132 Đinh Văn Tráng TÀI LIỆU THAM KHẢO Phát triển AutoCad ActiveX & VBA – Lê Quỳnh Mai (chủ biên) Cơ sở lập trình tự động hóa tính tốn, thiết kế với VB & VBA môi trường AutoCad – Nguyễn Hồng Thái (chủ biên) Giáo trình tự động hóa thiết kế Cầu Đường AutoCad 2006 VBA – A Programer’s Reference – Joe SutPhin Basic VBA for AutoCad Page 133 ... lý dự án VBA Trong Autocad việc quản lý dự án VBA thực dễ dàng = thơng qua trình quản lý dự án – VBA Manager.Để hiển thị VBA Manager chọn Tool -> Macros -> VBA Manager (Hoặc đánh lệnh VBAMAN)... Basic VBA for AutoCad Page Đinh Văn Tráng Ý nghĩa số thành phần trình quản lý dự án  New : Tạo dự án VBA (Mặc định dự án độc lập)  Save As : Lưu dự án VBA  Load : Tải dự án VBA vào VBAIDE.Người... Basic VBA for AutoCad Page 23 Đinh Văn Tráng Chương TOÁN TỬ VÀ CÁC HÀM THÔNG DỤNG Nội dung chương : - Các hàm số học VBA - Các toán tử so sánh thường dùng VBA - Các tóa tử Logic thường dùng VBA

Ngày đăng: 08/02/2020, 00:05

TỪ KHÓA LIÊN QUAN

w