Professional Documents
Culture Documents
Auto Lisp
Auto Lisp
Ngn ng AUTOLISP
2. Cc qui c ca AutoLisp:
a) Cch vit chng trnh ca AutoLisp
C 2 cch vit chng trnh AutoLisp:
- Vit trc tip:
Ti dng nhc Command: ca AutoCad ta c th g cc cu lnh theo c php ca AutoLisp.
Lnh ny s c thc thi ngay v cho kt qu trn mm hnh ti vng dng lnh, nhng lnh ny
khng lu tr c.
- Vit thnh chng trnh:
Dng chng trnh son tho (dng m ASCII) bt k hoc Visual LISP, vit thnh chng trnh
nh mt tp tin ngun c phn m rng *.lsp
Tn tp tun th theo qui c ca h iu hnh, thng khng qu 8 k t, gia cc k t khng
c khong trng.
21
LP TRNH NG DNG
22
LP TRNH NG DNG
- C 2 loi bin:
+ Bin chung: l bin tn ti trong sut qu trnh lm vic ca AutoCad. kim tra gi
tr cu bin trong dm Command ca AutoCad g !ten_bin.
+ Bin ring: L bin ch tn ti bn trong mt hm. Kt thc hm bin ny nhn gi tr
Nil
Ch : Cc bin tham gia vo cc biu thc phi c gn gi tr hoc nh ngha nu khng ng
dng s b li.
23
LP TRNH NG DNG
24
LP TRNH NG DNG
25
LP TRNH NG DNG
C php:
(setq b1 gt1 [b2 gt2] ...)
Gii thch:
Gn gt1 cho bin b1, gt2 cho bin b2 ... Mi bin nhn mt gi tr vit sau n
Gi tr c th l d liu, mt bin khc hoc mt biu thc xc nh trc
xo mt bin ra khi b nh: (setq bin Nil)
AutoCad thc hin lnh ca AutoLisp m khng hin th cc dng lnh hin trn mn
hnh ta gn gi tr 0 cho bin h thng CMDECHO bng lnh: (setq cmdecho 0)
b. Hm (setvar...):
C php:
(setvar varname value)
Gii thch:
varname: Tn bin h thng
value: Gi tr cn gn
VD: (setvar FILLETRAD 10.00) ---> 10.00
c. Hm (set...):
Gii thch:
Gn tn bin2 cho bin1
Mi khi ly gi tr ca bin1 th thc cht l ly gi tr ca bin2
VD: (setq a 10.00)
(set b a)
---> b = 10.00
26
LP TRNH NG DNG
C php:
(Load Tn_tp)
Gii thch:
Tn_tp: l tn tp tin c phn m rng *.LSP, .ARX, .ADS hoc .EXE
Nu chng trnh t ngoi th mc lm vic ca AutoCad th phi ch r ng dn ca
tp tin
b. Hm (Command ...)
C php:
(Command Tn_lnh [cc p ng li nhc] [cc tu
chn]...)
Gii thch:
Tn_lnh: l tn cc lnh ca AutoCad
[cc p ng li nhc] v [cc tu chn]: Tun theo cc lnh ca
AutoCad
Nu Tn_lnh = _Tn_lnh hoc _.Tn_lnh Autocad s truy cp cc ga
tr trong bng s liu ca lnh thc thi trong AutoCad
VD: (Command CIRCLE (100.00 100.00) 10.00)
---> V ng trn tm c to (100.00, 100.00) c bn
knh 10.00
3. Cc hm nhp liu t ngi dng
Cc hm sau s tm dng chng trnh yu cu ngi dng nhp d liu vo t bn phm
hoc chut
a. Hm (getpoint ...)
C php:
(getpoint [point] [prompt])
27
LP TRNH NG DNG
Gii thch:
point: Nu c, cho bng 1 danh sch im , l im th nht, cn im ngi dng
nhp vo s l im th 2. im th 2 c th cho bng to tng i.
[prompt]: Nu c, l dng nhc hoc gii thch v d liu s nhp. Dng nhc phi
c t trong ngoc kp
VD:
(setq pt1 (getpoint Cho tam duong tron:))
Kt qu cho trn dng nhc:
Cho tam duong tron:
b. Hm (getdist ...)
28
LP TRNH NG DNG
Kt qu tr v: REAL ( s o l Radian)
C php:
(getangle [point] [prompt])
Gii thch:
point: ging nh getpoint
[prompt]: l dng nhc hoc gii thch v d liu s nhp
VD:
(setq a1 (getangle Cho goc nghieng cua duong thang:))
Kt qu cho trn dng nhc ch ngi dng nhp s liu:
Cho goc nghieng cua duong thang:
d. Hm (getint ...)
Chc nng: Kim sot cc kiu gi tr nhp vo t ngi dng cho cc hm nhp s liu h
getxxx. Hm ny, nu dng phi t trc cc hm nhp s liu h getxxx cn khng ch
C php:
(iniget m_s [Chui_nh_dng])
29
LP TRNH NG DNG
Gii thch:
m_s: Gi tr m s kim sot cch nhp s liu vo. Gi tr m_s v cc hm chu
tc ng cho trong bng sau:
M s Chc nng kim sot Hm chu tc ng
Bnh thng tr v Nil nu g ENTER khi Ton b cc hm getxxx tr
0
cha nhp s liu hm getstr
getint, getreal, getdist,
Khng cho php ngi dng g ENTER
1 getangle, getpoint,
khi cha nhp s liu
getkword...
getint, getreal, getdist,
2 Khng cho php nhp s 0
getangle, getpoint,
4 Khng cho php nhp s m getint, getreal, getdist,
Cho php nhp to im nm ngoi
8 getpoint, getcorner
LIMITS ca bn v
30
LP TRNH NG DNG
VD2:
(iniget 1 DAi ROng)
(setq d1 (getdist DAi/ROng/<Cho duong cheo>:))
Kt qu cho trn dng nhc ch ngi dng nhp s liu:
DAi/ROng/<Cho duong cheo>:
Ngi dng c th nhp s thc hoc cc ch ci DA hoc RO
g. Hm (getkword ...)
Chc nng: Ch ngi dng nhp vo mt k t hoc mt chui k t lin nhau khng c du
trng
Kt qu tr v: STR
C php:
(getkword [prompt])
Gii thch:
Hm ny lun t sau hm initget, nu chui nhp vo khng trng vi t kho trong
hm initget trc , getkword yu cu nhp li
Hm ny thng p dng khi ngi dng nhp vo cc la chn
[prompt]: l dng nhc nn ch r cc t kho ngi dng d nhp d liu.
VD:
(initget VUong DAgiac:)
(getkword Nhap cac lua chon: VUong/DAgiac:)
Kt qu cho trn dng nhc:
Nhap cac lua chon: VUong/DAgiac:
Ta ch cn nhp cc ch ci:
VU kt qu tr v: vuong
DA kt qu tr v: dagiac
h. Hm (getstring ...)
31
LP TRNH NG DNG
Gii thch:
[string]: Nu khng c hoc nhn gi tr Nil, khng c nhp du trng, nu g
du trng tng ng g ENTER kt thc nhp.
Nu c gi tr khc Nil cho php nhp c du trng. Kt thc nhp phi g ENTER
[prompt]: l dng nhc hoc gii thch v d liu s nhp
i. Hm (getvar ...)
C php:
(getvar varname)
Gii thch:
varname: Tn bin h thng
VD:
(getvar DIMLFAC 10)
---> cho gi tr bin DIMLFAC = 10
4. Cc hm ton hc
4.1. Cc php tnh
Chc nng: Thc hin cc php tnh s hc thng thng
C php:
(php_ton tham_s1 [tham_s2]...)
Gii thch:
php_ton: l cc php tnh ton s hc thng thng
Php cng: +
Php tr: -
Php nhn: *
Php chia: /
Php tng thm 1: 1+
Php gim i 1: 1-
tham_s1: Trong php tr v chia th tham_s1 l s b tr hoc b chia
tham_s2...: Trong php tr v chia th tham_s2... l s tr hoc s chia
Trong php tng thm 1 hoc gim i 1 th ch c 1 tham s
32
LP TRNH NG DNG
Ch :
Tham s c th l hng hoc biu thc
Kt qu tnh ph thuc ch yu vo kiu ca tham s tham gia php tnh.
C php:
(php_so_snh tham_s1 [tham_s2]...)
Gii thch:
php_so_snh: Bao gm:
Bng: =
Khng bng (khc): /=
Ln hn: >
Ln hn hoc bng: >=
Nh hn: <
Nh hn hoc bng: <=
V: and
Hoc: or
Ph nh: not
tham_s1, tham_s2: l cc i tng so snh
Ch :
Tham s c th l hng s, bin s hoc biu thc
Kt qu tnh ph thuc ch yu vo kiu ca tham s tham gia php tnh.
Ring i vi thc, my tnh coi s 0 ch l xp x 0 nn khi dng du = so snh vi s 0
c th tr gi tr Nil. Trong trng hp ny nn dng (equal...) so snh
33
LP TRNH NG DNG
4.3. Cc hm so snh
a. Hm (eq ...)
Chc nng: Thc hin so snh xem hai tham s c thc s bng nhau hay khng
Kt qu: cho T (ng) hoc Nil (sai)
C php:
(eq tham_s1 tham_s2)
Gii thch:
Kt qu ng khi tham_s1 ging ht tham_s2 (cng l kiu tham s, cng l s...)
b. Hm (equal ...)
Chc nng: Thc hin so snh xem hai tham s c thc s bng nhau hay khng theo tiu
chun l chnh xc km theo
Kt qu: cho T (ng) hoc Nil (sai)
C php:
(equal tham_s1 tham_s2 [_chnh_xc])
Gii thch:
Kt qu ng khi tham_s1 bng tham_s2 vi sai s l _chnh_xc (nu c)
c. Hm (max ...)
34
LP TRNH NG DNG
e. Hm (gcd ...)
C php:
(gcd tham_s1 tham_s2 [tham_s3]...)
Ch :
tham_s1 tham_s2 [tham_s3]...: Phi l kiu s nguyn
f. Hm (rem ...)
Gii thch:
tham_s1: S b chia
tham_s2: S chia
4.4. Cc hm i s
C php:
(sqrt number): Ly cn bc 2 ca s thc dng number
(expt c_s s_m): Ly lu tha bc s_m ca s thc c_s
(exp s_m): Ly lu tha bc s_m ca c s e
(abs number): Ly gi tr tuyt i ca mt s number
(log number): Ly logarit c s e ca mt s number
4.5. Cc hm lng gic
C php:
(sin angle)
(cos angle)
(atan mumber1 [number2])
Ch :
angle: L s o gc ly theo radian
mumber1 [number2]: L s thc
Kt qu ca hm atan l gc c s o l radian
35
LP TRNH NG DNG
C php:
(fix number)
Ch :
Hm ny c s dng nh mt b lc d liu. D liu l s nguyn hay s thc s c
lc thnh s nguyn trc khi c gn cho tham s
Ngoi ra ta c th s dng hm ny ly phn thp phn (s dng kt hp vi php tr)
b. Hm (fload ...)
Chc nng: Chuyn mt s c kiu nguyn hoc thc sang kiu s thc
C php:
(fload number)
5. Cc hm to cu trc iu khin
a. Hm (if ...)
C php:
(if testexpr thenexpr [elseexpr])
Gii thch:
testexpr: L biu thc kim tra iu kin
thenexpr: Biu thc lnh c thc hin nu biu thc testexpr nhn gi tr T
elseexpr: Biu thc lnh c thc hin nu biu thc testexpr nhn gi Nil. Nu
khng c biu thc ny, hm khng thc hin v tr v gi tr nil
b. Hm (while ...)
C php:
(while testexpr expr)
36
LP TRNH NG DNG
Gii thch:
testexpr: L biu thc kim tra, khi no testexpr nhn gi tr nil, vng lp chng
trnh ngng thc hin
expr: Biu thc, lnh cn thc hin
V d:
(defun C:vdt()
(setq n 1)
(setq pt1 (list 0 0))
(while (<= n 10)
(setq pt2 (list n (+ n 0.5)))
(setq n (1+ n))
(command "LINE" pt1 pt2 "")
)
(command "ZOOM" "e")
)
c. Hm (repeat ...)
C php:
(repeat int [expr]...)
Gii thch:
int: L s nguyn ch ln lp
expr: Biu thc, lnh cn thc hin
V d:
(defun C:vdt()
(setq n 1)
(setq pt1 (list 0 0))
(repeat 10
(setq pt2 (list n (+ n 0.5)))
(setq n (1+ n))
(command "LINE" pt1 pt2 "")
)
(command "ZOOM" "e")
37
LP TRNH NG DNG
d. Hm (progn ...)
Chc nng: Tp hp cc biu thc thnh mt biu thc v bt cc biu thc ny thc hin
theo mt iu khin chung
C php:
(progn [expr]...)
Gii thch:
expr: Biu thc, lnh cn thc hin
6. Cc hm x l danh sch
a. Hm (quote ...) hoc (...)
C php:
(quote expr) hoc (expr)
Gii thch:
expr: Biu thc. Nu biu thc l s c th to danh sch im, nu l bin mc d
gn gi tr bng s cng khng to c danh sch im
b. Hm (list ...)
C php:
(list expr)
Gii thch:
expr: Biu thc, t nht c mt tham s. Biu thc l bin hay l s cng to c danh
sch im
c. Hm (car ...)
Chc nng: Hon tr phn u tin ca danh sch. Kt qu l mt gi tr, kiu l kiu ca
thnh phn .
C php:
(car list)
Gii thch:
list: L mt danh sch
38
LP TRNH NG DNG
d. Hm (cadr ...)
Chc nng: Hon tr phn phn t th 2 ca danh sch. Kt qu l mt gi tr, kiu l kiu
ca thnh phn .
C php:
(cadr list)
e. Hm (caddr ...)
Chc nng: Hon tr phn phn t th 3 ca danh sch. Kt qu l mt gi tr, kiu l kiu
ca thnh phn .
C php:
(caddr list)
f. Hm (last ...)
Chc nng: Hon tr phn phn t cui cng ca danh sch. Kt qu l mt gi tr, kiu l
kiu ca thnh phn .
C php:
(last list)
g. Hm (nth ...)
Chc nng: Hon tr phn phn t th int ca danh sch. Kt qu l mt gi tr, kiu l kiu
ca thnh phn . Th t bt u 0, 1, 2, ...
C php:
(nth int list)
Gii thch:
int: L th t ca phn t cn ly gi tr
list: L mt danh sch
h. Hm (cdr ...)
C php:
(cdr list)
i. Hm (reverse ...)
C php:
(reverse list)
39
LP TRNH NG DNG
k. Hm (length ...)
C php:
(length list)
m. Hm (append ...)
C php:
(append list1 list2 ...)
n. Hm (member ...)
Chc nng: To mt danh sch mi t mt danh sch c theo mt thnh vin cho trc,
danh sch mi c to ra c cc thnh vin l cch thnh vin ca danh sch gc bt u
t thnh vin expr cho n thnh vin cui
C php: (member expr list)
Gii thch:
expr: L mt trong cc phn t ca mt danh sch
list: L mt danh sch gc
o. Hm (assoc ...)
C php:
(assoc item alist)
Gii thch:
item: L phn t u tin ca danh sch con tr v, nu khng tm thy danh sch con
no cha phn t u tin l item, hm s tr gi tr nil
alist: Phi l mt danh sch phc hp
v d:
(setq alist ((1 ONE) (2 TWO) (3 THREE)))
40
LP TRNH NG DNG
p. Hm (subst ...)
C php:
(subst newitem olditem list)
Gii thch:
newitem: L thnh vin mi
oldwitem: L thnh vin c
list: Danh sch gc
v d:
(setq alist ((1 ONE) (2 TWO) (3 THREE)))
7. Cc hm nhp xut d liu
a. Hm (promt ...)
C php:
(promt msg)
Gii thch:
msg: Chui k t cn xut ra nh mt dng thng bo
b. Hm (open ...)
C php:
(open filename mode)
Gii thch:
filename: Tn tp tin (file) cha d liu.
Phn m rng ca tp tin l *.txt hoc bt k do ngi dng t
Nu tp tin ny khng nm trong th mc lm vic ca Autocad phi cho ng dn
mode: M ca tp tin
r : c tp tin ang c trn a
w : Ghi vo tp tin, mi ln ghi to mt tp tin mi
a : Ghi tip vo tp tin ang tn ti hoc to tp tin mi ghi nu cha c tp tin trn
a
41
LP TRNH NG DNG
c. Hm (close ...)
Chc nng: ng tp tin d liu ang m bng hm open gii phng b nh cho cc
chng trnh khc lm vic
C php:
(close filename)
Gii thch:
filename: Tn tp tin cha d liu c m bng hm open
d. Hm (findfile ...)
C php:
(read-line [fp])
Gii thch:
fp : Tn tp tin cha d liu va c m bng lnh open
Nu c ghi fp hm s c mt tp tin ny v hon tr 1 chui k t
Nu khng c hm s c mt chui k t c g vo t bn phm
Mi ln gi hm (read-line...) mt dng d liu tip theo c c vo, khi no
khng cn d liu th kt qu l nil
f. Hm (read...)
42
LP TRNH NG DNG
g. Hm (read-char...)
Chc nng: Ghi mt k t ra vng dng lnh trn mn hnh hoc vo tp tin
C php:
(write-char n [fr])
Gii thch:
n : S nguyn m ASCII ca k t ghi vo
[fr] : Tn tp tin cha d liu c m bng lnh open, nu khng c my ch ngi dng
nhp vo t bn phm
i. Hm (write-line...)
Chc nng: Ghi mt chui k t ra vng dng lnh trn mn hnh hoc vo tp
C php:
(write-line str [fr])
Gii thch:
str : chui
[fr] : Tn tp tin cha d liu c m bng lnh open, nu khng c my ch ngi dng
nhp vo t bn phm
k. Cc hm prin1, princ, print
C php:
(prin1 expr [fr])
(princ expr [fr])
(print expr [fr])
43
LP TRNH NG DNG
Gii thch:
expr : Biu thc
[fr] : Tn tp tin cha d liu c m bng lnh open, nu khng c my ch ngi dng
nhp vo t bn phm
S khc nhau gia cc hm:
- Cc k t iu khin nh: \n, \r... khng c tc dng i vi hm prin1
m c tc dng i vi hm princ
- Hm print lun ghi kt qu xung dng mi v sau kt qu c mt du trng
8. Cc hm kim tra d liu
a. Hm (type...)
C php:
(type item)
Gii thch:
item : L bin hay biu thc
b. Hm (atom...)
C php:
(atom item)
Gii thch:
item : L tham s
c. Hm (listp...)
C php:
(listp item)
Gii thch:
item : L tham s
44
LP TRNH NG DNG
d. Hm (numberp...)
C php:
(numberp item)
Gii thch:
item : L tham s
e. Hm (nminusp...)
C php:
(nminusp number)
f. Hm (zerop...)
C php:
(zerop number)
45
LP TRNH NG DNG
C php:
(angtos angle [mode] [precision]])
Gii thch:
angle : L s o gc bng radian
mode : L s nguyn xc nh dng n v xut ra, nu khng c s tun theo cc ci t ca
lnh UNITS. Cc gi tr ca mode tng t nh hm (angtof...)
precision : L chnh xc (s ch s sau du phy thp phn)
c. Hm (atof...)
C php:
(atof str)
Gii thch:
str : L chui k t (cha cc ch s)
d. Hm (atoi...)
C php:
(atoi str)
Gii thch:
str : L chui k t (cha cc ch s)
e. Hm (itoa...)
C php:
(itoa int)
Gii thch:
int : L s nguyn, nu cho kiu khc hm s bo li
46
LP TRNH NG DNG
f. Hm (rtos...)
C php:
(rtos number [mode [precision]])
Gii thch:
number : L mt s
mode: L m iu khin dng xut ra chui k t
Mode nhn cc gi tr sau:
1 : Dng khoa hc
2 : Dng thp phn
3 : Dng k thut
4 : Dng kin trc
5 : Dng hu t (phn s)
precision : L chnh xc (s ch s sau du phy thp phn)
g. Hm (distof...)
C php:
(distof str [mode])
Gii thch:
str : L chui k t cha cc ch s
mode: L m iu khin nhp vo ca s thc nhn cc gi tr sau:
1 : Dng khoa hc
2 : Dng thp phn
3 : Dng k thut
4 : Dng kin trc
5 : Dng hu t (phn s)
h. Hm (fix...)
C php:
(fix number)
47
LP TRNH NG DNG
Gii thch:
number : L mt s thc
i. Hm (fload...)
C php:
(fload number)
Gii thch:
number : L mt s nguyn hoc s thc
10. Cc hm x l chui k t
Trong AutoLisp chui l cc k t c vit trong ngoc kp . Du \ km theo cc ch ci c
tc dng iu khin:
Cch vit ngha
\\ : \
\n : Xung dng
\t : Tab
\e : ESC
\ :
\r : ENTER
a. Hm (strcat...)
C php:
(strcat str1 str2 [str3]...)
Gii thch:
str1, str2, str3... : L cc chui thnh phn cn c ghp li
b. Hm (strcase...)
C php:
(strcase str which)
48
LP TRNH NG DNG
Gii thch:
str: L chui cn chuyn i
which: Nu khng c, tt c chui bin thnh ch in hoa, nu l ch T tt c chui tr thnh
ch thng
c. Hm (strlen...)
C php:
(strlen str)
Gii thch:
str: L chui cn m
d. Hm (substr...)
C php:
(substr str start [length])
Gii thch:
str: L chui cn trch
start: V tr k t trong chui cn trch ra
length: Chiu di ca chui mi (s k t), nu khng c th chui mi bt u t v tr
start cho n ht
11. Cc hm x l chui k t
C php:
(entlast)
Gii thch: Hm ny khng c i s
b. Hm (entnext...)
Chc nng: Chn i tng v u tin trong bn v hoc i tng tip sau mt i tng
khc v tr v m ENAME ca n
C php:
(entnext [ename])
49
LP TRNH NG DNG
Gii thch:
ename: Nu khng c hon tr thc th u tin ca bn v
Nu c hon tr tn thc th tip sau thc th c tn l ename
V d:
(setq e1 (entnext)) ;Gn tn thc th u tin cho e1
(setq e2 (entnext e1)) ;Gn tn thc th tip sau e1 cho e2
c. Hm (entsel...)
C php:
(entsel [promt])
Gii thch:
promt: Li nhc, nu khng c dng nhc s l : Select object:
V d:
(setq e1 (entsel Chon doi tuong thu nhat:))
(setq e2 (entsel Chon doi tuong thu hai:))
(command EXTEND e1 e2 )
d. Hm (nentselp...)
C php:
(nentselp [promt] [pt])
Gii thch:
promt: Li nhc
pt: im m i tng i qua
e. Hm (entdel...)
C php:
(entdel ename)
Gii thch:
ename: M tn i tng, hm ny ch dng cho thc th chnh, tn thc th do hm
(entlast), (entnext)
50
LP TRNH NG DNG
f. Hm (entget...)
Chc nng: Hon tr danh sch lit k cc thng tin v i tng c trong bn v c gi
C php:
(entget ename [applist])
Gii thch:
ename: M tn i tng
applist: Nu c, danh sch cc chui k t cha cc thng tin m rng c lin quan s c
gi ra v hon tr.
g. Hm (entmod...)
h. Hm (entmake...)
Gii thch:
edata: L danh sch cc c s d liu ca i tng cn to.
V d: V ng trn
(entmake
((0 . CIRCLE) ; Kiu i tng ng trn
(62 . 1) ; Mu
(10 4.0 4.0 0.0) ; Tm (4.0 4.0 0.0)
(40 . 1.0)
(40 . 1.0) ; Bn knh 1.0
)
)
51
LP TRNH NG DNG
C php:
(tblnext tblname [rewind])
Gii thch:
tblname: Chui k t cha tn bng
rewind: Nu c gi tr khc nil, s tr v tn v cc d liu ca bng cc i tng u tin
m AutoCad tm thy.Nu khng c hoc nhn gi tr nil, s tr v tn v cc d liu ca bng
cc i tng tip theo m AutoCad tm thy
b. Hm (tblsearch...)
52
LP TRNH NG DNG
C php:
(ssadd [ename] [ss])
53
LP TRNH NG DNG
Gii thch:
ename: Chui k t cha tn m i tng cn thm vo, nu i tng ename c trong tp
i tng, khng thm vo c na
ss: Tn tp i tng
Nu c 2 tham s ny khng c, s tr ra mt tp rng
Nu ename khc nil tp i tng l nil, hm s tr ra mt tp i tng ch c mt phn t l
ename cho
Nu c 2 u khc nil, hm s tr ra tp i tng c thm phn t ename va thm vo
c. Hm (sslength...)
C php:
(sslength ss)
Gii thch:
ss: Tn tp i tng c trong bn v
d. Hm (ssdel...)
C php:
(ssdel ename ss)
Gii thch:
ename: Chui k t cha m tn i tng cn loi b. Nu i ename ny c trong tp i
tng, th n b loi b, nu khng c tr nguyn tp i tng
ss: Tn tp i tng c trong bn v
e. Hm (ssname...)
C php:
(ssname ss index)
Gii thch:
ss: Tn tp i tng c trong bn v
index: S th t ca cc i tng trong tp hp cc i tng c tnh t 0, 1, 2....
54
LP TRNH NG DNG
55
LP TRNH NG DNG
V d:
a. V d v tham s:
(defun VD1(x y)
...........................; Thn hm
...........................; Thn hm
)
Hm ny c 2 tham s x v y. Hm c triu gi nh sau:
(VD1 x y)
b. V d v bin s ring:
(defun VD2(/ x y)
...........................; Thn hm
...........................; Thn hm
)
Hm ny c 2 bin s ring x v y. Hm c triu gi nh sau:
(VD2)
c. V d v bin s chung:
(defun VD3()
...........................; Thn hm
...........................; Thn hm
)
Hm ny khng c tham s v bin ring. Hm c triu gi nh
sau:
(VD3)
d. Tn hm l mt lnh ca AutoCad:
(defun C:VD4()
...........................; Thn hm
...........................; Thn hm
)
Khi chng trnh AutoLisp cha hm trn c gi vo
AutoCad th vd4 l mt lnh ca AutoCad, c th gi trn
dng ln Command: vd4
56
LP TRNH NG DNG
2. Mt s v d minh ho
2.1. To Layer
(defun C:TAOLOP()
(command "-layer" "n" "dut" "l" "DASHED" "dut" "c" 3 "dut" "")
(command "-layer" "n" "tam" "l" "CENTER" "tam" "c" 1 "tam" "")
(command "Ltscale" 300)
(command "ZOOM" "a")
); Kt thc hm
Chng trnh khi chy trong AutoCad s to 2 lp c tn l dut v tam
2.2. V khung tn
(defun c:KBV(/ tyle loai KBV1 KBV2)
(setq tyle (getreal "\Cho ty le ban ve : "))
(setq loai (getstring "\Cho kho giay in ban ve A0,A1,A2,A3,A4:
<A3> "))
(setq KBV1 (getpoint "\Cho diem chen khung ban ve: "))
(if (= loai "a0")
(setq KBV2 (list (+ (car KBV1) (* 1188.0 tyle)) (+ (cadr
KBV1) (* 840.0 tyle))))
(if (= loai "a1")
(progn
(setq KBV2 (list (+ (car KBV1) (* 840.0 tyle)) (+
(cadr KBV1) (* 594.0 tyle)))))
57
LP TRNH NG DNG
58
LP TRNH NG DNG
(princ)
); Ht chng trnh
59
LP TRNH NG DNG
)
(princ)
)
);Ht hm chnh
;------------------------------------------------------------
(defun text_uu_ssget ( / ssl nsset temp ed ); Hm con
(setq sset (ssget))
(setq ssl (sslength sset)
nsset (ssadd)
)
(print ssl)
(while (> ssl 0)
(progn
(setq temp (ssname sset (setq ssl (1- ssl))))
(setq ed (entget temp))
(if (= (DXF 0 ed) "TEXT") (ssadd temp nsset))
)
)
(setq ssl (sslength nsset)
sset nsset
)
(print ssl)
(princ)
(print)
);Ht hm con
60