Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 54 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
54
Dung lượng
661,74 KB
Nội dung
Tìm hiểu AutoLISP ứng dụng autoCAD BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC DÂN LẬP HẢI PHỊNG ĐỒ Á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 Khoa Công Nghệ Thông Tin_Trường đại học dân lập Hải Phòng LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Tìm hiểu AutoLISP ứng dụng autoCAD Lời cảm ơn 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 ln độ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 độ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, 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 Khoa Công Nghệ Thông Tin_Trường đại học dân lập Hải Phòng LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Tìm hiểu AutoLISP ứng dụng autoCAD Phần 1: Giới thiệu Tên mục đích đề tài • 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 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 Hoà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 Khoa Công Nghệ Thông Tin_Trường đại học dân lập Hải Phòng LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Tìm hiểu AutoLISP ứng dụng autoCAD 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 tố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 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 q 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 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 yêu thích câu lệnh đơn giản lại sử dụng sẵn 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âu lệnh AutoCAD cho người sử dụng Ví dụ vẽ cầu thang cuốn, Khoa Công Nghệ Thông Tin_Trường đại học dân lập Hải Phòng LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Tìm hiểu AutoLISP ứng dụng autoCAD 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ú pháp thủ tục chặt chẽ ngơn ngữ LISP Tuy nhiên, bổ sung thêm 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 Khoa Cơng Nghệ Thơng Tin_Trường đại học dân lập Hải Phịng LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Tìm hiểu AutoLISP ứng dụng autoCAD Khái quát lập trình AutoCAD 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 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á 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 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, có thiết lập đối tượng rộng lớn bao gồm thực thể, liệu, 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 Khoa Công Nghệ Thông Tin_Trường đại học dân lập Hải Phòng LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Tìm hiểu AutoLISP ứng dụng autoCAD 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 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âu lệnh để thực xác giống 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 Khoa Cơng Nghệ Thơng Tin_Trường đại học dân lập Hải Phòng LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Tìm hiểu AutoLISP ứng dụng autoCAD Giới thiệu chung 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 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 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 Khoa Công Nghệ Thông Tin_Trường đại học dân lập Hải Phòng LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Tìm hiểu AutoLISP ứng dụng autoCAD AutoLisp ngơn ngữ lập trình mạnh , bạn cần tốn thời gian để học làm chủ 2.3 Ưu nhược điểm AutoLisp • Ưu điểm ¾ Làm việc tốt dễ dàng với điểm yếu tố hình học ¾ Rất mềm dẻo , khơng khắt khe ¾ Khơng cần trình dịch , lập trình thực lệnh ¾ Chạy hệ điều hành với file Lisp ¾ Quản lý đối tượng với List-kiểu liệu thích hợp quản lý tọa độ điểm ¾ Mã nguồn mở cộng đồng phát triển Autolisp rộng ln ã Nhc im ắ Hỡnh thc khụng p ¾ Khơng có trình biên dịch ¾ Ngơn ngữ trung gian nên thực thi chậm ¾ Hầu khơng thể tương tác với hệ thống Có thể khẳng định AutoLisp ngôn ngữ dễ tiếp cận so với số ngơn ngữ lập trình khác ngơn ngữ lập trình theo kịch Tuy nhiên để tiếp cận với AutoLisp yêu cầu người học phải có kiếm thức lập trình nắm vững AutoCAD, đồng thời phải có kiến thức định hình học Chương trình AutoLisp tổ hợp kịch định trước nắm điều khiển AutoCAD thực thi theo suy nghĩ người thiết kế Đa số người muốn học Autolisp để giải toán lĩnh vực chuyên mơn Để tiếp cận ứng dụng tốt Autolisp cơng việc u cầu người lập trình phải có liên hệ với nhu cầu cơng việc thực tế, điều phụ thuộc lớn vào sở trường người Bạn thực vài thao tác để hồn thiện vẽ bạn nhận lặp lại liên tục Một ý tưởng nảy bạn cần thực đoạn chương trình Autolisp để tự động thực thao tác chương trình Autolisp hồn thành Khoa Công Nghệ Thông Tin_Trường đại học dân lập Hải Phòng LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Tìm hiểu AutoLISP ứng dụng autoCAD 3.Ngơn ngữ lập trình AutoLISP 3.1 Căn AutoLisp 3.1.1 Xây dựng biểu thức AutoLISP Khi ta nhập dòng text dịng nhắc lệnh AutoCAD so sánh dịng text với danh sách lệnh Nếu tương ứng với lệnh AutoCAD thi hành Khi code AutoLISP chuyển vào AutoCAD AutoCAD chuyển code đến biên dịch AutoLISP Danh sách (List) cấu trúc AutoLISP Danh sách tập hợp phần tử chứa dấu ngoặc đơn cách khoảng trắng Có hai loại danh sách : ¾ Biểu thức ¾ Danh sách liệu Biểu thức thành phần chương trình AutoLISP Phần tử biểu thức hàm Hàm AutoLISP định giá trị trả kết Một biểu thức AutoLISP đơn giản giống biểu thức toán học.Sự khác chủ yếu chúng la thứ tự phần tử phải có dấu () AutoLISP Biểu thức toán học Biểu thức AutoLISP hàm hàm + = Tham số Command: ( + ) Tham số kquả Giá trị trả : Khoa Cơng Nghệ Thơng Tin_Trường đại học dân lập Hải Phịng 10 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Tìm hiểu AutoLISP ứng dụng autoCAD • 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) ¾ 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: khố 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ó khố chứa tham số key • Cú pháp: (get_tile key ) 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: Khoa Công Nghệ Thông Tin_Trường đại học dân lập Hải Phòng 40 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Tìm hiểu AutoLISP ứng dụng autoCAD Các tile liên quan với nên xếp gần Các tile quan trọng nên đặt vị trí bật, dễ nhìn thấy Nên sử dụng column cluster thay cho row cluster Các dòng chữ xuất hộp thoại nên định dạng giống 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 o o o o Khoa Công Nghệ Thông Tin_Trường đại học dân lập Hải Phòng 41 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Tìm hiểu AutoLISP ứng dụng autoCAD 3.10 Các hàm xử lý hình đồ hoạ thiết bị nhập 3.10.1 Màn hình đồ họa a) TEXTSCR z Hàm textscr dùng để chuyển từ hình đồ họa sang hình văn z 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 z Cú pháp: (textscr) b) TEXTPAGE z Hàm textpage tương tự hàm textscr z Cú pháp: (textpage) c) GRAPHSCR z Hàm gráphcr dùng để chuyển từ hình văn sang hình đồ họa z Cú pháp: (Graphscr) d) REDRAW z Hàm redraw dùng để làm bật vẽ lại đối tượng chọn hình z Hàm redraw khơng tham số dùng để xóa dấu blipmode vector tạm hình z Cú pháp: (redraw [ename][mode]) ¾ Ename mã đối tượng chọn ¾ Mode xác định chức hoạt động hàm redraw, có giá trị: Mode 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 Khoa Cơng Nghệ Thơng Tin_Trường đại học dân lập Hải Phịng 42 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Tìm hiểu AutoLISP ứng dụng autoCAD 3.10.2 Gọi hiển thị menu 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 Nhãn 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 z Hàm menucmd dùng để làm xuất menu hình Hàm ln 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 z Cú pháp: (menucmd string) ¾ string có dạng: “menu_area = value” Khoa Công Nghệ Thông Tin_Trường đại học dân lập Hải Phòng 43 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Tìm hiểu AutoLISP ứng dụng autoCAD menu_are Menu section a B1 – B4 Các button menu từ đến 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 z Hàm menu group dùng để kiểm tra menu group tải hay chưa z 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 z Hàm grclear dùng để che đối tượng khung nhìn hành z Ta sử dụng hàm redraw mode để thay z Cú pháp: (grclear) b) GRDRAW z Hàm grdraw dùng để vẽ vector qua điểm hình hệ trục UCS hành z 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ẽ xố 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 q 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 lúc • Cú pháp: (grvecs vlist [trans]) Khoa Công Nghệ Thông Tin_Trường đại học dân lập Hải Phòng 44 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Tìm hiểu AutoLISP ứng dụng autoCAD ¾ Tham số vlist danh sách chứa mã màu vector toạ độ điểm vector có giá trị từ đến 255 ¾ 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ố ngun 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) Khoa Công Nghệ Thông Tin_Trường đại học dân lập Hải Phòng 45 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Tìm hiểu AutoLISP ứng dụng autoCAD Chương trình minh hoạ Để 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) 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: Hình Chi tiết Gujong z 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ẽ hoàn chỉnh chi tiết này, điều gây thời gian cho người thiết kế Do đó, Khoa Công Nghệ Thông Tin_Trường đại học dân lập Hải Phòng 46 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Tìm hiểu AutoLISP ứng dụng autoCAD 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 (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 Khoa Công Nghệ Thông Tin_Trường đại học dân lập Hải Phòng 47 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Tìm hiểu AutoLISP ứng dụng autoCAD (defun Degrees2Radians(numberOfDegrees) (* pi (/ numberOfDegrees 180.0)) ) (if (> D hole ) ; kiểm tra thông số nhập vào (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 Khoa Công Nghệ Thông Tin_Trường đại học dân lập Hải Phòng 48 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Tìm hiểu AutoLISP ứng dụng autoCAD Hình3 Hộp thoại vẽ chi tiết Gujong Kết ta có chi tiết kỹ thuật hình 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ỏ Hình Chi tiết dầm chữ I z 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 cịn 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 cịn lại ¾ Vẽ lỗ trịn ¾ Dùng lệnh array để vẽ nốt lỗ trịn cị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)) Khoa Công Nghệ Thông Tin_Trường đại học dân lập Hải Phòng 49 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Tìm hiểu AutoLISP ứng dụng autoCAD (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)) (setq day 10.0) ) (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)") Khoa Cơng Nghệ Thơng Tin_Trường đại học dân lập Hải Phịng 50 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Tìm hiểu AutoLISP ứng dụng autoCAD (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 ;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 Khoa Cơng Nghệ Thơng Tin_Trường đại học dân lập Hải Phịng 51 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Tìm hiểu AutoLISP ứng dụng autoCAD Hình 5.Hộp thoại vẽ chi tiết dầm chữ I Kết ta có chi tiết hình Khoa Cơng Nghệ Thơng Tin_Trường đại học dân lập Hải Phịng 52 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Tìm hiểu AutoLISP ứng dụng autoCAD Kết luận 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 Hải Phịng, ngày……tháng năm 2007 Sinh viên Lưu Thị Thu Trang Khoa Công Nghệ Thông Tin_Trường đại học dân lập Hải Phòng 53 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Tìm hiểu AutoLISP ứng dụng autoCAD 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 Một số trang Web tham khảo www.cadviet.com www.forum.wru.edu.vn http://en.wikipedia.org Khoa Công Nghệ Thông Tin_Trường đại học dân lập Hải Phòng 54 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com ... luanvanchat@agmail.com Tìm hiểu AutoLISP ứng dụng autoCAD Phần 1: Giới thiệu Tên mục đích đề tài • 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... luanvanchat@agmail.com Tìm hiểu AutoLISP ứng dụng autoCAD Khái quát lập trình AutoCAD 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... luanvanchat@agmail.com Tìm hiểu AutoLISP ứng dụng autoCAD 3.Ngơn ngữ lập trình AutoLISP 3.1 Căn AutoLisp 3.1.1 Xây dựng biểu thức AutoLISP Khi ta nhập dịng text dịng nhắc lệnh AutoCAD so sánh dòng text