intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Tự động hóa trong thiết kế cầu đường part 8

Chia sẻ: Pham Duong | Ngày: | Loại File: PDF | Số trang:0

72
lượt xem
10
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Application Preferences Documents Document ModelSpace PaperSpace PViewPort DimStyles Layers Layouts Linetypes TextStyles SelectionSets Plot Utility MenuGroups DimStyle Layer Layout Linetype TextStyle SelectionSetChú giải: Tập đối tượng Đối tượngArc Circle Hatch Line MText Point Polyline Ray Text …

Chủ đề:
Lưu

Nội dung Text: Tự động hóa trong thiết kế cầu đường part 8

  1. Application Chú giải: Tập đối tượng Preferences Đối tượng Documents Document ModelSpace Arc PaperSpace Circle PViewPort Hatch DimStyles DimStyle Line Layers Layer MText Layouts Layout Point Linetypes Linetype Polyline TextStyles TextStyle SelectionSets Ray SelectionSet Plot Text Utility … MenuGroups Hình V-6: Mô hình đối tượng trong AutoCAD. Mỗi đối tượng (Object), cũng giống như một vật thể, đều có những tính chất và những hành vi đặc trưng cho nó. Trong lập trình, tính chất của đối tượng được biểu diễn thông qua khái niệm thuộc tính, còn hành vi được biểu diễn thông qua khái niệm phương thức. Chẳng hạn như đối tượng Application, là đối tượng thể hiện cho chương trình AutoCAD, có thuộc tính Caption chứa tiêu đề của chương trình AutoCAD và phương thức Quit dùng để thoát khỏi chương trình AutoCAD. Để truy cập đến các thành phần (phương thức, thuộc tính, …) của đối tượng, ta sử dụng quy tắc dấu chấm (.): . Các đối tượng có những điểm chung nhau còn có thể được nhóm lại và được biểu diễn thông qua tập đối tượng (collection). Mỗi một tập đối tượng có các phương thức và thuộc tính riêng để người dùng tác động lên nó như: thêm đối tượng tập đối tượng bằng phương thức Add (đúng với hầu hết các loại tập đối tượng), thuộc tính Count dùng để đếm số đối tượng trong tập đối tượng, phương thức Item sử dụng để truy cập bất kỳ đối tượng nào trong tập đối tượng. 4.2. Một số đối tượng chính trong AutoCAD 4.2.1. Đối tượng Application Đối tượng Application là đối tượng thể hiện cho một phiên làm việc của AutoCAD, đối tượng này sẽ được tự động tạo ra mỗi khi khởi động chương trình AutoCAD. Tất cả các thành phần và thao tác thực hiện trong cửa sổ chính của chương trình AutoCAD đều được thể hiện thông qua các phương thức và thuộc tính của đối tượng Application. Ví dụ, đối tượng Application có thuộc tính Preferences trả về đối tượng Preferences. Đối tượng này cho phép truy cập đến các 196
  2. CHƯƠNG V: LẬP TRÌNH TRÊN AUTOCAD  cấu hình bên trong của hộp thoại Option. Các thuộc tính khác của đối tượng Application cho phép truy cập đến các dữ liệu riêng của chương trình chẳng hạn như tên và phiên bản chương trình, kích thước, vị trí của cửa sổ ... . Các phương thức của đối tượng Application sẽ thực hiện các thao tác như: tạo mới, mở, đóng bản vẽ hay thoát khỏi AutoCAD. Đối tượng Application là đối tượng gốc trong mô hình đối tượng của AutoCAD. Từ đối tượng Application, ta có thể truy xuất đến bất kỳ đối tượng nào, chẳng hạn như đối tượng Application có các liên kết đến bản vẽ AutoCAD thông qua tập đối tượng Documents, các trình đơn và thanh công cụ AutoCAD thông qua tập đối tượng MenuBar và MenuGroups, và VBAIDE thông qua một thuộc tính gọi là VBE. Hình V-7: Các thành phần của đối tượng Application. Đối tượng Application là đối tượng toàn cục. Điều này có nghĩa là tất cả các phương thức và thuộc tính của đối tượng Application luôn có hiệu lực trong VBAIDE, tức là khi truy cập đến các phương thức và thuộc tính của đối tượng Application đều không cần có tiền tố Application ở trước nên hai câu mã lệnh dưới đây đều có tác dụng như nhau là thông báo nội dung thanh tiêu đề của ứng dụng AutoCAD đang chạy: MsgBox Application.Caption MsgBox Caption Thông báo có thể xuất hiện như hình dưới: 4.2.2. Đối tượng Document Đối tượng Document, thực chất là một bản vẽ AutoCAD đang được mở, thuộc tập đối tượng Documents (tương đương với tất cả các bản vẽ đang được mở), cho nên nó chứa tất cả các đối tượng hình học và phi hình học trong một bản vẽ AutoCAD cũng như chứa hầu hết các đối tượng (hay thành phần) khác của bản vẽ như Views hay Viewports. Để truy cập đến các đối tượng của một bản vẽ ta cần phải thông qua đối tượng Document tương ứng với bản vẽ đó. Như trong mô hình đối tượng ở trên, các đối tượng hình học (đường thẳng, hình tròn, cung, …) được truy cập thông qua tập đối tượng ModelSpace và PaperSpace, còn các đối tượng phi hình học (layer, linetype, text style, …) được truy cập thông qua tập đối tượng có tên tương ứng, chẳng hạn như Layers, Linetypes, TextStyles. 197
  3. Trong mỗi dự án VBA, ThisDrawing là một đối tượng kiểu Document và luôn có sẵn. Với đối tượng ThisDrawing này, người dùng không cần phải khai báo hoặc gán giá trị cho đối tượng này mà có thể truy cập được ngay do nó luôn tồn tại trong dự án VBA. ThisDrawing tham chiếu đến bản vẽ hiện hành trong AutoCAD, nghĩa là những tác động lên đối tượng này sẽ tương đương với việc tác động lên bản vẽ hiện hành trong AutoCAD. Một đối tượng tương 198
  4. CHƯƠNG V: LẬP TRÌNH TRÊN AUTOCAD  đương với ThisDrawing chính là đối tượng ActiveDocument, đối tượng này cũng là một thuộc tính của đối tượng Application. Để hiển thị tên bản vẽ hiện hành trong AutoCAD ta có thể truy cập theo những cách sau (từ mô-đun ThisDrawing của dự án VBA): MsgBox Name MsgBox ThisDrawing.Name MsgBox Application.ActiveDocument.Name 4.2.3. Tập đối tượng AutoCAD tổ chức hầu hết các đối tượng vào trong tập đối tượng, ví dụ như tất cả các đối tượng hình học, cho dù khác nhau về loại đối tượng, đều được đặt trong tập đối tượng ModelSpace, PaperSpace và Block. Để truy cập vào một đối tượng nào đó ta phải thông qua tập đối tượng chứa nó. Mỗi một tập đối tượng có một phương thức dùng để thêm đối tượng vào bản thân tập đối tượng đó và hầu hết các tập đối tượng đều sử dụng phương thức Add để thực hiện nhiệm vụ này. Chú ý rằng, trong AutoCAD, khi thêm các đối tượng hình học vào tập đối tượng liên quan (như ModelSpace và PaperSpace) thì phương thức dùng để thực hiện nhiệm vụ này có tên là Add, ví dụ để thêm vào một đường thẳng (Line) ta sử dụng phương thức AddLine. Trong khi đó, đối với các đối tượng khác, ví dụ như các đối tượng phi hình học như Layer chẳng hạn, thì phương thức của tập đối tượng Layers dùng để thêm một đối tượng vào trong tập đối tượng lại có tên là Add. Cách thức thêm đối tượng vào tập đối tượng: ModelSpace.AddLine (P1, P2) Layers.Add ("ABC") Các tập đối tượng có những phương thức và thuộc tính giống nhau dùng để thao tác với chúng cũng như với các đối tượng bên trong chúng. Ví dụ thuộc tính Count dùng để truy cập bộ đếm số đối tượng có trong tập đối tượng. Phương thức Item sử dụng để truy cập bất kỳ đối tượng nào trong tập đối tượng. Đoạn mã sau sẽ hiển thị số đối tượng hình học hiện có trong bản vẽ và tên của đối tượng hình học đầu tiên: MsgBox ModelSpace.Count MsgBox ModelSpace.Item(0).ObjectName 4.2.4. Đối tượng phi hình học Các đối tượng phi hình học là những đối tượng không thể nhìn thấy được, chúng được sử dụng trong AutoCAD để thiết lập các thuộc tính cho đối tượng hình học. Những đối tượng phi hình học hay gặp là: Layer, Linetype, DimStyle, ... Các đối tượng phi hình học thường được chứa trong các tập đối tượng có tên tương ứng, ví dụ như Layers, Linetypes, DimStyles, … Cách thức để tạo ra một đối tượng phi hình học là sử dụng phương thức Add của đối tượng tập đối tượng tương ứng. Ví dụ sau sẽ tạo ra một Layer mới có tên là “ABC”: Layers.Add ("ABC") Để hiệu chỉnh và truy vấn các đối tượng phi hình học, sử dụng các phương thức và thuộc tính riêng trong từng đối tượng tương ứng. Ví dụ sau sẽ thay đổi màu của Layer “ABC” thành màu đỏ: 199
  5. Layers("ABC").Color = acRed Mỗi loại đối tượng phi đồ hoạ đều có các phương thức để thiết lập và gọi lại dữ liệu mở rộng (xdata) và xoá bản thân đối tượng. Ví dụ sau sẽ xóa lớp “ABC”: Layers("ABC").Delete Cách thức thao tác trên các đối tượng phi hình học sẽ được trình bày cụ thể ở phần “Các thao tác cơ bản trong AutoCAD” trang 201. 4.2.5. Đối tượng hình học Đối tượng hình học hay còn gọi là thực thể, là những đối tượng hữu hình cấu thành bản vẽ của AutoCAD, một số đối tượng điển hình loại này là: đường thẳng (Line), hình tròn (Circle), …. Để tạo những đối tượng này, ta sử dụng phương thức Add của tập đối tượng tương ứng. Để hiệu chỉnh hoặc truy vấn các đối tượng, ta sử dụng các phương thức và thuộc tính của bản thân từng đối tượng. Mỗi đối tượng hình học đều có các thuộc tính cho phép hiệu chỉnh đối tượng như Copy, Erase, Move, Mirror… . Lưu ý rằng, những thuộc tính này sẽ tác động lên đối tượng tương tự như khi ta sử dụng các lệnh tương ứng trong AutoCAD để hiệu chỉnh đối tượng. Những đối tượng hình học còn có các phương thức để xác lập và gọi lại các dữ liệu mở rộng (xdata), lựa chọn và cập nhật, lấy hình bao của đối tượng. Trong các đối tượng hình học đều có các thuộc tính điển hình như Layer, Linetype, Color, và Handle cũng như những thuộc tính riêng biệt, phụ thuộc vào loại đối tượng, chẳng hạn như Center, Radius, và Area. Dưới đây là các phương thức và thuộc tính có trong hầu hết các đối tượng hình học. Các phương thức của đối tượng hình học  Phương thức Giải thích ArrayPolar Nhân bản dạng cực đối tượng được chọn (giống như lệnh array) dựa trên số đối tượng cần nhân bản, góc quay cần để tạo đối tượng và tâm của cung tròn. ArrayRectangular Nhân bản dạng chữ nhật đối tượng được chọn (giống như lệnh array) dựa trên số hàng, số cột, số tầng và các khoảng các tương ứng. Copy Sao chép đối tượng được chọn. Đối tượng mới được tạo sẽ có vị trí trùng với đối tượng gốc. GetBoundingBox Phương thức này trả về toạ độ hai điểm cấu thành hình chữ nhật bao đối tượng được chọn. Highlight Định trạng thái của đối tượng: có đang được chọn hay không. IntersectWith Trả về toạ độ các điểm mà đối tượng được chọn giao với các đối tượng khác. Người lập trình cũng có thể thiết lập các chế độ khác nhau trong quá trình tìm giao với các đối tượng khác. Mirror Lấy đối xứng đối tượng qua một đường thẳng đi qua hai điểm do người dùng định ra. Move Di chuyển đối tượng được chọn theo vector xác định bằng hai điểm do người dùng định ra. Rotate Xoay đối tượng quanh một điểm. ScaleEntity Co giãn đối tượng được chọn theo một tỉ lệ nhất định với một điểm cơ sở cho trước. Update Cập nhật đối tượng trên màn hình bản vẽ. 200
  6. CHƯƠNG V: LẬP TRÌNH TRÊN AUTOCAD  Các thuộc tính của đối tượng hình học  Thuộc tính Giải thích Color Xác định màu cho đối tượng. Giá trị màu có thể nhập là số nguyên từ 0 đến 256 hoặc theo các hằng số đã được định nghĩa trước trong VBA. Layer Xác định lớp cho đối tượng được chọn. Linetype Xác định kiểu đường cho đối tượng được chọn. LinetypeScale Xác định tỉ lệ kiểu đường cho đối tượng được chọn. Lineweight Xác định bề dày nét vẽ của đối tượng được chọn. Visible Xác định tính nhìn thấy của đối tượng trong bản vẽ. 5. Các thao tác cơ bản trong AutoCAD 5.1. Điều khiển AutoCAD 5.1.1. Tạo mới, Mở, Lưu và Đóng bản vẽ Những thao tác này được thực hiện thông qua việc truy cập đến tập đối tượng Documents và đối tượng Document. Để tạo một bản vẽ mới, hoặc mở một bản vẽ đã có, ta phải sử dụng các phương thức trong tập đối tượng Documents. Phương thức Add sẽ tạo một bản vẽ mới và thêm bản vẽ đó vào tập đối tượng Documents. Phương thức Open sẽ mở một bản vẽ đã có và cũng sẽ thêm bản vẽ đó vào tập đối tượng Documents. Ngoài ra còn có phương thức Close trong tập đối tượng Documents dùng để đóng tất các các bản vẽ đang mở trong phiên làm việc của AutoCAD. Để lưu, nhập hoặc xuất một bản vẽ, ta sử dụng các phương thức của đối tượng Document: Save, Save As, Import và Export. Mở bản vẽ  Để mở bản vẽ, sử dụng phương thức Open có trong tập đối tượng Documents. Bản vẽ vừa được mở sẽ được chuyển thành bản vẽ hiện hành. Cú pháp của phương thức Open như sau: object.Open Name[, ReadOnly] Object ở đây là tập đối tượng Documents hoặc một đối tượng có kiểu là Document. Ý nghĩa của các tham số như sau: Tham số Giải thích Name Là chuỗi ký tự chứa đường dẫn đầy đủ đến tệp bản vẽ cần mở. ReadOnly Là tham số tuỳ chọn. Nếu gán tham số này bằng TRUE, bản vẽ được mở ra với thuộc tính chỉ đọc, nghĩa là người dùng không thể lưu bản vẽ. Giá trị mặc định của thuộc tính này là FALSE. Ví dụ sau sử dụng phương thức Open để mở một bản vẽ đã có. Khi thực hành, cần thay đổi tên bản vẽ hoặc đường dẫn cho biến dwgName để chỉ đến một bản vẽ hiện có trong máy tính. Sub OpenDrawing() Dim dwgName As String dwgName = "C:\Program Files\AutoCAD 2002\Sample\campus.dwg" On Error Resume Next ‘←Mở bản vẽ Application.Documents.Open dwgName 201
  7. ‘←Thông If Err.Description "" Then báo khi có lỗi MsgBox "File " & dwgName & " does not exist." Err.Clear End If End Sub Tạo bản vẽ mới  Để tạo bản vẽ mới, sử dụng phương thức Add có trong tập đối tượng Documents. Giá trị trả về của phương thức này là một đối tượng kiểu Document chứa bản vẽ vừa được tạo. Cú pháp của phương thức Open như sau: Set RetVal = Documents.Add([TemplateName]) Tham số Giải thích TemplateName Tham số tuỳ chọn. Là chuỗi ký tự chứa đường dẫn đầy đủ đến tệp bản vẽ mẫu (tệp *.dwt). Nếu không nhập tham số này, AutoCAD sẽ tạo bản vẽ dựa trên tệp bản vẽ mẫu mặc định (thường có tên là Acad.dwt). RetVal Đối tượng kiểu Document chứa bản vẽ vừa mới tạo. Ví dụ sau sử dụng phương thức Add để tạo một bản vẽ mới dựa trên tệp bản vẽ mẫu mặc định. Sub NewDrawing() Dim docObj As AcadDocument ‘← Tạo bản vẽ mới Set docObj =Documents.Add End Sub Lưu bản vẽ  Để lưu bản vẽ, có thể sử dụng phương thức Save (lưu bản vẽ với tên hiện hành) hoặc SaveAs (lưu bản vẽ với tên khác). Cú pháp của các phương thức trên như sau: Object.Save Object.SaveAs FileName[, FileType] Tham số Giải thích Object Đối tượng kiểu Document, là bản vẽ sẽ được lưu. FileName Là chuỗi ký tự chứa tên tệp sẽ được lưu (bao gồm cả đường dẫn đầy đủ). Nếu không chỉ ra đường dẫn đầy đủ, tệp bản vẽ sẽ được lưu vào thư mục hoạt động của AutoCAD (thông thường là C:\Program Files\AutoCAD 2002). 202
  8. CHƯƠNG V: LẬP TRÌNH TRÊN AUTOCAD  FileType Tham số tuỳ chọn, là hằng số xác định kiểu tệp bản vẽ sẽ được lưu. Các hằng số có thể là: : tệp AutoCAD Release14/LT97 DWG (*.dwg) acR14_DWG : tệp AutoCAD Release14/LT97 DXF (*.dxf) acR14_DXF : tệp AutoCAD 2000 DWG (*.dwg) acR15_DWG : tệp AutoCAD 2000 DXF (*.dxf) acR15_DXF acR15_Template: tệp AutoCAD 2000 Drawing Template File (*.dwt) : tệp bản vẽ được lưu với kiểu tệp mới nhất ứng với phiên bản acNative AutoCAD hiện hành. Trong AutoCAD 2002, giá trị này tương đương với hằng số acR15_DWG. Ví dụ sau sẽ lưu bản vẽ hiện hành sử dụng tên tệp sẵn có đồng thời cũng lưu bản vẽ với một tên khác. Sub SaveActiveDrawing() ’ Lưu bản vẽ hiện hành sử dụng tên tệp sẵn có ThisDrawing.Save ’ Lưu bản vẽ sử dụng tên khác ThisDrawing.SaveAs "MyDrawing.dwg" End Sub Thông thường, trước khi thoát khỏi phiên làm việc của AutoCAD hoặc trước khi đóng bản vẽ, người lập trình thường muốn kiểm tra xem bản vẽ đã được lưu đổi hay chưa. Để làm được việc này, có thể sử dụng thuộc tính Saved có trong đối tượng chứa bản vẽ đó (đối tượng Document tương ứng). Ví dụ sau sẽ kiểm tra xem bản vẽ đã được lưu hay chưa và sẽ hỏi người dùng xem có đồng ý để lưu bản vẽ hay không, nếu không đồng ý, sẽ thoát khỏi chương trình. Nếu đồng ý, sẽ sử dụng phương thức Save để lưu bản vẽ hiện hành. Sub TestIfSaved() If Not (ThisDrawing.Saved) Then If MsgBox("Do you wish to save this drawing?", _ vbYesNo) = vbYes Then ThisDrawing.Save End If End If End Sub Đóng bản vẽ  Để đóng bản vẽ, sử dụng phương thức Close có trong đối tượng Document. Cú pháp của phương thức Close như sau: object.Close([SaveChanges][, FileName]) Tham số Giải thích object Đối tượng kiểu Document, là đối tượng chứa bản vẽ cần đóng. SaveChanges Tham số tuỳ chọn, xác định xem có cần phải lưu bản vẽ lại trước khi đóng hay không. Nếu bằng TRUE, sẽ lưu bản vẽ, ngược lại là FALSE. Giá trị mặc định của tham số này là TRUE. 203
  9. FileName Tham số tuỳ chọn, xác định tên của bản vẽ sẽ được lưu trong trường hợp bản vẽ chưa được lưu lần nào. Trong trường hợp chưa có sự thay đổi trong bản vẽ, các tham số trên được bỏ qua và phương thức Close chỉ đơn giản là đóng bản vẽ đang được tham chiếu. Nếu đã có sự thay đổi trong bản vẽ, tham số SaveChanges sẽ xác định xem bản vẽ có được lưu hay không: Nếu SaveChanges bằng TRUE và bản vẽ chưa được lưu lần nào, tham số FileName sẽ được dùng để làm tên tệp lưu bản vẽ. Nếu không có tham số FileName, bản vẽ được lưu với tên mặc định trong thư mục hiện hành của AutoCAD. Trong trường hợp bản vẽ đã được lưu trước đó, tham số FileName sẽ bị bỏ qua. Nếu SaveChanges bằng FALSE, bản vẽ sẽ được đóng mà không được lưu. Ví dụ sau sẽ hỏi người dùng có muốn đóng bản vẽ hay không, sau đó kiểm tra xem tệp đã được lưu lần đầu chưa, tiếp đó mới thực sự đóng bản vẽ lại sử dụng phương thức Close có trong đối tượng bản vẽ hiện hành. Sub CloseDrawing() If MsgBox("Bạn có muốn đóng bản vẽ: " & ThisDrawing.WindowTitle, _ vbYesNo + vbQuestion) = vbYes Then If ThisDrawing.FullName "" Then ‘←Đóng bản vẽ hiện hành ThisDrawing.Close SaveChanges:=True Else MsgBox(ThisDrawing.Name & " chưa được lưu nên không thể đóng!") End If End If End Sub Ngoài ra, người lập trình có thể sử dụng phương thức Close có trong tập đối tượng Documents để đóng tất cả các bản vẽ hiện đang có trong phiên làm việc hiện hành của AutoCAD. Phương thức này thực hiện tương tự như khi sử dụng phương thức Close cho từng đối tượng bản vẽ với tham số SaveChanges được gán bằng TRUE. Do không kiểm soát được quá trình đóng của từng bản vẽ nên phương thức Close của tập đối tượng Documents nên hạn chế sử dụng. 5.1.2. Khởi động và thoát khỏi chương trình AutoCAD Khởi động chương trình AutoCAD  Do được thực thi bên trong AutoCAD nên các chương trình viết bằng VBA trong AutoCAD không cần phải thực hiện thao tác khởi động chương trình AutoCAD. Tuy nhiên, khi người dùng viết mã lệnh từ các ứng dụng nền khác, chẳng hạn như viết chương trình bằng VBA trong Excel, thì cần thiết phải viết mã lệnh khởi động chương trình AutoCAD. Thực chất của đoạn mã lệnh này là tạo ra đối tượng Application. Việc khởi động chương trình AutoCAD từ một chương trình ngoài cũng cần phải thực hiện các thao tác tương tự như khi khởi động chương trình Excel từ chương trình ngoài (tham khảo mục “Khởi động Excel từ chương trình khác” trang 149). Ở đây, người dùng sẽ phải tham chiếu đến thư viện mở rộng của AutoCAD với tên là “AutoCAD 2000 Object Library”. Với các phiên bản của chương trình AutoCAD khác nhau thì tên thư viện mở rộng có thể khác nhau. 204
  10. CHƯƠNG V: LẬP TRÌNH TRÊN AUTOCAD  Hình V-8: Hộp thoại References trong VBAIDE của Excel. Đoạn mã lệnh sau sẽ khởi động chương trình AutoCAD từ VBA trong Excel. Sub ConnectToAcad() Dim acadApp As AcadApplication On Error Resume Next Set acadApp = GetObject(, "AutoCAD.Application") If Err Then Err.Clear Set acadApp = CreateObject("AutoCAD.Application") If Err Then MsgBox Err.Description Exit Sub End If End If acadApp.Visible = True ‘====== Hết đoạn chương trình khởi động AutoCAD ====== ‘ Hiển thị tên chương trình và phiên bản của AutoCAD MsgBox "Now running " + acadApp.Name + _ " version " + acadApp.Version End Sub Thoát khỏi chương trình AutoCAD  Việc thoát khỏi AutoCAD rất đơn giản, chỉ cần thực hiện phương thức Quit có trong đối tượng Applicaton. Phương thức này sẽ đóng tất cả các bản vẽ và dự án VBA trong AutoCAD lại, nếu có bản vẽ hoặc dự án nào chưa được lưu, nó sẽ nhắc người dùng lưu bản vẽ, sau đó mới thực sự thoát khỏi AutoCAD. Đoạn mã lệnh sau sẽ đóng chương trình AutoCAD. Sub Thoat_AutoCAD() Application.Quit 205
  11. End Sub 5.1.3. Sử dụng các lệnh sẵn có của AutoCAD Các lệnh sẵn có của AutoCAD có thể được sử dụng từ chương trình VBA thông qua phương thức SendCommand của đối tượng Document tương ứng. Ví dụ sau sẽ tạo ra một hình tròn trong bản vẽ hiện hành của AutoCAD với việc sử dụng lệnh Circle và Zoom của AutoCAD: Sub Tao_Hinh_Tron() ThisDrawing.SendCommand "_Circle" & vbCr & "2,2,0" & vbCr & "4" & vbCr ThisDrawing.SendCommand "_zoom" & vbCr & "a" & vbCr End Sub Thực chất của phương thức SendCommand là yêu cầu AutoCAD thực thi một lệnh từ dòng lệnh trong AutoCAD. Ký tự vbCr tương đương với việc bấm phím Enter khi thao tác trực tiếp trong AutoCAD. 5.1.4. Thu phóng màn hình bản vẽ (zoom) Thu phóng màn hình bản vẽ trong AutoCAD được thực hiện thông qua các phương thức có trong đối tượng Application. Các phương thức này tương ứng với lệnh zoom trong AutoCAD. Nếu có nhiều bản vẽ đang được mở trong AutoCAD thì các phương thức này chỉ có tác dụng đối với bản vẽ hiện hành. Dưới đây là các phương thức dùng để thu phóng màn hình bản vẽ trong AutoCAD. ZoomExtents   Phương thức này sẽ phóng màn hình bản vẽ theo vùng bao của tất cả các đối tượng trong bản vẽ, nghĩa là giúp ta có thể quan sát được tất cả các đối tượng hình học hiện đang có với kích thước lớn nhất. Đoạn mã ví dụ sau sẽ thực hiện phương thức ZoomExtents: Application.ZoomExtents ZoomAll   Trong chế độ 2D, phương thức này sẽ phóng màn hình bản vẽ theo giới hạn của bản vẽ hoặc theo vùng bao tất cả các đối tượng tuỳ thuộc vào vùng nào rộng hơn. Còn trong chế độ 3D, phương thức này tương đương với phương thức ZoomExtents. Đoạn mã sau phóng màn hình bản vẽ sử dụng phương thức ZoomAll: Application.ZoomAll ZoomPrevious   Phương thức này sẽ chuyển màn hình bản vẽ về trạng thái trước đó. Khi người dùng thực hiện lệnh Pan hoặc các lệnh liên quan đến thu phóng màn hình bản vẽ, AutoCAD sẽ tự động lưu trạng thái màn hình bản vẽ. Phương thức này có thể khôi phục lại trạng thái màn hình đã được lưu đến 10 cấp. Đoạn mã sau khôi phục lại trạng thái màn hình bản vẽ sử dụng phương thức ZoomPrevious: Application.ZoomPrevious ZoomPickWindow   206
  12. CHƯƠNG V: LẬP TRÌNH TRÊN AUTOCAD  Phương thức này sẽ phóng màn hình bản vẽ theo một hình chữ nhật do người dùng chọn trên màn hình. Đoạn mã sau minh hoạ cách sử dụng phương thức này: Application.ZoomPickWindow ZoomWindow    Phương thức này thực hiện thu phóng màn hình bản vẽ theo một hình chữ nhật được xác định trước. Cú pháp của phương thức này như sau: Application.ZoomWindow Dưới_Trái, Trên_Phải Tham số Giải thích Dưới_Trái Mảng 3 phần tử kiểu Double, xác định toạ độ điểm ở góc dưới bên trái của hình chữ nhật sẽ thực hiện phóng đại. Trên_Phải Mảng 3 phần tử kiểu Double, xác định toạ độ điểm ở góc trên bên phải của hình chữ nhật sẽ thực hiện phóng đại. Ví dụ sau thực hiện thu phóng màn hình bản vẽ theo hình chữ nhật có toạ độ của các điểm ở góc lần lượt là (1.3, 7.8, 0) và (13.7, -2.6, 0): Sub VD_ZoomWindow() ‘Khai báo biến để chứa toạ độ các điểm góc Dim point1(0 To 2) As Double Dim point2(0 To 2) As Double ‘ Gán toạ độ cho các điểm góc point1(0) = 1.3: point1(1) = 7.8: point1(2) = 0 point2(0) = 13.7: point2(1) = -2.6: point2(2) = 0 ‘ Thực hiện phương thức ZoomWindow ZoomWindow point1, point2 End Sub ZoomScaled   Phương thức này thu phóng màn hình bản vẽ theo một tỉ lệ được xác định trước. Cú pháp của phương thức này như sau: Application.ZoomScaled Scale[, ScaleType] Tham số Giải thích Scale Tham số xác định tỉ lệ thu phóng màn hình bản vẽ. ScaleType Tham số tuỳ chọn, xác định cách thức áp dụng hệ số tỉ lệ. Có thể bằng một trong các hằng số sau: : tương đối so với vùng vẽ (drawing limits). acZoomScaledAbsolute : tương đối so với màn hình bản vẽ hiện hành. acZoomScaledRelative acZoomScaledRelativePSpace : tương đối so với đơn vị của không gian mô hình. 207
  13. Ví dụ sau minh hoạ cách thức sử dụng phương thức ZoomScaled bằng cách phóng màn hình bản vẽ lên 2 lần so với màn hình bản vẽ hiện tại: Sub VD_ZoomScaled() Dim ti_le As Double Dim kieu_phong_dai As Integer ti_le = 2 kieu_phong_dai = acZoomScaledRelative ‘ Thực hiện phương thức ZoomScaled ZoomScaled ti_le, kieu_phong_dai End Sub 5.1.5. Nhập dữ liệu người dùng từ dòng lệnh của AutoCAD Trong một chương trình, giao diện để người sử dụng thao tác với chương trình là một bộ phận rất quan trọng và không thể thiếu. Thông qua giao diện, người sử dụng có thể nhập dữ liệu và điều khiển chương trình hoạt động, còn chương trình, cũng thông qua giao diện, sẽ hướng dẫn cho người dùng cách thao tác và trình bày kết quả thực hiện của nó cho người dùng. Có nhiều cách để thiết kế giao diện nhập dữ liệu cho chương trình, như sử dụng các hộp thoại chuẩn (như InputBox hoặc MsgBox) hay thông qua hệ thống các hộp thoại người dùng (UserForm). Khi lập trình VBA trong AutoCAD, bởi chương trình sẽ hoạt động dựa trên nền là AutoCAD cho nên việc thiết kế một giao diện cho phép người dùng tương tác với chương trình ngay trong giao diện của AutoCAD là một nhu cầu cần thiết. Hơn nữa điều này được AutoCAD và VBA hỗ trợ thông qua đối tượng Utility (là một thuộc tính của đối tượng Document). Với những phương thức của đối tượng Utility người lập trình có cho phép người sử dụng thao tác với chương trình VBA thông qua dòng lệnh của AutoCAD cũng như màn hình đồ họa của AutoCAD. Các phương thức này sẽ hiển thị một dòng nhắc trên dòng lệnh của AutoCAD và yêu cầu người sử dụng nhập vào nhiều kiểu dữ liệu khác nhau (tuỳ thuộc vào từng loại phương thức) từ bàn phím hoặc chọn trên màn hình đồ họa của AutoCAD. Các phương thức để người dùng nhập dữ liệu vào từ bàn phím hay bằng chuột thường có dạng GetXXX, tuỳ thuộc vào loại dữ liệu mà người lập trình cần lấy. Dưới đây là một số phương thức thường được sử dụng: Prompt  Phương thức này chỉ đơn giản là gửi một đoạn văn bản đến dòng lệnh của AutoCAD và thường được sử dụng để thông báo cho người dùng biết một nội dung nào đó trước hoặc sau một thao tác với chương trình. Cú pháp như sau: Utility.Prompt Message Trong đó Message là đoạn văn bản sẽ được hiển thị trên dòng lệnh của AutoCAD. Khi gửi một đoạn văn bản đến dòng lệnh của AutoCAD, cần thêm vào ký tự xuống dòng, tránh dòng văn bản cần hiển thị nối vào dòng văn bản đang có trong dòng lệnh. Ví dụ sau sẽ minh hoạ rõ hơn điều này. 1. Trong VBAIDE, tạo Macro sau: Sub VDPrompt() Utility.Prompt ("Vi du phuong thuc Prompt") End Sub 208
  14. CHƯƠNG V: LẬP TRÌNH TRÊN AUTOCAD  2. Trở về AutoCAD để thực thi Macro bằng cách gọi lệnh –vbarun. Lưu ý là sử dụng phím SPACE để kết thúc dòng lệnh, thay vì sử dụng phím ENTER như thông thường. Kết quả hiển thị trên dòng lệnh như sau: 3. Để đoạn văn bản được in ra trên một dòng riêng biệt, thêm vào trước đoạn văn bản hằng số vbCrLf, và đoạn mã lệnh trên được chuyển thành: Sub VDPrompt() Utility.Prompt (vbCrLf & "Vi du phuong thuc Prompt") End Sub 4. Thực thi lại Macro trên, đoạn văn bản đã được hiển thị trên một dòng riêng biệt GetString  Phương thức này được sử dụng để người dùng nhập vào một chuỗi ký tự. AutoCAD sẽ dừng lại cho đến khi người dùng nhập vào một giá trị nào đó. Cú pháp của phương thức GetString như sau: RetVal = Utility.GetString(HasSpaces[, Prompt]) Tham số Giải thích HasSpaces Tham số cho phép người dùng nhập vào dấu cách. Nếu bằng TRUE, người dùng có thể nhập dấu cách trong dòng lệnh, để kết thúc nhập phải nhấn phím ENTER. Nếu bằng FALSE, người dùng không thể nhập dấu cách cho chuỗi ký tự, khi người dùng nhấn phím SPACE hoặc ENTER thì sẽ kết thúc quá trình nhập. Prompt Tham số tuỳ chọn, là chuỗi ký tự sẽ hiện trên dòng lệnh AutoCAD để nhắc người dùng nhập dữ liệu. RetVal Là biến kiểu String, chứa giá trị là chuỗi ký tự được người dùng nhập vào. Một điểm cần lưu ý là phương thức này chỉ trả về tối đa 132 ký tự. Nếu người dùng nhập nhiều hơn 132 ký tự, kết quả trả về cho biến RetVal chỉ là 132 ký tự đầu tiên. Ví dụ sau sẽ minh hoạ cách sử dụng phương thức GetString: Sub VD_GetString() ' Ví dụ minh hoạ các cách sử dụng phương thức GetString Dim returnString As String ' Nhắc người dùng nhập 209
  15. ' Giá trị nhập vào không thể chứa dấu cách returnString = ThisDrawing.Utility.GetString _ (False, "Nhập chuỗi (nhấn SPACE hoặc ENTER để kết thúc): ") MsgBox "Chuỗi vừa nhập là: '" & returnString & "'" ' Nhắc người dùng nhập ' Giá trị nhập vào có thể chứa dấu cách returnString = ThisDrawing.Utility.GetString _ (True, " Nhập chuỗi (nhấn ENTER để kết thúc): ") MsgBox "Chuỗi vừa nhập là: '" & returnString & "'" End Sub GetInteger, GetReal  Phương thức này được sử dụng khi muốn người dùng nhập một số nguyên (phương thức GetInteger) hoặc một số thực (phương thức GetReal). Cú pháp của các phương thức này như sau: RetVal = Utility.GetInteger([Prompt]) RetVal = Utility.GetReal([Prompt]) Tham số Giải thích Prompt Tham số tuỳ chọn, là chuỗi ký tự sẽ hiện trên dòng lệnh AutoCAD để nhắc người dùng nhập dữ liệu. RetVal Là biến kiểu Double hoặc Interger (tuỳ thuộc vào phương thức được sử dụng), chứa giá trị là số người dùng vừa nhập vào. Nếu người dùng nhập vào một từ khoá hoặc không nhập số mà nhấn ngay phím ENTER để kết thúc nhập liệu, AutoCAD sẽ phát sinh lỗi “User input keyword.”. Ví dụ sau minh hoạ cách sử dụng các phương thức này: Sub Example_GetReal() ' Ví dụ sau sử dụng phương thức GetReal và phương thức GetInteger ' để người dùng nhập vào số thực và số nguyên. Dim returnReal As Double Dim returnInteger As Integer ' Nhắc người dùng nhập vào số thực, ' sau đó hiển thị kết quả được nhập vào. returnReal = ThisDrawing.Utility.GetReal("Enter an Real: ") MsgBox "Số thực vừa được nhập: " & returnReal & vbCrLf & _ "(Tiếp tục nhập giá trị.)" ' Nhắc người dùng nhập vào số nguyên, ' sau đó hiển thị kết quả được nhập vào. returnInteger = ThisDrawing.Utility.GetInteger("Nhập số nguyên: ") MsgBox "Số nguyên vừa được nhập: " & returnInteger End Sub GetAngle  210
  16. CHƯƠNG V: LẬP TRÌNH TRÊN AUTOCAD  Phương thức này được sử dụng khi muốn người lập trình nhập vào một giá trị góc bằng cách nhập giá trị ngay trên dòng lệnh hoặc chọn một góc trên màn hình. Cú pháp của phương thức này như sau: RetVal = Utility.GetAngle([Point][, Prompt]) Tham số Giải thích Point Tham số tuỳ chọn, là mảng số thực có 3 phần tử thể hiện toạ độ đầu tiên của tia tạo nên góc mà người dùng sẽ chọn trên màn hình. Prompt Tham số tuỳ chọn, là chuỗi ký tự sẽ hiện trên dòng lệnh AutoCAD để nhắc người dùng nhập dữ liệu. RetVal Là biến kiểu Double chứa giá trị trả về của phương thức GetAngle, là góc mà người dùng đã nhập vào (tính theo Radian). Khi sử dụng phương thức này, người dùng có thể nhập vào góc (tính bằng độ) tại dòng lệnh. Ngoài ra, người sử dụng có thể sử dụng chuột để vẽ hai điểm xác định tia tạo nên góc cần nhập. Giá trị trả về là góc hợp giữa tia đó và góc cơ sở (được xác định bởi biến hệ thống ANGBASE, giá trị mặc định là 0). Trong trường hợp không nhập giá trị cho tham số Point, người dùng sẽ phải chọn hai điểm trên màn hình để xác định tia mong muốn. Nếu nhập giá trị cho tham số Point, thì toạ độ có trong tham số Point sẽ được gán cho điểm thứ 1, người dùng chỉ cần xác định điểm thứ 2 trên màn hình mà thôi. Bảng dưới đây thể hiện giá trị trả về của phương thức GetAngle với các góc nhập vào khác nhau: Góc người dùng Giá trị trả về của phương nhập (độ) thức GetAngle 0 0.0 -90 1.5708 180 3.14159 90 4.71239 211
  17. Nếu người dùng không nhập giá trị nào cả mà nhấn ENTER, AutoCAD sẽ phát sinh lỗi “User input keyword.” Ví dụ sau minh hoạ cách sử dụng phương thức GetAngle: Sub Example_GetAngle() Dim retAngle As Double ' Lấy về góc tính bằng radian retAngle = ThisDrawing.Utility.GetAngle(, "Nhập vào góc: ") MsgBox "Góc vừa được nhập là: " & retAngle ' Lấy về góc tính bằng radian với toạ độ điểm đầu cho trước Dim basePnt(0 To 2) As Double basePnt(0) = 2#: basePnt(1) = 2#: basePnt(2) = 0# retAngle = ThisDrawing.Utility.GetAngle(basePnt, "Nhập vào góc: ") MsgBox "Góc vừa được nhập là: " & retAngle End Sub GetPoint  Phương thức GetPoint được sử dụng để lấy một điểm do người dùng nhập vào bằng cách nhập tọa độ trực tiếp từ dòng lệnh hoặc chọn điểm trên màn hình. Giá trị trả về của phương thức có kiểu Variant, là một mảng gồm 3 phần tử số thực chứa tọa độ của điểm đã được chọn trong hệ tọa độ WCS. Cú pháp của phương thức như sau: RetVal = Utility.GetPoint([Point][, Prompt]) Tham số Giải thích Point Tham số tuỳ chọn, kiểu Variant, là mảng số thực có 3 phần tử thể hiện toạ độ của điểm tham chiếu của điểm sẽ nhập vào. Prompt Tham số tuỳ chọn, là chuỗi ký tự sẽ hiện trên dòng lệnh AutoCAD để nhắc người dùng nhập dữ liệu. Nếu tham số tùy chọn Point được gán giá trị, AutoCAD sẽ tạo một đường thẳng tham chiếu nối từ điểm Point đến vị trí hiện tại của con trỏ trên màn hình đồ họa. Đường thẳng này luôn thay đổi theo sự di chuyển của con trỏ, hỗ trợ việc quan sát của người dùng trong quá trình nhập điểm. Sau khi người dùng nhập điểm bằng cách bấm chuột trên màn hình đồ họa tại vị trí mong muốn thì đường thẳng tham chiếu cũng sẽ mất đi. Nếu người dùng không nhập vào điểm nào mà nhấn ENTER, AutoCAD sẽ phát sinh lỗi “User input keyword.” Ví dụ sau minh họa cách sử dụng phương thức GetPoint và các tham số: Sub Example_GetPoint() ' Ví dụ minh họa cách sử dụng phương thức GetPoint. Dim returnPnt As Variant ' Nhập điểm và trả về tọa độ của điểm khi không có điểm tham chiếu returnPnt = ThisDrawing.Utility.GetPoint(, "Nhap mot diem: ") MsgBox "Toa do WCS cua diem: " & returnPnt(0) & ", " & _ returnPnt(1) & ", " & returnPnt(2) 212
  18. CHƯƠNG V: LẬP TRÌNH TRÊN AUTOCAD  ' Nhập điểm sử dụng điểm tham chiếu Dim basePnt(0 To 2) As Double basePnt(0) = 2#: basePnt(1) = 2#: basePnt(2) = 0# returnPnt = ThisDrawing.Utility.GetPoint(basePnt, "Nhap mot diem: ") MsgBox "Toa do WCS cua diem: " & returnPnt(0) & ", " & _ returnPnt(1) & ", " & returnPnt(2) ' Vẽ đường thẳng nối từ điểm tham chiếu đến điểm ' cuối cùng nhập vào Dim lineObj As AcadLine Set lineObj = ThisDrawing.ModelSpace.AddLine(basePnt,returnPnt) ZoomAll End Sub GetDistance  Phương thức GetDistance được sử dụng để người dùng nhập vào giá trị khoảng cách. Người dùng có thể nhập một số thực trực tiếp từ dòng lệnh hoặc có thể chọn hai điểm trên màn hình bản vẽ, AutoCAD sẽ tự động trả về giá trị số thực là khoảng cách giữa hai điểm. Cú pháp của phương thức GetDistance như sau: RetVal = Utility.GetDistance([Point][, Prompt]) Tham số Giải thích Point Tham số tuỳ chọn, kiểu Variant, là mảng số thực có 3 phần tử thể hiện toạ độ của điểm cơ sở để tính khoảng cách. Nếu tham số này không có thì người dùng phải chọn hai điểm để xác định khoảng cách. Prompt Tham số tuỳ chọn, là chuỗi ký tự sẽ hiện trên dòng lệnh AutoCAD để nhắc người dùng nhập dữ liệu. RetVal Là biến kiểu số thực chứa giá trị trả về của phương thức GetDistance. Phương thức GetDistance cho phép người dùng nhập một số âm tại dòng nhắc và sẽ trả về một số âm tương ứng. Nhưng khi người dùng chọn điểm trên màn hình bản vẽ, phương thức luôn trả về giá trị tuyệt đối của khoảng cách giữa hai điểm. Nếu khoảng cách được nhập vào bằng cách chọn điểm trên màn hình, AutoCAD sẽ tạo ra một đường thẳng để giúp người dùng quan sát và đường thẳng này sẽ mất đi sau khi người dùng nhập xong khoảng cách. Nếu không nhập giá trị cho tham số Point, người dùng sẽ phải xác định hai điểm trên màn hình để xác định khoảng cách. Nếu gán giá trị cho tham số Point, người dùng chỉ cần chọn thêm một điểm trên màn hình, giá trị khoảng cách sẽ được tính từ điểm truyền cho tham số Point và điểm cho người dùng chọn. Theo mặc định của AutoCAD, các điểm nhập vào có tọa độ không gian gồm đầy đủ 3 thành phần (x, y, z) nên khoảng cách giữa hai điểm là khoảng cách trong không gian. Người dùng có thể yêu cầu AutoCAD chỉ tính khoảng cách phẳng bằng cách thực hiện phương thức InitializeUserInput trước khi thực hiện phương thức GetDistance với tham số OptionBits tương ứng để AutoCAD bỏ qua thành phần tọa độ z. Nếu người dùng không nhập giá trị hoặc điểm nào cả mà nhấn ENTER thì AutoCAD sẽ phát sinh lỗi “User input keyword.” Ví dụ dưới đây minh họa cách sử dụng phương thức GetDistance: 213
  19. Sub Example_GetDistance() ' Ví dụ minh họa cách sử dụng phương thức GetDistance. Dim returnDist As Double ' Nhập và trả về giá trị khoảng cách, có sử dùng dòng nhắc returnDist = ThisDrawing.Utility.GetDistance(, "Nhap khoang cach: ") MsgBox "Khoang cach vua nhap la: " & returnDist & vbCrLf & _ "(Nhap gia tri tiep theo co su dung diem co so.)" ' Nhập và trả về giá trị khoảng cách ' Có sử dùng dòng nhắc và điểm cơ sở Dim basePnt(0 To 2) As Double basePnt(0) = 2#: basePnt(1) = 2#: basePnt(2) = 0# returnDist = ThisDrawing.Utility.GetDistance(basePnt, _ "Nhap khoang cach: ") MsgBox "Khoang cach vua nhap la: " & returnDist End Sub GetEntity  Phương thức GetEntity được sử dụng để lấy một đối tượng của AutoCAD bằng cách cho phép người dùng chọn trực tiếp bằng chuột trên màn hình đồ họa. Cú pháp của phương thức như sau: Utility.GetEntity Object, PickedPoint[, Prompt] Tham số Giải thích Object Tham số trả về đối tượng được người dùng chọn Pickedpoint Tham số kiểu Variant, trả về mảng số thực có 3 phần tử thể hiện toạ độ của điểm mà người dùng kích chuột để chọn đối tượng. Prompt Tham số tuỳ chọn, là chuỗi ký tự sẽ hiện trên dòng lệnh AutoCAD để nhắc người dùng nhập dữ liệu. Phương thức GetEntity yêu cầu người dùng chọn đối tượng bằng cách kích chuột trên màn hình bản vẽ. Nếu người dùng chọn một đối tượng, đối tượng đó sẽ được trả về thông qua tham số Object và toạ độ của điểm mà người dùng chọn sẽ được trả về trong tham số PickedPoint. Nếu điểm mà người dùng kích chuột không phải đối tượng thì phương thức này sẽ làm phát sinh lỗi. Với phương thức này, người dùng còn có thể chọn nhanh đối tượng được vẽ sau cùng nhất bằng cách nhập ký tự “L” hoặc “l” tại dòng lệnh AutoCAD. Khi dùng lệnh “L” này, nếu đối tượng được vẽ cuối cùng không nhìn thấy trên màn hình bản vẽ (đối tượng có thuộc tính Visible=FALSE) hoặc đối tượng đó đang nằm trong một lớp đã bị đóng băng (FrozenLayer) thì đối tượng cuối cùng nhất được vẽ nằm trên một lớp bình thường sẽ được chọn. Tuy nhiên, cách ứng xử này có thể khác nhau trong từng phiên bản của AutoCAD, chẳng hạn như đối với AutoCAD 2007, với lệnh “L”, phương thức GetEntity có thể trả về một đối tượng không được nhìn thấy trên màn hình bản vẽ. CHÚ Ý Với phương thức GetEntity, tại một thời điểm, người dùng chỉ có thể chọn được một đối tượng. 214
  20. CHƯƠNG V: LẬP TRÌNH TRÊN AUTOCAD  Ví dụ dưới đây minh họa cách sử dụng phương thức GetEntity. Đối tượng được lựa chọn sẽ được tạm thời chuyển sang màu đỏ để người dùng dễ nhận thấy trước khi chuyển sang lựa chọn đối tượng khác (trước khi thực hiện ví dụ cần tạo sẵn một số đối tượng hình học trong bản vẽ hiện hành của AutoCAD). Ví dụ này còn thực hiện bẫy lỗi phát sinh khi lựa chọn đối tượng. Sub VD_GetEntity() Dim returnObj As AcadObject Dim basePnt As Variant On Error Resume Next ' Trong ví dụ này, AutoCAD chờ người dùng lựa chọn đối tượng ThisDrawing.Utility.GetEntity returnObj, basePnt, "Chọn đối tượng:" If Err 0 Then Err.Clear MsgBox "Bạn không chọn đối tượng. Tạm biệt." Exit Sub Else returnObj.Color = acRed returnObj.Update MsgBox "Kiểu đối tượng là: " & returnObj.EntityName MsgBox "tại vị trí " & basePnt(0) & "," & basePnt(1) returnObj.Color = acByLayer returnObj.Update End If End Sub 5.1.6. Thiết lập biến hệ thống AutoCAD sử dụng các biến hệ thống dùng để điều khiển các hoạt động của chính nó, chẳng hạn như chế độ bắt điểm, chế độ lưới, điều kiển cách thực hiện của các lệnh,… Phần này sẽ giới thiệu cách thức đọc và thiết lập các biến hệ thống cho AutoCAD thông qua các phương thức GetVariable và SetVariable cũng như một số biến hệ thống thường dùng trong AutoCAD. Đối với mỗi phiên bản của AutoCAD, các biến hệ thống có thể khác nhau, vì vậy cần phải nghiên cứu trong tài liệu đi kèm với phiên bản AutoCAD đang sử dụng để có được các thông tin cụ thể về các biến hệ thống. Một điểm cần lưu ý khi thao tác với các biến hệ thống của AutoCAD là phạm vi tác dụng của biến hệ thống. Có thể chia thành hai loại sau: Loại biến có tác dụng với toàn bộ ứng dụng AutoCAD: với loại biến này, khi người thay đổi giá trị của biến, tất cả các bản vẽ đang được mở sẽ chịu tác động do sự thay đổi của biến này. Các biến kiểu này được lưu trong bản thân chương trình AutoCAD. Loại biến có tác dụng với một bản vẽ AutoCAD: với loại biến này, khi người dùng thay đổi giá trị của biến, chỉ có bản vẽ hiện hành (bản vẽ nơi thực hiện thao tác thay đổi giá trị của biến) là chịu tác động do sự thay đổi của biến. Các biến hệ thống kiểu này được lưu ngay bên trong tệp bản vẽ. Phương thức GetVariable  Phương thức này dùng để lấy về giá trị hiện hành của một biến hệ thống trong AutoCAD. Cú pháp của phương thức này như sau: RetVal = object.GetVariable(Name) 215
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
32=>2