1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

Tài liệu Hướng dẫn lập trình AutoCAD

101 689 5

Đ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

Giáo trình gồm các bài tập hướng dẫn sử dụng các hàm trong Autocad.Tài liệu tham khảo về Giáo trình AutoCAD nâng cao và lập trình trong AutoCAD

LP TRÌNH TRONG AUTOCAD Ging Viên : Trn anh Bình Cp nht ngày 25/8/2007 Sách tham kho : • AutoCAD 2004 Bible – Wileys & Sons • Mastering in AutoCAD 2000 – George Omura • AutoCAD 2004 For Dummies – John Wiley & Sons • AutoCAD 2000 (1,2) – KTS.Lu Triu Nguyên. • AutoCAD 2004 (1,2) c bn và nâng cao – TS.Nguyn Hu Lc. • Các tin ích thit k trên AutoCAD – TS.Nguyn Hu Lc. – Nguyn Thanh Trung. • AutoCAD 2004 (1,2) c bn và nâng cao – TS.Nguyn Hu Lc. • AutoCAD 2004 Activex and VBA – KS.Hoàng Thành An. Liên h : KS. GV. Trn Anh Bình : - T : 0983039940 - Mail 1 : anhbinh0310@yahoo.com - Mail 2 : binhta@uce.edu.vn ón đc : Sách lp trình ARX và .DLL trong AutoCAD B MÔN TIN HC XÂY DNG KHOA CÔNG NGH THÔNG TIN TRNG I HC XÂY DNG KS. GV. TRN ANH BÌNH 2 LP TRÌNH TRONG AUTOCAD CHNG 1 : GII THIU CHUNG I. Ngôn ng lp trình trong CAD II. Tng quan v Activex Automation III. Ngôn ng lp trình AutoLisp 1. Gii thiu chung 2. Cn bn v AutoLisp 3. Bin trong Lisp 4. File chng trình Lisp 5. Nhp d liu 6. Mt s hàm c bn 7. X lý danh sách 8. Biu thc điu kin 9. Vòng lp 10. Tp hp các đi tng đc chn 11. Lp trình vi c s d liu ca AutoCAD. 12. Phân tích ví d : IV. Ngôn ng lp trình Visual Lisp V. C bn v ngôn ng lp trình Visual Basic VI. Làm quen vi VBA. 1. VBA Projects 2. To mi project 3. T chc các project vi VBA Manager 4. Son tho project vi VBA IDE 5. Làm vic vi các Macro VII. Cn bn v VBA. 1. Mô hình đi tng ca AutoCAD. 2. Object Hierarchy. 3. i tng Collection. 4. Property & Method (thuc tính & phng thc). 5. Truy cp đn đi tng trong Object Hierarchy. 6. Truy cp đn đi tng Collection trong Object Hierarchy. 7. Truy cp đn Object Hierarchy bng VB, VBA trong các môi trng khác. CHNG 2 : LÀM VIC VI MÔI TRNG AUTOCAD B MÔN TIN HC XÂY DNG KHOA CÔNG NGH THÔNG TIN TRNG I HC XÂY DNG KS. GV. TRN ANH BÌNH 3 I. M, đóng và ghi li bn v 1. M bn v. 2. To mi bn v. 3. Lu bn v. II. iu khin ca s bn v 1. iu khin ca s AutoCAD. 2. iu khin ca s bn v. 3. iu khin s hin th bên trong ca s bn v. III. Ly và thit lp các thông s h thng 1. Ly và thit lp các bin h thng 2. Grid và Snap. 3. Ly và thit lp bin h thng trong Option. IV. S dng command line trong VBA V. Nhp d liu ngi dùng 1. Nhp Chui 2. Nhp ta đ mt đim 3. Nhp mt ký t đin hình cho Option 4. Nhp s thc, s nguyên. 5. GetCorner Method, GetAngle Method, GetDistance Method 6. GetEntity Method, GetSubEntity Method CHNG 3 : TO VÀ SA CÁC THC TH  HA I. To đi tng bn v 1. Xác đnh đi tng cha thc th. 2. V Line, Arc, Circle, and Ellipse objects 3. To các khi đc 4. To đi tng hatch 5. To đi tng Region, các phép toán trên Region II. Thêm Text vào bn v 1. To các TextStyle 2. Chèn Text vào bn v 3. Chèn các ký t đc bit, các ký t Unicode. III. Sa các đi tng bn v 1. Các phép sa đi c bn 2. Các phép bin đi nâng cao 3. Chnh sa PolyLine, SpLine B MÔN TIN HC XÂY DNG KHOA CÔNG NGH THÔNG TIN TRNG I HC XÂY DNG KS. GV. TRN ANH BÌNH 4 IV. Block và thuc tính ca block 1. Blocks và Block References V. Chn đi tng 1. To Selectionset. 2. Thêm đi tng vào selection set 3. Lc đi tng trong selection set VI. Làm vic vi Group 1. To mt Group Object 2. Truy cp ti các Group Object 3. Thêm bt thc th vào Group 4. Xóa Group Object VII. S dng layer, color và linetype 1. S dng layer, color 2. S dng linetype 3. Gán layer, color, linetype cho đi tng VIII. Làm vic vi kích thc 1. Làm vic vi DimStyle 2. To các đng đo kích thc 3. To các leader. CHNG 4 : TÙY BIN MENUS VÀ TOOLBARS I. C bn v menu group và toolbar 1. Menugroup collection 2. Menugroup Object II. Thay đi menu bar 1. Chèn thêm menu vào menubar 2. Xoá b menu trên menubar 3. Sp xp li các menu trên menubar III. To và chnh sa Pull-down và Shorcut menus 1. To mi Pull-down menu 2. Chèn mt menu Item vào Pull-down menu 3. Chèn mt khong trng vào Pull-down menu 4. Thêm mt Menu Item vào Shortcut Menu 5. To Submenu cho menu item 6. Xóa bt menu item IV. To và chnh sa Toolbars B MÔN TIN HC XÂY DNG KHOA CÔNG NGH THÔNG TIN TRNG I HC XÂY DNG KS. GV. TRN ANH BÌNH 5 1. To mi toolbar 2. Thêm mt nút chn vào toolbar 3. nh ngha hình nh cho các nút Toolbar Button. 4. Thêm mt khong trng vào toolbar 5. Floating và Docking Toolbars 6. To các flyout toolbar 7. Xóa Toolbar và Toolbar Button V. To các macro 1. Các quy đnh v macro 2. Các ví d v macro CHNG 5 : PHÁT TRIN NG DNG VI VBA I. AutoCAD Events 1. Application-level events 2. Document-level events 3. Object-Level Events II. S dng Form 1. Làm vic vi Form và Macro 2. Làm vic vi module và macro III. Tng tác vi các ng dng và các c s d liu khác 1. Tng tác vi Visual Lisp 2. S dng c s d liu DAO 3. Giao tip vi các ng dng khác. IV. Làm vic vi Xdata 1. Khái nim v XData 2. Sets the extended data (XData) associated with an object. 3. Gets the extended data (XData) associated with an object. 4. Các Ví d V. Làm vic vi Xrecord 1. Khái nim v Xrecord 2. Phng thc AddXRecord 3. Phng thc SetXRecordData 4. Phng thc GetXRecordData B MÔN TIN HC XÂY DNG KHOA CÔNG NGH THÔNG TIN TRNG I HC XÂY DNG KS. GV. TRN ANH BÌNH 6 CHNG 1 : GII THIU CHUNG I. Ngôn ng lp trình trong CAD Các cp ca ngi dung khi thao tác vi AutoCAD : – Cp I : Bit s dng CAD – Cp II : Bit qun lý và làm ch môi trng CAD – Cp III : Bit lp trình t đng hóa quá trình v Autocad cho ta các cách đ có th t đng quá quá trình v nh sau : – S dng các ngôn ng lp trình, sau đó kit xut ra bn v di dng các file vn bn DFX. – T đng hóa bng các file Script. – Lp trình trong môi trng CAD nh Lisp, Object ARX, VBA. AutoDesk cung cp cho chúng ta mt b các phn m rng đ kim soát AutoCad t ngôn ng. Nhng phn m rng này đc gi là Object ARX. ây là mt phng pháp tip cn vi CAD mt cách chuyên nghip nht tuy nhiên nó li quá phc tp. AutoLisp là mt ngôn ng lp trình thông dch, Nó là mt phiên bn mi nht v ngôn ng lp trình nhân to c nht mà ngày nay vn còn đc s dng. Autolisp nm trong b Common LISP. LISP vit tt ca LIST Processor !. Nói chung Lisp d hc bi cú pháp ca nó đn gin nhng nó không tng tác đc vi các c s d liu nh Excel, access. Nên vic s dng nó to ra các ng dng phc tp là rt khó. Tuy nhiên mc đ phc tp cng đã đc gim bt đi rt nhiu trong Visual LISP! VBA vit tt ca Visual Basic Application. Cng nh Object Arx thì VBA cng là mt môi trng lp trình hng đi tng s dng ngôn ng VB. u đim ca VBA là – S dng VB, mt ngôn ng lp trình tng đi thông dng và d hc. – VBA nm trong CAD nên tc đ chy cng tng đi nhanh. – D dàng trong vic to ra các giao din (hp thoi, menu). – Tng tác vi các ng dng khác và các c s d liu khác. – Cho phép ta ghi Project ra file riêng hoc tích hp luôn vào bn v. To điu kin đ phát trin ng dng mt cách mm do trong vic chia s d liu gia các ng dng khác trong môi trng Window. II. Tng quan v Activex Automation • 2 u đim ca AutoCAD ActiveX Activex automation là chun mc đc to ra bi hãng Microsoft, trc đây đc gi là OLE activex, cho phép mt ng dng Windows này kim soát mt ng dng Windows khác qua mô hình các đi tng rõ ràng. AutoCAD ActiveX là giao din cho phép ngi lp trình làm vic vi các đi tng ca AutoCAD. AutoCAD Activex cho phép bn s dng mt cách t đng không ch trong phm vi AutoCAD mà ngoài c AutoCAD. Các đi tng ca AutoCAD có th đc truy nhp đn bi nhiu ngôn ng lp trình khác nhau nh Ms word VBA, Ms Excel VBA, B MÔN TIN HC XÂY DNG KHOA CÔNG NGH THÔNG TIN TRNG I HC XÂY DNG KS. GV. TRN ANH BÌNH 7 • 2 u đim ca AutoCAD ActiveX • 2 u đim ca AutoCAD ActiveX – Tt c các ngôn ng lp trình đu có th làm vic vi các đi tng trong AutoCAD (không gii hn vi C++ và AutoLISP nh trc) – Tt c các ngôn ng lp trình đu có th làm vic vi các đi tng trong AutoCAD (không gii hn vi C++ và AutoLISP nh trc) – Chia s d liu vi các ng dng khác trên môi trng Windows (Excel, Word ) – Chia s d liu vi các ng dng khác trên môi trng Windows (Excel, Word ) • Mô hình client server. • Mô hình client server. Mc dù Activex luôn luôn bao gm mt cuc hi thoi gia hai ng dng, nó không phi là cuc hi thoi hai chiu gia các thành phn tng đng. Mi thành phn chng trình Activex Automation bao gm hai chng trình vi các vai trò khác nhau. Client là ng dng khi to cuc hi thoi. Server là ng dng hi đáp client. Mã Activex Automation chy trong client, trong khi các hành đng mã này đc kim soát thc hin trên server. Hình di đây trình bày mi quan h gia Client và Server trong mt cuc trao đi Activex Automation đc thù. Mc dù Activex luôn luôn bao gm mt cuc hi thoi gia hai ng dng, nó không phi là cuc hi thoi hai chiu gia các thành phn tng đng. Mi thành phn chng trình Activex Automation bao gm hai chng trình vi các vai trò khác nhau. Client là ng dng khi to cuc hi thoi. Server là ng dng hi đáp client. Mã Activex Automation chy trong client, trong khi các hành đng mã này đc kim soát thc hin trên server. Hình di đây trình bày mi quan h gia Client và Server trong mt cuc trao đi Activex Automation đc thù. ClientClient Starts conversation Request Object Supplies Object Invokes Method Close conversation Server Principle Activex Automation Supplies Object Di đây là mt s ng dng bn có th dung đ kim soát các server activex, k c AutoCAD. – Visual Basic – Excel VBA – Word VBA B MÔN TIN HC XÂY DNG KHOA CÔNG NGH THÔNG TIN TRNG I HC XÂY DNG KS. GV. TRN ANH BÌNH 8 – • Mô hình đi tng ca Automation. Mt Server Activex Automation (chng hn nh AutoCAD) thc hin các chc nng qua các đi tng. Mt đi tng là mt đi din ca thành ng dng. Mt đi tng đc phân bit vi các di tng khác b ba đc tính : – Phân loi ca đi tng – Các đc tính ca đi tng – Phng thc ca đi tng Ví d đi tng Line, đc tính ca đi tng cho phép bn xác đnh : – Màu sc – Lp – im khi đu – im kt thúc –  dài Phng thc đi tng là – Sao chép – xóa – đi xng qua gng – di chuyn – quay Chú ý, các Autocad activex s không hot đng nu cad đang thc hin lnh. III. Ngôn ng lp trình AutoLisp 1. Gii thiu chung u đim : Tc đ chy nhanh Nhc đim : – Là ngôn ng lp trình thông dch, ko cu trúc – Không kt ni đc vi các c s d liu nh Access, Excel… 2. Cn bn v AutoLisp 2.1. Xây dng biu thc AutoLisp • Cu trúc d liu c bn ca Lisp là danh sách (List) • Danh sách là tp hp các phn t cha trong các du ngoc đn, các phn t đc cách nhau bi mt hoc nhiu du cách • Danh sách có 2 loi : Biu thc toán hc (expression) và danh sách d liu (data list). • Phn t đu tiên ca ca mt biu thc luôn luôn là mt hàm • Mt biu thc bao gm tên hàm và các tham s cha trong các du ngoc đn. Khác vi biu thc toán hc, các tham s trong biu thc Lisp là các tham s có th t. • Tham s là các giá tr cung cp cho hàm đ tính toán • AutoLisp tr v kt qu tính toán t biu thc. Ví d : (+ 30 20 50) Tr v kt qu : 100 2.2. Cách nhp biu thc AutoLisp Biu thc Lisp có th đc nhp nh các dòng lnh ca AutoCAD, chú ý rng biu thc ca Lisp luôn luôn nm trong du ngoc đn ( … ). Khi nhp trc tip bng dòng lnh, bn nên chú ý kéo dài ca s AutoCAD Text Window ra đ có th theo dõi đc kt qu cng nh li ca nó. Command: (- ( + 140 10) 30)↵ 120 B MÔN TIN HC XÂY DNG KHOA CÔNG NGH THÔNG TIN TRNG I HC XÂY DNG KS. GV. TRN ANH BÌNH 9 2.3. Các hàm s hc Hàm cng (+) : (+ [number 1] [number 2] [number 3]….) Danh sách bt đu bng du + báo cho lisp đó là hàm, các phn t đng sau nó s là tham s. D liu s đc chia làm 2 loi : • S nguyên (ko có du chm) • S thp phân (có du chm) Kt qu tr v s có kiu là kiu rng nht trong các kiu ca tham s. Ví d : Command: ( + 140 10 30)↵ 180 Command: ( + 140 10 30.0)↵ 180.0 Command: (+ 140 10.10 30)↵ 180.1 Command: (+ 10 a)↵ ; error: bad argument type: numberp: nil Hàm tr (-) Hàm nhân (*) Hàm chia (/) Command: ( / 120 10 3)↵ 4 Command: ( * 3.75 3.775)↵ 14.0625 Lisp lu tr ti 14 s thp phân nhng kt qu tr v trên màn hình s ch có 6 ch s có ngha tính t trái sang phi. Ví d : 18-[(3+6+9):(9-6)-12] Command: (- (- 18 (/ (+ 3 6 9) (- 9 6))) 12) 0 3. Bin trong Lisp Ký hiu • Tên bin cng nh tên hàm ko phn bit ch hoa, ch thng. • Bin không nht thit cn khai báo Gán giá tr cho bin S dng hàm Setq đ gán giá tr cho mt bin. Cú pháp nh sau : (SetQ Symbol1 value1 [symbol2 value2] …) Ging nh các hàm khác, hàm SetQ tr v mt giá tr. Giá tr này có th là “nill” (rng), “T” (True) hoc các s, chui, danh sách. Ví d : Command (Setq x 3)↵ 3 Command (Setq x 3 y 4)↵ 4 Command (Setq z (+ x y)↵ 7 Command (Setq A “Xyabg”)↵ Xyabg Phm vi bin Bin ch có tác dng trong phm vi bn v B MÔN TIN HC XÂY DNG KHOA CÔNG NGH THÔNG TIN TRNG I HC XÂY DNG KS. GV. TRN ANH BÌNH 10 S dng bin trong dòng lnh Command : (setq x 10)↵ 10 Command : (!X) 10 Command : circle↵ 3P/ <Center point> : Nhp ta đ tâm Diameter <Radius> : !x 4. File chng trình Lisp 4.1. File lisp Quy đnh chung : • File Lisp có phn m rng là *.lsp • Mt biu thc có th vit trên nhiu dòng • Các biu thc không phân bit ch hoa, ch thng • Chui chú thích bt đu bng du chm phy Các ti file lisp vào trong AutoCAD • S dng hàm Load Command : (Load E:/autoLisp/CHT.lsp) Hoc Command : (Load E:\\toLisp\\T.lsp) • S dng hàm Appload (Application Load) 4.2. Hàm t to B MÔN TIN HC XÂY DNG KHOA CÔNG NGH THÔNG TIN TRNG I HC XÂY DNG [...]... c khi b n s d ng, B n ph i tham chi u n type library AutoCAD VBA s t tham chi u n AutoCAD type library i các môi tr ng khác b n ph i t o tham chi u t i AutoCAD type library, acax16enu.tlb File này m c nh n m trong th m c C:\program files\common files\autodesk shared Tuy nhiên, s t t h n n u b n add type library reference vì nh ng u i m sau : Ch ng trình s chay nhanh h n, n nh h n Function, properties,... n c a s AutoCAD M c ích : Khi b n làm vi c v i 1 ng d ng khác, b n c n nh p s liêu t ng i dùng ch ng h n B n c n thu nh ho c ki m tra tình trang c a c a s AutoCAD S d ng methods và properties có trong Application object, b n có th thay i position, size và visibility c a c a s AutoCAD B n c ng có th s d ng WindowState property minimize, maximize và có th ki m tra tình tr ng hi n t i c a c a s AutoCAD. .. Ta c ng có th truy c p n Object Hierarchy NG Gph i Tham chi u n AutoCAD Type Library làm vi c này trong Excel, Word,… Vi c u tiên ta N ta làm nh sau : CÔ Ch n ReferencesA KHO option t Project menu, h p tho i Reference dialog hi n lên Trong References dialog box, ch n Type library for AutoCAD, and then click OK Khái ni m v Type library for AutoCAD Các i t ng, thu c tính và ph ng th c c a ra b i k thu... t thúc 4.3 T o l nh AutoCAD m i GT N HÔ T Tham s C: có th s d ng hàm t t o nh là m t l nh trong AutoCAD, ta hàm trong ph n nh ngh a hàm t t o Ví d : (Defun C: (/PT1 PT2) (Setq PT1 (getpoint “\n nhap diem thu nhat”)) (Setq PT2 (getpoint “\n nhap diem thu hai”)) (command “Line” PT1 PT2 “ ”); (Princ) ) ;ket thuc KHO H NG G ÔN AC IN t ký hi u C: vào tr Tham s S::Startup Khi kh i ng AutoCAD, hàm S::startup... GetObject(, "AutoCAD. Application.16") If Err Then Err.Clear Set acadApp = CreateObject( "AutoCAD. Application.16") If Err Then NG TR 28 KS GV TR N ANH BÌNH MsgBox Err.Description Exit Sub End If NG End If MsgBox "Now running " + acadApp.Name + " version " + acadApp.Version XÂY End Sub D C HAcadDocument Dim acadDoc As TIN SetN acadDoc = acadApp.ActiveDocument Ô B M ………………………… acadApp.visible = True N u AutoCad. .. ;****************************************************************************** M KHO H NG G ÔN AC GT N HÔ T IH IN C XÂY D NG NG TR 22 KS GV TR N ANH BÌNH IV V C b n v ngôn ng l p trình Visual Basic VI B Ngôn ng l p trình Visual Lisp Làm quen v i VBA NT Ô IN H 1 VBA Projects Ch ng trình VBA form VBA Project có th riêng (*.DVB) M C XÂY D NG c t ch c trong các project, 1 Project là t p h p các module: mã, l p, c l u trong file b n... X, Y, Z c a m t i m Kho d li u (Data storage List) : C ng nh Point coordinate list Nh ng nó ch a d li u b tk MÔ 7.2 T o danh sách T t các d li u c a AutoCAD (Auotcad database) u c l u d i d ng danh sách và c ánh s th t theo mã (DXF Code) Khi vi t ch ng trình, qu n lý d li u, thông th ng ta l u vào các bi n Nh ng khi s l ng l u tr d li u t ng lên Lisp không cung c p ki u d li u ng và m ng ng gi i quy... (command “erase” (Ssname SS 0) “”) Hàm EntGet (entity get) Cú pháp : (ENTGET entname) (SETQ DS (ENTGET (SSNAME SS DEM))) (SETQ KDL (CDR (ASSOC 0 DS))) IH C NG TR 19 KS GV TR N ANH BÌNH 11 L p trình v i c s d li u c a AutoCAD 11.1 L y Record d li u i t ng Hàm EntGet (entity get) Cú pháp : (ENTGET entname) : tr v danh sách bi u di n Record d li u c a là entname YD B NG Â C X i t ng 11.2 Hi u ch nh record... vào, AutoCAD nh n bi t c ki u d li u danh sách ta dùng hàm Quote (ho c d u ‘) Ví d ta v ng th ng i qua m t i m có t a (2,2,0) và m t i m nh n c t ng i dùng (Defun C: (/PT1) (setq PT1 (getpoint “\n Nhap diem thu nhat”)) (Command “Line” PT1 Quote(2 2 0)) ) Ho c : (Defun C: (/PT1) (setq PT1 (getpoint “\n Nhap diem thu nhat”)) (Command “Line” PT1 “2,2,0”) IH C XÂY D NG NG TR 11 KS GV TR N ANH BÌNH ) Trình. .. c là CAD ch a ch y Khi ó CreatObject s kh i ng CAD N u có nhi u session c a CAD ang ch y thì ch ng trình s l y Session u tiên trong Windows Running Object Table KHO H NG G ÔN AC GT N HÔ T IH IN C XÂY D NG NG TR 29 KS GV TR N ANH BÌNH CH I NG 2 : LÀM VI C V I MÔI TR M , óng và ghi l i b n v D XÂY NG NG AUTOCAD 1 M b n v m b n v , s d ng ph ng th c Open method S d ng hàm DIR c a Visual Basic ki m tra . TRONG AUTOCAD Ging Viên : Trn anh Bình Cp nht ngày 25/8/2007 Sách tham kho : • AutoCAD 2004 Bible – Wileys & Sons • Mastering in AutoCAD 2000 – George Omura • AutoCAD. AutoCAD 2000 (1,2) – KTS.Lu Triu Nguyên. • AutoCAD 2004 (1,2) c bn và nâng cao – TS.Nguyn Hu Lc. • Các tin ích thit k trên AutoCAD – TS.Nguyn Hu Lc. – Nguyn Thanh Trung. • AutoCAD. rõ ràng. AutoCAD ActiveX là giao din cho phép ngi lp trình làm vic vi các đi tng ca AutoCAD. AutoCAD Activex cho phép bn s dng mt cách t đng không ch trong phm vi AutoCAD mà

Ngày đăng: 10/05/2015, 20:55

Xem thêm: Tài liệu Hướng dẫn lập trình AutoCAD

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

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

TÀI LIỆU LIÊN QUAN

w