Auto technology kĩ thuật tự động thiết kế cơ khí, điều kiển máy phần 7

31 323 0
Auto technology   kĩ thuật tự động thiết kế cơ khí, điều kiển máy phần 7

Đ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

Kĩ thuật tự động thiết kế cơ khí, điều khiển máy

gém: pr - điểm tham chiết có hình AutoCAD xuất ng nối điểm với vị trí trỏ chuột mg - lời nhắc, xuất đồng lệnh command đoạn † nhập khoảng cách Sau xuất lời nhắc đồng lệnh, theo cách sau; Enter - Gõ số thể khoảng cách cần nhập nhấn điểm (khi thơng số pí đưa lời gọi hàm) - giá trị tham hàm khoảng cách từ điểm nhập đến điểm chiéu pt trị trả hàm - Nhập điểm (khi thơng số pí qua) - giá khoảng cách hai điểm nhập tròn bán kính, sau Đoạn chương trình sau u cầu nhập tâm vịng vẽ vịng trịn lệnh AutoCAD: (setq tâm vòng tròn tam (getpoint "Nhập tâm: "); nhắc nhập bán kính bk (getdist pt! "\wNhap ban kính: ") ; nhắc nhập tron vịng điểm chuột kích + ) tròn vòng để CAD : gọi lệnh Circle Amto (command ".Circle” tam bk) hàm số thực (getangle [pt] [msg]) nhập góc Giá trị trả NIL người dùng nhấn thể góc nhập, đo radian Enter, Các tham số hàm gồm: e hình AutoCAD pt- điểm tham chiếu, có xuất trẻ chuột đoạn thẳng nối điểm với vị trí and msự - lời nhắc, xuất đồng lệnh cơmm góc nhập theo Sau xuất lời nhắc đồng lệnh, cách sau: thiết lập trước - Gõ giá trị góc cần nhập theo đơn vị mặc định, AutoCAD (thường độ) nhấn Enter lệnh ni lời gọi hàm) - giá trị - Nhập điểm (khi thơng số pí đưa điểm nhập đến trả hàm góc tạo đường nối điểm tham chiếu pí trục X - giá trị trả hàm - Nhập điểm (khi thơng số pí bỏ qua) trục X góc tạo đường nối hai điểm nhập với radian có giá tri Lưu ý rằng, giá trị trả hàm ge/angle từ đến 2m Ví dụ, đoạn chương trình sau: (setq pt 00) ¿ điểm tham chiếu gốc tọa độ a (getangle pt "Hãy nhập giá trị gốc xoay: "} Khi chạy đoạn chương trình này, đồng lệnh xuất lời nhắc yêu cầu người dùng nhập giá trị góc xoay Nếu nhập 180, hàm trả 3.14159, nhap 360 - trả 0, nhập 540 (= 360+180) - hàm trả vé 3.14159, nhập -90, hàm trả 4.71238 (3/2 -2/2) Nếu nhập điểm (1.0.1.0) - hầm trả 0.785399 (z/4), nhập điểm (1.0, -1.0) - trả giá tri 5.44779 (71/4 khong phai -7/4) © (getkword [msg]) nhập tit khoa (Keyword) Gia chuỗi ký tự ứng với từ khoá định nghĩa a vé cla ham miiget trước Từ khố nhập cách gõ đủ gõ ký tự viết tat cho từ khoá Biến msg thể thông báo đồng lệnh để người sử dụng biết cần phải nhập Nếu nhập từ khố sai, xuất báo lỗi nhắc lại thông báo msg để người dùng nhập lại Ví dụ, đoạn chương trình sau u cầu người dung nhập từ khố T (Tiep) K hong): ; định nghĩa từ khoá T K, bitcode Í có ; nghĩa khơng cho phép nhấn Enter ý mà khơng Hhập ; Hiện thơng báo "Có tiếp tục ” đợi người dùng nhập từ khố (setq traloi (getkword "Có tiếp tục không (Co/Khong) oy) (initget "Tiep Khong”) Trong vi dy nay, néu nhap "K" hoac "Khong", ham getkword sé tra vé giá trị "Khong" va gan cho biến trafoi, nhập ”T" "Tiep”, biến /raloi gán giá trị "Tiep" Ngược lại, hàm gefwword báo lỗi yêu cầu nhập lại Lưu ý hàm ge/kwordl khong phân biệt chữ hoa hay chữ thường nhập từ khoá Chẳng hạn nhập "T" hay "L” cho kết “Tiep” Các phương pháp khai báo chuỗi từ khoá xem tiét ham initget e (imitget [bis] [sr]) thiết lập từ khoá va han chế loại đữ liệu nhập cho hàm getX theo sau Ngoại trừ hàm œersiring khơng bi ảnh hưởng ¿niget, hàm nhập liệu khác bị hàm phối Hàm initger trả gid tri NIL Các tham số hàm có ý nghĩa sau: - bits 1A số nguyên (8-bit) Số nguyên 8-bit viết dạng số thành chuỗi ð (các bit) chứa chữ số I Giá trị bit tương ứng với việc cho phép hay không cho phép nhập kiểu đữ liệu đó, Y neghia số Địt cho 6.2 189 Ỳ tỊLILLIE bit? Ÿ we bitO Bang 6.2 Cac bit ham initget Bits Ý nghĩa Ghi chit Không cho phép nhấn Enter (NIL) bitO có gid tri Khơng cho phép nhập giá trị Ö (zero) bitl c6 gid wi Không cho phép nhập số âm bit2 cé gid tri Cho phép nhập điểm nằm vùng giới | bit3 cé gid tri | hạn vẽ, xác định lệnh LIMIT | Nếu muốn cấm nhập NIL số thi can dat cdc bitO bit] giá trị !, bits có giá trị (= 2+l), không muốn người dùng nhập số âm số (cho phép nhấn Enter - nhập NIL) bit0 có giá trị 0, bitl va bit2 cd gid tri 1, Khi gid tri bils (= 2+4) Các câu gọi hàm sau thực việc hạn chế nhập liệu này: (initget 3) ; (initget (+ 2)) - khéng cho phép nhap NIL va (initget 6); hode (initger (+ 4)) - khong cho phép nhap sO dm ya - sứ chuỗi ký tự thể tì khố, dùng với hàm ge/kword, Chuỗi ký tự cần thiết lập theo quy tắc sau: + Các từ khoá phân cách hay nhiều dấu cách (dấu trang Space), vi du chuỗi sau hợp lệ: "L/Type Line eXit toP” + Các từ khố chứa chữ cái, chữ số đấu gạch ngang + Có phương pháp thể cụnh từ viết tắt từ khoá: e _ Viết hoa hay số ký tự liền chuỗi từ khố Cụm từ viết tất đặt vị trí chuỗi từ khố Trong ví dụ cụm viết tắt LT (thay cho LType), LI (thay cho LIne), X © (cho eXit) P (thay cho toP) Thường hay sir dung chữ để thể cụm từ viết tắt, cần phân biệt từ khoá khác cần dùng nhiều từ (vi du LT va LD Các từ khoá viết hoa, liền theo sau cụm từ viết tắt từ khoá tương ứng Trong trường hợp này, cụm từ viết tắt phải chứa chữ từ khố Ví dụ, chuỗi ký tự "LUTYPE,LT LINE,LI" hợp lệ, "EXIT,X" không hợp lệ Lưu ý rằng, việc sử dụng từ khố khơng dùng cho hàm getkword, mà cịn sử dụng cho hàm getX khác Ví dụ sau sử dụng ham initger va getreal dé nhap gia tri góc từ đồng lệnh command: Vi du 6.13: Sit dung initget (initget "Pi Two-pi thRee-pi") ¡ không cho phép nhập số âm, đất ¿ từ khod Pi, Two-pi va thRee-pi (setq ang (getreal "Nhap géc Pi/Two-pi/thRee-pi ")) Gf (= ang NIL) (setq ang 3.14159) ; người dùng nhấn Enter, gắn ang = (if (= ang "Pi") (setg ang 3.14159)) ; người dùng nhập P (hoặc PÙ gắn dng = (if (= ang "Two-pi") (setq ang 6.28318)) : người dùng nhập T, gan ang = 20 (if (= ang "thRce-pi") (setq ang 9.42477)) ; người dùng nhập R, gán ang = 37 Trong đoạn chương trình này, dịng lệnh thứ xử lý trường hợp người dùng nhấn Enter mà khơng nhập Khi chương trình gần cho biến ang giá trị mặc định Z Các dòng 4,5,6 xử lý trường hợp người dùng nhập từ khoá thay cho giá trị Biến ang gần giá trị tương ứng Điều hữu ích muốn người dùng nhập giá trị định trước mà khơng cần gõ nhiều Nếu người đùng nhập số khơng âm, biến øng nhận giá trị số vừa nhập Trường hợp người dùng nhập giá trị khác (số âm chuỗi ký tự khơng với từ khố, chẳng hạn nhập 2pi -3.14) AutoCAD yêu cầu nhập lại Một cách thức nhập liệu khác thực qua giao tiếp hộp thoại (Dialog) để cập tiết phần 6.4 6.3.1.3 Chuyển đổi kiểu liệu Mot nhu cầu khơng thể thiếu lập trình chuyển liệu từ kiểu sang kiểu khác Ví dụ, cần thơng báo chu vi vịng trịn chọn len hop Alert, trước tiên cẩn tìm bán kính vịng trịn (qua CSDL AutoCAD), tinh chu vi va chuyén gi tri tinh từ kiểu số thực (Real) sang kiểu chuỗi ký tự (String) Ngược lại, nhập số liệu hộp thoại DCL, giá trị nhận chuỗi ký tự chứa số, cần chuyển chúng thành kiểu liệu số để tính tốn AutoLISP cung cấp loạt hàm chuyển đổi liệu Cú pháp chung hàm thường có dang StoD, dé $ la kiểu nguồn, D kiểu cần chuyển tới Dưới giới thiệu số hàm thơng dụng: © (atof str) chun déi chudi ky tu 86 str sang số thực Ví dụ: {atof "97.1”) trả số thực 97.1 (atof "97") trả số thực 97.0 Tham số sứr phải chuỗi String, số hàm ø/øƒ báo lỗi Lưu ý rằng, chuỗi sír chứa ký: tự không hợp lệ (không phi chữ số dấu thập phân) hàm øføƒ thực Kết trả số thực 0.0 chuỗi s' khơng hợp lệ từ chữ đầu tiên, cịn khơng trả số tương ứng với chữ hợp lệ tính từ trái sang chuỗi sr VÍ dụ: {atof "123.4a15”) trả số 123.4 (atof "a.123”) (atof "") tra vé 0.0 (atoi str) chuyén déi chuỗi ký tự sang số nguyên Cách thức thực © giống hàm atof Vi du: (atoi "123") trả số nguyên 123 (atoi "123.987") trả số nguyên J23 (atoi "123abc") trả số nguyên 123 (moi "0123") trả số nguyên 123 (atoi "”} (atoi "xyz”) trả số nguyên Ö Lưu ý rằng, giá trị trả hàm số nguyên dài (Longint) 32-bit Nếu chuỗi ký tự ứng với số lớn hon gidi han 32-bit, kết số khác Ví dụ, biếu thức (toi "123456767889990”) trả số nguyên 2147483647 (distof © str [mode]) chuyển đổi chuỗi ký tự dạng số đo khoảng cách sang số thực Các tham số có ý nghĩa sau: - sír: chuỗi ký tự cần chuyển đổi (cách thể xem hàm r2s trình bày phần sau) - mode: kiểu thể số thực chuỗi ký tự (tương tự ham ros trình bày phần sau) Nếu chuỗi hợp lệ theo modle cho hàm trả số thực, ngược lại ham tra vé NIL Vidu: (distof "17.5" 2) trả số thực 17.5 (distof "1.7500B+01" 1) ura vé gid tri 17.5 (distof "1'-5.5000\"" 3) tra 17.5, nhưng, (distof "1'-5.5000N"" 2) tra vé gid tri NIL chuỗi “1'-5.5000\"" khong hợp lệ thể số kiểu thập phan (mode = 2) © (angtof str [mode]) chuyén đối chuỗi ký tự dạng số đo góc sang số thực thể giá trị góc radian (nam khoảng đến 2m) Các tham số có ý nghĩa sau: - sr; chuỗi ký tự (cách thể xem ham angros tinh bày phần sau) - mode: kiểu thể góc chuỗi ký tự (tương tự hàm øgfos trình bày phần sau) Ví dụ: (angtof "45.0000" 0) trả số thực 0.785398 (2⁄4: chuỗi ký tự "45.0000” thể góc 45 độ (mode = 0), chuyển sang radian 'số thực 74, (angtof "-45.0000" 0) tra vé gid (angtof "45.0000" 3) tr] 5.49779 (7m/4 = trả sé thuc 1.0177: chuỗi góc 45 radian (mode = 3), tron 2a, cdn lai gid tri 1.0177 2n - x/4) ký tự "45.0000" thể sau loại bới góc radian (angtof "45r” 3) cho kết tương tự (1.0177) Nếu chuỗi si không hợp lệ, hàm trả vẻ NIL 45.00x”) trả vé NIL) (ví dụ, biểu thức (angtof © (ascii str) trả vẻ số nguyên ứng với mã ASCH chữ đầu chuỗi sír Ví dụ, biéu thitc (ascii "ABC") tra vé sé nguyên 65 (chr « int) nguge lai với hàm ascii, hàm trả chuỗi chứa chữ có mã tương ứng với giá trị mã ASCII bing int da cho Vi du, biểu thức (chr 65) trả chuỗi ký tự "A", (chr 12) lại trả chuỗi 014”, thể số 12 hệ đếm số ©Ẳ (rtos num [mode [precission]]) - chuyển đổi số num sang chuỗi ký tự Các tham số hàm sau: - num: số cần chuyển đổi - mode: số nguyên dương thể kiểu thể chuỗi chữ số, giá trị ý nghĩa cho bảng 6.3 - precission: số nguyên đương, thể độ xác chuyển đổi (số chữ số sau dấu thập phân) Trong tham số này, hai tham số zmode precision không thiết phải có Trong trường hợp kiểu thể độ xác lấy theo mặc định, xác lập qua biến LUNITS LUPREC AutoCAD © (itoa int) tra vé chuỗi ký tự thể hién sé nguyén int tham so hàm Nói cách khác hàm ioz chuyển đữ liệu từ kiểu số nguyên sang 193 chuỗi ký tự Ví dụ: {itoa 123) tra vé chuối "123", nhưng, (itoa 123456767889900) him khong thực tham số vượt giới hạn 32-bit (itoa 123.456) không thực số nguyên Bảng 6.3 Ý nghĩa tham sé mode (ham rtos) | Ví dụ Giá mj | Kiểu thể mode Khoa học Thap phan (setq num 17.5) (tos num 4) (rtos num 4)_ trả chuỗi "1.7500E+01” "17,5000" tra vé chudi Ky thuat (Anh) | (Mos 17.5 4) tra vé chudi "1'-5.5000\"" có nghĩa ft 35 in - im ý Lƒt =12in Kiến trúc (Anh) | (rtos 17.54) Phân số trá vẻ chuỗi "1-5 1N" có nghĩa I ft 1/2 in (viet kiểu phân số) (rtos 17,5 5) trả chuối "17 1/2" _4 (angtos ang [mode [precission]]) chuyển đổi góc ang sang chuỗi © ký tự Các tham số hàm sau: - ang: góc cần chuyển đổi (đo radian) - mode: số nguyên dương thể kiểu thể chuỗi chữ số, giá ui ý nghĩa bang 6.4 - precission: số nguyên dương, thể độ xác chuyển đổi (số chữ số sau dấu thập phân) Bảng 6.4 Ý nghĩa tham sé mode Giá trị | Kiểu thể mode (ham angtos) Ví dụ, với góc ang = 0.785398 (7/4) (angtos ang O 4) trả chuỗi "45.0000" | (angtos ang 1) tra vé chuỗi "45d00N"" Độ Độ/phú/giáy Gradian (angtos ang 4) trả chuỗi "50.0000g” Radian (angtos ang 4) trả chuỗi "0.7854r" dang XdY'Z"_| (l g= 100 độ) Surveyor's 45 độ, phút,0 gidy 50.0000 gradian (angtos ang 4) trả chuỗi "N 45400N' E" 45 độ, hướng Đông - Bắc (North-East) (angtos -0.785398 4) tra vé "S 45d0'0V" B" `45 độ, huéng Dong - Nam (South-East) _| Các tham số mode precision khơng thiết phải có Khi đó, kiểu thể độ xác lấy theo mặc định, xác lập qua biến AUNITS va AUPREC cia AutoCAD 6.3.1.4 Xuất liệu hình Có thể xuất liệu hình thơng qua hàm thơng báo prompt va afert mục 6.1.1, liệu cần phải chuyển đổi sang dạng chuỗi ký tự, kết trả vẻ hàm NIL Các hàm sau xuất trực tiếp liệu lên hình văn AutoCAD Dữ liệu khơng thiết phải dạng chuỗi ký tự, mà thuộc đạng khác số nguyên, số thực, danh sách kết biểu thức AutoLISP (princ expr [file]) xuất kết mà hình mà khơng kèm theo dấu nháy kép " (đối với liệu đạng văn bản) (priml expr [file]) xuất nguyên kết hình (gồm ký tự nhảy kép " với liệu dạng văn bản) (print expr [file]) xuất kết nguyên man hình (gồm ký tự nháy kép " với đữ liệu dạng văn bản), bắt đầu địng có thêm dấu cách sau liệu Với hàm này, phép I biểu thức (hoặc tham số) expr, ching han phát biểu (princ 10 15) không hợp lệ Tham 86 file trổ file, nhận từ hàm mở file open giới thiệu mục dit 6.3.1.5 Nếu có tham số này, liệu lưu vào file, khong, thức liệu in hình Các hàm trả giá trị biểu The (hoặc giá trị tham s6) expr Vi dụ, với chuỗi sr có nội dung: kết cho "allowable" tolerance is 0.25in, in hàm tương ứng sau: The "allowable" tolerance is 0.25in dung chudi ky ty "The \'allowable\" tolerance is 0.25in" "The \"allowable\” tolerance is 0.25in" dung chudi ky tr "The \'allowable\" tolerance is 0.25in” dung “The \"allowable\" tolerance is 0.25in” trả chuỗi ky ty "The \'allowable\" tolerance is 0.25in" in va (prinl str) in va (print str) in (princ str) nội tra vé nội tra vé ndi Khi sử dụng hầm với kiểu liệu chuỗi ký tự, hàm prine va prind cho két qua nhau, cdn print sé in két qua dòng thêm dấu cách vào sau kết Ví dụ: (prince (+ 2.5 2.4)) in số 4.0 trả số thực 4.9 195 (prinl (+ 2.5 2.4)) (print (+ 2.5 2.4}) in s6 4.9 va trả số thực 4.9 thực việc xuống dòng in số 4.9 trả số thực 4.9 Khi gọi hàm AutoLISP, kết biểu thức cuối hàm in hình Để tránh việc này, thường thêm lệnh princ (không tham số) cuối hàm Hàm trả giá trị NL không in két qua dong lệnh command Cách thức AutoLISP gọi "rút lui im lang!" Hai hàm khác thường sử dụng với file write-char va write-line ciing dùng để ghi liệu hình văn AutoCAD Hàm (wrife-char im) in hình ký tự có mã ASCII số ngun , cén ham (write-line str) in hình chuỗi ký tự s (khong theo dau nhay kép " bao chudi ky ty) va sau dé sang ding mdi Vi du, đoạn chuong trinh sau: (write-char 65) (write-char 66) thực in hình ký tự AB (viết liên | đồng), thực biểu thức: (Wwrite-line "Abc") (write-line "Def”) sé in hình địng với nội dung sau: Abc Def Như vậy, nói rang ham (write-line str) thay thé Idi goi hai hàm (princ str) (print), Dé viét céc dong Abc va Def trén hai dịng ví dụ trên, néu ding princ va print cân viết lại đoạn chương trình sau: (princ "Abec”) (print) (prine "DefF") (print) 6.3.1.5 Làm việc với file liệu File liệu AutoLISP thuộc đạng văn bản, truy cập Đóng / mở file thực thong qua céc ham open va close Dit liéu lưu file qua hàm write-char va write-line, cdn viée doc dit ligu duge thuc hién méi lan | dong véi ham read-line Ngoai AutoLISP cung cấp số hàm khác hàm findfile tìm xem file có tồn đường dẫn khai báo mục Reference AutoCAD hay khong va ham ge¢filed cho phép chọn file thơng qua việc truy tìm 196 thư mục (Folder Tree) thea giao thức hộp thoại FileOpen FileSaveAs với ứng dụng Windows khác VisualLISP cịn cung cấp thêm tính file khác đổi tên, xoá, chép file, Dưới giới thiệu tiết số hàm thường dùng với file liệu: © - Mở file thực thong qua ham open Ca pháp chung hàm sau: ` (open filename mode) đó: - filename - chuỗi ký tự (String) thé tên file cần mở Nếu không ghi đầy đủ đường dẫn, file tìm Folder (thư mục) khởi động AutoCAD - mode ~ kiểu mở, chuỗi ký tự, không phân biệt viết hoa hay viết thường, thể mục đích mở file, bao gồm lựa chọn: r” - mở file để đọc liệu File có tên cho cần phải tồn "w"'~ mở file để ghỉ liệu Nếu file chưa tồn tạo ra, tồn tại, nội dung cũ Thực chất, liệu ghi lên thuc hién ham close "a" mo file ghỉ thêm đữ liệu Nếu file chưa tại, file bị xoá để ghi liệu file đĩa sau tồn tại, file tạo ra, tồn tại, đữ liệu ghi tiếp sau liệu có file Nếu hàm thực thành công, kết trả trỏ file, sử dụng tham số với hàm đọc ghi liệu Nếu khơng thành cơng, hàm trá NIL © - Đóng file mở thực thông qua hàm close Cú pháp hàm đơn giản: (close file) Trong d6 file 14 trỏ file, nhận từ ham open da noi phần Néu tham sé file hợp lệ, thực thành cơng hàm trả NIL, ngược lại xuất thơng báo lỗi Ví dụ sau thể việc mở file có tên VIDU6-14.TXT, đọc liệu đóng file đọc xong Vi du 6.14: Lam việc với file (setq fname "VIDU6-14.TXT") (sctq fil (open [name "r")) (setq ct 0) ; tén file ; mở file dé doc, gdn tre file cho bién fil ; đểm (setq p (getpoint "\nNhap điểm đầu: ")) (while p (print (car p) fil) inhap diém dau : vòng lấp ¡ lưu tọa dé X diém vita nhdp {prine (cadr p) fil) ¡ tọa độ Y : dấu cách (princ "") {princ (last p) fil) ; tọa độ Z (setq p (getpoint p "Nhập điểm tiếp theo: ")) ; thập tiếp ) ; nhấn Enter (không nhập @Ù đề ét thúc (close fil) ¡ đồng file ) (prompt "nKhông mở ) ; hếi ) tile ") ; thông báo (nếu không mở file) ¿kết thúc defn Khi chạy hàm nhập điểm, kết lưu file vidu416b.txt có dạng sau: a Toa cae điểm ;: 1.0 1.00.0 2.5 1.300.0 4.0 2.40 0.0 5.0 3.80 0.0 Ví dụ 6.17: Đọc liệu từ file chuyển thành danh sách (defun file2list (fname / f line linel Ist char1 res) ; Khai bdo han smo file dé doc dit liéu (setq F (open fname "r")) (if (not f) (progn (alert (seat "Khong mé duge file ” fname “ để đọc : khơng mở được, chương trình (exiÐ) ) (setq res 'Q} (while : tạo danh sách trắng ; đọc dòng đữ liệu file (setq line (read-line Ð) ; fay Ý tự đâu dòng vừa đọc 11)) line {setq char] (substr đí=":" cha) - ; kiến tra xem có phải dịng chủ thích (progn + không phái, xứ lý Gf (= "Œ charL) (if @=")" : thêm đấu “(” neu cata cd để tạo + chuô tự dụng danh sách (setq line (streat "(" line))) (substr line (strlen line) 1)) ¡ thêm đấu ")" chưa cô {setq line (strcat line ")”))) (setq Ist (read line)) ¡ đọc dòng liệu + trả danh sách (setq res (append res (list IsU)} ; thêm danh sách lst vào kết res 204 yy ) (close f) ) res ; két thie progn va if : kết thắc vòng lặp while (khi hết file) ¡ đóng file liệu ¡ trả kết Chẳng hạn, muốn xử lý đữ liệu file vidu6-16b.txt ví dụ gọi hàm sau: (file2lisL "đ;/vlisp/vidu6-L6b.txt”) Kết trả danh sách liên kết sau đây: ((1.0 1.0 0.0) (2.5 1.30 0.0) (4.0 2.40 0.0) (5.0 3.80 0.0)) 6.3.2 Tạo đối tượng AutoCAD Với AutoLISP tạo đối tượng AutoCAD (các đối tượng đỏ họa đoạn thẳng, cung tròn, đối tượng khác khối block, lớp - layer, ) thông qua cach: sit dung ham command gửi lệnh thông số tương ứng để AutoCAD thực hiện, trực tiếp can thiệp vào CSDL AutoCAD để thêm đối tượng sửa đổi đối tượng tồn 6.3.2.1 Sử dụng hàm command lệnh AutoCAD Cú pháp chung hàm sau: (command [arguments] ) đó, arguments la cdc tham sé cia ham, gồm tên lệnh AutoCAD, lựa chọn đữ liệu cần nhập thực vẽ AutoCAD Các tham số chuỗi ký tự (String), số thực (Real), SỐ nguyên (Integer), dit liu dang diém (Point) hodc nhém đối tượng (SelectionSet) Chuỗi ký tự trắng (°") hiểu việc nhập Enter Space, ham command khong tham số tương đương việc nhấn phim Esc dé thoát cdc lénh AutoCAD Khi gặp biểu thức nay, AutoLISP sé gửi tới AutoCAD thông số xử lý theo thứ tự lệnh tương ứng Nếu thông số đưa vào khơng thích hợp, hàm xử lý sai Hàm cơmmand trả gid tri NIL Để tránh việc lệnh gốc AutoCAD bị định nghĩa chồng, thêm dấu chấm (.) vào trước tên lệnh để gọi lệnh gốc, việc thêm đấu gạch (_) vào trước tên lệnh nhằm gọi lệnh phiên tiếng Anh AutoCAD cài đặt ngôn ngữ khác Ví dụ, biểu thức: (command "Line” ptl pt2 p3 "c") không thực cạnh tam giác qua dinh pt! pt2 pt3 AutoCAD cài đặt tiếng Pháp (khi 205 lệnh vẽ đoạn thang sé 1a Ligne chit khong phai Line) trước lệnh Line định nghĩa chồng qua việc khai báo hàm C:Line Để biểu thức thực nên đặt thêm tiền tố nói sau: (command "_Line” ptl p2 pi3 "—c") (contmand " Line" ptl pr2 pr3."_c") Nếu không muốn lời nhấc lệnh hình AutoCAD hay dat lai bién thong Cmdecho giá trị Một số biến hệ thống khác Osmode (OSnap), Orthomode gay anh hudng téi viéc thực thi chương trình nên đặt lại giá trị thích hợp Việc lấy giá trị cai dat lai biến hệ thống thực hàm ge/rar sehrdr p phan sau Lưu ý số lệnh AutoCA sir dung AutoLISP Vi du, lénh Script chạy file đáp phép gọi sau đoạn chương trình AutoLISP, cịn lệnh S&c/ch đọc liệu trực tiếp từ thiết bị Digitizer nên khơng dùng Ngồi lệnh AutoCAD liên quan đến việc chọn đối tượng (như Ưrèk 7rửm) việc chọn đối tượng truyền qua danh sách enwsei qua điểm nằm đối tượng thao tác AutoCAD Ví dụ, đoạn chương trình sau minh họa điều đó: (command (command "_.Circle" "5,5" "2") "_.Line" "3.5" "7,5" "") (sety ef (entlast)) {setq pt (5 7)} ivé vong tron ; đoạn thang ‡ chọn đối tượng vừa sau (đoạn thẳng) ¡ định nghĩ đối tượng nơi cắt di (command "_.Trim" el" pt"): ture hién vige Trim doun thang + (có biên vịng trịn) Nhìn chung, cách hữu hiệu để tạo đối tượng AutoCAD, yêu cầu người lập trình phải thành thạo với AutoCAD, nắm trình tự bước lệnh AutoCAD thực phương án dòng lệnh nó, bao gồm lựa chọn (nếu có) lời nhắc lệnh, đữ liệu cần nhập, Ví dụ, để vẽ vịng trịn, cần nắm yếu tố sau: - Tên lệnh AutoCAD : Circle - Các lời nhắc tiếp theo: Specify center point for cứcle or [3PJ2P/Trr (tan tan radius)} Can hiểu ý nghĩa lời nhắc để nhập phương án ~ Các đữ liệu cần nhập tương ứng với phương án chọn Trong ví dụ trên, chọn phương án mặc định, liệu cần nhập điểm (tâm vịng trịn) khoảng cách (bán kính), cịn muốn vẽ vòng tròn qua điểm, cần nhập phương án 3P nhập vào điểm Doan chương trình sau minh họa lưu ý này: 206 10): khai bdo toa độ cho diểm (setq ptl 4000) p2! 00) p3 (0 ; gán cho biến bk giá trị 10 bk 10) tròn tâm pul bán kinh bk (command "_.Circle" pt! bk) ; vồng pt3) ; vòng tròn qua điểm (command "_.Circle” "3P" pt} pt2 tạo đối tượng đồ họa phức Một cách thông dụng đơn giản để ổ hay đơn giản bulơng, dai tạp (ví dụ vẽ bánh trục, khoảng cách góc cần thiết, ốc ) tính trước điểm đặc trưng PLine, sau đùng hàm command với lệnh AutoCAD Line, g thường, điểm đối Circle, dé xây dựng đối tượng Thôn phần hướng tạp liên kết với qua kích thước tượng phức biết trước điểm khác tir, hay nói khác đi, chúng tính qua ham số Việc tính tọa độ điểm thực hàm xử lý danh sách Ví dụ, để vẽ cộng, trừ, nhân, chỉa dùng nhập trực tiếp, chiêu dài hình thơi có đỉnh đo người trục đứng & thực đứng ø tý số chiều đài trục ngang thông qua biểu thức AutoLISP sau: học trục biện trước tọa độ mỘC đình, độ dài trục cho Ví dụ 6.18: Vẽ hình thoi đứng biết tỷ xố độ đài trục k tiép tiv AutoCAD :¿; Nhập liệu người dùng rực thoi: ") (setq pO (getpoint "\aNhap dinh hinh đứng: " )) a (getdist pO "\nNhap chiền đài trục ;: không cho phép nhập số0 số âm (initget 6) k: ”}) hập tỷ lệ trục ngang/ trục đứng (setq k (getreal "nN (if (null k) (setq k 1.0)) (setq b2# a k 05) EHIer lấy giá wi mặc dịnh k=l nhấn g ¿ tính chiêu dài trục ngưn Tính điểm cần thiết đỉnh hình thoi :; điểm p0 pÏ p2 p3 i dùng nhập ; tọa độ điểm p0 ngườ x0 (car p0) (setq yO (cadr pO) Getq @etg (setq 20 (last p0)) y2(+ a y0) ¡ dịnh đối diện yl Œ (Œa045) y0) ; định trái x3 (+ x0 62) ¿đỉnh phải p2 (list x0 y2 20)) xI( x0 b2) pl (ist xf yl 20)) p3 (list x3 y! 20)) g PLine kín tạ VỀ hình thoi mot đườn p3 "c") (command "._PLine” po pl p2 crite tui im lang (princ) 207 ... thực 0 .78 5398 (2⁄4: chuỗi ký tự "45.0000” thể góc 45 độ (mode = 0), chuyển sang radian ''số thực 74 , (angtof "-45.0000" 0) tra vé gid (angtof "45.0000" 3) tr] 5.4 977 9 (7m/4 = trả sé thuc 1.0 177 : chuỗi... vé 3.14159, nhập -90, hàm trả 4 .71 238 (3/2 -2/2) Nếu nhập điểm (1.0.1.0) - hầm trả 0 .78 5399 (z/4), nhập điểm (1.0, -1.0) - trả giá tri 5.4 477 9 (71 /4 khong phai -7/ 4) © (getkword [msg]) nhập tit... thực, ngược lại ham tra vé NIL Vidu: (distof " 17. 5" 2) trả số thực 17. 5 (distof "1 .75 00B+01" 1) ura vé gid tri 17. 5 (distof "1''-5.5000\"" 3) tra 17. 5, nhưng, (distof "1''-5.5000N"" 2) tra vé gid

Ngày đăng: 30/12/2013, 20:35

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan