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

Giáo trình phân tích các phương pháp lập trình trên autocad p3

Chia sẻ: Dfsdf Fdsgds | Ngày: | Loại File: PDF | Số trang:5

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

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

Chủ đề:
Lưu

Nội dung Text: Giáo trình phân tích các phương pháp lập trình trên autocad p3

  1. 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
  2. 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
  3. 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
  4. 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 216
  5. CHƯƠNG V: LẬP TRÌNH TRÊN AUTOCAD  ' 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 217
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

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