1 Chương 1. Mở ñầu TS. Trần ðức Tăng Khoa Hàng không-Vũ trụ, Học viện KTQS ðT: 0973 991486; Email: tranductang@yahoo.com 2 © 2010 Dr. Tran Duc Tang – Military Technical Academy 1.1 Giới thiệu Hiện nay các phần mềm thiết kế có rất nhiều về số lượng nhưng có thể chia thành hai loại chính – Các phần mềm thương mại do các công ty tin học chuyên nghiệp thực hiện, chúng có quy mô lớn, giải quyết những vấn ñề chính, phổ biến; ví dụ: AutoCAD, SolidWorks, Inventor,…. – Các phần mềm do các công ty tư vấn thiết kế tự phát triển, hầu hết là những phần mềm có quy mô không lớn và tập trung giải quyết các bài toán cục bộ, chuyên biệt trong lĩnh vực chuyên ngành Tuy nhiên các phần mềm này vẫn còn những khiếm khuyết bởi sự ña dạng của thực tế thiết kế. Chính vì vậy việc xây dựng thêm những chương trình mới, như là một công cụ bổ sung, nhằm khắc phục những khiếm khuyết, những vấn ñề phát sinh trong quá trình thiết kế là cần thiết và có tính hiệu quả cao 2 3 © 2010 Dr. Tran Duc Tang – Military Technical Academy AutoCAD là một trong những phần mềm CAD ñược sử dụng rộng rãi trên thế giới. Một trong những lý do chính khiến AutoCAD ñược sử dụng phổ biến là tính linh hoạt của nó. Với cấu trúc mở, AutoCAD có thể ñược cá biệt hóa ñể ñáp ứng phần lớn các yêu cầu của người sử dụng, như cấu hình lại các menu, các thanh công cụ (toolbar), thêm các lệnh chuyên dụng, hay phát triển các chương trình bổ sung (add-on) có thể chạy trong AutoCAD. Việc tùy biến CAD giúp tiết kiệm thời gian, tăng năng suất và chất lượng thiết kế. Ta có thể tự ñộng hóa các công việc buồn tẻ, loại bỏ việc gõ phím lặp lại nhiều lần. 4 © 2010 Dr. Tran Duc Tang – Military Technical Academy Khi nào thì nên tùy biến CAD? – Không có các quy tắc rõ ràng, nhưng nhìn chung bất cứ khi nào nó giúp tiết kiệm thời gian hay nâng cao chất lượng công việc thiết kế của bạn. – Nếu bạn phải thực hiện một công việc duy nhất nhưng cách thức thực hiện khó khăn cho một dự án cụ thể . Sẽ không hiệu quả ñể ñầu tư nhiều thời gian viết một chương trình ñể tự ñộng hóa công việc trên nhưng chỉ sử dụng một lần. Ngược lại, nếu nó có thể sử dụng lại nhiều lần, việc tự ñộng hóa sẽ tiết kiệm rất nhiều thời gian. – Một lợi ích của việc tùy biến CAD là sẽ cải thiện các kỹ năng kỹ thuật của bạn. Vì bạn cố gắng lập trình cho CAD, bạn sẽ có hiểu biết sâu hơn về phần mềm và các vấn ñề kỹ thuật cụ thể mà bạn ñang giải quyết. 3 5 © 2010 Dr. Tran Duc Tang – Military Technical Academy Ví dụ: khi lập các phiếu công nghệ các kỹ sư phải mất nhiều thời gian ñể vẽ các sơ ñồ nguyên công, trong ñó cần thể hiện hình dạng của phôi và chi tiết gia công, các bề mặt gia công, mặt chuẩn, các dụng cụ gá kẹp và dụng cụ cắt, … – ðây là việc làm buồn tẻ và thường phải lặp ñi lặp lại nhiều lần. – Nếu tạo ra trước trong CAD một thư viện các dụng cụ cắt và ñồ gá và khi cần có thể chọn và chèn chúng rất nhanh vào sơ ñồ nguyên công 6 © 2010 Dr. Tran Duc Tang – Military Technical Academy Hộp thoại chọn và chèn dụng cụ vào phiếu nguyên công 4 7 © 2010 Dr. Tran Duc Tang – Military Technical Academy Hộp thoại phục vụ tra và ñiền các thông số công nghệ 8 © 2010 Dr. Tran Duc Tang – Military Technical Academy Bổ sung tính năng mới cho AutoCAD trong thiết kế cầu ñường 5 9 © 2010 Dr. Tran Duc Tang – Military Technical Academy 1.2 Lập trình trên ứng dụng nền Khi người dùng xây dựng những chương trình của mình dựa trên những ứng dụng ñược thiết kế theo cấu trúc mở, người dùng sẽ tận dụng ñược những khả năng sẵn có của những ứng dụng này ñể làm nền, giúp cho việc lập trình ñược nhanh và hiệu quả hơn rất nhiều so với cách lập trình thông thường, và do ñó có thể gọi các ứng dụng này là các ứng dụng nền. Một phần mềm ñược gọi là ứng dụng nền khi nó thỏa mãn ñồng thời các tiêu chí: – Cho phép chương trình chạy bên trong và cùng với nó (tương tự như một lệnh) – Cho phép sử dụng các tính năng của nó thông qua công cụ lập trình thích hợp 10 © 2010 Dr. Tran Duc Tang – Military Technical Academy Một lệnh mới hay một chức năng mới ñược xây dựng trên ứng dụng nền thực chất là một chương trình hoàn chỉnh, vì vậy ñể xây dựng nó cần có công cụ lập trình tương ứng. Thông thường công cụ lập trình ñược hiểu như là một tập hợp bao gồm: – Ngôn ngữ lập trình – Môi trường lập trình – Thư viện hỗ trợ lập trình (thường là những phần mềm bổ sung giúp cho việc xây dựng chương trình ñược nhanh hơn thông qua sự kế thừa những thứ ñã ñược làm từ trước, ñể sử dụng thư viện hỗ trợ lập trình thì mỗi công cụ lập trình có một quy ñịnh về cách thức sử dụng riêng) Tương ứng với từng ứng dụng nền thì sẽ có các công cụ lập trình phù hợp. Một ứng dụng nền có thể hỗ trợ một hay nhiều công cụ lập trình khác nhau, tùy mục ñích sử dụng. 6 11 © 2010 Dr. Tran Duc Tang – Military Technical Academy 1.3 Các công cụ lập trình trên AutoCAD Script (tập lệnh) Cho phép thực hiện các lệnh của AutoCAD từ một tệp văn bản (có phần mở rộng là *.SCR) AutoLISP và VisualLISP AutoLISP dựa trên ngôn ngữ lập trình LISP, một ngôn ngữ dễ sử dụng và cũng khá mạnh. Với môi trường phát triển tích hơp VisulaLISP có sẵn trong AutoCAD, người dùng có thể dễ dàng tạo ra các ứng dụng mở rộng AutoCAD. Tất cả các mã lệnh viết bằng AutoLISP sẽ ñược lưu trong tệp có phần mở rộng là *.LSP 12 © 2010 Dr. Tran Duc Tang – Military Technical Academy VisualLISP công cụ hỗ trợ cho lập trình với AutoLISP trong AutoCAD 7 13 © 2010 Dr. Tran Duc Tang – Military Technical Academy ObjectARX (AutoCAD Runtime Extension) ObjectARX chứa các thư viện liên kết ñộng, qua ñó người dùng có thể tác ñộng trực tiếp lên nhân của chương trình AutoCAD. Chính vì vậy, chương trình viết với ObjectARX có khả năng rất mạnh, và thường ñược sử dụng ñể viết các ứng dụng lớn. Các chương trình sử dụng ObjectARX ñược viết bằng ngỗn ngữ VC++ và ñược biên dịch thành tệp có phần mở rộng là *.ARX Lập trình sử dụng ObjectARX 14 © 2010 Dr. Tran Duc Tang – Military Technical Academy ActiveX Automation Công nghệ này cho phép chia sẻ dữ liệu của bản vẽ với các chương trình khác. Và do ñó, ta có thể phát triển ứng dụng bằng các ngôn ngữ lập trình khác nhau như Visual Basic, VC++ ñể tận dụng tất cả các tính năng sẵn có của AutoCAD thông qua mô hình ñối tượng của AutoCAD AutoCAD Visual Basic for Application (VBA) Là môi trường lập trình ñược tích hợp sẵn trong AutoCAD. Các chương trình VBA viết bằng ngôn ngữ Visual Basic, hoạt ñộng dựa trên giao diện ActiveX Automation. Sự kết hợp giữa AutoCAD, ActiveX Automation và VBA tạo nên nhiều lợi thế cho các ứng dụng mở rộng viết bằng VBA. 8 15 © 2010 Dr. Tran Duc Tang – Military Technical Academy Môi trường VBA trong AutoCAD 16 © 2010 Dr. Tran Duc Tang – Military Technical Academy Mỗi công cụ lập trình luôn có những ñặc ñiểm riêng, do ñó ñể lựa chọn công cụ lập trình thích hợp khi lập trình trên ứng dụng nền cần dựa vào mục ñích cụ thể. Ví dụ khi lập trình trên AutoCAD, ñể tạo các công cụ trợ giúp vẽ thì AutoLISP là lựa chọn hợp lý. Nhưng ñể xây dựng các ứng dụng lớn, phức tạp, ñòi hỏi can thiệp sâu vào bên trong AutoCAD thì cần dùng ObjectARX. 9 17 © 2010 Dr. Tran Duc Tang – Military Technical Academy 18 © 2010 Dr. Tran Duc Tang – Military Technical Academy 1.4 Lập trình trên AutoCAD bằng VBA 1.4.1 Tại sao sử dụng VB? VBA là công nghệ phát triển nhanh phần mềm ñược tích hợp vào trong ứng dụng nền và thực chất VBA dựa trên kiến trục COM (Component Object Model). Bằng cách sử dụng VBA, người sử dụng sẽ có ñược rất nhiều lợi thế: – VBA bao gồm một môi trường phát triển tích hợp sẵn trong ứng dụng nền (VBA Integrated Development Enviroment – VBA IDE), giúp người dùng có thể mở rộng ứng dụng nền một cách dễ dàng mà không cần thêm một công cụ lập trình nào khác – VBA sử dụng ngôn ngữ lập trình VB, một ngôn ngữ lập trình tương ñối dễ sử dụng và là ngôn ngữ lập trình phổ biến. – VBA trong mỗi ứng dụng ñược dựa trên mô hình ñối tượng của ứng dụng nền, nên người sử dụng có thể phát triển ứng dụng một cách nhanh chóng và dễ dàng hơn, do ñã quen thuộc với cách thức thao tác trong các ứng dụng nền. 10 19 © 2010 Dr. Tran Duc Tang – Military Technical Academy – Khai thác ñược hầu hết các tính năng sẵn có của ứng dụng nền – Do ñược tích hợp chặt chẽ trong ứng dụng nền, các chương trình viết bằng VBA sẽ có tốc ñộ thực thi nhanh hơn so với những chương trình ngoài khác. – Các chương trình viết bằng VBA có thể ñược nhúng trong tệp của ứng dụng nền (ví dụ tệp bản vẽ của AutoCAD) hoặc có thể ñược lưu dưới dạng một dự án ñộc lập. ðiều này giúp cho việc phân phối, chia sẻ mã lệnh ñược thuận tiện. – AutoCAD hỗ trợ VBA và cung cấp một hệ thống tài liệu trợ giúp phong phú, giúp phát triển ứng dụng nhanh chóng và dễ dàng. 20 © 2010 Dr. Tran Duc Tang – Military Technical Academy 1.4.2 Các hạn chế của VB VB nói chung và VBA nói riêng có những hạn chế nhất ñịnh: – Ngôn ngữ lập trình VB không mạnh như ngôn ngữ C hay C++ – VB cung cấp cho chúng ta bộ biên dịch riêng ñể tạo các file thực hiện (Executed File), VBA hoạt ñộng trong chế ñộ thông dịch và không cho phép tạo các file thực hiện (Executable File) [...]... for Application – VBA – VBA là m t phiên b n c a VB ñư c thi t k ñ làm vi c trong các ng d ng c th , ví d AutoCAD, Microsofr Excel,… – VBA xu t hi n ñ u tiên trong Microsoft Excel và Microsoft Project năm 1994 và hi n nay nó là m t thành ph n lõi c a b Microsoft Office cũng như AutoCAD – AutoCAD VBA có ñ y ñ cú pháp c a ngôn ng VB – Khi cài ñ t AutoCAD, n u ch n tùy ch n bao g m VBA, ta có th truy... Military Technical Academy 35 Lưu chương trình 1 Ch n File trong VBA IDE và ch n Save, h p tho i Save VBA Project As xu t hi n 2 Trong h p File name, gõ tên cho chương trình, ví d TIMEDISP Ph n m r ng c a Project có d ng DVB (ví d TIMEDISP.DVB) © 2010 Dr Tran Duc Tang – Military Technical Academy 36 18 1.4.6 D án VBA (VBA Project) – Trong AutoCAD VBA, chương trình chúng ta t o ñư c ch a trong m t Project... Truy c p vào Visual Basic Editor t AutoCAD © 2010 Dr Tran Duc Tang – Military Technical Academy 23 1.4.4 Cài ñ t VBA – ð cài ñ t AutoCAD VBA ch c n l a ch n mô ñun VBA khi cài AutoCAD – N u khi cài ñ t AutoCAD n u ch n l a ch n Full ho c Typical, VBA s ñư c cài t ñ ng – N u ch n tùy ch n Compact, s không cài VBA – N u ch n tùy ch n Custom, c n ch c ch n là tùy ch n VBA ñư c ch n khi cài ñ t © 2010 Dr... án VBA – Trong AutoCAD, vi c thao tác v i các d án, như t i m t d án, nhúng m t d án, lưu m t d án… ñư c th c hi n thông qua c a s VBA Manager – ð m VBA Manager, ch n Tool -> Macro -> VBA Manager (ho c gõ VBAMAN t dòng l nh c a AutoCAD – Giao di n c a c a s VBA Manager như hình dư i © 2010 Dr Tran Duc Tang – Military Technical Academy 40 20 – ð m m t d án: Ch n Tool -> Macro -> Load Project Ho c gõ VBALOAD... như: UserForms, mã l nh, và các modules – Chúng ta có th ghi Project này trong file b n v AutoCAD ho c ghi thành file ñ c l p ñ có th dùng cho nhi u b n v khác nhau – Các d án AutoCAD VBA ñư c ghi v i ph n m r ng là DVB – Chúng ta cũng có th xem các d án VBA như là các chương trình (programs) Trong AutoCAD, các d án VBA ñư c phân bi t thành: – D án nhúng (Embedded Prject) – D án ñ c l p (Global Project)... Technical Academy 24 12 1.4.5 B t ñ u v i VBA ð b t ñ u AutoCAD VBA, có th th c hi n theo 2 cách: – Ch n Tools menu c a AutoCAD, sau ñó ch n Macro, ch n Visual Basic Editor – Gõ VBAIDE t dòng l nh c a AutoCAD và n Enter Visual Basic Interactive Development Enviroment (IDE) s xu t hi n như hình bên IDE ñư c xem như là c a s chính ñ phát tri n các chương trình VB, nó cũng ñư c xem như là môi trư ng phát... nh c a AutoCAD Ho c ch n nút Load trong h p tho i VBA Manager H p tho i Openn VBA Project s xu t hi n (như hình dư i), ch n file Project mà ta c n m sau ñó ch n nút Open © 2010 Dr Tran Duc Tang – Military Technical Academy 41 – ð ch y m t chương trình B m phím F5 Ho c gõ VBARUN t dòng l nh c a AutoCAD Ch n bi u tư ng Run trên thanh công c – ð Unload m t Project Gõ VBAUNLOAD t dòng l nh c a AutoCAD. .. AutoCAD, n u ch n tùy ch n bao g m VBA, ta có th truy c p vào môi trư ng VBA t menu “Tools” c a AutoCAD, như ch ra hình dư i – M t ñi m khác bi t quan tr ng gi a VBA và VB là các h p tho i (dialog boxes) trong AutoCAD VBA là modal, nghĩa là ngư i s d ng ph i ñáp l i (respond) h p tho i trư c khi các ph n khác c a ng d ng ñư c ti p t c Trong VB, các h p tho i có th là modal ho c modeless © 2010 Dr Tran Duc... i VBA Manager – Ghi m t Project Ch n File meu trong VBA IDE, sau ñó ch n Save Ho c b m Ctrl + S Ho c b m bi u tư ng Save Project trên thanh công c Ho c ch n Save As trong h p tho i VBA Manager © 2010 Dr Tran Duc Tang – Military Technical Academy 42 21 – ð nhúng m t Project trong m t b n v AutoCAD Ch n Embed trong h p tho i VBA Manager, Project s ñư c ghi khi b n v ñư c ghi – ðóng c a s VBA Trong VBA...1.4.3 Các phiên b n c a VB Stand-alone Visual Basic - VB – VB ñư c thi t k cho phát tri n các ng d ng chung, các ng d ng VB có th ñư c s d ng trong r t nhi u môi trư ng khác nhau – Trong VB có 4 phiên b n (Edition) Visual Basic Control Creation Edition Visual Basic Learining Edition Visual Basic Professional . không cần thêm một công cụ lập trình nào khác – VBA sử dụng ngôn ngữ lập trình VB, một ngôn ngữ lập trình tương ñối dễ sử dụng và là ngôn ngữ lập trình phổ biến. – VBA trong mỗi ứng dụng ñược. công cụ lập trình luôn có những ñặc ñiểm riêng, do ñó ñể lựa chọn công cụ lập trình thích hợp khi lập trình trên ứng dụng nền cần dựa vào mục ñích cụ thể. Ví dụ khi lập trình trên AutoCAD, . chương trình hoàn chỉnh, vì vậy ñể xây dựng nó cần có công cụ lập trình tương ứng. Thông thường công cụ lập trình ñược hiểu như là một tập hợp bao gồm: – Ngôn ngữ lập trình – Môi trường lập trình –