1. Trang chủ
  2. » Luận Văn - Báo Cáo

Đồ án tìm hiểu ngôn ngữ autolisp và ứng dụng trong autocad

55 13 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

ề Đ án Ki nh ố qu c TRƯỜNG ĐẠI HỌC DÂN LẬP HẢI PHềNG tế BỘ GIÁO DỤC VÀ ĐÀO TẠO tế ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY NGÀNH CƠNG NGHỆ THƠNG TIN Tìm hiểu ngơn ngữ AutoLISP Và Ứng dụng AutoCAD Giáo viên hướng dẫn: Thạc sĩ Đỗ Văn Chiểu Sinh viên : Lưu Thị Thu Trang Hải Phòng, 2007 ề Đ án Ki nh tế Mục lục ố qu c Lời cảm ơn Phần 1: Giới thiệu Tên mục đích đề tài Giới thiệu vài nét quan thực tập Phần 2: Nội dung Lời mở đầu Khái quát lập trình AutoCAD8 tế 1.1 Kỹ thuật tự động ActiveX (ActiveX Automation) 1.2 AutoCAD VBA 1.3 AutoLISP Visual LISP 1.4 ObjectARX Giới thiệu chung 10 2.1 Vài nét sơ lược LISP 10 2.2 Lịch sử phát triển AutoLisp 10 2.3 Ưu nhược điểm AutoLisp 11 3.Ngơn ngữ lập trình AutoLISP 12 3.1 Căn AutoLisp 12 3.1.1 Xây dựng biểu thức AutoLISP 12 3.1.2 Cách nhập biểu thức AutoLISP: .13 3.1.3 Các hàm số học 13 3.2 Biến ký hiệu AutoLISP 3.2.1 3.2.2 3.2.3 3.2.4 3.2.5 3.2.6 14 Gán giá trị cho biến 14 Giá trị trả hàm AutoLISP .14 Sử dụng biến dòng lệnh AutoCAD 14 Các quy định đặt tên biến .14 Nhập giá trị cho tham số 14 Phạm vi biến AutoLISP 15 3.3 File chương trình AutoLISP 16 3.3.1 Tên file AutoLISP 16 3.3.2 Tạo file chương trình 16 3.3.3 Gọi file chương trình AutoLISP 17 3.3.4 Chú thích 17 3.3.5 Các hàm tự tạo 17 3.3.6 Biến toàn cục biến cục 18 3.3.7 Tạo lệnh AutoCAD .18 3.4 Nhập liệu 19 3.4.1 Nhập số nguyên 19 3.4.2 Nhập số thực .19 3.4.3 Nhập chuỗi 19 3.4.5 Tham số không rỗng 19 3.4.6 Kiểm soát liệu nhập vào 19 3.4.7 Biến hệ thống .19 3.5 Một số hàm 20 3.5.1 Hàm chuyển kiểu liệu từ chuỗi thành số ngược lại 20 3.5.2 Các hàm số học 21 3.5.3 Các hàm chuỗi 23 3.6 Xử lý danh sách 25 3.6.1 Phân loại : 25 3.6.2 Tạo danh sách 25 3.6.3 Các hàm xử lý danh sách 25 ề Đ án Ki nh tế 3.6.4 Các hàm xử lý danh sách nâng cao 26 28 ố qu 3.7 Biểu thức điều kiện 3.8.1 Hàm Repeat 31 3.8.2 Hàm While 31 3.8.3 Hàm Append 31 3.8.4 Hàm 1+ 32 3.8.5 Hàm 1- .32 3.8.6 Truy xuất phần tử danh sách 32 3.9 Tạo hộp thoại 33 3.9.1 Khái niệm file DCL thành phần hộp thoại 33 3.9.2 Phân loại ttile 34 3.9.3 Các thuộc tính tile 40 3.9.4 Các hàm điều khiển hộp thoại 41 3.9.5 Các hàm điều khiển tile .42 3.9.6 Một số ý thiết kế hộp thoại 42 3.10 Các hàm xử lý hình đồ hoạ thiết bị nhập 44 3.10.1 Màn hình đồ họa 44 3.10.2 Gọi hiển thị menu .45 3.10.3 Các hàm truy xuất hình đồ họa thiết bị nhập .46 Chương trình minh hoạ 48 4.1 Lỗ Gujong 48 4.2 Dầm chữ I 51 Kết luận 55 Các tài liệu tham khảo 56 tế 3.8 Vòng lặp 31 c 3.7.1 Biểu thức điều kiện .28 3.7.2 Rẽ nhánh chương trình 29 3.7.3 Các hàm logic 30 ề Đ án Ki nh tế ố qu c Lời cảm ơn tế Lời đầu tiên, em muốn bày tỏ lòng biết ơn chân thành thầy giáo, cô giáo trường Đại học Dân lập Hải Phịng, người thầy khơng tận tình truyền đạt kiến thức mà cũn luụn động viên, quan tâm, giúp đỡ chúng em học tập sống suốt bốn năm học trường Em xin chân thành cảm ơn thầy giáo Th.S Đỗ Văn Chiểu, người thầy trực tiếp giảng dậy hướng dẫn em suốt trình làm đồ án tốt nghiệp Cảm ơn thầy luụn động viên, hướng dẫn định hướng cho em thời gian qua Cuối cùng, hết em muốn bày tỏ lòng biết ơn tới cha mẹ tụi, cỏc thành viên gia đình em, tất bạn bè em, người bên động viên, cổ vũ giúp đỡ em học tập sống Sinh viên Lưu Thị Thu Trang ề Đ án Ki nh tế Phần 1: Giới thiệu ố qu Giới thiệu vài nét quan thực tập Công ty CP Điện Tử Tin Học Viễn Thơng có tiền thân Cơng Ty Đầu Tư Phát Triển Kỹ Thuật Phát Thanh Truyền Hình Hải Phịng thành lập năm 1993 Đến năm 1996 công ty đổi tên thành Công ty dịch vụ tin học Hải Phòng (quyết định số 25/4QĐ-UB) sở hợp hai đơn vị: Công Ty Đầu Tư Phát Triển Kỹ Thuật Phát Thanh Truyền Công ty điện tử tin học Hải Phòng Năm 2004, thực nghị TW3, công ty chuyển thành Công ty cổ phần điện tử tin học Viễn Thơng (Cty cổ phần có góp vốn Nhà Nước Giấy chứng nhận đăng ký kinh doanh Cty cổ phần số 0203000819-Quyết định số 1869/QĐ-UB ngày 22/4/2004 ủy Ban Nhân Dân thành phố Hải Phòng) Ngày 01/5/2004 Cty Cổ Phần Điện Tử Tin Học Viễn Thơng thức vào hoạt động với tổng vốn điều lệ tỷ VN đồng, tên giao dịch quốc tế Electronic Telecommunication Informatic Joint Trụ sở Cty: số 18 Trần Hưng Đạo, phường Hồng Văn Thụ, quận Hồng Bàng, thành phố Hải Phịng Cơng ty Cổ Phần Điện Tử Tin Học Viễn thông kinh doanh ngành nghề sau: - Kinh doanh dịch vụ hàng điện tử, điện lạnh, điện máy, vật tư, thiết bị đồ dùng dân dụng Đại lý hàng điện máy - Sửa chữa bảo hành, lắp giáp thiết bị truyền thanh, truyền hình, tin học - Sản xuất máy thu FM, máy tăng âm ăng ten thu phát vô tuyến - Vận tải dịch vụ vận tải hàng hóa - Dịch vụ văn hóa thể thao - Lắp đặt bảo dưỡng sửa chữa cung ứng vật tư thiết bị truyền hình cáp MMDS - Kinh doanh khách sạn nhà nghỉ cho thuê văn phòng - Kinh doanh thiết bị tin học đào tạo tin học - Sản xuất bao bì bảng kẽm - Xây dựng cơng trình dân dụng, công nghiệp, giao thông thủy lợi, thương mại đường ống cấp thoát nước - Kinh doanh vận tải hành khách xe taxi Phần 2: Nội dung Lời mở đầu Khi đời, công nghệ thông tin khơng có nhiều ứng dụng sống mà chủ yếu phục vụ cho ngành khoa học nhằm giải toán lớn, nhiều thời gian tính tốn hay tốn địi hỏi xác gần tuyệt đối tế  Tên đề tài: Tìm hiểu ngơn ngữ AutoLISP ứng dụng AutoCAD  Mục đích đề tài: tìm hiểu AutoLISP cách lập trình tiện ích cho phần mềm AutoCAD c Tên mục đích đề tài ề Đ án Ki nh tế Trước kia, để thiết kế cơng trình xây dựng hay chế tạo chi tiết máy mới, kỹ sư thiết kế phải tốn nhiều thời gian để thiết kế tính tốn thơng số kỹ thuật cho xác Trong trình thiết kế vẽ tay họ phải lặp lặp lại số chi tiết hay vẽ sai phải thực vẽ lại từ đầu Điều khiến cho người thiết kế nhiều thời gian làm giảm chất lượng vẽ Từ thực tế đó, nhiều kỹ sư thiết kế mong muốn có cơng cụ hỗ trợ cơng việc thiết kế nhằm nâng cao chất lượng vẽ Nắm bắt nhu cầu này, công ty phần mềm cho đời loạt phần mềm hỗ trợ AutoCAD, SAP, AutoCAD Mechanical… Tuy nhiên, thực tế phần mềm hỗ trợ đáp ứng yêu cầu chung nhất, tổng quát kỹ sư thiết kế Ví dụ ngành thiết kế cơng trình nhà ở, cầu đường…, Việt Nam có tiêu chuẩn riêng Công Nghiệp đặt vẽ mà không theo tiêu chuẩn chung giới Trong đó, phần mềm hỗ trợ cơng việc thiết kế lại tuân theo tiêu chuẩn chung giới Do bắt buộc người kỹ sư thiết kế phải tự thực thao tác để vẽ chi tiết tuân theo tiêu chuẩn riêng nước mỡnh dự việc tốn nhiều thời gian hay chi tiết lặp lặp lại qua vẽ Có thể nói số phần mềm hệ thống CAD/CAM AutoCAD hãng Autodesk công cụ tuyệt vời kỹ sư ngành nghề từ điện tử, vi mạch tới chế tạo máy, từ vô tuyến tới xây dựng Có nhiều chương trình vẽ kĩ thuật tiện ớch khỏc đời ArchiCAD, COMPAS 3D, Turbo CAD nói lĩnh vực vẽ 2D, AutoCAD ụng “trựm” Điều tồn lí do[6]: 1- AutoCAD khơng ngừng hồn thiện mình, 2- AutoCAD để ngỏ cho người sử dụng cách tự hoàn thiện theo nhu cầu riêng cách dễ dàng Trong AutoCAD có tồn ngơn ngữ lập trình lớn VisualLisp, VisualBasic Visual C Vậy thành thạo ngơn ngữ lập trình AutoCAD để làm gì? Việc viết code AutoCAD nói riêng việc lập trình thường chiếm thời gian lâu người không chuyên Trong ba ngôn ngữ kể Visual LISP u thích câu lệnh đơn giản lại sử dụng sẵn cỏc cõu lệnh AutoCAD cách tiện lợi Ít câu lệnh thuật tốn rắc rối, dễ học, dễ viết Chính Visual LISP đại đa số người sử dụng phương pháp hồn thiện, tích hợp lệnh vẽ có sẵn AutoCAD theo yêu cầu cá nhân Visual Studio AutoCAD công cụ mạnh giúp đột phá giới hạn cỏc cõu lệnh AutoCAD cho người sử dụng Ví dụ vẽ cầu thang cuốn, mặt phức tạp bậc cao, không muốn bị rõ chỗ gấp khúc phóng đại tỉ lệ có lựa chọn VS (trong AutoCAD 2007 hỗ trợ helix) VS cơng cụ lập trình dùng cho đề lớn tự động hóa tính tốn ổn định cho đập bê tơng, tự động hóa thiết kế nhà máy thủy điện, chuyển liệu excel thành địa hình 3D VBA khơng mạnh VS, không tiện Visual LISP, người học VBA thường người có VB muốn tiết kiệm thời gian Nói đến VisualLISP (Visual List Processor) trước hết nên nói đến AutoLISP AutoLisp, tập ngơn ngữ LISP, ngơn ngữ lập trình bậc cao thích hợp với ứng dụng đồ hoạ AutoLISP ngôn ngữ thông dịch, viết theo cú ố qu c tế ề Đ án Ki nh tế pháp thủ tục chặt chẽ ngôn ngữ LISP Tuy nhiên, bổ sung thờm cỏc hàm để phù hợp với AutoCAD Sử dụng AutoLISP ta viết chương trình marco để tạo lệnh cho AutoCAD chương trình tự động thiết kế vẽ sử dụng thường xuyên, thực với lệnh có sẵn AutoCAD để góp phần tăng suất thiết kế Bạn sử dụng trình soạn thảo văn để tạo chương trình AutoLISP gọi chúng vào CAD để kiểm tra thực Có thể nói, để làm chủ lập trình AutoCAD AutoLISP cánh cửa mà bạn cần vượt qua ố qu c tế ề Đ án Ki nh tế ố qu Khái quát lập trình AutoCAD 1.2 AutoCAD VBA Sự tích hợp VBA vào AutoCAD cung cấp công cụ trực quan dễ sử dụng để tùy chỉnh AutoCAD Ví dụ bạn tạo ứng dụng trích thuộc tính thơng tin cách tự động, chèn kết trực tiếp vào bảng tính Exel thực chuyển đổi thơng tin mà bạn cần Có ba thành phần chương trình VBA AutoCAD Đầu tiên AutoCAD, nú cú thiết lập đối tượng rộng lớn bao gồm thực thể, liệu, cỏc cõu lệnh AutoCAD AutoCAD cấu trúc ứng dụng mở với nhiều mức độ giao tiếp Thành phần thứ hai giao tiếp tự động ActiveX AutoCAD, thiết lập giao tiếp với đối tượng AutoCAD Lập trình VBA yêu cầu hiểu biết ActiveX Phần tử thứ ba thân VBA Nú cú thiết lập đối tượng đối tượng, từ khoá, số…của riờng nú, cung cấp chương trình điều khiển, gỡ rối thi hành Sử dụng VBA cho AutoCAD có ưu điểm sau: Tốc độ : ứng dựng tiến trình với VBA, ActiveX chạy nhanh ứng dụng AutoLISP Dễ sử dụng: ngơn ngữ lập trình môi trường phát triển dễ sử dụng cài đặt với AutoCAD Khả liên vận hành window: ActiveX VBA thiết kế để sử dụng với ứng dụng Windows khác cung cấp đường dẫn tuyệt với để trao đổi thông tin ứng dụng Cung cấp nhiều mẫu khác nhau: phát triển giao diện nhanh chóng VBA cung cấp mơi trường hồn hảo cho ứng dụng mẫu, dù ứng dụng phát triển ngôn ngữ khác Dễ học tế 1.1 Kỹ thuật tự động ActiveX (ActiveX Automation) Kỹ thuật tự động ActiveX phát triển Microsoft đ tảng kiến trúc COM (mơ hình đối tượng thành phần) Bạn sử dụng ActiveX để tuỳ chỉnh AutoCAD, chia sẻ vẽ bạn với ứng dụng khác tự động hoỏ cỏc thao tác Sử dụng ActiveX để tích hợp AutoCAD có hai ưu điểm sau đây: Chương trình truy cập vẽ AutoCAD mở rộng nhiều mơi trường lập trình khác Trước ActiveX, chuyên viên thiết kế giới hạn AutoLISP C++ Chia sẻ liệu với ứng dụng Windows Exel, Word dễ dàng c Các ngơn ngữ thường sử dụng để lập trình cho AutoCAD gồm có: ActiveX, VBA, AutoLISP, Visua LISP ObjectARX Việc sử dụng ngơn ngữ để lập trình cho AutoCAD tuỳ thuộc vào mục đích chương trình thói quen lập trình người ề Đ án Ki nh tế ố qu 1.3 AutoLISP Visual LISP AutoLISP dựa tảng ngôn ngữ lập trình LISP, dễ học ngơn ngữ lập trình mạnh Do AutoCAD có trình thơng dịch LISP, bạn đưa đoạn mã AutoLISP dấu nhắc lệnh AutoCAD tải file vào autocad để chạy Visual LISP (VLISP) công cụ phần mềm thiết kế để thực chương trình AutoLISP AutoLISP tăng cường với Visual LISP, đưa mơi trường phát triển tích hợp (IDE) gồm trình biên dịch, trình gỡ rối cơng cụ phát triển khác để tăng hiệu suất VLISP cú thờm nhiều khả mở rộng ngôn ngữ để tương tác với đối tượng sử dụng ActiveX VLISP cho phép AutoLISP đáp ứng kiện thông qua đối tượng phản ứng Các ứng dụng hay thường trình AutoLISP tương tác với AutoCAD nhiều cách Những thường trình nhắc người dùng nhập câu lệnh, truy cập câu lệnh có sẵn AutoCAD cách trực tiếp đinh dạng tạo đối tượng sở liệu Bằng cách tạo thường trình AutoLISP bạn thêm câu lệnh đặc biệt vào AutoCAD Một vài câu lệnh chuẩn AutoCAD thực ứng dụng AutoLISP Do AutoCAD đọc đoạn mã AutoLISP cách trực tiếp mà không cần biên dịch Trong Visual LISP đưa IDE, bạn thử nghiệm cách đưa đoạn mã vào dịng nhắc lệnh, cho bạn nhìn thấy kết c tế 1.4 ObjectARX Kỹ thuật ObjectARX cung cấp thiết lập cho ứng dụng thiết kế phần mềm để chia sẻ liệu đối tượng thông minh ObjectARXTM (Phần mở rộng thời gian thực AutoCAD) môi trường biên dịch ngơn ngữ lập trình để phát triển ứng dụng AutoCAD Mơi trường lập trình ObjectARX bao gồm số thư viện liên kết động chạy không gian địa giống AutoCAD thao tác trực tiếp với lõi cấu trúc sở liệu mã AutoCAD Những thư viện có ưu điểm kiến trúc mở AutoCAD, cung cấp truy cập trực tiếp đến cấu trúc sơ liệu, hệ thống đồ hoạ, phương tiện hình học để mở rộng cách lớp khả AutoCAD thời gian thực Thêm vào đó, bạn sử dụng DLLs để tạo cỏc cõu lệnh để thực xác giống cỏc cõu lệnh có sẵn AutoCAD Có thể nói, số ngơn ngữ lập trình mà AutoCAD hỗ trợ AutoLISP Visual LISP dễ học dễ tương tác với AutoCAD Bạn soạn thảo đoạn mã AutoLISP trình soạn thảo chí soạn thảo AutoCAD mà không cần cài đặt chương trình soạn thảo riêng VS, VBA… Trong khuân khổ đồ án này, em xin trình bày ngôn ngữ AutoLISP_ xem cách cửa để tiếp xúc với lập trình AutoCAD ề Đ án Ki nh Giới thiệu chung tế ố qu tế 2.2 Lịch sử phát triển AutoLisp AutoLISP nhánh Common LISP - ngơn ngữ lập trình cũ dùng để lập trình cho trí tuệ nhân tạo AutoLisp ngơn ngữ lập trình thơng dịch, bạn chạy trực tiếp chương trình AutoLISP phát triển ngơn ngữ XLISP ngơn ngữ lập trình mơi trường AutoCAD David Betz xây dựng lên công bố phiên 2.18 vào tháng 1năm 1986 Cùng với phát triển AutoCAD phiên AutoLisp ngày hồn thiện với nhiều tính tận phiên Release 12 vào tháng năm 1992 Sau đó, phát triển bị nhãng hãng Autodesk đến việc phát triển ngơn ngữ Tuy nhiên trì AutoCAD Vital-LISP coi phiên mở rộng AutoLISP gồm phần IDE, debugger complier phát triển bán công ty thứ Basis Software Vital LISP phiên mạnh phiên AutoLisp tích hợp VBA AutoDesk mua lại đặt tên Visual Lisp, thời gian ngắn bỏn nú phần mềm add-on Nó tích hợp vào AutoCAD để thay cho AutoLisp AutoCAD 2000 phiên đời tháng 3/1999 Sau Autodesk tạm dừng phát triển Visual LISP thời gian để tập trung phát triển VBA ObjectARX Có thể khẳng định AutoLISP thực hố LISP [6] Ta kể đến vài phiên tiêu biểu sau: -Phiên 2.5 tích hợp vào AutoCAD R7 với số tính tương tác với đối tượng vẽ - Phiên 2.6 tích hợp vào AutoCAD R7 với chức 3D số hàm getcorner,getword initget -Phiên tích hợp vào AutoCAD R12 giới thiệu số hàm GUI ngôn ngữ điều khiển hộp thoại DCL(Dialog Control Language) -Phiên Visual LISPTM giới thiệu AutoCAD R14 môi trường phát triển AutoLisp độc lập trực quan với hỗ trợ công cụ gỡ rối - Visual LISPTM thức tích hợp vào AutoCAD2000 từ đến bổ sung nhiều tính AutoLisp ngơn ngữ lập trình mạnh , bạn cần tốn thời gian để học làm chủ c 2.1 Vài nét sơ lược LISP LISP_List Processing chuẩn ngôn ngữ lập trình John McCarthay phát triển vào năm 1956 dự án nghiên cứu Artificial Intellegence Phiên LISP 1.5 giới thiệu vào đầu thập niên 60 phát triển với nhiều biến thể BBNLisp, Interlisp, MacLisp, NIL(New Implementation of Lisp), Franz Lisp… Vào thập niên 70 đầu năm 80 cú máy tính chuyên dụng Lisp Machines thiết kế riêng để chạy chương trình LISP Đến năm 1981, để chuẩn hóa LISP nhà lập trình tập hợp chuẩn hóa thành Common LISP Năm 1984 Golden Common Lisp trở thành chuẩn thức cho máy tính IBM sau phát triển thành XLISP- tiền thân AutoLISP ngày ề Đ án Ki nh    3.9.4 Các hàm điều khiển hộp thoại a LOAD_DIALOG  Hàm load_dialog dùng để mở file DCL chuyển cỏc dũng mô tả hộp thoại tile hộp thoại vào nhớ  Cú pháp: (load_dialog DCLFILE)  Giá trị trả bằng:  -1 không tải file DCL nhớ  số nguyên lớn tải thành công Giá trị dùng để truy xuất đến mã lệnh DCL b NEW_DIALOG  Hàm new_dialog dùng để khởi tạo hộp thoại có mơ tả mã DCL tải vào nhớ  Cú pháp: (new_dialog DLGNAME DCL_ID[ACTION_EXPRESSION [SCREEN_PT]])  DLGNAME: tên hộp thoại  DCL_ID: số nguyên hàm load_dialog trả  ACTION_EXPRESSION: chuỗi chứa biểu thức AutoLISP  SCREEN_PT: vị trí xuất hộp thoại hình c START_DIALOG  Hàm start_dialog làm xuất hộp thoại tạo hàm new_dialog bắt đầu khởi động hộp thoại làm việc  Cú pháp: (start_dialog)  Giá trị trả hàm tuỳ thuộc vào kết hàm done_dialog gọi d DONE_DIALOG  Hàm done_dialog dùng để đóng hộp thoại  Cú pháp: (done_dialog [status])  Tham số status số nguyên Khi hàm done_dialog gọi, số nguyên truyền cho hàm start_dialog e UNLOAD_DIALOG  Hàm unload_dialog dùng để loại bỏ mã lệnh file DCL khơng cịn sử dụng nhớ  Cú pháp: (unload_dialog DCL_ID) 3.9.5 Các hàm điều khiển tile a SET_TILE  Hàm set_tile dùng để gán giá trị ban đầu cho tile thay đổi giá trị thời gian chạy chương trình  Cú pháp: (set_tile key value) tế  c  ố qu  Key = “key name”: tên tile dùng để truy xuất chạy chương trình Label = “label text”: tiêu đề tile List = “list1\n list2”: chuỗi chứa dấu nhỏy kộp Mnemonic = “d”: xác định ký tự sử dụng làm phím nóng Multiselect = true Value = “1”: kiểu chuỗi, xác định giá trị ban đầu tile Width = 8: xác định chiều rộng tile tế  ề Đ án Ki nh tế ố qu tế 3.9.6 Một số ý thiết kế hộp thoại  Các phím nóng: chức quan trọng mà người dùng thường dùng Mỗi tile có phím nóng riờng khụng trùng với phím nóng tile khác  Các tab stop: chức cho phép người sử dụng di chuyển qua tile cách dựng phớm tab Con trỏ dừng lại active tile thuộc tính is_tab_stop chúng phải true Thông thường, thứ tự di chuyển qua tile giống thứ tự mô tả tile file DCL, ta thay đổi thứ tự  Kiểm tra lỗi: việc cần thiết hộp thoại có chứa edit_box  Sắp xếp tile: o Các tile liên quan với nên xếp gần o Các tile quan trọng nên đặt vị trí bật, dễ nhìn thấy o Nên sử dụng column cluster thay cho row cluster o Cỏc dòng chữ xuất hộp thoại nên định dạng giống cỏc dũng chữ hộp thoại AutoCAD  Đóng hộp thoại: hộp thoại không nên thực chức ảnh hưởng đến vẽ trước đóng lại  Chức trợ giúp Help: hộp thoại phức tạp, ta nên cung cấp nút help để hướng dẫn cách dùng c  Key: khoá tile cần gán giá trị  Value : giá trị gán cho key b ACTION_TILE  Hàm action_tile dùng để gán cho tile biểu thức AutoLISP  Cú pháp: (action_tile key action_expression)  Key: khoá tile cần gán biểu thức  Action_expression: biểu thức AutoLISP c MODE_TILE  Hàm mode_tile dùng để thay đổi trạng thái tile chạy chương trình  Cú pháp: (mode_tile key status)  Key: khoá tile cần thay đổi trạng thái  Status: trạng thái gán cho tile d GET_TILE  Hàm get_tile dùng để lấy giá trị hành tile cú khoỏ chứa tham số key  Cú pháp: (get_tile key ) ề Đ án Ki nh tế 3.10 Các hàm xử lý hình đồ hoạ thiết bị nhập ố qu Mode Mode xác định chức hoạt động hàm redraw, cú cỏc giá trị: Chức Hiện đối tượng lên hình Khơng đối tượn lên hình Làm bật đối tượng đường nét đứt ( đối tượng hình) Đưa đối tượng trở trạng thái bình thường tế  c 3.10.1 Màn hình đồ họa a) TEXTSCR  Hàm textscr dùng để chuyển từ hình đồ họa sang hình văn  Hàm ln trả nil, thường dùng để làm biểu thức điều kiện cho hàm if, cond, while  Cú pháp: (textscr) b) TEXTPAGE  Hàm textpage tương tự hàm textscr  Cú pháp: (textpage) c) GRAPHSCR  Hàm grỏphcr dựng để chuyển từ hình văn sang hình đồ họa  Cú pháp: (Graphscr) d) REDRAW  Hàm redraw dùng để làm bật vẽ lại đối tượng chọn hình  Hàm redraw khơng tham số dùng để xúa cỏc dấu blipmode vector tạm hình  Cú pháp: (redraw [ename][mode])  Ename mã đối tượng chọn ề Đ án Ki nh tế 3.10.2 Gọi hiển thị menu ố qu Menu ***MENUGROUP Tên menu group ***BUTTONSn Các button menu Đây menu xuất ấn nút thiết bị trỏ (không phải chuột) ***AUXn Các menu xuất nhấn nút chuột ***POPn Các pull-down shortcut menu ***TOOLBARS Các công cụ ***IMAGE Các menu hình ảnh ***SCREEN Menu hình ***TABLETn Các tablet menu sử dụng cho thiết bị nhập đồ họa ***HELPSTRINGS Chuỗi xuất trạng thái mục pulldown shortcut menu chọn trỏ chuột kéo ngang qua nút lệnh toolbar ***ACCELERATORS Các phím tắt a) MENUCMD  Hàm menucmd dùng để làm xuất menu hình Hàm trả nil Nếu menu muốn gọi đến khơng có menu file, hàm trả nil mà không thông báo lỗi  Cú pháp: (menucmd string)  string có dạng: “menu_area = value” tế Nhãn c Hệ thống menu AutoCAD bao gồm nhiều menu khác Các menu mô tả menu file Mỗi menu file chia thành nhiều đoạn ( section) tương ứng với menu thành phần hệ thống Mỗi section bắt đầu nhón cú dạng ***section_name ề Đ án Ki nh tế P0 – P16 Các pull-down menu từ đến 16 I Các menu hình ảnh S Các menu hình T1 – T4 Các tablet menu A1 – A4 Các auxiliary menu từ đến M Các biểu thức chuỗi diesel Gmenugro Xác định tên menu group up.nameta g b) MENUGROUP  Hàm menu group dùng để kiểm tra menu group tải hay chưa  Cú pháp: (menugroup groupname)  groupname chứa tên menu group cần kiểm tra Nếu menu group tải, kết trả tên Ngược lại trả nil 3.10.3 Các hàm truy xuất hình đồ họa thiết bị nhập a) GRCLEAR  Hàm grclear dùng để che đối tượng khung nhìn hành  Ta sử dụng hàm redraw mode để thay  Cú pháp: (grclear) b) GRDRAW  Hàm grdraw dùng để vẽ vector qua điểm hình hệ trục UCS hành  Cú pháp:(grdraw from to color [highlight])  Tham số from to toạ độ điểm gốc điểm vector  Tham số color, highlight xác định màu sắc dạng đường vector ■ Vector đối tượng vẽ, ta xố bỏ, chép di chuyển có lệnh vẽ lại redraw, zoom…sẽ xoá vector ■ Tham số color chứa số nguyên xác định màu vector, tương tự màu lớp vẽ ■ Nếu khơng có highlight highlight = vector vẽ dạng đường liên tục ■ Nếu chiều dài vector vượt kích thước khung nhìn hành bị cắt xén đầu cho vừa khít hình c) GRVECS  Hàm grvecs dùng để vẽ lại nhiều vector hình cựng lỳc  Cú pháp: (grvecs vlist [trans])  Tham số vlist danh sách chứa mã màu vector toạ độ điểm vector có giá trị từ đến 255 tế Các button menu từ đến c B1 – B4 ố qu menu_are Menu section a ề Đ án Ki nh tế  Tham số trans ma trận biến hình, cho phép thay đổi vị trí tỉ lệ điểm danh sách vlist d) GRTEXT  Hàm grtext dùng để viết lên chuỗi lờn dũng trạng thái lên menu hình  Cú pháp: (grtext [box text [highlight]])  Box: -1 -2 ghi chuỗi lên vị trí mode coordinate dịng trạng thái Nếu số nguyên ghi chuỗi lên menu hình  Text: chuỗi văn ghi lờn dũng trạng thái menu hình  Highlight: dùng ghi chuỗi lên menu hình, có hai giá trị (bỏ việc chiếu sáng) 1(chiếu sáng) ố qu c tế ề Đ án Ki nh tế Chương trình minh hoạ ố qu Hình Chi tiết Gujong  Các bước để vẽ tay  Vẽ đường trịn lớn bên ngồi (dùng lệnh circle)  Bắt dớnh tõm đường tròn vừa vẽ, vẽ đường trũn cú kích thước nhỏ (dùng lệnh Object Snap, circle)  Tạo layer phụ tên centre có kiểu đường center, màu xanh  Bắt dớnh tõm đường tròn vẽ, chọn layer hành centre vẽ đường tròn nằm hai đường tròn vừa vẽ (dùng lệnh Object Snap, circle)  Vẽ đoạn thẳng nằm đường trịn có layer centre (dùng lệnh Object Snap, line)  Chọn layer chính, sau bắt dính giao điểm đoạn thẳng vừa vẽ với đường trịn có layer la centre làm tâm lỗ trịn nhỏ, vẽ đường trịn nhỏ (kích thước phải nhỏ khoảng cách hai đường tròn màu trắng, dùng lệnh Object Snap, circle)  Dùng lệnh array để vẽ lỗ trịn nhỏ cịn lại Qua bước mơ tả trên, ta phải thực nhiều thao tác vẽ hồn chỉnh chi tiết này, điều gây thời gian cho người thiết kế Do đó, em xây dựng lên hàm với tên holes.lsp để vẽ chi tiết câu lệnh đơn giản tế 4.1 Lỗ Gujong  Mô tả cụ thể: Lỗ Gujong dùng thiết kế chi tiết máy, chi tiết nhỏ tổng thể chi tiết máy hoàn chỉnh Lỗ Gujong gồm bốn chi tiết Hình dạng sau: c Để minh họa cho lợi ích việc sử dụng hàm tự tạo AutoLISP thiết kế vẽ kỹ thuật AutoCAD, em xây dựng lên hai hàm tự tạo để vẽ chi tiết thường dùng thiết kế chi tiết máy thiết kế cầu đường Đó là:  Lỗ Gujong có tác dụng đệm số chi tiết mỏy Nú làm cao su, thép hay vật liệu tổng hợp khác  Dầm chữ I bê tông dự ứng lực trước cầu đường, bốn lỗ dùng để căng cỏp thộp dự ứng lực (hay dùng dầm cầu) ề Đ án Ki nh tế ố qu c tế (defun c:holes(/ bm cm sm layer C1 R1 D C num hole) ; khởi tạo giá trị cho biến (if (not (= (type R1) 'real)) (setq R1 100.0) ) (if (not (= (type D) 'real)) (setq D 20.0) ) (if (not (= (type num) 'int)) (setq num 10) ) (if (not (= (type hole) 'real)) (setq hole 10.0) ) (setq C1 (getpoint "\n nhap toa tam"));chọn vị trí vẽ ;gọi hộp thoại thiết lập biến hệ thống,khởi tạo môi trường vẽ (setq dcl (load_dialog "holes.dcl")) (if (not (new_dialog "holes" dcl)) (exit) ) (setq bm (getvar "blipmode") cm (getvar "cmdecho") sm (getvar "osmode") layer (getvar "clayer") ) (setvar "blipmode" 0) (setvar "cmdecho" 0) (set_tile "Bkinh" (rtos R1)) (set_tile "doday" (rtos D)) (set_tile "numholes" (itoa num)) (set_tile "holedia" (rtos hole)) ;định nghĩa hàm gán giá trị biến cho hộp thoại (defun setall1() (setq R1 (atof (get_tile "Bkinh")) D (atof (get_tile "doday")) num (atoi (get_tile "numholes")) hole (atof (get_tile "holedia")) ) ) (action_tile "cancel" "(done_dialog) (exit)") (action_tile "accept" "(setall1) (done_dialog)") (start_dialog) (unload_dialog dcl) ; hàm đổi độ sang radian (defun Degrees2Radians(numberOfDegrees) (* pi (/ numberOfDegrees 180.0)) ) (if (> D hole ) ; kiểm tra thông số nhập vào ề Đ án Ki nh tế (progn ;vẽ hai đường trịn (setq C (- (/ R1 2) (/ D 2))) (command "circle" C1 (/ R1 2)) (command "circle" C1 (- (/ R1 2) D)) (setvar "osmode" 0) (setq (/ 180 num)) ;xác định tọa độ điểm để vẽ lỗ tròn nhỏ đoạn thẳng nằm đường tròn phụ (setq pt1 (polar C1 (Degrees2Radians ra) C ) pt2 (polar pt1 (Degrees2Radians (+ 180 ra)) hole) pt3 (polar pt2 (Degrees2Radians ra) (* hole 2)) ) ; vẽ lỗ tròn nhỏ đoạn thẳng nằm đường tròn phụ (command "circle" pt1 (/ hole 2) "array" "L" "" "P" C1 num "360" "Y" "layer" "m" "centre" "c" "green" "" "l" "center" "" "" "circle" C1 C "line" pt2 pt3 "" "array" "L" "" "P" C1 num "360" "Y" ) ) (alert "Duong kinh lo vuot qua lon!") ) ;sau vẽ xong trở mơi trường ban đầu (setvar "blipmode" bm) (setvar "cmdecho" cm) (setvar "osmode" sm) (setvar "clayer" layer) ) Sau biên dịch kiểm tra lỗi, ta lưu file holes.lsp file holes.dcl (là hàm tạo hộp thoại ) vào thư mục support AutoCAD Cuối cùng, để vẽ chi tiết ta làm sau:  Gõ lệnh appload (hoặc vào tool/load application) chọn file holes.lsp  Gõ holes cửa sổ command autoCAD, điền thông số chi tiết, nhấn nút OK ố qu c tế ề Đ án Ki nh tế ố qu Hình3 Hộp thoại vẽ chi tiết Gujong Kết ta có chi tiết kỹ thuật hình c Hình Chi tiết dầm chữ I  Các bước để vẽ tay: chi tiết có tính đối xứng nên ta cần vẽ nửa chi tiết sau dùng lệnh để lấy đối xứng vẽ chi tiết lại  Dùng lệnh line để vẽ nửa thân chữ I dùng lệnh Rec để vẽ hai hình chữ nhật giao sau dùng lệnh trim để cắt xén  Dùng lệnh mirror để vẽ chi tiết lại  Vẽ lỗ tròn  Dùng lệnh array để vẽ nốt lỗ tròn lại  Tương tự chi tiết gujong, ta xây dựng hàm chu_i.lsp hàm chu_i.dcl để vẽ chi tiết Sau lưu hai file vào thư mục support AutoCAD (defun c:chu_i(/ bm cm sm rong dai day cao dkinh kcach P1 P2 P3 P4 P5) ;khởi tạo giá trị ban đầu (if (not (= (type rong) 'real)) (setq rong 15.0) ) (if (not (= (type cao) 'real)) (setq cao 30.0) ) (if (not (= (type dkinh) 'real)) (setq dkinh 5.0) ) (if (not (= (type kcach) 'real)) (setq kcach 18.0) ) (if (not (= (type dai) 'real)) (setq dai 40.0) ) (if (not (= (type day) 'real)) tế 4.2 Dầm chữ I  Mô tả cụ thể: chi tiết dầm chữ I dùng vẽ thiết kế cầu đường, gồm hai chi tiết tạo thành gồm đoạn thẳng hình trịn nhỏ ề Đ án Ki tế ố qu c tế ) (setq P1 (getpoint "\n nhap toa tam"));vị trí vẽ chi tiết ;thiết lập hộp thoại môi trường vẽ (setq dcl (load_dialog "chu_i.dcl")) (if (not (new_dialog "chu_i" dcl)) (exit) ) (setq bm (getvar "blipmode") cm (getvar "cmdecho") sm (getvar "osmode") ) (setvar "blipmode" 0) (setvar "cmdecho" 0) (set_tile "chieurong" (rtos rong)) (set_tile "chieucao" (rtos cao)) (set_tile "duongkinh" (rtos dkinh)) (set_tile "khoangcach" (rtos kcach)) (set_tile "chieudai" (rtos dai)) (set_tile "doday" (rtos day)) ;gán giá trị biến cho hộp thoại (defun setall() (setq rong (atof (get_tile "chieurong")) cao (atof (get_tile "chieucao")) dkinh (atof (get_tile "duongkinh")) kcach (atof (get_tile "khoangcach")) dai (atof (get_tile "chieudai")) day (atof (get_tile "doday")) ) ) (action_tile "cancel" "(done_dialog) (exit)") (action_tile "accept" "(setall) (done_dialog)") (start_dialog) (unload_dialog dcl) (if (>= day cao)(alert "\n day phai nho hon chieu cao") (progn (if (>= dkinh rong) (alert "\n Dkinh phai nho hon rong dau chu I") (progn (if (>= dkinh day) (alert "\n Dkinh phai nho hon day") (progn (if (>= kcach cao)(alert "\n kcach phai nho hon chieu cao") ( progn ;xác định tọa độ điểm để vẽ (setq P2 (polar P1 (/ dai 2)) P3 (polar P2 (- (/ pi 2)) (/ (- cao day) 2)) P4 (polar P3 rong) P5 (polar P4 (/ pi 2) (/ cao 2)) );end of setq nh (setq day 10.0) ề Đ án Ki nh tế ;vẽ chi tiết (command "redraw" "Pline" P1 P2 P3 P4 P5 "" "select" "L" "" "mirror" "P" "" P1 (polar P1 (/ pi 2) 1) "N" "mirror" "P" "L" "" P5 (polar P5 1) "N" "circle" (list (- (car P5) (/ rong 2)) (- (cadr P5) (/ kcach 2))) "d" kinh "array" "L" "" "R" 2 kcach (-(+ rong dai)) ) );end of progn );end of if );end progn );end of if );end ptogn );end of if );end progn );end of if ;thoát khỏi môi trường vẽ, trở môi trường vẽ ban đầu (setvar "blipmode" bm) (setvar "cmdecho" cm) (setvar "osmode" sm) )  Sau biên dịch kiểm tra lỗi, ta lưu file chu_i.lsp file chu_i.dcl (là hàm tạo hộp thoại ) vào thư mục support AutoCAD Cuối cùng, để vẽ chi tiết ta làm sau:  Gõ lệnh appload (hoặc vào tools/load application) chọn file chu_i.lsp  Gõ chu_i cửa sổ command autoCAD, nhập thông số chi tiết, ấn OK c tế Kết ta có chi tiết hình ố qu Hình 5.Hộp thoại vẽ chi tiết dầm chữ I ề Đ án Ki nh tế ố qu c tế ề Đ án Ki nh tế Kết luận ố qu tế Hải Phũng, ngày……thỏng năm 2007 Sinh viên Lưu Thị Thu Trang c Autolisp ngơn ngữ lập trình đơn giản, dễ tiếp cận hiệu cơng việc đem lại đáng kể Những đoạn chương trình Autolisp đơn giản giảm thời gian đáng kể việc hồn thiện vẽ Một chương trình Autolisp thành cơng khơng phải chương trình có qui mơ lớn đến vài chục ngàn dịng lệnh mà chương hiệu quả, giải yêu cầu người thiết kế tiết kiệm thời gian thực công việc Hiện nay, AutoLISP không sử dụng nhiều đời Visual LISP khắc phục nhược điểm AutoLISP AutoLISP tích hợp Realease AutoCAD nhằm giúp cho người dùng lần tiếp xúc với AutoLISP có kiến thức ngơn ngữ Trên sở tìm hiểu nghiên cứu kỹ AutoLISP, người dùng AutoCAD học sử dụng thành thạo Visual LISP, đặc biệt người khơng chun lập trình Đồ án tìm hiểu nét ngơn ngữ AutoLISP lập trình AutoCAD hàm AutoLISP, cách xây dựng hàm tự tạo, biến, kiểu liệu Đồ án xây dựng hai hàm vẽ hai chi tiết dùng vẽ thiết kế chi tiết máy xây dựng cầu đường chi tiết Gujong dầm chữ I Trong thời gian tiếp theo, đồ án tiếp tục tìm hiểu sở liệu cách truy nhập thực thể AutoCAD để từ xây dựng lên chương trình có sử dụng sở liệu vừa giúp người dùng dễ sử dụng vừa giúp người lập trình dễ dàng chỉnh sửa có thay đổi ề Đ án Ki nh tế Các tài liệu tham khảo Autodesk, Customization Guide 2004 (tài liệu điện tử) TS.Nguyễn Hữu Lộc, Nguyễn Thanh Trung, Lập trình thiết kế với AutoLISP Visual LISP, NBX TP.Hồ Chí Minh, 2003 Giảng viên Trần Anh Bình, Lập trình AutoCAD_ giáo trình điện tử KS.Trần Việt An KS.Lữ Đức Hảo, Hướng dẫn sử dụng Visual LISP 2007 AutoLISP 2007, NXB Giao Thông Vận Tải, 2006 ố qu c tế Một số trang Web tham khảo www.cadviet.com www.forum.wru.edu.vn http://en.wikipedia.org

Ngày đăng: 22/11/2023, 15:15

Xem thêm:

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

TÀI LIỆU LIÊN QUAN

w