Tải bản đầy đủ (.pdf) (101 trang)

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.65 MB, 101 trang )










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 :

-
Mail 2 :


ó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
KS. GV. TRN ANH BÌNH


11
Ngoài các hàm AutoCAD cung cp, ta còn có th to ra các hàm t to.
nh ngha hàm t to
Bng cách s dng hàm Defun (define function). Cú pháp nh sau :
(Defun Function_Name Argument_List expresstion…)
• Function_Name : tên hàm t to. Tuân theo quy tc đt tên bin
• Argument_List : gm hai phn ngn cách nhau bi du /, Phn th nht cha các tham s
cn thit khi gi là hàm. Phn th hai ch các bin cc b ca hàm.
• Expression : các biu thc tính toán ca hàm. Các biu thc này s ln lt đc tính toán
theo th t t trên xung di.
Ví d :
(Defun ZA()
(command “Zoom” “all”)
)
Bin toàn cc và bin cc b
• Bin toàn cc là các bin hot đng trong phm vi bn v
• Bin cc b là bin đc đnh ngha trong phm vi hàm và giá tr ca nó s mt đi khi hàm
kt thúc.
4.3. To lnh AutoCAD mi.

Tham s C:
 có th s dng hàm t to nh là mt lnh trong AutoCAD, ta đt ký hiu C: vào trc tên
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
Tham s S::Startup
Khi khi đng AutoCAD, hàm S::startup đnh ngha trong file ACADRx.lsp s đc t đng gi
và thi hành. ây là hàm duy nht có tính cht này.
5. Nhp d liu
5.1. Nhp d liu ngi dùng
Nhp ta đ mt đim : Hàm getpoint
(GetPoint [pt] [prompt])
Hàm này s tr v mt danh sách. Danh sách này thuc sng danh sách lu tr d liu (Data
Storage list). Loi danh sách này khác vi biu thc  ch, phn t đu tiên ca danh sách không phi
là mt hàm. Khi ta nhp d liu 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”)

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


12
)
Trình t các tham s hàm Command tng ng vi trình t nhp lnh ti dòng nhc. Cú pháp
đy đ : (Command [argument]…)

Nhp 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
Nhp d liu s thc (real) : Hàm Getreal
Cú pháp nh sau : (Getreal [Prompt])
Nhp d liu kiu chui (string)
Cú pháp nh sau : (Getstring [Prompt])
5.2. Kim soát d liu nhp vào
Hàm getint cung cp danh sách các giá tr nhp vào hp l bng cách gán các bit kim tra (bit
code) và danh sách các t khóa. Các loi hàm nhp d liu nh Getpoint, getcorner, getint, Getreal,…
(ngoi tr hàm GetstringO đu b kim soát bi hàm initget. Hàm có tác dng đi vi hàm nhp d
liu tip theo sau nó. Cú pháp ca hàm nh sau :
(Initget [bits] [string])
• Bits là mt s nguyên. Giá tr tham s này bng tng các bit code tng ng vi các ch
đ kim soát mà t among mun
• Tham s String cha danh sách các t khóa.
Bit code Ch đ kim soát
1 Giá tr phi đc nhp vào; không chp nh giá tr null
2 Giá tr nhp vào phi khác không
4 Giá tr nhp vào không đc là s âm
128 Cho phép nhp chui 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 trc.
Hàm GetKword
Hàm này yêu cu nhp d liu  dng t khóa. Cú pháp nh sau :
(GetKWord [Prompt])

Hàm getkword ch chp nhn 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. Bin h thng
Ly giá tr bin h thng
(Getvar Varname)
Gán giá tr bin h thng
(Setvar varname value)
Bin h thng quan trng
CmdEcho
• Value =1 : Kt qu tính toán trung gian s đc hin lên trên màn hình.
• Value =0 : Kt qu tính toán trung gian s ko đc hin lên trên màn hình.
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


13
6. Mt s hàm c bn
6.1. Hàm chuyn kiu d liu
Chuyn đi mt s thành s thc : Hàm (Atof String)
Command : (Atof “15.4a”)
15.4
Chuyn đi mt chui thành mt s nguyên : hàm (Atoi String)
Command : (Atof “15.4a”)
15
Chuyn đi mt s thành mt chui (real to string):Hàm (Rtos Number [mode [precision]])
• Precision : s ch s thp phân
• Mode là kiu s (scientific, decimal,…)
Mode Format
1 Scientific
2 Decimal
3 Engineering
4 Architectural
• Number : s s đc chuyn qua kiu (mode) vi s ch s thp phân đc quy đnh trong
(precision) sau đó đc chuyn thành chui tng ng. Nu không có 2 tham s này thì
AutoCAD s ly bin h thng trong Units đ thc hin phép toán.

Ví d
(Rtof 215 2) tr v : “2.15E+2”
Chuyn đi mt s nguyên thành chui : hàm (Itoa integer)
Ví d :
(Itoa 21) tr v “21”
(Itoa 30.2) tr v li
Hàm ASCII
Cú pháp : (Ascii String) : chuyn đi ký t đu tiên ca chui thành mã ký t ascii tng ng.
Ví d :
(Ascii “Abc”) tr v 65.
(Ascii “9Ac”) tr v 57.
Hàm CHR
Cú pháp : (Chr Integer) : chuyn đi mã ascii thành ký t tng ng trong bn mã ASCII. Các
mã ascii chun có giá tr t 32 đn 126.
6.2. Hàm toán hc
Hàm kim soát dng s
• (Fix Number) : tr v phn nguyên ca mt s thc.
• (Float Number) : Chuyn s Number thành kiu s thc.
• (Abs Number) : tr v tr tuyt đi ca mt s.
Hàm max,min
• (Max Number1 Number 2 …) Chú ý không chp nhn chui.
• (Mim Number1 Number 2 …)
Hàm lng giác
• (Sin Angle) Tr v giá tr ca mt góc, đn v Angle là radians.
• (Cos Angle)
• (Atan Angle). Giá tr tr v t pi/2 đn –pi/2
Hàm ly tha, khai cn, logarit
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


14
• (Expt Base Power)
(Expt 4.0 4) tr v giá tr 64.0
• (SQRT Number)
• (Log Number) tr v logarit ca mt s.
• (Exp Number) Tr v e m n.
6.3. Các hàm v khong cách và góc đo

Hàm Cvunit (convert units)
Cú pháp : (cvunit Value From To)
• Value : s nguyên, s thc, hoc ta đ đim 2D, 3D
• From – n v đo hin ti (kiu chui)
• To – n v đo s chuyn sang (kiu chui)
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) gia đng thng đi qua 2 đim vi trc X
trong mt phng XY. Nu 2 đim này không nm trên mt phng XY, nó s đc chiu lên mt phng
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 chui
Hàm hin th thông tin kiu chui
• Cú pháp : (Princ [Expr [file]] - Hàm này in ra màn hình hoc in ra file
• Cú pháp : (Print [Expr [file]] - Hàm này in ra màn hình hoc in ra file trên mt dòng mi.
• Cú pháp : (Prin1 [Expr [file]] - Hàm này in ra màn hình hoc in ra file trên mt dòng
mi.
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 bit cho hàm Princ
• \n : xung dòng
• \t : đ cách ra nh mt khong Tab
Hàm StrCase
Cú pháp : (StrCase String [switch])
• Nu switch <> nill hàm s tr v chui String trong đó các ký t hoa đc chuyn thành ch
thng
• Nu Switch ko có hoc bng nill thì hàm s tr v chui String trong đó các k thng s
đc chuyn thành ký t hoa.
Hàm StrCat
Cú pháp : (StrCat String [string2]…) : kt ni các chui tham s.
Hàm StrLen
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


15
Cú pháp : (StrLen String [string]) : tr v chiu dài ca mt xâu. Nu có nhiu xâu hàm s tr v
tng chiu dài ca các xâu tham s.
Hàm SubStr
Cú pháp : (SubStr String Start [length]) : Tr v mt xâu con ca xâu String bt đu t v trí Start
và dài length ký t. Nêu không có length, nó s ly đn tn cui xâu.
7. X lý danh sách
7.1. Tng quan
Danh sách (List) đc phân làm 3 loi chính
• Biu thc (Expression list) : cha tên hàm và các tham s ca hàm. Biu thc tr v giá
tr
• Ta đ dim (Point Coordinate list) : có hàm quote hoc du ‘  đng trc. Cha ta đ
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t k.
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t vn đ này, ta s dng kiu d liu List.
Mt trong nhiu phng pháp to ra danh sách là s dng 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 phn t.
Ngoài ra ta có th s dng hàm Quote hoc du ‘  đng trc. Ví d :
Command: (setq a1 (quote("abc" 1 30 40)))↵
("abc" 1 30 40)

Hoc
Command: (setq a1 '("abc" 1 30 40))↵
("abc" 1 30 40)
S khác nhau c bn gia List và quote (hoc ‘). List to ra danh sách đnh giá tr, khi to ra
danh sách, lisp s đnh giá tr và kiu d liu tng ng cho các phn t trong danh sách. Còn quote
to ra danh sách cha đ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 bin cha có giá tr)
7.3. Hàm x lý danh sách c bn
Hàm Car
Cú pháp : (Car List) : Dùng đ ly giá tr đu tiên ca danh sách.
Ví d :
Command : (Car a1)↵
“abc”
Hàm CDR
Cú pháp : (CDR list) : To ra mt danh bng cách loi b phn t đu tiên ca danh sách gc.
Ví d :
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


16
Command : (setq a3 (CDR a1)↵
(1 30 40)
Hàm CADR, CADDR
• (CADR list) tr v phn t th 2 ca danh sách.
• (CADDR list) tr v phn t th 3 ca danh sách.

Hàm Last
Cú pháp : (Last list) : Tr v phn t cui cùng ca danh sách.
Hàm Length
Cú pháp : (Length List) : tr v s lng phn 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 phi cha phn t Item, và là danh sách phc
hp. Hàm s tr v mt danh sách con ca Alist mà phn t đu tiên là Item. Nu không tìm thy phn
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 phn t Item vào v trí đu tiên ca 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 mt danh sách bt đu bng phn 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 … ) : Gp nhiu danh sách thành mt danh sách.
Command : (setq L2 (Append (member 3 L) (list 6)))
(3 4 5 6)
8. Biu thc điu kin
8.1. Biu thc điu kin
Các hàm so sánh
Hàm Cú pháp Gii thích
= (= Atom Atom ) Tr v giá tr T nu tt c các phn t bng nhau.
Tham s kiu s hoc kiu chui.
/= (/= Atom Atom ) Tr v T nu các phn t đôi mt khác nhau
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


17
< (< Atom Atom ) Tr v T nu mi phn t nh hn phn t đng
bên phi nó
<=; >=; > Tng t Tng t
EQ (EQ Expr1 Expr2) So sánh s trùng nhau ca 2 danh sách.
Equal (Equal Expr1 Expr2
[fuzz]
Hàm đnh giá tr các biu thc và kim tra các giá
tr này có bng nhau hay không. i vi d liu
kiu s Fuzz quy đnh sai s trong phép so sánh
Các hàm kim tra d liu
Hàm Cú pháp Gii thích
Atom (Atom Item.) Tr v giá tr Nil nu Item là list
Listp (Listp Item) Tr v T nu Item là danh sách hoc giá tr Nill
Numberp (numberp Item) Tr v T nu giá tr là s nguyên
Minusp (minusp Item) Tr v T nu giá tr là s âm
Zerop (Zerop Item) Tr v T nu d liu =0 or 0.0
Null (Null Item) Kim tra mt bin có rng hay ko
Type (Type Item) Tr v kiu d liu ca bin

8.2. Hàm If và Progn
Cu trúc r nhánh vi If
Cú pháp :
• (If LogicExpr ThenExpr)

• (If LogicExpr ThenExpr ElseExpr)
Chú ý :
• Hàm If ch chp nhn mt biu thc ThenExpr và ElseExpr. Nu s dng nhiu hn mt
biu thc thì phi s dng cu trúc Progn
• (Progn Expression ….)
Ví d :
(DEFUN C:11 ()
(if (= (getvar "pickstyle") 0) (setvar "pickstyle" 1) (setvar "pickstyle" 0))
(PRINC)
)
Bài tp
• Gii phng trình bc nht
• Nhp vào 2 đim, kim tra xem chúng có nm trong gii hn Limmax và Limmin hay
không. Nu có hãy đa ra khong cách gia 2 đim đó. S dng 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 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


18

8.4. Hàm Cond (Condition)
Hàm if cho phép ta r ti đa 2 nhánh. Hàm Cond giúp ta r nhiu hn 2 nhánh. Cú pháp hàm nh
sau :
(Cound
(Test1 result1 … )
(Test2 result2 … )
……
(Testn resultn … )
)
Bài tp
• Gii phng trình bc 2.

9. Vòng lp
9.1. Vòng lp c bn
Vòng lp Repeat.
Hàm Repeat to ra vòng lp vi s ln nht đ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)
) ; kt thúc hàm repeat
Lp 10 ln khi đó I = 10+2*10 = 30; j= 2^10.
Vòng lp While.
Hàm while to ra vòng lp có điu kin. Vòng lp này s jt thúc khi điu kin Testexpr không
tha mãn.
Cú pháp : (While testexpr Expr )
Ví d : V đng thng đi qua 2 đim
(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 duyt tng phn t trong danh sách LIST. Ti mi thi đim, giá tr ca tng phn
t trong danh sách s đc gán cho bin Name. Sau đó các biu thc 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 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


19
10. Tp hp các đi tng đc chn
10.1. Hàm Ssget
Hàm SSget
Cú pháp : (Ssget [Mode][PT1][PT2][PT-List][Filter-List])
Mode Phng pháp chn Cú pháp
None S dng mi phng pháp chn (hay dùng) (Ssget)
<Point> Chn đi tng đi qua đim Point (Ssget point)
“L” Last: chn đi tng đc to ra cui 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)))
Bng Group code.

S dng filter
Ví d :
(ssget ‘( (0 . ”text”) (40 . 2.5)))
(ssget ‘( (0 . ”line”) (62 . 4)))
S dng các phép so sánh. Chú ý các phép so sánh ch áp dng đi vi các group code có kiu s

(nguyên hoc thc). Các phép so sánh bao gm “*” “=” “/=” “!=” “>” ”<” “>=” “<=” “<>”
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 dng 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>”)))
Mt vài group code : to đ đim đu, cui ca 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 ca đi tng th index trong tp hp chn SS. (lu ý :
s đu tiên ca tp hp chn index=0).
Ví d xóa phn t th nht ca danh sách chn
(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 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


20
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 đi tng có mã
là entname.
11.2. Hiu chnh record đi tng
Các bc hiu chnh
• To ra record mi cha các field đã thay đi bng hàm Subst.
• Thay th Record c ca đi tng bng record mi bng hàm Entmod.
• Cp nht s thay đi ca đi tng lên màn hình (thay cho lnh regen). S dng hàm
EntUpd
Hàm Subst
 to ra mt record mi bng cách s đi mt s phn t ca record c.
Cú pháp : (Subst new_Item Old_Item list)

Nu không tìm thy old_Item, hàm s tr v danh sách ging 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 liu bng mt record mi.
Cú pháp : (Entmode Elist)
Elist là mt danh sách có dng mt record đi tng trong đó mã đi tng nm  group code -1.
Hàm này s tìm trong c s d liu đi tng có mã nh trong code -1 và thc hin vic thay th.
Các trng hp không th thay th đc hàm s tr v giá tr nill :
• Không tìm thy đi tng
• Thay đi mã đi tng
• Thay đi mã handle
• Hiu chnh đi tng viewport
• Thay đi kiu đi tng,,,
Hàm Entity update
Cú pháp : (EntUpd Ename) : Dùng đ cp nht s thay đi record ca đi tng có tên là Ename
lên màn hình đ ha.
11.3. To đi tng mi.
Hàm (entmake Elist) to ra đi tng mi
Các quy đnh cho elist
• Tham s elist không nht thit phi có đ các thông s
• Field th nht bt buc phi là group code 0 cha kiu đi tng
• Mã đi tng AutoCAD s t đt khi đi tng đc to 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 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



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


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



23

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
Chng trình VBA đc t chc trong các project, 1 Project là tp hp các module: mã, lp,
form
VBA Project có th đc lu trong file bn v DWG (ch đ nhúng) hoc đc lu trong 1 file
riêng (*.DVB)
2. To mi project
• M VBA Manager,
Chn menu Tools/Macro/VBA Manager. Hoc trên command line, gõ lnh VBAMAN.
• To mi VBA project
M VBA Manager, chn New, project mi s có tên là ACADProject.
• i tên project.
Bn phi s dng VBA IDE, nhn Alt+F11, click phi chut vào tên project, nhn Rename
• Lu ct (save) project
Project nhúng đc lu khi lu bn v
Project ko nhúng phi lu qua VBA IDE (chc nng File/Save) hoc VBA Manager
• Ti (load) 1 project đã có
Project nhúng đc load ngay khi bn m bn v cha nó
Project không nhúng đc lu li di dng file *.DVB, đ load project này: trên ca s VBA
Manager, nhn nút Load.
Trên hp thoi OpenFile, chn file DVB can mo
 xem ni dung cua Project, nhan Alt+F11 hoac dung lenh VBAIDE tren dong command-line
3. T chc các project vi VBA Manager

Gii thiu chc nng các nút trong hp thoi VBA Manager

4. Son tho project vi VBA IDE
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


24

Gii thiu các ca s ca VBA IDE



Ca s Project Manager
Objects (đi tng)
Forms
Gm các hp thoi do ngi lp trình to ra, s dng trong project
Modules
Các hàm dùng chung trong toàn b Project đc t chc trong các module riêng (ph thuc vào
chc nng ca chúng)
Class Modules
nh ngha các lp đi tng ca ngi dùng
 thêm 1 component (form, module, class module) vào project
Chn project cn thêm thành phn - component
Trên menu [Insert], chn [UserForm], [Module], [Class Module] đ thêm các thành phn này
vào Project
Module, Class module đc son tho trên ca s Code
UserForm đc son tho trên ca s UserForm
 son tho các thành phn
Trên ca s Project Explorer, chn thành phn cn son tho
Nhn nút [View code] đ m ca s Code
Nhn nút [View object] đ m ca s UserForm
S dng Option Explicit


Thêm các ActiveX :
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


25





S dng trình son tho Code : Text

Editor.

5. Làm vic vi các Macro
•  m ca s Macro
Chn menu Tools/Macro/Macro.
Hoc s dng lnh VBARUN trên dòng command-line
Hp thoi Macro lit kê tt c các hàm ca bn v, project (tu theo la chn ti mc [Macro in])
•  chy Macro
M hp thoi Macro
Nhn nút [Run]
•  sa Macro
M hp thoi Macro
Nhn nút [Edit]
•  to Macro mi
Trên mc [Macro name], nhp vào tên ca Macro
Nhn nút [Create]
Trên hp thoi [Select project] chn project đ to Macro
VII. Cn bn v VBA.
1. Mô hình đi tng ca AutoCAD.
Hu nh mi Server Activex Automation cung cp nhiu hn mt đi tng cho các client.
AutoCAD cung cp cho các client Activex Automation khong 100 đi tng, vi tng s 2500
phng thc và thuc tính. Do vy CAD có mt khung làm vic đn gin d hiu đ qun lý tt c các
đi tng và mi quan h gia chúng.
2. Object Hierarchy.
Gi thiu :

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

×