LP TRÌNH TRONG AUTOCAD
Ging Viên : Trn anh Bình
Cp nht ngày 25/8/2007
Sách tham kho :
• AutoCAD 2004 Bible – Wileys & Sons
• Mastering in AutoCAD 2000 – George Omura
• AutoCAD 2004 For Dummies – John Wiley & Sons
• AutoCAD 2000 (1,2) – KTS.Lu Triu Nguyên.
• AutoCAD 2004 (1,2) c bn và nâng cao – TS.Nguyn Hu Lc.
• Các tin ích thit k trên AutoCAD – TS.Nguyn Hu Lc.
– Nguyn Thanh Trung.
• AutoCAD 2004 (1,2) c bn và nâng cao – TS.Nguyn Hu Lc.
• AutoCAD 2004 Activex and VBA – KS.Hoàng Thành An.
Liên h : KS. GV. Trn Anh Bình :
- T : 0983039940
- Mail 1 :
-
Mail 2 :
ón đc : Sách lp trình ARX và .DLL trong AutoCAD
B MÔN TIN HC XÂY DNG
KHOA CÔNG NGH THÔNG TIN
TRNG I HC XÂY DNG
KS. GV. TRN ANH BÌNH
2
LP TRÌNH TRONG AUTOCAD
CHNG 1 : GII THIU CHUNG
I. Ngôn ng lp trình trong CAD
II. Tng quan v Activex Automation
III. Ngôn ng lp trình AutoLisp
1. Gii thiu chung
2. Cn bn v AutoLisp
3. Bin trong Lisp
4. File chng trình Lisp
5. Nhp d liu
6. Mt s hàm c bn
7. X lý danh sách
8. Biu thc điu kin
9. Vòng lp
10. Tp hp các đi tng đc chn
11. Lp trình vi c s d liu ca AutoCAD.
12. Phân tích ví d :
IV. Ngôn ng lp trình Visual Lisp
V. C bn v ngôn ng lp trình Visual Basic
VI. Làm quen vi VBA.
1. VBA Projects
2. To mi project
3. T chc các project vi VBA Manager
4. Son tho project vi VBA IDE
5. Làm vic vi các Macro
VII. Cn bn v VBA.
1. Mô hình đi tng ca AutoCAD.
2. Object Hierarchy.
3. i tng Collection.
4. Property & Method (thuc tính & phng thc).
5. Truy cp đn đi tng trong Object Hierarchy.
6. Truy cp đn đi tng Collection trong Object Hierarchy.
7. Truy cp đn Object Hierarchy bng VB, VBA trong các môi trng khác.
CHNG 2 : LÀM VIC VI MÔI TRNG AUTOCAD
B MÔN TIN HC XÂY DNG
KHOA CÔNG NGH THÔNG TIN
TRNG I HC XÂY DNG
KS. GV. TRN ANH BÌNH
3
I. M, đóng và ghi li bn v
1. M bn v.
2. To mi bn v.
3. Lu bn v.
II. iu khin ca s bn v
1. iu khin ca s AutoCAD.
2. iu khin ca s bn v.
3. iu khin s hin th bên trong ca s bn v.
III. Ly và thit lp các thông s h thng
1. Ly và thit lp các bin h thng
2. Grid và Snap.
3. Ly và thit lp bin h thng trong Option.
IV. S dng command line trong VBA
V. Nhp d liu ngi dùng
1. Nhp Chui
2. Nhp ta đ mt đim
3. Nhp mt ký t đin hình cho Option
4. Nhp s thc, s nguyên.
5. GetCorner Method, GetAngle Method, GetDistance Method
6. GetEntity Method, GetSubEntity Method
CHNG 3 : TO VÀ SA CÁC THC TH HA
I. To đi tng bn v
1. Xác đnh đi tng cha thc th.
2. V Line, Arc, Circle, and Ellipse objects
3. To các khi đc
4. To đi tng hatch
5. To đi tng Region, các phép toán trên Region
II. Thêm Text vào bn v
1. To các TextStyle
2. Chèn Text vào bn v
3. Chèn các ký t đc bit, các ký t Unicode.
III. Sa các đi tng bn v
1. Các phép sa đi c bn
2. Các phép bin đi nâng cao
3. Chnh sa PolyLine, SpLine
B MÔN TIN HC XÂY DNG
KHOA CÔNG NGH THÔNG TIN
TRNG I HC XÂY DNG
KS. GV. TRN ANH BÌNH
4
IV. Block và thuc tính ca block
1. Blocks và Block References
V. Chn đi tng
1. To Selectionset.
2. Thêm đi tng vào selection set
3. Lc đi tng trong selection set
VI. Làm vic vi Group
1. To mt Group Object
2. Truy cp ti các Group Object
3. Thêm bt thc th vào Group
4. Xóa Group Object
VII. S dng layer, color và linetype
1. S dng layer, color
2. S dng linetype
3. Gán layer, color, linetype cho đi tng
VIII. Làm vic vi kích thc
1. Làm vic vi DimStyle
2. To các đng đo kích thc
3. To các leader.
CHNG 4 : TÙY BIN MENUS VÀ TOOLBARS
I. C bn 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. Sp xp li các menu trên menubar
III. To và chnh sa Pull-down và Shorcut menus
1. To mi Pull-down menu
2. Chèn mt menu Item vào Pull-down menu
3. Chèn mt khong trng vào Pull-down menu
4. Thêm mt Menu Item vào Shortcut Menu
5. To Submenu cho menu item
6. Xóa bt menu item
IV. To và chnh sa Toolbars
B MÔN TIN HC XÂY DNG
KHOA CÔNG NGH THÔNG TIN
TRNG I HC XÂY DNG
KS. GV. TRN ANH BÌNH
5
1. To mi toolbar
2. Thêm mt nút chn vào toolbar
3. nh ngha hình nh cho các nút Toolbar Button.
4. Thêm mt khong trng vào toolbar
5. Floating và Docking Toolbars
6. To các flyout toolbar
7. Xóa Toolbar và Toolbar Button
V. To các macro
1. Các quy đnh v macro
2. Các ví d v macro
CHNG 5 : PHÁT TRIN NG DNG VI VBA
I. AutoCAD Events
1. Application-level events
2. Document-level events
3. Object-Level Events
II. S dng Form
1. Làm vic vi Form và Macro
2. Làm vic vi module và macro
III. Tng tác vi các ng dng và các c s d liu khác
1. Tng tác vi Visual Lisp
2. S dng c s d liu DAO
3. Giao tip vi các ng dng khác.
IV. Làm vic vi Xdata
1. Khái nim 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 vic vi Xrecord
1. Khái nim v Xrecord
2. Phng thc AddXRecord
3. Phng thc SetXRecordData
4. Phng thc GetXRecordData
B MÔN TIN HC XÂY DNG
KHOA CÔNG NGH THÔNG TIN
TRNG I HC XÂY DNG
KS. GV. TRN ANH BÌNH
6
CHNG 1 : GII THIU CHUNG
I. Ngôn ng lp trình trong CAD
Các cp ca ngi dung khi thao tác vi AutoCAD :
– Cp I : Bit s dng CAD
– Cp II : Bit qun lý và làm ch môi trng CAD
– Cp III : Bit lp 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 dng các ngôn ng lp trình, sau đó kit xut ra bn v di dng các file vn bn DFX.
– T đng hóa bng các file Script.
– Lp trình trong môi trng CAD nh Lisp, Object ARX, VBA.
AutoDesk cung cp cho chúng ta mt b các phn m rng đ kim soát AutoCad t ngôn ng.
Nhng phn m rng này đc gi là Object ARX. ây là mt phng pháp tip cn vi CAD mt
cách chuyên nghip nht tuy nhiên nó li quá phc tp.
AutoLisp là mt ngôn ng lp trình thông dch, Nó là mt phiên bn mi nht v ngôn ng lp
trình nhân to c nht mà ngày nay vn còn đc s dng. Autolisp nm trong b Common LISP.
LISP vit tt ca LIST Processor !. Nói chung Lisp d hc bi cú pháp ca nó đn gin nhng nó
không tng tác đc vi các c s d liu nh Excel, access. Nên vic s dng nó to ra các ng
dng phc tp là rt khó. Tuy nhiên mc đ phc tp cng đã đc gim bt đi rt nhiu trong Visual
LISP!
VBA vit tt ca Visual Basic Application. Cng nh Object Arx thì VBA cng là mt môi
trng lp trình hng đi tng s dng ngôn ng VB. u đim ca VBA là
– S dng VB, mt ngôn ng lp trình tng đi thông dng và d hc.
– VBA nm trong CAD nên tc đ chy cng tng đi nhanh.
– D dàng trong vic to ra các giao din (hp thoi, menu).
– Tng tác vi các ng dng khác và các c s d liu khác.
– Cho phép ta ghi Project ra file riêng hoc tích hp luôn vào bn v. To điu kin đ phát
trin ng dng mt cách mm do trong vic chia s d liu gia các ng dng khác trong
môi trng Window.
II. Tng quan v Activex Automation
• 2 u đim ca AutoCAD ActiveX
Activex automation là chun mc đc to ra bi hãng Microsoft, trc đây đc gi là OLE
activex, cho phép mt ng dng Windows này kim soát mt ng dng Windows khác qua mô hình
các đi tng rõ ràng.
AutoCAD ActiveX là giao din cho phép ngi lp trình làm vic vi các đi tng ca
AutoCAD. AutoCAD Activex cho phép bn s dng mt cách t đng không ch trong phm vi
AutoCAD mà ngoài c AutoCAD. Các đi tng ca AutoCAD có th đc truy nhp đn bi nhiu
ngôn ng lp trình khác nhau nh Ms word VBA, Ms Excel VBA,
B MÔN TIN HC XÂY DNG
KHOA CÔNG NGH THÔNG TIN
TRNG I HC XÂY DNG
KS. GV. TRN ANH BÌNH
7
• 2 u đim ca AutoCAD ActiveX • 2 u đim ca AutoCAD ActiveX
– Tt c các ngôn ng lp trình đu có th làm vic vi các đi tng trong AutoCAD (không
gii hn vi C++ và AutoLISP nh trc)
– Tt c các ngôn ng lp trình đu có th làm vic vi các đi tng trong AutoCAD (không
gii hn vi C++ và AutoLISP nh trc)
– Chia s d liu vi các ng dng khác trên môi trng Windows (Excel, Word ) – Chia s d liu vi các ng dng khác trên môi trng Windows (Excel, Word )
• Mô hình client server. • Mô hình client server.
Mc dù Activex luôn luôn bao gm mt cuc hi thoi gia hai ng dng, nó không phi là cuc
hi thoi hai chiu gia các thành phn tng đng. Mi thành phn chng trình Activex
Automation bao gm hai chng trình vi các vai trò khác nhau. Client là ng dng khi to cuc hi
thoi. Server là ng dng hi đáp client. Mã Activex Automation chy trong client, trong khi các hành
đng mã này đc kim soát thc hin trên server. Hình di đây trình bày mi quan h gia Client và
Server trong mt cuc trao đi Activex Automation đc thù.
Mc dù Activex luôn luôn bao gm mt cuc hi thoi gia hai ng dng, nó không phi là cuc
hi thoi hai chiu gia các thành phn tng đng. Mi thành phn chng trình Activex
Automation bao gm hai chng trình vi các vai trò khác nhau. Client là ng dng khi to cuc hi
thoi. Server là ng dng hi đáp client. Mã Activex Automation chy trong client, trong khi các hành
đng mã này đc kim soát thc hin trên server. Hình di đây trình bày mi quan h gia Client và
Server trong mt cuc trao đi Activex Automation đc thù.
ClientClient
Starts conversation
Request Object
Supplies Object
Invokes Method
Close conversation
Server
Principle Activex Automation
Supplies Object
Di đây là mt s ng dng bn có th dung đ kim soát các server activex, k c AutoCAD.
– Visual Basic
– Excel VBA
– Word VBA
B MÔN TIN HC XÂY DNG
KHOA CÔNG NGH THÔNG TIN
TRNG I HC XÂY DNG
KS. GV. TRN ANH BÌNH
8
–
• Mô hình đi tng ca Automation.
Mt Server Activex Automation (chng hn nh AutoCAD) thc hin các chc nng qua các đi
tng. Mt đi tng là mt đi din ca thành ng dng. Mt đi tng đc phân bit vi các di
tng khác b ba đc tính :
– Phân loi ca đi tng
– Các đc tính ca đi tng
– Phng thc ca đi tng
Ví d đi tng Line, đc tính ca đi tng cho phép bn xác đnh :
– Màu sc
– Lp
– im khi đu
– im kt thúc
– dài
Phng thc đi tng là
– Sao chép
– xóa
– đi xng qua gng
– di chuyn
– quay
Chú ý, các Autocad activex s không hot đng nu cad đang thc hin lnh.
III. Ngôn ng lp trình AutoLisp
1. Gii thiu chung
u đim : Tc đ chy nhanh
Nhc đim :
– Là ngôn ng lp trình thông dch, ko cu trúc
– Không kt ni đc vi các c s d liu nh Access, Excel…
2. Cn bn v AutoLisp
2.1. Xây dng biu thc AutoLisp
• Cu trúc d liu c bn ca Lisp là danh sách (List)
• Danh sách là tp hp các phn t cha trong các du ngoc đn, các phn t đc cách
nhau bi mt hoc nhiu du cách
• Danh sách có 2 loi : Biu thc toán hc (expression) và danh sách d liu (data list).
• Phn t đu tiên ca ca mt biu thc luôn luôn là mt hàm
• Mt biu thc bao gm tên hàm và các tham s cha trong các du ngoc đn. Khác vi
biu thc toán hc, các tham s trong biu thc Lisp là các tham s có th t.
• Tham s là các giá tr cung cp cho hàm đ tính toán
• AutoLisp tr v kt qu tính toán t biu thc.
Ví d :
(+ 30 20 50)
Tr v kt qu : 100
2.2. Cách nhp biu thc AutoLisp
Biu thc Lisp có th đc nhp nh các dòng lnh ca AutoCAD, chú ý rng biu thc ca Lisp
luôn luôn nm trong du ngoc đn ( … ).
Khi nhp trc tip bng dòng lnh, bn nên chú ý kéo dài ca s AutoCAD Text Window ra đ
có th theo dõi đc kt qu cng nh li ca nó.
Command: (- ( + 140 10) 30)↵
120
B MÔN TIN HC XÂY DNG
KHOA CÔNG NGH THÔNG TIN
TRNG I HC XÂY DNG
KS. GV. TRN ANH BÌNH
9
2.3. Các hàm s hc
Hàm cng (+) : (+ [number 1] [number 2] [number 3]….)
Danh sách bt đu bng du + báo cho lisp đó là hàm, các phn t đng sau nó s là tham s.
D liu s đc chia làm 2 loi :
• S nguyên (ko có du chm)
• S thp phân (có du chm)
Kt qu tr v s có kiu là kiu rng nht trong các kiu ca 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 lu tr ti 14 s thp phân nhng kt qu tr v trên màn hình s ch có 6 ch s có ngha
tính t trái sang phi.
Ví d : 18-[(3+6+9):(9-6)-12]
Command: (- (- 18 (/ (+ 3 6 9) (- 9 6))) 12)
0
3. Bin trong Lisp
Ký hiu
• Tên bin cng nh tên hàm ko phn bit ch hoa, ch thng.
• Bin không nht thit cn khai báo
Gán giá tr cho bin
S dng hàm Setq đ gán giá tr cho mt bin. Cú pháp nh sau :
(SetQ Symbol1 value1 [symbol2 value2] …)
Ging nh các hàm khác, hàm SetQ tr v mt giá tr. Giá tr này có th là “nill” (rng), “T”
(True) hoc các s, chui, 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
Phm vi bin
Bin ch có tác dng trong phm vi bn v
B MÔN TIN HC XÂY DNG
KHOA CÔNG NGH THÔNG TIN
TRNG I HC XÂY DNG
KS. GV. TRN ANH BÌNH
10
S dng bin trong dòng lnh
Command : (setq x 10)↵
10
Command : (!X)
10
Command : circle↵
3P/ <Center point> : Nhp ta đ tâm
Diameter <Radius> : !x
4. File chng trình Lisp
4.1. File lisp
Quy đnh chung :
• File Lisp có phn m rng là *.lsp
• Mt biu thc có th vit trên nhiu dòng
• Các biu thc không phân bit ch hoa, ch thng
• Chui chú thích bt đu bng du chm phy
Các ti file lisp vào trong AutoCAD
• S dng hàm Load
Command : (Load E:/autoLisp/CHT.lsp)
Hoc
Command : (Load E:\\toLisp\\T.lsp)
• S dng hàm Appload (Application Load)
4.2. Hàm t to
B MÔN TIN HC XÂY DNG
KHOA CÔNG NGH THÔNG TIN
TRNG I HC XÂY DNG
KS. GV. TRN ANH BÌNH
11
Ngoài các hàm AutoCAD cung cp, ta còn có th to ra các hàm t to.
nh ngha hàm t to
Bng cách s dng hàm Defun (define function). Cú pháp nh sau :
(Defun Function_Name Argument_List expresstion…)
• Function_Name : tên hàm t to. Tuân theo quy tc đt tên bin
• Argument_List : gm hai phn ngn cách nhau bi du /, Phn th nht cha các tham s
cn thit khi gi là hàm. Phn th hai ch các bin cc b ca hàm.
• Expression : các biu thc tính toán ca hàm. Các biu thc này s ln lt đc tính toán
theo th t t trên xung di.
Ví d :
(Defun ZA()
(command “Zoom” “all”)
)
Bin toàn cc và bin cc b
• Bin toàn cc là các bin hot đng trong phm vi bn v
• Bin cc b là bin đc đnh ngha trong phm vi hàm và giá tr ca nó s mt đi khi hàm
kt thúc.
4.3. To lnh AutoCAD mi.
Tham s C:
có th s dng hàm t to nh là mt lnh trong AutoCAD, ta đt ký hiu C: vào trc tên
hàm trong phn đnh ngha hàm t to.
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
Tham s S::Startup
Khi khi đng AutoCAD, hàm S::startup đnh ngha trong file ACADRx.lsp s đc t đng gi
và thi hành. ây là hàm duy nht có tính cht này.
5. Nhp d liu
5.1. Nhp d liu ngi dùng
Nhp ta đ mt đim : Hàm getpoint
(GetPoint [pt] [prompt])
Hàm này s tr v mt danh sách. Danh sách này thuc sng danh sách lu tr d liu (Data
Storage list). Loi danh sách này khác vi biu thc ch, phn t đu tiên ca danh sách không phi
là mt hàm. Khi ta nhp d liu vào, đ AutoCAD nhn bit đc kiu d liu danh sách ta dùng hàm
Quote (hoc du ‘).
Ví d ta v đng thng đi qua mt đim có ta đ (2,2,0) và mt đim nhn đc t ngi dùng.
(Defun C: (/PT1)
(setq PT1 (getpoint “\n Nhap diem thu nhat”))
(Command “Line” PT1 Quote(2 2 0))
)
Hoc :
(Defun C: (/PT1)
(setq PT1 (getpoint “\n Nhap diem thu nhat”))
(Command “Line” PT1 “2,2,0”)
B MÔN TIN HC XÂY DNG
KHOA CÔNG NGH THÔNG TIN
TRNG I HC XÂY DNG
KS. GV. TRN ANH BÌNH
12
)
Trình t các tham s hàm Command tng ng vi trình t nhp lnh ti dòng nhc. Cú pháp
đy đ : (Command [argument]…)
Nhp s nguyên (interger) : Hàm getint
Cú pháp : (Getint [prompt])
Ví d :
Command : (Getint “\n Enter an integer”)
12.0
Requires an integer value
Try again : 23
23
Nhp d liu s thc (real) : Hàm Getreal
Cú pháp nh sau : (Getreal [Prompt])
Nhp d liu kiu chui (string)
Cú pháp nh sau : (Getstring [Prompt])
5.2. Kim soát d liu nhp vào
Hàm getint cung cp danh sách các giá tr nhp vào hp l bng cách gán các bit kim tra (bit
code) và danh sách các t khóa. Các loi hàm nhp d liu nh Getpoint, getcorner, getint, Getreal,…
(ngoi tr hàm GetstringO đu b kim soát bi hàm initget. Hàm có tác dng đi vi hàm nhp d
liu tip theo sau nó. Cú pháp ca hàm nh sau :
(Initget [bits] [string])
• Bits là mt s nguyên. Giá tr tham s này bng tng các bit code tng ng vi các ch
đ kim soát mà t among mun
• Tham s String cha danh sách các t khóa.
Bit code Ch đ kim soát
1 Giá tr phi đc nhp vào; không chp nh giá tr null
2 Giá tr nhp vào phi khác không
4 Giá tr nhp vào không đc là s âm
128 Cho phép nhp chui ký t không có trong danh sách các t khóa. Các
bit code khác s đc u tiên trc.
Hàm GetKword
Hàm này yêu cu nhp d liu dng t khóa. Cú pháp nh sau :
(GetKWord [Prompt])
Hàm getkword ch chp nhn 2 bit code trong hàm initget là 1 và 128.
Ví d :
Command : (initget 1 “Y N”)↵
Nil
Command : (setq abc (getkword “\n ban co ghi lai khong ? <Y/N>”))↵
5.3. Bin h thng
Ly giá tr bin h thng
(Getvar Varname)
Gán giá tr bin h thng
(Setvar varname value)
Bin h thng quan trng
CmdEcho
• Value =1 : Kt qu tính toán trung gian s đc hin lên trên màn hình.
• Value =0 : Kt qu tính toán trung gian s ko đc hin lên trên màn hình.
B MÔN TIN HC XÂY DNG
KHOA CÔNG NGH THÔNG TIN
TRNG I HC XÂY DNG
KS. GV. TRN ANH BÌNH
13
6. Mt s hàm c bn
6.1. Hàm chuyn kiu d liu
Chuyn đi mt s thành s thc : Hàm (Atof String)
Command : (Atof “15.4a”)
15.4
Chuyn đi mt chui thành mt s nguyên : hàm (Atoi String)
Command : (Atof “15.4a”)
15
Chuyn đi mt s thành mt chui (real to string):Hàm (Rtos Number [mode [precision]])
• Precision : s ch s thp phân
• Mode là kiu s (scientific, decimal,…)
Mode Format
1 Scientific
2 Decimal
3 Engineering
4 Architectural
• Number : s s đc chuyn qua kiu (mode) vi s ch s thp phân đc quy đnh trong
(precision) sau đó đc chuyn thành chui tng ng. Nu không có 2 tham s này thì
AutoCAD s ly bin h thng trong Units đ thc hin phép toán.
Ví d
(Rtof 215 2) tr v : “2.15E+2”
Chuyn đi mt s nguyên thành chui : hàm (Itoa integer)
Ví d :
(Itoa 21) tr v “21”
(Itoa 30.2) tr v li
Hàm ASCII
Cú pháp : (Ascii String) : chuyn đi ký t đu tiên ca chui thành mã ký t ascii tng ng.
Ví d :
(Ascii “Abc”) tr v 65.
(Ascii “9Ac”) tr v 57.
Hàm CHR
Cú pháp : (Chr Integer) : chuyn đi mã ascii thành ký t tng ng trong bn mã ASCII. Các
mã ascii chun có giá tr t 32 đn 126.
6.2. Hàm toán hc
Hàm kim soát dng s
• (Fix Number) : tr v phn nguyên ca mt s thc.
• (Float Number) : Chuyn s Number thành kiu s thc.
• (Abs Number) : tr v tr tuyt đi ca mt s.
Hàm max,min
• (Max Number1 Number 2 …) Chú ý không chp nhn chui.
• (Mim Number1 Number 2 …)
Hàm lng giác
• (Sin Angle) Tr v giá tr ca mt góc, đn v Angle là radians.
• (Cos Angle)
• (Atan Angle). Giá tr tr v t pi/2 đn –pi/2
Hàm ly tha, khai cn, logarit
B MÔN TIN HC XÂY DNG
KHOA CÔNG NGH THÔNG TIN
TRNG I HC XÂY DNG
KS. GV. TRN ANH BÌNH
14
• (Expt Base Power)
(Expt 4.0 4) tr v giá tr 64.0
• (SQRT Number)
• (Log Number) tr v logarit ca mt s.
• (Exp Number) Tr v e m n.
6.3. Các hàm v khong cách và góc đo
Hàm Cvunit (convert units)
Cú pháp : (cvunit Value From To)
• Value : s nguyên, s thc, hoc ta đ đim 2D, 3D
• From – n v đo hin ti (kiu chui)
• To – n v đo s chuyn sang (kiu chui)
Ví d :
(Cvunit Pi “RADIANS” “DEGREE”) tr v 3.14159
(Cvunit ‘(1 3) “FT” “IN” tr v (12.0 36.0)
Hàm Angle
Cú pháp (Angle PT1 PT2) : Tr v góc (Radians) gia đng thng đi qua 2 đim vi trc X
trong mt phng XY. Nu 2 đim này không nm trên mt phng XY, nó s đc chiu lên mt phng
XY và tính góc.
Ví d
Command : (Angle ‘(5 6.10) (quote (10 5)))↵
6.06664
6.4. Các hàm v chui
Hàm hin th thông tin kiu chui
• Cú pháp : (Princ [Expr [file]] - Hàm này in ra màn hình hoc in ra file
• Cú pháp : (Print [Expr [file]] - Hàm này in ra màn hình hoc in ra file trên mt dòng mi.
• Cú pháp : (Prin1 [Expr [file]] - Hàm này in ra màn hình hoc in ra file trên mt dòng
mi.
Ví d :
Command: (princ "\nabc \nabc\n")
abc
abc
"\nabc \nabc\n"
Command: (prin1 "\nabc \nabc\n")
"\nabc \nabc\n""\nabc \nabc\n"
Command: (print "\nabc \nabc\n")
"\nabc \nabc\n" "\nabc \nabc\n"
Các ký t đc bit cho hàm Princ
• \n : xung dòng
• \t : đ cách ra nh mt khong Tab
Hàm StrCase
Cú pháp : (StrCase String [switch])
• Nu switch <> nill hàm s tr v chui String trong đó các ký t hoa đc chuyn thành ch
thng
• Nu Switch ko có hoc bng nill thì hàm s tr v chui String trong đó các k thng s
đc chuyn thành ký t hoa.
Hàm StrCat
Cú pháp : (StrCat String [string2]…) : kt ni các chui tham s.
Hàm StrLen
B MÔN TIN HC XÂY DNG
KHOA CÔNG NGH THÔNG TIN
TRNG I HC XÂY DNG
KS. GV. TRN ANH BÌNH
15
Cú pháp : (StrLen String [string]) : tr v chiu dài ca mt xâu. Nu có nhiu xâu hàm s tr v
tng chiu dài ca các xâu tham s.
Hàm SubStr
Cú pháp : (SubStr String Start [length]) : Tr v mt xâu con ca xâu String bt đu t v trí Start
và dài length ký t. Nêu không có length, nó s ly đn tn cui xâu.
7. X lý danh sách
7.1. Tng quan
Danh sách (List) đc phân làm 3 loi chính
• Biu thc (Expression list) : cha tên hàm và các tham s ca hàm. Biu thc tr v giá
tr
• Ta đ dim (Point Coordinate list) : có hàm quote hoc du ‘ đng trc. Cha ta đ
X, Y, Z ca mt đim.
• Kho d liu (Data storage List) : Cng nh Point coordinate list. Nhng nó cha d liu
bt k.
7.2. To danh sách
Tt các d liu ca AutoCAD (Auotcad database) đu đc lu di dng danh sách và đc đánh s
th t theo mã (DXF Code). Khi vit chng trình, đ qun lý d liu, thông thng ta lu vào các
bin. Nhng khi s lng lu tr d liu tng lên. Lisp không cung cp kiu d liu đng và mng
đng. gii quyt vn đ này, ta s dng kiu d liu List.
Mt trong nhiu phng pháp to ra danh sách là s dng hàm List
Cú pháp : (List expression)
Ví d
Command : (set q L1 (list “abc” 10 30.0 “hoang”)
(“abc” 10 30.0 “hoang”)
Trong ví d trên L1 có 4 phn t.
Ngoài ra ta có th s dng hàm Quote hoc du ‘ đng trc. Ví d :
Command: (setq a1 (quote("abc" 1 30 40)))↵
("abc" 1 30 40)
Hoc
Command: (setq a1 '("abc" 1 30 40))↵
("abc" 1 30 40)
S khác nhau c bn gia List và quote (hoc ‘). List to ra danh sách đnh giá tr, khi to ra
danh sách, lisp s đnh giá tr và kiu d liu tng ng cho các phn t trong danh sách. Còn quote
to ra danh sách cha đnh giá tr. Chúng ta xem xét ví d sau :
Command: (setq a2 '( a b c))↵
(A B C)
Command: (setq a2 (list a b c))↵
(nil nil nil)
(Vì a b c là 3 bin cha có giá tr)
7.3. Hàm x lý danh sách c bn
Hàm Car
Cú pháp : (Car List) : Dùng đ ly giá tr đu tiên ca danh sách.
Ví d :
Command : (Car a1)↵
“abc”
Hàm CDR
Cú pháp : (CDR list) : To ra mt danh bng cách loi b phn t đu tiên ca danh sách gc.
Ví d :
B MÔN TIN HC XÂY DNG
KHOA CÔNG NGH THÔNG TIN
TRNG I HC XÂY DNG
KS. GV. TRN ANH BÌNH
16
Command : (setq a3 (CDR a1)↵
(1 30 40)
Hàm CADR, CADDR
• (CADR list) tr v phn t th 2 ca danh sách.
• (CADDR list) tr v phn t th 3 ca danh sách.
Hàm Last
Cú pháp : (Last list) : Tr v phn t cui cùng ca danh sách.
Hàm Length
Cú pháp : (Length List) : tr v s lng phn t có trong danh sách.
7.4. Hàm x lý danh sách nâng cao
Hàm Assoc (association)
Cú pháp : (Assoc Item AList) : Danh sách Alist phi cha phn t Item, và là danh sách phc
hp. Hàm s tr v mt danh sách con ca Alist mà phn t đu tiên là Item. Nu không tìm thy phn
t Item trong Alist thì hàm s tr v giá tr nill.
Ví d :
Command: (Setq Alist '((1 "Name" "NGuyen hoang anh") (2 "Toan" 10) (3 "Ly" 6)))
((1 "Name" "NGuyen hoang anh") (2 "Toan" 10) (3 "Ly" 6))
Command: (setq Toan (assoc 2 Alist))
(2 "Toan" 10)
Command: !toan
(2 "Toan" 10)
Command: (last (assoc 2 Alist))
10
Hàm Cons (construct)
Cú pháp : (Cons Item List) – b xung phn t Item vào v trí đu tiên ca danh sách.
Ví d :
Command : (Setq AL (list (Cons ‘COLOR 4”) (Cons ‘LAYER 0”)
Hàm Member
Cú pháp : (Member Item list) : tr v mt danh sách bt đu bng phn t Item.
Ví d :
Command : (Setq L ‘(1 2 3 4 5)↵
( 1 2 3 4 5)
Command : (member 3 L)↵
(3 4 5)
Hàm Append
Cú pháp : (Append list1 list2 … ) : Gp nhiu danh sách thành mt danh sách.
Command : (setq L2 (Append (member 3 L) (list 6)))
(3 4 5 6)
8. Biu thc điu kin
8.1. Biu thc điu kin
Các hàm so sánh
Hàm Cú pháp Gii thích
= (= Atom Atom ) Tr v giá tr T nu tt c các phn t bng nhau.
Tham s kiu s hoc kiu chui.
/= (/= Atom Atom ) Tr v T nu các phn t đôi mt khác nhau
B MÔN TIN HC XÂY DNG
KHOA CÔNG NGH THÔNG TIN
TRNG I HC XÂY DNG
KS. GV. TRN ANH BÌNH
17
< (< Atom Atom ) Tr v T nu mi phn t nh hn phn t đng
bên phi nó
<=; >=; > Tng t Tng t
EQ (EQ Expr1 Expr2) So sánh s trùng nhau ca 2 danh sách.
Equal (Equal Expr1 Expr2
[fuzz]
Hàm đnh giá tr các biu thc và kim tra các giá
tr này có bng nhau hay không. i vi d liu
kiu s Fuzz quy đnh sai s trong phép so sánh
Các hàm kim tra d liu
Hàm Cú pháp Gii thích
Atom (Atom Item.) Tr v giá tr Nil nu Item là list
Listp (Listp Item) Tr v T nu Item là danh sách hoc giá tr Nill
Numberp (numberp Item) Tr v T nu giá tr là s nguyên
Minusp (minusp Item) Tr v T nu giá tr là s âm
Zerop (Zerop Item) Tr v T nu d liu =0 or 0.0
Null (Null Item) Kim tra mt bin có rng hay ko
Type (Type Item) Tr v kiu d liu ca bin
8.2. Hàm If và Progn
Cu trúc r nhánh vi If
Cú pháp :
• (If LogicExpr ThenExpr)
• (If LogicExpr ThenExpr ElseExpr)
Chú ý :
• Hàm If ch chp nhn mt biu thc ThenExpr và ElseExpr. Nu s dng nhiu hn mt
biu thc thì phi s dng cu trúc Progn
• (Progn Expression ….)
Ví d :
(DEFUN C:11 ()
(if (= (getvar "pickstyle") 0) (setvar "pickstyle" 1) (setvar "pickstyle" 0))
(PRINC)
)
Bài tp
• Gii phng trình bc nht
• Nhp vào 2 đim, kim tra xem chúng có nm trong gii hn Limmax và Limmin hay
không. Nu có hãy đa ra khong cách gia 2 đim đó. S dng hàm (Distance PT1
PT2).
8.3. Hàm logic
(Setq A 10 b 20 c 30)
Hàm Cú pháp Ví d
And (And Expression ) (And (> 10 0) (< 10 20)) tr v giá tr T
Or (or Expression ) (Or (= A 10) (< b 0)) tr v giát tr T
Not (Not Item) (Not nill) = T. (Not T) = nill
B MÔN TIN HC XÂY DNG
KHOA CÔNG NGH THÔNG TIN
TRNG I HC XÂY DNG
KS. GV. TRN ANH BÌNH
18
8.4. Hàm Cond (Condition)
Hàm if cho phép ta r ti đa 2 nhánh. Hàm Cond giúp ta r nhiu hn 2 nhánh. Cú pháp hàm nh
sau :
(Cound
(Test1 result1 … )
(Test2 result2 … )
……
(Testn resultn … )
)
Bài tp
• Gii phng trình bc 2.
9. Vòng lp
9.1. Vòng lp c bn
Vòng lp Repeat.
Hàm Repeat to ra vòng lp vi s ln nht đnh
Cú pháp : (Repeat Number Expr )
Ví d :
(Setq I 10)
(setq j 1)
(Repeat 10
(setq i (+ 2 i)
(setq j (* 2 j)
) ; kt thúc hàm repeat
Lp 10 ln khi đó I = 10+2*10 = 30; j= 2^10.
Vòng lp While.
Hàm while to ra vòng lp có điu kin. Vòng lp này s jt thúc khi điu kin Testexpr không
tha mãn.
Cú pháp : (While testexpr Expr )
Ví d : V đng thng đi qua 2 đim
(defun c:L2P (/ ch PT1 pt2)
(setq ch "Y")
(while (or (= ch "Y") (= ch "y") )
(setq PT1 (getpoint "\nnh?p vào ?i?m th? nh?t : "))
(setq PT2 (getpoint "\nnh?p vào ?i?m th? hai : "))
(command "Line" PT1 PT2 "")
(initget 1 "Y N y n")
(Setq ch (getkword "\n b?n có v? n?a không (Y/N) : "))
); ket thuc while
); ket thuc defun
9.2. Hàm foreach
Cú pháp : (Foreach Name List Expr …)
Hàm Foreach duyt tng phn t trong danh sách LIST. Ti mi thi đim, giá tr ca tng phn
t trong danh sách s đc gán cho bin Name. Sau đó các biu thc Expr s đc đnh giá tr.
Ví d :
(setq I 0)
(foreach So (list 1 2 3 4 5 6 7 8 9 10)
(Setq I (1+ i))
(Princ (Strcat “\nCác giá tr th “ (itoa i) “trong danh sách là” (itoa so)))
)
B MÔN TIN HC XÂY DNG
KHOA CÔNG NGH THÔNG TIN
TRNG I HC XÂY DNG
KS. GV. TRN ANH BÌNH
19
10. Tp hp các đi tng đc chn
10.1. Hàm Ssget
Hàm SSget
Cú pháp : (Ssget [Mode][PT1][PT2][PT-List][Filter-List])
Mode Phng pháp chn Cú pháp
None S dng mi phng pháp chn (hay dùng) (Ssget)
<Point> Chn đi tng đi qua đim Point (Ssget point)
“L” Last: chn đi tng đc to ra cui cùng (Ssget “l”)
“P” Previous (ssget “p”)
“W” Window (Ssget “W” PT1 PT2)
“C” Crossing window (Ssget “C” PT1 PT2)
“F” Fence (Ssget “F” PT-list
“WP” Window polygon (ssget “wp” PT-list
“CP” Crossing polygon (ssget “cp” PT-list
“X” All (ssget “x”)
Ví d :
Setq PT1 ‘(0 0 0) PT2 ‘(4 0 0) PT3 ‘(4 4 0) PT4 ‘(0 4 0))
(setq SS (ssget “WP” (list pt1 pt2 pt3 pt4)))
Bng Group code.
S dng filter
Ví d :
(ssget ‘( (0 . ”text”) (40 . 2.5)))
(ssget ‘( (0 . ”line”) (62 . 4)))
S dng các phép so sánh. Chú ý các phép so sánh ch áp dng đi vi các group code có kiu s
(nguyên hoc thc). Các phép so sánh bao gm “*” “=” “/=” “!=” “>” ”<” “>=” “<=” “<>”
Ví d :
(Ssget ‘((0 . “Circle”) (-4 . “<>”) (40 . 50) (-4 . “>, <,*”) (10 0.0 0.0 0.0)))
ng tròn bán kính group code 40, to đ tâm group code 10
S dng các phép toán logic. Các phép toán logic And Or Not
Ví d :
(Ssget “X” ‘((-4 . “<OR”) (0 . “Text”) (0 . “Line”) (0 . “Circle”) (-4 . “Or>”)))
Mt vài group code : to đ đim đu, cui ca Line : 10,11. Giá tr Text : 12.
10.2. Hàm SSLength
Cú pháp : (SSlength ss)
10.3. SSName
Cú pháp : (Ssname ss index) : tr v tên ca đi tng th index trong tp hp chn SS. (lu ý :
s đu tiên ca tp hp chn index=0).
Ví d xóa phn t th nht ca danh sách chn
(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)))
B MÔN TIN HC XÂY DNG
KHOA CÔNG NGH THÔNG TIN
TRNG I HC XÂY DNG
KS. GV. TRN ANH BÌNH
20
11. Lp trình vi c s d liu ca AutoCAD.
11.1. Ly Record d liu đi tng
Hàm EntGet (entity get)
Cú pháp : (ENTGET entname) : tr v danh sách biu din Record d liu ca đi tng có mã
là entname.
11.2. Hiu chnh record đi tng
Các bc hiu chnh
• To ra record mi cha các field đã thay đi bng hàm Subst.
• Thay th Record c ca đi tng bng record mi bng hàm Entmod.
• Cp nht s thay đi ca đi tng lên màn hình (thay cho lnh regen). S dng hàm
EntUpd
Hàm Subst
to ra mt record mi bng cách s đi mt s phn t ca record c.
Cú pháp : (Subst new_Item Old_Item list)
Nu không tìm thy old_Item, hàm s tr v danh sách ging danh sách ban đu.
Ví d :
(Setq al ‘(A 22 34 “yes” B 22))
(Subst 22 11 al) tr v A 11 34 “yes” B 22
(setq El ‘((-1.<entity name 2d3314>) (0.”Line”) (5. ”20”) (100. “ACDB
entity”) (67 . 0) (8 . “0”) (100 . “acdbline”) (10 0 0 0) (11 5.0 5.0 0))
(setq el (subst ‘(8 . “Layer Dim”) ‘(8 . 0) EL))
Hàm Entmode
Hàm entmode thay th record c trong c s d liu bng mt record mi.
Cú pháp : (Entmode Elist)
Elist là mt danh sách có dng mt record đi tng trong đó mã đi tng nm group code -1.
Hàm này s tìm trong c s d liu đi tng có mã nh trong code -1 và thc hin vic thay th.
Các trng hp không th thay th đc hàm s tr v giá tr nill :
• Không tìm thy đi tng
• Thay đi mã đi tng
• Thay đi mã handle
• Hiu chnh đi tng viewport
• Thay đi kiu đi tng,,,
Hàm Entity update
Cú pháp : (EntUpd Ename) : Dùng đ cp nht s thay đi record ca đi tng có tên là Ename
lên màn hình đ ha.
11.3. To đi tng mi.
Hàm (entmake Elist) to ra đi tng mi
Các quy đnh cho elist
• Tham s elist không nht thit phi có đ các thông s
• Field th nht bt buc phi là group code 0 cha kiu đi tng
• Mã đi tng AutoCAD s t đt khi đi tng đc to ra
12. Phân tích ví d :
;*******************************************************************************
;* TRAN ANH BINH CDC-HUCE *
;*******************************************************************************
(defun myerror (s) ; If an error (such as CTRL-C) occurs
; while this command is active
B MÔN TIN HC XÂY DNG
KHOA CÔNG NGH THÔNG TIN
TRNG I HC XÂY DNG
KS. GV. TRN ANH BÌNH
21
(cond
((= s "quit / exit abort") (princ))
((/= s "Function cancelled") (princ (strcat "\nError: " s)))
)
(setvar "cmdecho" CMD) ; Restore saved modes
(setvar "osmode" OSM)
(setq *error* OLDERR) ; Restore old *error* handler
(princ)
)
;*******************************************************************************
(DEFUN C:CD (/ CMD SS LTH DEM PT DS KDL N70 GOCX GOCY PT13 PT14 PTI PT13I PT14I
PT13N PT14N O13 O14 N13 N14 OSM OLDERR PT10 PT11)
(SETQ CMD (GETVAR "CMDECHO"))
(SETQ OSM (GETVAR "OSMODE"))
(SETQ OLDERR *error*
*error* myerror)
(PRINC "Please select dimension object!")
(SETQ SS (SSGET))
(SETVAR "CMDECHO" 0)
(SETQ PT (GETPOINT "Point to trim or extend:"))
(SETQ PT (TRANS PT 1 0)) ; chuyen tu current UCS sang WCS (world)
(COMMAND "UCS" "W")
(SETQ LTH (SSLENGTH SS))
(SETQ DEM 0)
(WHILE (< DEM LTH)
(PROGN
(SETQ DS (ENTGET (SSNAME SS DEM)))
(SETQ KDL (CDR (ASSOC 0 DS)))
(IF (= "DIMENSION" KDL)
(PROGN
(SETQ PT10 (CDR (ASSOC 10 DS)))
(SETQ PT11 (CDR (ASSOC 11 DS)))
(SETQ PT13 (CDR (ASSOC 13 DS)))
(SETQ PT14 (CDR (ASSOC 14 DS)))
(SETQ N70 (CDR (ASSOC 70 DS)))
(IF (OR (= N70 32) (= N70 33) (= N70 160) (= N70 161))
(PROGN
(SETQ GOCY (ANGLE PT10 PT14))
(SETQ GOCX (+ GOCY (/ PI 2)))
)
)
(SETVAR "OSMODE" 0)
(SETQ PTI (POLAR PT GOCX 2))
(SETQ PT13I (POLAR PT13 GOCY 2)) ; tao ra mot diem moi
(SETQ PT14I (POLAR PT14 GOCY 2)) ; (polar PT angle distance)
(SETQ PT13N (INTERS PT PTI PT13 PT13I NIL)) ; nill thi cac duong thang se dc keo
dai,
(SETQ PT14N (INTERS PT PTI PT14 PT14I NIL)); kha nill thi se khong dc keo dai
(SETQ O13 (ASSOC 13 DS))
(SETQ O14 (ASSOC 14 DS))
(SETQ N13 (CONS 13 PT13N))
(SETQ N14 (CONS 14 PT14N))
B MÔN TIN HC XÂY DNG
KHOA CÔNG NGH THÔNG TIN
TRNG I HC XÂY DNG
KS. GV. TRN ANH BÌNH
22
(SETQ DS (SUBST N13 O13 DS))
(SETQ DS (SUBST N14 O14 DS))
(ENTMOD DS)
)
)
(SETQ DEM (+ DEM 1))
)
)
(COMMAND "UCS" "P")
(SETVAR "CMDECHO" CMD)
(SETVAR "OSMODE" OSM)
(setq *error* OLDERR) ; Restore old *error* handler
(PRINC)
)
;******************************************************************************
B MÔN TIN HC XÂY DNG
KHOA CÔNG NGH THÔNG TIN
TRNG I HC XÂY DNG
KS. GV. TRN ANH BÌNH
23
IV. Ngôn ng lp trình Visual Lisp
V. C bn v ngôn ng lp trình Visual Basic
VI. Làm quen vi VBA.
1. VBA Projects
Chng trình VBA đc t chc trong các project, 1 Project là tp hp các module: mã, lp,
form
VBA Project có th đc lu trong file bn v DWG (ch đ nhúng) hoc đc lu trong 1 file
riêng (*.DVB)
2. To mi project
• M VBA Manager,
Chn menu Tools/Macro/VBA Manager. Hoc trên command line, gõ lnh VBAMAN.
• To mi VBA project
M VBA Manager, chn New, project mi s có tên là ACADProject.
• i tên project.
Bn phi s dng VBA IDE, nhn Alt+F11, click phi chut vào tên project, nhn Rename
• Lu ct (save) project
Project nhúng đc lu khi lu bn v
Project ko nhúng phi lu qua VBA IDE (chc nng File/Save) hoc VBA Manager
• Ti (load) 1 project đã có
Project nhúng đc load ngay khi bn m bn v cha nó
Project không nhúng đc lu li di dng file *.DVB, đ load project này: trên ca s VBA
Manager, nhn nút Load.
Trên hp thoi OpenFile, chn file DVB can mo
xem ni dung cua Project, nhan Alt+F11 hoac dung lenh VBAIDE tren dong command-line
3. T chc các project vi VBA Manager
Gii thiu chc nng các nút trong hp thoi VBA Manager
4. Son tho project vi VBA IDE
B MÔN TIN HC XÂY DNG
KHOA CÔNG NGH THÔNG TIN
TRNG I HC XÂY DNG
KS. GV. TRN ANH BÌNH
24
Gii thiu các ca s ca VBA IDE
Ca s Project Manager
Objects (đi tng)
Forms
Gm các hp thoi do ngi lp trình to ra, s dng trong project
Modules
Các hàm dùng chung trong toàn b Project đc t chc trong các module riêng (ph thuc vào
chc nng ca chúng)
Class Modules
nh ngha các lp đi tng ca ngi dùng
thêm 1 component (form, module, class module) vào project
Chn project cn thêm thành phn - component
Trên menu [Insert], chn [UserForm], [Module], [Class Module] đ thêm các thành phn này
vào Project
Module, Class module đc son tho trên ca s Code
UserForm đc son tho trên ca s UserForm
son tho các thành phn
Trên ca s Project Explorer, chn thành phn cn son tho
Nhn nút [View code] đ m ca s Code
Nhn nút [View object] đ m ca s UserForm
S dng Option Explicit
Thêm các ActiveX :
B MÔN TIN HC XÂY DNG
KHOA CÔNG NGH THÔNG TIN
TRNG I HC XÂY DNG
KS. GV. TRN ANH BÌNH
25
S dng trình son tho Code : Text
Editor.
5. Làm vic vi các Macro
• m ca s Macro
Chn menu Tools/Macro/Macro.
Hoc s dng lnh VBARUN trên dòng command-line
Hp thoi Macro lit kê tt c các hàm ca bn v, project (tu theo la chn ti mc [Macro in])
• chy Macro
M hp thoi Macro
Nhn nút [Run]
• sa Macro
M hp thoi Macro
Nhn nút [Edit]
• to Macro mi
Trên mc [Macro name], nhp vào tên ca Macro
Nhn nút [Create]
Trên hp thoi [Select project] chn project đ to Macro
VII. Cn bn v VBA.
1. Mô hình đi tng ca AutoCAD.
Hu nh mi Server Activex Automation cung cp nhiu hn mt đi tng cho các client.
AutoCAD cung cp cho các client Activex Automation khong 100 đi tng, vi tng s 2500
phng thc và thuc tính. Do vy CAD có mt khung làm vic đn gin d hiu đ qun lý tt c các
đi tng và mi quan h gia chúng.
2. Object Hierarchy.
Gi thiu :
B MÔN TIN HC XÂY DNG
KHOA CÔNG NGH THÔNG TIN
TRNG I HC XÂY DNG