1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Giáo trình hướng dẫn lập trình các tham số của bảng vẽ phần 3 docx

5 286 0

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 5
Dung lượng 772,52 KB

Nội dung

C C H H Ư Ư Ơ Ơ N N G G   V V : :   L L Ậ Ậ P P   T T R R Ì Ì N N H H   T T R R Ê Ê N N   A A U U T T O O C C A A D D   213 ' 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: 214 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. C C H H Ư Ư Ơ Ơ N N G G   V V : :   L L Ậ Ậ P P   T T R R Ì Ì N N H H   T T R R Ê Ê N N   A A U U T T O O C C A A D D   215 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) 216 Tham số Giải thích Name Tham số kiểu String xác định tên biến hệ thống cần lấy giá trị (không phân biệt chữ hoa/chữ thường). Nếu tên biến hệ thống nhập vào không đúng sẽ phát sinh lỗi khi thực thi chương trình. object Đối tượng kiểu Document, nơi thực hiện phương thức GetVariable. RetVal Là biến kiểu Variant chứa giá trị trả về của biến hệ thống. Ví dụ sau minh hoạ các sử dụng phương thức này bằng cách thực hiện lấy giá trị của biến hệ thống MIRRTEXT: Sub VD_GetVariable() ' Ví dụ sau hiển thị giá trị hiện tại của ' biến hệ thống MIRRTEXT. Dim strTenBien As String Dim KetQua As Variant strTenBien = "MIRRTEXT" KetQua = ThisDrawing.GetVariable(strTenBien) MsgBox (strTenBien & " = " & KetQua) End Sub PhươngthứcSetVariable Phương thức này dùng để thiết lập giá trị cho biến hệ thống trong AutoCAD. Cú pháp của phương thức này như sau: object.SetVariable Name, Value Tham số Giải thích Name Tham số kiểu String xác định tên biến hệ thống cần lấy giá trị (không phân biệt chữ hoa/chữ thường). Nếu tên biến hệ thống nhập vào không đúng sẽ phát sinh lỗi khi thực thi chương trình. Value Tham số kiểu Variant, xác định giá trị cần gán cho biến hệ thống có tên trong tham số Name ở trên. object Đối tượng kiểu Document, nơi thực hiện phương thức SetVariable. Biến hệ thống trong AutoCAD rất đa dạng với nhiều kiểu dữ liệu khác nhau: số thực, số nguyên, chuỗi,… Chính vì vậy, khi gán giá trị cho biến hệ thống, cần phải chú ý sao cho kiểu dự liệu của biến hệ thống cần gán và kiểu giá trị của tham số Value phải tương thích nhau, nếu không sẽ làm phát sinh lỗi khi thực thi chương trình. Ví dụ sau minh hoạ cách thức gán giá trị cho biến hệ thống s ử dụng phương thức SetVariable: Sub Example_SetVariable() ' Ví dụ sau gán giá trị cho nhiều biến hệ thống khác nhau, ' mỗi biến có một kiểu dữ liệu khác nhau. Dim TenBien As String Dim GiaTri As Variant ' Gán giá trị biến MIRRTEXT (kiểu số nguyên) bằng 1. ' Chú ý rằng cần phải gán giá trị thích hợp với C C H H Ư Ư Ơ Ơ N N G G   V V : :   L L Ậ Ậ P P   T T R R Ì Ì N N H H   T T R R Ê Ê N N   A A U U T T O O C C A A D D   217 ' kiểu dữ liệu của biến hệ thống. Dim intData As Integer TenBien = "MIRRTEXT" intData = 0 GiaTri = intData ' Kiểu Integer ThisDrawing.SetVariable TenBien, GiaTri ' Kiểm tra giá trị đã gán sử dụng phương thức GetVariable GiaTri = ThisDrawing.GetVariable(TenBien) MsgBox (TenBien & " = " & GiaTri) ' Gán giá trị biến LTSCALE (kiểu số thực) bằng 1.5 Dim dataDouble As Double TenBien = "LTSCALE" dataDouble = 1.5 GiaTri = dataDouble ' Kiểu Double ThisDrawing.SetVariable TenBien, GiaTri ' Kiểm tra giá trị đã gán sử dụng phương thức GetVariable GiaTri = ThisDrawing.GetVariable(TenBien) MsgBox (TenBien & " = " & GiaTri) ' Gán giá trị biến INSBASE (kiểu mảng chứa toạ độ) bằng (1.0,1.0,0) Dim arrayData3D(0 To 2) As Double TenBien = "INSBASE" arrayData3D(0) = 1#: arrayData3D(1) = 1#: arrayData3D(2) = 0 GiaTri = arrayData3D ' Kiểu mảng chứa toạ độ điểm ThisDrawing.SetVariable TenBien, GiaTri ' Kiểm tra giá trị đã gán sử dụng phương thức GetVariable GiaTri = ThisDrawing.GetVariable(TenBien) MsgBox (TenBien & " = " _ & GiaTri(0) & ", " & GiaTri(1) & ", " & GiaTri(2)) End Sub Cácbiếnhệthốngthườngdùng Để hiển thị được đầy đủ tất cả các biến hệ thống cũng như giá trị hiện thời của chúng, có thể thực hiện theo các bước sau: 1. Tại dòng lệnh của AutoCAD, nhập lệnh setvar. 2. Tại dòng nhắc “Enter Variable Name”, nhập dấu ? 3. Tại dòng nhắc “Enter Variable(s) to List”, nhấ n ENTER Bảng dưới đây giới thiệu các biến hệ thống thường dùng trong AutoCAD: Biến hệ thống Giải thích ANGBASE Thiết lập góc cơ sở, là góc hợp với phương X. Mặc định giá trị này bằng 0. AUPREC Thiết lập số chữ số sau dấu phẩy của đơn vị đo góc. DIMTIH Xác định vị trí chữ ghi kích thước. Nếu bằng 0: song song với đường ghi kích thước; bằng 1: nằm ngang. Mặc định giá trị này bằng 1. FILLETRAD Xác định bán kính vuốt cong mặc định khi dùng với lệnh Fillet INSBASE Toạ độ điểm chèn mặc định. CELTSCALE Thiết lập tỷ lệ kiểu đường cho các đối tượng mới tạo LTSCALE Thiết lập tỷ lệ kiểu đường cho tất cả các đối tượng . đ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ể. 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. 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

Ngày đăng: 24/07/2014, 07:21

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN