Hướng dẫn viết lisp

49
Hướng dn viết lisp bài mđầu 06:06 Được đăng bi Phm Quc Duy Bn nên theo di theo tên bài viết tăng tnhti ln thì mi đúng trình t! Trong các lot bài viết nà mình " d#ng ng$n ng% bình d&n nh' n(i ch)*n đ+ h'ng d,n và di+n t- cách l./ trình li/ cho d+ hi+) và c0ng d+ cho mình 1hi viết bài2 34$ng c5 d#ng viết li/6 7T8t c- các ch'9ng trình c( th+ on và l') :ile t;t274á nh&n mình d#ng <ote/=d2 7>') :ile b?ng /h@n mA rng Cđ)$iD l/ là thành :ile li/ Cchđ'Ec h= 1h$ng tFnh =)D 3Ghái ni*m n$m n= vH l./ trình li/2 74ách mình viết là cách th$ 9 nh8t6 Trong 1hi v" 4IJ c( K L th=o tác lM/ đi lM/ li c( c- vi*c tFnh toán nế) làm thN c$ng thì m*t và nhàm nên mình l') các th=o tác nà vào K :ile t;t c( đ)$i là l/ đ+ n( làm cho mình2 348) trúc K l*nh li/6 7<g)ên tOc ch)ng6 cP mA ngoMc r= thì /h-i đ(ng li trong K :ile li/ L l'Eng d8) QCR và QDR l)$n b?ng nh=)2 7SA đ@) l)$n l)$n c( dng =)6Cde:)n c6lenlenh CD Trong đ( tenlenh là cái mà bn gvào th=nh comm=nd đ+ thc thi l*nh li/ 7Gết thúc l)$n là d8) ngoMc đ9n đ(ng6D 7Toàn b /h@n gi%= U)ết đVnh vi*c l*nh li/ cN= bn làm vi*c gìW tn= vH =) mình " n(i vH cách viết đon gi%= nà cn cái mA đ@) và 1ết thúc l)$n nh' v.2 Hướng dn viết lisp bài 1 06:12 Được đăng bi Phm Quc Duy Bn nên theo di theo tên bài viết tăng tnhti ln thì mi đúng trình t! 3X+ chYn K đi+m Cđ+ làm gì thì t# bnD d#ng dng =)6 CetU = Cget/oint Z4hon diem6 ZDD Trong đ(6 7=6 là đi+m ;ác đVnh b?ng cách /ic1 ch)t2 74hon diem6 là dng ch% " hi+n thV trên dng l*nh 1hi chl*nh2 3X+ thc hi*n K l*nh c=d trong li/ thì gđúng trình tmà l*nh c=d chW l') [ ZZ là th= cho enter2 \F d56Ccomm=nd Z2lineZ = b ZZD Tác d5ng6

description

hướng dẫn viết lisp autocad

Transcript of Hướng dẫn viết lisp

Hng dn vit lisp bi m u

Hng dn vit lisp bi m u

06:06 c ng bi Phm Quc Duy

Bn nn theo di theo tn bi vit tng t nh ti ln th mi ng trnh t!Trong cc lot bi vit ny mnh s dng ngn ng bnh dn nh ni chuyn hng dn v din t cch lp trnh lisp cho d hiu v cng d cho mnh khi vit bi.*Cng c dng vit lisp:-Tt c cc chng trnh c th son v lu file txt.-C nhn mnh dng Notepad.

-Lu file bng phn m rng (ui) lsp l thnh file lisp (chy c hay khng tnh sau)*Khi nim nm na v lp trnh lisp.-Cch mnh vit l cch th s nht: Trong khi v CAD c 1 s thao tc lp i lp li c c vic tnh ton nu lm th cng th mt v nhm nn mnh lu cc thao tc ny vo 1 file txt c ui l lsp n lm cho mnh.*Cu trc 1 lnh lisp:-Nguyn tc chung: c m ngoc ra th phi ng li trong 1 file lisp s lng du ( v ) lun bng nhau.-M u lun lun c dng sau:(defun c:lenlenh ()Trong tenlenh l ci m bn g vo thanh command thc thi lnh lisp-Kt thc lun l du ngoc n ng:)-Ton b phn gia quyt nh vic lnh lisp ca bn lm vic g, t nay v sau mnh s ni v cch vit on gia ny cn ci m u v kt thc lun nh vy.

Hng dn vit lisp bi 1

06:12 c ng bi Phm Quc Duy

Bn nn theo di theo tn bi vit tng t nh ti ln th mi ng trnh t!* chn 1 im ( lm g th ty bn) dng dng sau:(setq a (getpoint "Chon diem: "))Trong : -a: l im xc nh bng cch pick chut.-Chon diem: l dng ch s hin th trn dng lnh khi chy lnh.

* thc hin 1 lnh cad trong lisp th g ng trnh t m lnh cad chy, lu "" l thay cho enter. V d:(command ".line" a b "")Tc dng:-Thc hin lnh line, chn im a, chn im b, enter.-Bn thy cha ging y nh v cad thi c g u.*By gi v d gn gn nh: Bt u bng ci lisp v on thng nh.(defun c:doanthang ()(setq a (getpoint "Chon diem: "))(setq b (getpoint "Chon diem: "))(command ".line" a b ""))-Bn lu on trn ra file vdt.lsp-Khi ng CAD.-G lnh AP. Chn n file vdt.lsp load n ln.-Ri bn ch cn nhp lnh doanthang n hi bn Chon diem bn chn 1 im n li hi Chon diem bn li chn n v ra on thng qua 2 im bn va chn. -Kh kh chc bn kiu lisp g m mc ci vy. ng nn nng ci ny l bc u m t t ri bn s thy ci hay ca lisp em li.!^__^! Theo di cc bi tip theo nh.Hng dn vit lisp bi 2

06:15 c ng bi Phm Quc Duy

Bn nn theo di theo tn bi vit tng t nh ti ln th mi ng trnh t!y l nhng g hin th trn dng lnh khi chy lnh doanthang.Command: doanthangChon diem: Chon diem: nil

*Phn tch: -Hai cu hi ca lisp l Chon diem v Chon diem dnh lin nhau trn 1 hng v cui cng xut hin ch nil khng c p mt lm.-Khi bn chn im th nht trn mn hnh lisp s tip tc chn im th hai nhng khng xut hin dy tc ni im th nht vi con tr nh thng thy lnh line ca cad lm vic chn im th hai khng c bi bn cho lm.*Khc phc:Sa on lisp li nh sau:(defun c:doanthang ()(setq a (getpoint "\nChon diem: "))(setq b (getpoint a"\nChon diem: "))(command ".line" a b "")(princ))By gi load li v thc hin lnh doanthang s thy:Command: DOANTHANGChon diem:Chon diem:Hai cu hi ca lisp a ra xung hng ng hon.Ch nil cui lnh bin mt.C dy tc gip vic chn im th hai trc quan hn.*Phn tch:\n s lm cho cc ni dung pha sau nhy xung hng.Thm ch a sau getpoint s lm xut hin dy tc ni con tr vi im a(princ) s ghi ra 1 dng trng gip trit tiu cc thng bo lng thng khi chy lisp cn d.!^__^! Theo di cc bi tip theo nh.

Hng dn vit lisp bi 3

06:18 c ng bi Phm Quc Duy

Bn nn theo di theo tn bi vit tng t nh ti ln th mi ng trnh t!Cng vi on trn nhng by gi khng v ng thng na m v ng trn:Thay dng(command ".line" a b "")Bng dng(command ".circle" a b)Bn nh dng v line c "" sau khi chn a v b cn v circle th khng. V khi v line sau khi nhp hai im s tip tc lnh line mun kt thc phi enter, cn circle th ch cn chn tm v bn knh l kt thc lnh nn khng c enter kt thc.- thy ci li ca lisp bn lu on sau thnh file lsp ri chy th.(defun c:doanthang ()(setq a (getpoint "\nChon diem: "))(setq b (getpoint a"\nChon diem: "))(command ".line" a b "")(command ".circle" a b)(command ".circle" b a)(princ))S thy sau khi chn 2 im trn mn hnh lisp s v ra:-ng thng t a n b.-ng trn tm a bn knh ab.-ng trn tm b bn knh ab.**Kinh nghim rt ra:-T 1 kiu d liu nhp vo lisp c th lm nhiu vic (y mi l s dng nguyn gc hai im a v b cha k n tnh ton v cho ra im mi phc v mc ch no ).-Sau khi d liu c nhp (im a v b) c th dng vo mi vic khng cn n th t v d nhp a trc nhng vn c th dng b trc nh dng v circle th 2.

Hng dn vit lisp bi 4

06:21 c ng bi Phm Quc Duy

Bn nn theo di theo tn bi vit tng t nh ti ln th mi ng trnh t!T 2 im a v b lisp s lm c rt nhiu vic. -Gii thiu 1 s hm i vi 1 im:

(setq xa (car a)) ta x ca im a(setq ya (cadr a)) ta y ca im a(setq za (caddr a)) ta z ca im a-Gii thiu 1 s hm i vi 2 im:(setq daiab (distance a b)) khong cch t a n b(setq gocab (angle a b)) gc m on ab to vi trc x-Gii thiu hm tnh ton:C php cc hm ton hc hi ngc vi cch thng thng:(du su ssau) ngha l nu mun c a+b th vit (+ a b) i vi + - * / iu nh vy.**T hai im a v b kt hp cc hm trn chng ta bt u cho vic tnh ton cho ra nhng kt qu phc v cho vic mnh cn.-Tm im nm chnh gia a v b:+Ngoi vic xc nh 1 im bng cch pick im thng qua hm getpoint nh trn th 1 im trong lisp cn biu din nh sau:(setq c (list xc yc zc))Trong :Xc, yc, zc ln lt l ta x, y,z ca im c cc gi tr ny c xc nh kiu g cng c. Trong trng hp ny xc nh t cc gi tr ca im a v b. n gin mnh ch tnh ton trn mt phng xy khi no lisp v phi cnh mnh hy a gi tr z vo t by gi 1 im ch cn biu din bng x v y nn xc nh im c nh sau: (setq c (list xc yc))(setq xab (+ xa xb)) xc nh 1 bin tm bng tng x im a v x im b(setq yab (+ ya yb)) xc nh 1 bin tm bng tng y im a v y im b(setq xc (/ xab 2)) xc nh x im c bng cch ly xab chia 2(setq yc (/ yab 2)) xc nh y im c bng cch ly yab chia 2(setq c (list xc yc)) xc nh im c bng x v y va tnh c.

(defun c:doanthang ()(setq a (getpoint "\nChon diem: "))(setq b (getpoint a"\nChon diem: "))(command ".line" a b "")(command ".circle" a b)(command ".circle" b a)(setq xa (car a))(setq ya (cadr a)) (setq xb (car b))(setq yb (cadr b)) (setq xab (+ xa xb)) (setq yab (+ ya yb)) (setq xc (/ xab 2)) (setq yc (/ yab 2)) (setq c (list xc yc)) (command ".circle" c a)(princ))*By gi chy th on trn bn s thy c thm 1 vng trn tm l trung im on ab ng knh bng ab.*Hai hm: distance v angle trong bi ny cha xi ti nhng nhn tin ni v m mnh ni lun bn hy ghi nh cho sau ny.

Hng dn vit lisp bi 5

06:30 c ng bi Phm Quc Duy

Bn nn theo di theo tn bi vit tng t nh ti ln th mi ng trnh t!on lisp trn mnh vit rt c bn lm tng bc 1 bn lm quen, thc cht bn c th lm gn li bng cch gp cc on li vi nhau.

-C th on(setq xa (car a))(setq xb (car b))(setq xab (+ xa xb)) -C th thay bng(setq xab (+ (car a) (car b))) -Tng t sau khi gp bc 1 t on:(setq xa (car a))(setq ya (cadr a)) (setq xb (car b))(setq yb (cadr b)) (setq xab (+ xa xb)) (setq yab (+ ya yb)) (setq xc (/ xab 2)) (setq yc (/ yab 2)) (setq c (list xc yc)) -Ta c(setq xab (+ (car a) (car b))) (setq yab (+ (cadr a) (cadr b))) (setq c (list (/ xab 2) (/ yab 2))) -Tng t sau khi gp bc 2 ta c(setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2))) *on lisp by gi cn nh sau:(defun c:doanthang ()(setq a (getpoint "\nChon diem: "))(setq b (getpoint a"\nChon diem: "))(command ".line" a b "")(command ".circle" a b)(command ".circle" b a)(setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2))) (command ".circle" c a)(princ))*Chy th kt qu ging y nh trc nhng ngn c 1 s dng. Nu mi bt u vit gp qu ri th bn c vit tng bc nh c n khi no rnh rnh th bt u gp li.*Mi c pick 2 im m th chuyn vy . Tt nhin ci hnh m lisp ny v ra ging y nh ci mng nhn vy chng lm g c nhng khi nm vn th bn mun lm g m ch c.Hng dn vit lisp bi 6

06:34 c ng bi Phm Quc Duy

By gi b bt ci hnh trn tm b ng knh ab i. p dng lnh Array vi ci hnh trn tm a ng knh ab. Cho n Array thnh 8 i tng quanh im c nh.-C php lnh Array nh sau:+V trong lnh Array c hi chn i tng nhng mnh mun n chn t ng ci hnh trn th lm sao? Gii php a ra l la chn last ngha l chn i tng mi to ra mun vy ci ng trn ny mnh ng v vi m ch v n trc khi thc hin lnh Array thi.(command ".circle" a b)(command ".array" "last" "" "p" c "8" "" "")+Gii thch dng trn: gi lnh Array, g last chn i tng va to trc , enter kt thc chn i tng, g p chn kiu Array l Polar, chn im tm quay l c, g 8 xc nh s lng to ra l 8, enter hai ln kt thc lnh Array.

(defun c:doanthang ()(setq a (getpoint "\nChon diem: "))(setq b (getpoint a"\nChon diem: "))(command ".line" a b "")(setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2))) (command ".circle" c a)(command ".circle" a b)(command ".array" "last" "" "p" c "8" "" "")(princ))

*Chy th on trn. Kh kh p cha c nguyn ci bng ri nhng sao nhiu cnh qu ? Yn tm s c cch cho bn quyt nh s lng cnh ca ci bng ny.

Hng dn vit lisp bi 7

06:37 c ng bi Phm Quc Duy

**By gi thm 1 dng gip bn quyt nh s lng s Array.- nhp 1 chui vo lisp dng dng sau:(setq sl (getstring 5"\nSo luong:"))-Bn lu con s 5 ny nh, nu khng c n th khi nhp chui nt Space s tng ng vi enter ngha l kt thc qu trnh nhp chui, cn c n th Space l khong trng.

Ty theo nhu cu chui cn nhp m quyt nh c s 5 ny hay khng.- thy lisp lm vic tng bc mnh thm dng hi s lng ny vo sau dng v line v circle. Sau khi bn nhp s lng vo th thc hin lnh array nh vy th v hn l chn 2 im v hi s lng ht ri mi v 1 ln xong lun.

(defun c:doanthang ()(setq a (getpoint "\nChon diem: "))(setq b (getpoint a"\nChon diem: "))(command ".line" a b "")(setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))(command ".circle" c a)(command ".circle" a b)(setq sl (getstring "\nSo luong:"))(command ".array" "last" "" "p" c sl "" "")(princ))Chy th s thy sau khi chn 2 im trn mn hnh lisp s v ra:-ng thng t a n b.-ng trn tm c ng knh ab.-ng trn tm a bn knh ab. Lc ny lisp dng li v hi s lng bn nhp vo lisp tip tc array ci hnh trn ny ra theo s m bn nhp vo v kt thc lnh.Hng dn vit lisp bi 8:

02:07 c ng bi Phm Quc Duy

**Ri by gi b ht ny ci Circle v Array i mnh i vo vit text.-Phn vit text bng lisp l rt phin phc v d vit text dng dng sau:(command ".TEXT" "m" c 250 0 "tailieukythuat.com")-Gii thch: gi lnh text nhp m nh kiu canh l l Middle chn im vit ra l c ln text l 250 gc quay l 0 ni dung l tailieukythuat.com.+Trng hp Text style hin hnh c Text Height bng 0 th khng cn g.+Trng hp Text style hin hnh c Text Height khc 0 th lnh text s b qua phn hi Text Height ( ln) nn vi c php trn s 250 s c gn cho gc quay ca text, s 0 gn cho ni dung text v mt m li.-Gii php: Phi m bo Text style hin hnh c Text Height bng 0 bng cch< trc khi thc hin lnh vit text phi c dng to Text style nh sau:(command "-style" "tlkt" "VNI-HELVE" "0" "1" "0" "n" "n")+Mc ch to Text style c tn tlkt fonts VNI.HELVE (bn thch font no th chn font ), Text Height bng 0, cc ci ng sau bn c chp nhn vy i khi suy ngh (ni chung kt thc vic to kiu ch bng lisp th phi c php nh vy)+Sau khi to ra Text style ny s hin hnh v on vit text pha sau s m bo chy ng.

(defun c:doanthang ()(setq a (getpoint "\nChon diem: "))(setq b (getpoint a"\nChon diem: "))(command ".line" a b "")(setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))(command "-style" "tlkt" "VNI-HELVE" "0" "1" "0" "n" "n")(command ".TEXT" "m" c 250 0 "tailieukythuat.com")(princ))

Chy on trn s thy sau khi chn 2 im s v ra:+ Line ab.+ Text tailieukythuat.com ti trung im ab.

Hng dn vit lisp bi 9:

02:20 c ng bi Phm Quc Duy

**By gi p dng dng nhp chui nhp ln v ni dung dng text nh:

(setq dl (getstring "\nDo lon:"))(setq nd (getstring 5"\nNoi dung:"))

Bn nh:+Dng hi ln khng c s 5 v ln khng cn nhp khong cch.+Dng hi ni dung c s 5 v ni dung c th c cha khong cch.

(defun c:doanthang ()(setq a (getpoint "\nChon diem: "))(setq b (getpoint a"\nChon diem: "))(command ".line" a b "")(setq dt (getstring "\nDo lon:"))(setq nd (getstring 5"\nNoi dung:"))(setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))(command "-style" "tlkt" "VNI-HELVE" "0" "1" "0" "n" "n")(command ".TEXT" "m" c dt 0 nd)(princ))

Ti by gi nu nm c ht nhng iu mnh vit trn th bn c th vit c khi th ri y. C ngi suy ngh v th vit vi on xem. Khi m chy ci lisp do chnh mnh vit th cm gic sng gh lm c th xem!

*Mnh ra ci bi ch nht bn vit th nh, th 2 mnh s c p n:-: hi chn 2 im, hi ln, vit ra ti im th 2 dng text c ln va nhp, ni dung l gi tr khong cch hai im.-Gi :+Dng hm distance ly khong cch gia 2 im.

Hng dn vit lisp bi 10:

02:25 c ng bi Phm Quc Duy

*p n bi trc y:

(defun c:doanthang ()(setq a (getpoint "\nChon diem: "))(setq b (getpoint a"\nChon diem: "))(setq dt (getstring "\nDo lon:"))(setq nd (distance a b))(command "-style" "tlkt" "VNI-HELVE" "0" "1" "0" "n" "n")(command ".TEXT" "m" b dt 0 nd)(princ))

-Bn chy th s thy 1 vn to ng th ny: Ci dng text khong cch ny sau du phy l 1 l xch sng rt nhiu s l nhng mnh li khng thch th ch mn sau dy phy l 3 s l thi th lm no ??????

(defun c:doanthang ()(setq a (getpoint "\nChon diem: "))(setq b (getpoint a"\nChon diem: "))(setq dt (getstring "\nDo lon:"))(setq nd (distance a b))(setq ndlc (rtos nd 2 3))(command "-style" "tlkt" "VNI-HELVE" "0" "1" "0" "n" "n")(command ".TEXT" "m" b dt 0 ndlc)(princ))

-Gii thiu bn 1 hm quyt nh s l sau du phy nh: Hm rtos c php nh sau.(setq ndlc (rtos nd 2 3))Trong s 3 l s l sau du phy.-Thm dng ny vo l kt qu ng ngay:

Hng dn vit lisp bi 11:

20:42 c ng bi Phm Quc Duy

*By gi trc dng text th hin khong cch ny bn mun thm ch L= v d L=3621.025 th sao???-Gii php dng hm ghp chui, hm: strcat c php nh sau:(setq ndthem (strcat "L=" ndlc))Trong phn trong ngoc kp l phn mun thm vo chui.

(defun c:doanthang ()(setq a (getpoint "\nChon diem: "))(setq b (getpoint a"\nChon diem: "))(setq dt (getstring "\nDo lon:"))(setq nd (distance a b))(setq ndlc (rtos nd 2 3)) (setq ndthem (strcat "L=" ndlc))(setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2))) (command "-style" "tlkt" "VNI-HELVE" "0" "1" "0" "n" "n")(command ".TEXT" "m" b dt 0 ndthem)(princ))Vi by nhiu th bn c th vit c ci lisp nh cao ri y. Linh hot 1 cht vi vi hm tnh ton + - * / l xong ngay. (Phn vit lisp nh cos mnh s quay li sau, n khi no ni n cc hm iu kin ).

Nhn ni v text v chui mnh cung cp thm 1 vi hm lin quan:(setq so (getreal "\nNhap so: ")) nhp vo 1 chui dng s c th dng tnh ton bng cc hm + - * / .

(setq nd (getstring "\nNoi dung:")) nhp vo 1 chui dng text c th l s nhng khng dng tnh ton c.

(setq sochu (strlen chuoicandem)) ly ra gi tr s lng k t ca chui chuoicandem.

(setq chuoicon (substr chuoime vitridoc sokytudoc)) ly chuoicon t chuoime v tr ly bt u t vitridoc vi s lng trch bng sokytudoc. V d(setq chuoicon (substr "www.tailieukythuat.com" 5 14)) th chuoicon = tailieukythuat

(setq ndhoa (strcase ndgoc)) lm chui ndgoc tr thnh k t vit hoa ton b. V d:(setq kyhieu (strcase (getstring 5"\nTen truc: "))) lc ny chui nhp vo d bn g hoa hay thng iu thnh ch hoa ht. (ci ny p dng cho lisp nh trc kch thc v trc kch thc th cc ch lun vit hoa).

Hng dn vit lisp bi 12:

20:43 c ng bi Phm Quc Duy

*Trong tng trng hp c th bn c th nh chiu cao ch cho ph hp vi mc ch ca bn bng cch mc nh ln hoc hi nhp ln. Nhng khi bn mun dng text hin th 1 thng bo g th lm sao?Lc ny phi gii quyt 2 vn :- ln ca text so vi mn hnh hin hnh l m bo cho ngi dng c c thng bo ca bn.-Sau 1 thi gian nht nh text ny phi b xa i.Mnh cung cp hai hm gii quyt:(setq dolon (getvar "viewsize")) o kch thc chiu cao mn hnh v gn cho bin dolon.(command "DELAY" "1000" "") dng lisp trong thi gian nht nh (c 1000 l 1 giy, hi my c th mnh thy ng vy cn ci my by gi mi n chy nh gic vy mnh cng khng r l bao lu nhng gn n 10000 th n khng chu na) sau chy tip cc dng lisp pha di.

By gi mnh vit 1 on lisp vui vui th ny nh:

(defun c:tlkt ()(setq a (getpoint "\nChon diem viet: "))(setq b (getpoint a"\nChon diem den: "))(setq dolon (getvar "viewsize")) (setq dolonchu (/ dolon 30))(setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2))) (command "-style" "tlkt" "VNI-HELVE" "0" "1" "0" "n" "n")(command ".TEXT" "m" a dolonchu 0 "tailieukythuat.com")(command "DELAY" "5000" "") (command ".MOVE" "last" "" a c)(command "DELAY" "5000" "") (command ".MOVE" "last" "" a c)(command "DELAY" "5000" "") (command ".ERASE" "last" "")(princ))

Gii thch:-Chn im u tin l a, im th hai l b.-o cao mn hnh gn cho dolon.-Ly dolon chia cho 30 gn cho bin dolonchu.-T a v b suy ra im c l trung im ab.-To text Style v vit dng ch ti im a ln bng dolonchu ni dung tailieukythuat.com. -Dng 1 lt.-Move ci text t a n c.-Dng 1 lt.-Li Move ci text t a n c. Lc ny ci text ang nm c nn n s c chuyn n b.-Dng 1 lt.-Xa ci text i.

Hng dn vit lisp bi 13:

20:44 c ng bi Phm Quc Duy

Vn l by gi bn mun ci text i t t thi ngha l khong cch di chuyn nh li nhng li mi bit cch xc nh trung im t hai im. Sau y mnh trnh by thm 1 cch xc nh 1 im bng lisp na. Hm Polar c php nh sau:(setq c (polar a goc dodai)) xc nh im c t im a vi goc v dodai.Cng ci lisp trn nhng by gi mi ln move ci text i bng 1/10 khong cch ab thi:

(defun c:tlkt ()(setq a (getpoint "\nChon diem viet: "))(setq b (getpoint a"\nChon diem den: "))(setq dolon (getvar "viewsize")) (setq dolonchu (/ dolon 30))(setq daiab (distance a b)) (setq dodai (/ daiab 10))(setq gocab (angle a b)) (setq c (polar a gocab dodai)) (command "-style" "tlkt" "VNI-HELVE" "0" "1" "0" "n" "n")(command ".TEXT" "m" a dolonchu 0 "tailieukythuat.com")(command "DELAY" "5000" "") (command ".MOVE" "last" "" a c)(command "DELAY" "5000" "") (command ".MOVE" "last" "" a c)(command "DELAY" "5000" "") (command ".MOVE" "last" "" a c)(command "DELAY" "5000" "") (command ".MOVE" "last" "" a c)(command "DELAY" "5000" "") (command ".MOVE" "last" "" a c)(command "DELAY" "5000" "") (command ".MOVE" "last" "" a c)(command "DELAY" "5000" "") (command ".MOVE" "last" "" a c)(command "DELAY" "5000" "") (command ".MOVE" "last" "" a c)(command "DELAY" "5000" "") (command ".MOVE" "last" "" a c)(command "DELAY" "5000" "") (command ".MOVE" "last" "" a c)(command "DELAY" "5000" "") (command ".ERASE" "last" "")(princ))

Gii thch:-Chn im u tin l a, im th hai l b.-o cao mn hnh gn cho dolon.-Ly dolon chia cho 30 gn cho bin dolonchu.-Do khong cch t a ti b gn cho bin daiab.-Chia daiab cho 10 gn cho bin dodai.-o gc ab to vi trc x gn cho bin gocab.-Dng hm Polar xc nh im c t im a, i theo gc gocab vi khong cch dodai-To text Style v vit dng ch ti im a ln bng dolonchu ni dung tailieukythuat.com. -Dng 1 lt.-Move ci text t a n c.-Lm hai bc trn 10 ln.-Dng 1 lt.-Xa ci text i.

Hng dn vit lisp bi 14:

21:02 c ng bi Phm Quc Duy

Dm li ci lisp bi trn bn s thy on lp i lp li 10 ln l qu di cn c gii php thch hp hn. Gii thiu vi bn 1 vng lp n gin nht: Vng lp Rpeat c php nh sau:

(repeat solanNi dung cn lp li)Nh vy on lisp s sa li nh sau.

(defun c:tlkt ()(setq a (getpoint "\nChon diem viet: "))(setq b (getpoint a"\nChon diem den: "))(setq dolon (getvar "viewsize")) (setq dolonchu (/ dolon 30))(setq daiab (distance a b)) (setq dodai (/ daiab 10))(setq gocab (angle a b)) (setq c (polar a gocab dodai)) (command "-style" "tlkt" "VNI-HELVE" "0" "1" "0" "n" "n")(command ".TEXT" "m" a dolonchu 0 "tailieukythuat.com")(repeat 10(command "DELAY" "5000" "") (command ".MOVE" "last" "" a c))(command "DELAY" "5000" "") (command ".ERASE" "last" "")(princ))

Hng dn vit lisp bi 15:

00:12 c ng bi Phm Quc Duy

By gi bn li mun s ln move text l do bn nhp vo kia. p dng hm getreal xem no:

(defun c:tlkt ()(setq a (getpoint "\nChon diem viet: "))(setq b (getpoint a"\nChon diem den: "))(setq so (getreal "\nSo lan di chuyen: ")) (setq dolon (getvar "viewsize")) (setq dolonchu (/ dolon 30))(setq daiab (distance a b)) (setq dodai (/ daiab so))(setq gocab (angle a b)) (setq c (polar a gocab dodai)) (command "-style" "tlkt" "VNI-HELVE" "0" "1" "0" "n" "n")(command ".TEXT" "m" a dolonchu 0 "tailieukythuat.com")(setq sol (fix so))(repeat sol(command "DELAY" "5000" "") (command ".MOVE" "last" "" a c))(command "DELAY" "5000" "") (command ".ERASE" "last" "")(princ))

Nu bn thay dng:(setq so (getreal "\nSo lan di chuyen: ")) Bng dng:(setq so (getstring "\nSo lan di chuyen: ")) Th lisp s li ngay mc d bn vn nhp vo l s nhng chui thu c bng hm getstring khng dng tnh ton vi cc hm + - * / c nn dng(setq dodai (/ daiab so))S khng lng gi c, xut hin li v xtttttttttttttt lisp hng. y l im rt cn lu trong vit lisp.-Bn thy c 1 dng l na:(setq sol (fix so))V vng lp repeat i hi i s l s nguyn ngha l khng c phy phic g ht. Trong khi bn nhp s ln di chuyn bng hm getreal kt qu li l s thc v d nhp 10 th thc cht n biu din trong lisp l dng 10,000000000000000000000000000000... Bn dng hm fix s lm mt ton b cc k t sau du phy lc ny mi dng kt qu thu c ny cung cp cho vng lp repeat c.

Hng dn vit lisp bi 16:

00:16 c ng bi Phm Quc Duy

*By gi dng ci lisp trn sa li nh sau:Chn 1 hoc nhiu i tng c sn trn mn hnh. Chn im gc a, chn im n b, hi s ln di chuyn. Move ci i tng va chn t a n b t t vi s on di chuyn l s ln va nhp.-Cn bit c php chn i tng bng lisp:(Setq doituong (Ssget))-Khi dng dng trn cc i tng c chn s gn cho bin doituong. cho p thm dng (princ "\nChon doi tuong") trc dng chn i tng ghi dng Chon doi tuong ra dng lnh trc khi chn i tng.

(defun c:tlkt ()(princ "\nChon doi tuong")(Setq doituong (Ssget))(setq a (getpoint "\nChon diem goc: "))(setq b (getpoint a"\nChon diem den: "))(setq so (getreal "\nSo lan di chuyen: ")) (setq daiab (distance a b)) (setq dodai (/ daiab so))(setq gocab (angle a b)) (setq c (polar a gocab dodai)) (setq sol (fix so))(repeat sol(command "DELAY" "5000" "") (command ".MOVE" doituong "" a c))(princ))

Khi dng dng (Setq doituong (Ssget)) chn i tng th tt c cc kiu i tng c qut qua s chn ht nhng c i lc bn c nhu cu ch chn 1 kiu i tng no thi v d: line, dimension, hatch, insert. . . th dng dng sau:(setq doituong (ssget '((0 . "text"))))-Lc ny trong vng qut ca bn ch nhn cc i tng c kiu nm trong ngoc kp (dng trn c th l i tng kiu text) l c chn thi .

Hng dn vit lisp bi 17:

00:17 c ng bi Phm Quc Duy

*Khi chn i tng li ny sinh vn nu lisp hi chn i tng m khng c i tng no c chn ht lc ny doituong c gi tr l nil m lisp vn tip tc chy th s pht sinh li. Nn cn c hm iu kin kim tra nu doituong khc nil th tip tc chy nu doituong l nil th bo l khng c i tng no v kt thc lnh:-Hm If l hm iu kin nu nh m l th. C php nh sau:

(if (iu kin 1) (PROGN

th lm cng tc 1))(IF (iu kin 2) (PROGNTh lm cng tc 2))

*Cc hm so snh:< nh hn.> ln hn.= ln hn hoc bng.= bng./= khng bng.

By gi p dng vo lisp trn kim tra i tng chn c gi tr hay khng a ra quyt nh kt thc lnh hay thc hin lnh.

(defun c:tlkt ()(princ "\nChon doi tuong")(Setq doituong (Ssget))(if (= doituong nil) (PROGN(princ "\nKhong tim thay doi tuong nao!")))(IF (/= doituong nil) (PROGN(setq a (getpoint "\nChon diem goc: "))(setq b (getpoint a"\nChon diem den: "))(setq so (getreal "\nSo lan di chuyen: ")) (setq daiab (distance a b)) (setq dodai (/ daiab so))(setq gocab (angle a b)) (setq c (polar a gocab dodai)) (setq sol (fix so))(repeat sol(command "DELAY" "5000" "") (command ".MOVE" doituong "" a c))))(princ))

-Chy lnh:+Chn 1 vng trng no lisp s kt thc v bo: Khong tim thay doi tuong nao!.+Chn c i tng lisp s thc hin nh lisp lc ny.

Hng dn vit lisp bi 18:

00:18 c ng bi Phm Quc Duy

*Hm If ng dng rt nhiu nh bn cn ht sc linh hot trong vic dng n to tng tc gia ngi dng vi lisp.-Quay tut li ci lisp array ci vng trn nh: By gi sau khi chn im a v b, v ng thng ab, v ng trn tm c ng knh ab, v ng trn tm a bn knh ab, thm chc nng hi c mun array ci ng trn ny ra khng nu ni c th array cn ni khng th kt thc lnh.

(defun c:doanthang ()(setq a (getpoint "\nChon diem: "))(setq b (getpoint a"\nChon diem: "))(command ".line" a b "")(setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2))) (command ".circle" c a)(command ".circle" a b)(setq traloi (strcase (getstring "\nBan co nuon array hay khng? Y/N:")))(if (= traloi "N") (PROGN))(IF (= traloi "Y") (PROGN(setq sl (getstring "\nSo luong:"))(command ".array" "last" "" "p" c sl "" "")))

(princ))

Bn dng (setq traloi (strcase (getstring "\nBan co nuon array hay khng? Y/N:"))) dng hm strcase trc hm getstring m bo chui nhn c khi nhp vo lun lun l vit hoa v hm if kim tra mnh kim tra gi tr traloi l vit hoa nh vy th khi bn nhp ch Y l thng hay l hoa th kt qu hm if mi thc hin vic array ci vng trn c.

*y by gi bn thy my ci lisp ging lisp ri nghen lm vic c trnh t lp lang c hi c tr li y l giao tip vi lisp . Ngon hen!

Hng dn vit lisp bi 19:

00:19 c ng bi Phm Quc Duy

By gi sau khi thc hin lisp bn dng lnh undo s thy n undo tng cht tng cht ch khng ging lnh ca cad xu no v trong lisp mnh thc hin mt m lnh n s t t undo tng lnh mt. Vic ny gy phin phc nu trong lisp mnh dng rt nhiu lnh bn mun lisp undo cng ging nh lnh cad ka. Cch lm nh sau: Thm hai dng sau vo lisp.+Thm dng sau vo sau dng m u:(defund c:lenh ()(command "undo" "be")+Thm dng sau trc dng kt thc:(command "undo" "end")(Princ))

-Lc ny sau khi thc lisp bn thc hin lnh undo n s undo nguyn tin trnh lisp thc hin. -T y tr i s kt np thm hai dng ny vo phn m u v kt thc lisp nh.

Hng dn vit lisp bi 20:

00:20 c ng bi Phm Quc Duy

*Cc lisp t trc ti gi nu bn chy th trn bn v trng trn th chy ngon nhng bn th chy trn bn v c nhiu i tng ri th s c khi chy khng ng v khi thc hin cc lnh v c chn cc im s b nh hng bi ch bt im t ng nn bt sang cc im khng ng vi tnh ton dn n cc hnh v s khng ng .-Cch gii quyt l tt ch bt im t ng i. C php nh sau:(setvar "osmode" 0)-Nhng ngi dng lisp ca mnh s bc mnh v khi dng lisp ca mnh th mnh tt mt bt im t ng ca h. Trong vit lisp vic thay i cc thit lp mc nh ca ngi ta l khng nn. Gii php l lu thit lp ca h li bng 1 bin tm sau tr li h. Cch lm nh sau:+Lu bt im t ng (setq luubatdiem (getvar "osmode"))+Tr li bt im t ng (setvar "osmode" luubatdiem)-Nh vy trong lisp sau khi cung cp d liu u vo nh bt im mnh tin hnh lu bt im li, tt bt im i, thc hin cc thao tc v, tnh ton, tr li bt im trc khi kt thc lnh.V d lisp sau khi thm phn undo v bt im:

(defun c:doanthang ()(command "undo" "be")(setq a (getpoint "\nChon diem: "))(setq b (getpoint a"\nChon diem: "))(setq luubatdiem (getvar "osmode"))(setvar "osmode" 0)(command ".line" a b "")(setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2))) (command ".circle" c a)(command ".circle" a b)(setq traloi (strcase (getstring "\nBan co nuon array hay khng? Y/:")))(if (= traloi "N") (PROGN))(IF (= traloi "Y") (PROGN(setq sl (getstring "\nSo luong:"))(command ".array" "last" "" "p" c sl "" "")))(setvar "osmode" luubatdiem)(command "undo" "end")(princ))

Hng dn vit lisp bi 21:

00:21 c ng bi Phm Quc Duy

*n lc ny kin thc v lisp ca bn vit lisp nh cos cao ri. Mnh lm mu bn c th quen dn vi cch t v gii quyt vn bng lisp nh.*t vn :-Khi v bn c nhu cu nh cao cho cc mt ng, mt ct. Cch thng thng l bn c sn ci BLOCK ri chn vo COPY ti cc v tr cn thit xong o v sa cc ga tr ca text cho ph hp. Ci phin l bn phi o, tnh theo t l v t mi c gi tr in vo cc text, cn phi thm du pha trc gi tr text na. V d +3.600. -Gii quyt vn bng cch lm cc cng vic sau:a/To 1 BLOCK c tn caodo.dwg lu vo th mc no ( y mnh dng C:\tailieukythuat\dwg\caodo.dwg). Khi to Block ny bn nn to Layer 0 c mu l bylayer, khi chn vo n i theo cc thng s ca layer hin hnh. im chn BLOCK nm ng mi tn ca BLOCK.b/Vit lisp vi cc chc nng sau:+Hi 1 mt v bng bao nhiu: (dng getreal)+Hi chn im nh cao : (dng getpoint)0.000: (dng getpoint) lc ny lu ch bt im li v gn ch bt im bng 128 (bt vung gc).(+Hi chn cao +Chn BLOCK caodo.dwg vo im nh cao va chn. Lc ny gn ch bt im bng 0.+Tnh ton ta vit text cn c vo ta im va chn.0.000.(+o khong cch t im nh cao n im c cao +Chia khong cch o c cho gi tr v 1 mt.+Lm trn sau du phy l 3 ch s: (dng rtos)0.000(+Ly gi tr y ca im nh cos tr cho gi tr y ca im cao +Nu gi tr ny >0 th gn du pha trc ca text l du +.+Nu gi tr ny trenduoi 0) (PROGN(setq dau "+ ")))(if (< trenduoi 0) (PROGN(setq dau "- ")))(setq noidung (strcat dau (rtos giatri 2 3)))(command "-style" "tlkt" "VNI-HELVE" "0" "1" "0" "n" "n")(command ".TEXT" c 250 0 noidung)(command "INSERT" "c:\\tailieukythuat\\dwg\\caodo.dwg" a 1 1 0)(setvar "osmode" luubatdiem)(command "undo" "end")(princ))

Bn dng dng INSERT block caodo.dwg nh phn ng dn n file phi dng \\ th hin th mc v khi c lisp s b bt mt du \. Hoc bn th hin bng du xt ngc cng c:(command "INSERT" "c:\\tailieukythuat\\dwg\\caodo.dwg" a 1 1 0)(command "INSERT" "c:/tailieukythuat/dwg/caodo.dwg" a 1 1 0)

Hng dn vit lisp bi 22:

01:47 c ng bi Phm Quc Duy

Khi bn thc hin lisp trn nu ti th mc C:\tailieukythuat\dwg\ li khng tn ti file caodo.dwg th s xut hin li ti dng insert, lisp bo ra 1 m li dm khng ng xu no. Mnh nn kim tra file C:\tailieukythuat\dwg\caodo.dwg c tn ti hay khng. Nu c th thc hin lnh nu khng th thng bo khng tm thy v b qua cu lnh insert.-Hm findfile s gip bn kim tra file c tn ti hay khng, nu khng hm tr v gi tr nil, Kt hp hm if a ra quyt nh trong 2 trng hp: tm thy v khng tm thy

(defun c:cos ()(command "undo" "be")(setq motmet (getreal "\nMot met ban ve bang bao nhieu: ")) (setq luubatdiem (getvar "osmode"))(setq a (getpoint "\nChon diem muon danh cos: "))(setvar "osmode" 128)(setq b (getpoint a"\nChon cao do 0.000: "))(setvar "osmode" 0)(setq daiab (distance a b)) (setq giatri (/ daiab motmet))(setq c (list (- (car a) 250) (+ (cadr a) 410)))(setq trenduoi (- (cadr a) (cadr b)))(if (= trenduoi 0) (PROGN(setq dau "%%p ")))(if (> trenduoi 0) (PROGN(setq dau "+ ")))(if (< trenduoi 0) (PROGN(setq dau "- ")))(setq noidung (strcat dau (rtos giatri 2 3)))(command "-style" "tlkt" "VNI-HELVE" "0" "1" "0" "n" "n")(command ".TEXT" c 250 0 noidung)(setq timfile (findfile "c:\\tailieukythuat\\dwg\\caodo.dwg"))(if (= timfile nil) (PROGN(princ "\nKhong tim thay file caodo.dwg")))(if (/= timfile nil) (PROGN(command "INSERT" "c:\\tailieukythuat\\dwg\\caodo.dwg" a 1 1 0)))(setvar "osmode" luubatdiem)(command "undo" "end")(princ))

Hng dn vit lisp bi 23:

01:48 c ng bi Phm Quc Duy

Bi trc mnh gii thiu vng lp repeat l vng lp n gin nht. Hm nay mnh gii thiu tip vng lp c iu kin. Hm WHILE.-C php nh sau:(while (iu kin)(cc thao tc lp li))-Cch dng n gin nht nh sau:(while(cc thao tc lp li))on trn c tc dng nu nhn enter th vng lp s dng li nu khng cc thao tc s c lp li. V d vi lisp sau:-y l lisp nguyn mu:(defun c:doanthang ()(setq a (getpoint "\nChon diem: "))(setq b (getpoint a"\nChon diem: "))(command ".line" a b "")(princ))-Tc dng hi chn 2 im v v on thng qua 2 im, kt thc lnh. By gi bn mun lisp tip tc hi chn im v tip tc v on thng khi no nhn enter th kt thc lnh (ging lnh line ca cad)

(defun c:doanthang ()(setq a (getpoint "\nChon diem: "))(setq b (getpoint a"\nChon diem: "))(command ".line" a b "")(setq a b)(while(setq b (getpoint a"\nChon diem tiep theo : "))(command ".line" a b "")(setq a b))(princ))-Hai on lisp trn mnh tm thi b qua phn lu bt im v undo bn d nhn ra s thay i.-Bn lu dng (setq a b) c tc dng sau khi v on thng t a ti b th gn im b cho bin a lc ny im b tr thnh im a sau chn tip im b li v t a ti b, li gn b cho a c nh vy. Khi bn enter th vng lp kt thc, kt thc lnh.-Tng t bn c th sa li lisp nh cos lm cho chn c nhiu im nh cao trong 1 ln gi lnh nh sau:

(defun c:cos ()(command "undo" "be")(setq motmet (getreal "\nMot met ban ve bang bao nhieu: ")) (setq luubatdiem (getvar "osmode"))(setq a (getpoint "\nChon diem muon danh cos: "))(setvar "osmode" 128)(setq b (getpoint a"\nChon cao do 0.000: "))(setvar "osmode" 0)(setq daiab (distance a b)) (setq giatri (/ daiab motmet))(setq c (list (- (car a) 250) (+ (cadr a) 410)))(setq trenduoi (- (cadr a) (cadr b)))(if (= trenduoi 0) (PROGN(setq dau "%%p ")))(if (> trenduoi 0) (PROGN(setq dau "+ ")))(if (< trenduoi 0) (PROGN(setq dau "- ")))(setq noidung (strcat dau (rtos giatri 2 3)))(command "-style" "tlkt" "VNI-HELVE" "0" "1" "0" "n" "n")(command ".TEXT" c 250 0 noidung)(setq timfile (findfile "c:\\tailieukythuat\\dwg\\caodo.dwg"))(if (= timfile nil) (PROGN(princ "\nKhong tim thay file caodo.dwg")))(if (/= timfile nil) (PROGN(command "INSERT" "c:\\tailieukythuat\\dwg\\caodo.dwg" a 1 1 0)))(setvar "osmode" luubatdiem)(while(setq a (getpoint b"\nChon diem muon danh cos : "))(setq luubatdiem (getvar "osmode"))(setvar "osmode" 0)(setq daiab (distance a b)) (setq giatri (/ daiab motmet))(setq c (list (- (car a) 250) (+ (cadr a) 410)))(setq trenduoi (- (cadr a) (cadr b)))(if (= trenduoi 0) (PROGN(setq dau "%%p ")))(if (> trenduoi 0) (PROGN(setq dau "+ ")))(if (< trenduoi 0) (PROGN(setq dau "- ")))(setq noidung (strcat dau (rtos giatri 2 3)))(command "-style" "tlkt" "VNI-HELVE" "0" "1" "0" "n" "n")(command ".TEXT" c 250 0 noidung)(setq timfile (findfile "c:\\tailieukythuat\\dwg\\caodo.dwg"))(if (= timfile nil) (PROGN(princ "\nKhong tim thay file caodo.dwg")))(if (/= timfile nil) (PROGN(command "INSERT" "c:\\tailieukythuat\\dwg\\caodo.dwg" a 1 1 0)))(setvar "osmode" luubatdiem))(command "undo" "end")(princ))

Hng dn vit lisp bi 24:

01:49 c ng bi Phm Quc Duy

Nhn ci lisp trn bn s thy c hai on ni dung ging y ht nhau dn n lisp qu di. Cch gii quyt: C ci on no c ni dung ging nhau m li xut hin nhiu ln th lm nh sau:(defun doanlap ()Ni dung on)Lu sau defun khng c c:Sau c ch no cn nguyn ci on ch cn thay bng dng(doanlap) l c. V d lisp nh cos sa li nh sau:

(defun vonglapcos ()(setvar "osmode" 0)(setq daiab (distance a b)) (setq giatri (/ daiab motmet))(setq c (list (- (car a) 250) (+ (cadr a) 410)))(setq trenduoi (- (cadr a) (cadr b)))(if (= trenduoi 0) (PROGN(setq dau "%%p ")))(if (> trenduoi 0) (PROGN(setq dau "+ ")))(if (< trenduoi 0) (PROGN(setq dau "- ")))(setq noidung (strcat dau (rtos giatri 2 3)))(command "-style" "tlkt" "VNI-HELVE" "0" "1" "0" "n" "n")(command ".TEXT" c 250 0 noidung)(setq timfile (findfile "c:\\tailieukythuat\\dwg\\caodo.dwg"))(if (= timfile nil) (PROGN(princ "\nKhong tim thay file caodo.dwg")))(if (/= timfile nil) (PROGN(command "INSERT" "c:\\tailieukythuat\\dwg\\caodo.dwg" a 1 1 0)))(setvar "osmode" luubatdiem));;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;(defun c:cos ()(command "undo" "be")(setq motmet (getreal "\nMot met ban ve bang bao nhieu: ")) (setq luubatdiem (getvar "osmode"))(setq a (getpoint "\nChon diem muon danh cos: "))(setvar "osmode" 128)(setq b (getpoint a"\nChon cao do 0.000: "))(Vonglapcos)(while(setq a (getpoint b"\nChon diem muon danh cos : "))(setq luubatdiem (getvar "osmode"))(Vonglapcos))(command "undo" "end")(princ))

Hng dn vit lisp bi 25:

01:50 c ng bi Phm Quc Duy

C nhiu trng hp bn cn lm vic vi mt vi file phc v 1 nhu cu no ca lisp. Gii thiu cc hm lin quan:*Hm getfiled lm xut hin hp thoi chn file C php:(getfiled tieude tenfile duoi kieu) trong :-tieude: l ni dung dng ch xut hin trn tiu hp thoi.-tenfile: l tn file hoc ng dn mc nh xut hin sn trong hp thoi.-duoi: l phn m rng ca file.-kieu: l kiu hp thoi open hay save:+1: Hp thoi save.+8: Hp thoi open.-Lu cc thng s trn iu phi c xc nh, tham s no khng s dng phi gn cho n gi tr rng "".-D hp thoi l save hay open th kt qu ca hm getfiled l mt chui dng ng dn, lm g vi n do mnh quyt nh.-V d: Lisp chn 1 file insert vo bn v:

(defun c:chen ()(command "undo" "be")(setq filechen (getfiled "Chon flie de chen" "" "dwg" 8))(setq a (getpoint "\nChon diem chen: "))(command "INSERT" filechen a 1 1 0)(command "undo" "end")(princ))

Hng dn vit lisp bi 26:

01:51 c ng bi Phm Quc Duy

Sau khi c ng dn 1 file th c th lm rt nhiu vic vi n: V d copy, delete .v.v. Mnh c th thc hin cc lnh dos t dng lnh lisp bng cch gi lnh shell trc khi gi lnh dos. chc n c 1 s bn tr by gi khng hc dos nh lp gi ti mnh hi xa mnh a ra 1 s v d dng lnh dos cc bn tham kho:1/To th mc tailieukythuat trong a c(command "SHELL" "MD C:\\tailieukythuat" )2/Copy file duy.txt trong th mc D:\\tailieukythuat vo th mc C:\\tailieukythuat(command "SHELL" "copy D:\\tailieukythuat\\duy.txt C:\\tailieukythuat" )3/Copy tt c cc file trong th mc D:\\tailieukythuat vo th mc C:\\tailieukythuat(command "SHELL" "copy D:\\tailieukythuat\\*.* C:\\tailieukythuat" )4/Copy file duy.txt trong th mc D:\\tailieukythuat vo th mc hin hnh ca cad(command "SHELL" "copy D:\\tailieukythuat\\duy.txt " )5/Copy tt c cc file trong th mc D:\\tailieukythuat vo th mc hin hnh ca cad(command "SHELL" "copy D:\\tailieukythuat\\*.* " )6/Xa file duy.txt trong th mc D:\\tailieukythuat (command "SHELL" "del D:\\tailieukythuat\\duy.txt" )7/Xa tt c cc file trong th mc D:\\tailieukythuat (command "SHELL" "del D:\\tailieukythuat\\*.*" )

y ng dng lnh dos vo lisp ch yu to th mc, copy file, xa file. C 1 ci hn ch l khng xa th mc c nhng by nhiu l dng ri.

Hng dn vit lisp bi 27:

01:52 c ng bi Phm Quc Duy

*c d liu t file txt. Gm 3 bc:-M file (hm open).-c d liu t file (hm read-line).-ng file (hm close)

*Vit d liu vo file txt. Gm 3 bc:-M file (hm open).-Vit d liu vo file (hm write-line). -ng file (hm close)

*Hm Open dng m 1 file c hoc vit d liu vo file. C php:(open tenfile kieumo) trong :-tenfile: l ng dn y ca file. V d D:\\tailieukythuat\\duy.txt-kieumo: l k t vit thng a r w dng xc nh kiu m file:+a m file tenfile chp d liu ni tip vo cui file. Nu tm thy file con tr nm cui file, d liu chp vo s ni vo cui file. Nu khng tm thy file tenfile s c to mi, con tr nm u file.+r m file tenfile c d liu. Con tr nm ti v tr dng u tin ca file. Nu khng tm thy file ny hm tr v nil.+w m file tenfile chp d liu vo file ny. Nu tm thy d liu trong file s b chp ln. Nu khng tm thy file tenfile s c to mi, con tr nm u file.

*Khi open 1 file bn cp cho n 1 tn i din. Nh rng file phi c ng bng hm close trc khi thot khi acad nu khng file c nguy c b vng i u khng tm ra.

-V d m file C:\\tailieukythuat\\duy.txt vit dng tailieukythuat.com v ng file li nh sau:

(setq tenfile (open C:\\tailieukythuat\\duy.txt a))(setq noidungviet tailieukythuat.com)(write-line noidungviet tenfile)(close tenfile)

-V d m file C:\\tailieukythuat\\duy.txt c dng du tin v ng file li nh sau:

(setq tenfile (open C:\\tailieukythuat\\duy.txt r))(setq noidungdoc (read-line tenfile))(close tenfile)

-Lu khi thc hin xong hm read-line th con tr s nhy xung dng k tip nn mun c ni dung dng th n ca file C:\\tailieukythuat\\duy.txt th mnh dng hm repeat n ln vi dng (setq noidungdoc (read-line tenfile)). V d c dng th 3 v gn cho bin noidungdoc:

(setq tenfile (open C:\\tailieukythuat\\duy.txt r))(repeat 3(setq noidungdoc (read-line tenfile)))(close tenfile)

Hng dn vit lisp bi 28:

02:08 c ng bi Phm Quc Duy

*Trong khi vit lisp i khi c cc d liu nhp vo lp li c mi ln lisp hi li phi nhp vo. Cch hay hn l d liu no nhp vo ri th ghi nh li cho ln sau nu cn gi tr khc th nhp vo cn nu vn dng gi tr c th ch cn enter l c gi tr c dng.-Sau y l on lisp gip cho bn c thm 2 hm c tc dng lu gi gi tr nhp vo. Mnh tm thy n trong 1 a cd ko bit r tc gi v cng khng tm hiu cch lm vic ca n c bit tc dng v ng dng vo cng vic thi. Bn cng vy nh c lu on ny li sau dng theo cch mnh hng dn.

;---------------------------------------(defun nstr (stri def)(princ stri)(princ "")(princ ":")(princ " "));defun nstr;--------------------(defun nstr1 (stri)(princ stri)(princ "")(princ ":")(princ " "));defun nstr1;---------------------(defun nint (prompt def / temp)(if def(setq temp (getint (nstr prompt def)))(setq def (getint (nstr1 prompt))));if def(if temp(setq def temp)def);if temp);defun nint;---------------------(defun dnint (prompt def / temp)(if def(setq temp (getreal (nstr prompt def)))(setq def (getreal (nstr1 prompt))));if def(if temp(setq def temp)def);if temp);defun nint;--------------------(defun ndist (po prompt def / temp) ;nhan kh/cach va luu gia tri mac dinh(if def(setq temp (getdist po (nstr prompt def)))(setq def (getdist po (nstr1 prompt))))if def(if temp(setq def temp)def);if temp);defun ndist;-----------------------------------

Cch dng:-Hm ndint: lu gi gi tr s. Gi tr s ny c nhp t bn phm.

(setq giatri (dnint "\nTi le chinh "giatri1))(setq giatri1 giatri)

V d on lisp scale vi t l scale c lu li.

(Defun c:sclt (a)(command "undo" "be")(Prompt "\nChon doi tuong muon chinh ti le")(setq dtthu (ssget))(setq a (getpoint "\nChon tam phong: "))(setq tilechinh (dnint "\nTi le chinh "tiledchinh1))(setq tiledchinh1 tilechinh)(command "scale" dtthu "" (list (car a)(cadr a)) tilechinh)(command "undo" "end")(Prin I))

*Cch dng:-Hm ndist: lu gi gi tr khong cch. Gi tr ny c chuyn thnh s, gi tr ny c th c nhp t bn phm.

(setq giatri (ndist a "\nDo cao khoi muon ve "giatri1))(setq giatri1 giatri) Trong a l im c xc nh.V d on lisp v box vi cao khi c lu li.

(Defun c:khoi (a)(command "undo" "be")(setq a (getpoint "\nDiem thu nhat:"))(setq b (getcorner a"\nDiem thu hai: ")) (setq dckhoive (ndist a "\nDo cao khoi muon ve "cckhoive1))(setq cckhoive1 dckhoive)(command "box" (list (car a) (cadr a) (caddr a)) (list (car b) (cadr b) (caddr b)) dckhoive)(command "undo" "end")(Prin I))

Bn lu on nh ngha hai hm ny ch cn load ln 1 ln trong 1 phin lm vic th cc lisp c dng 2 hm ny iu chy c c nh.

Hng dn vit lisp bi 29:

02:09 c ng bi Phm Quc Duy

Mt chc nng hay ca lisp l c th thao tc lp li mt vi thao tc trn tng i tng ca tp hp chn.ng dng vng lp While.V d bn c tp hp tapdoituong gm cc text hnh thnh t (setq tapdoituong (ssget '((0 . "text"))))By gi bn mun v 1 hnh trn tm ti im chn text bn knh 100.Vic v 1 hnh trn bng lisp khi bit tm v bn knh bng lisp th n gin ri.(command "circle" diemve 100)Vn l lm ln lt cho tng text trong c tp hp chn.Dng hm sslength ly ra s lng i tng trong tp hp chn (setq sodoituong (sslength tapdoituong))Hm ssname ly ra i tng th thutu trong tp hp tapdoituong(setq doituong (ssname tapdoituong thutu))u tin cho thutu = 0 sau p dng vng lp While vi iu kin thutu< sodoituong, cui vng lp cho thutu = thutu+1 n khi thutu= sodoituong th vng lp s dng li.

on lisp nh sau:(defun c:vht ()(command "undo" "be")(setq luubatdiem (getvar "osmode"))(setvar "osmode" 0)

(Princ "\nChon cac text :")(setq tapdoituong (ssget '((0 . "text"))))(setq thutu 0)(setq sodoituong (sslength tapdoituong))

(while (< thutu sodoituong)(setq doituong (ssname tapdoituong thutu))(setq laynoidung (entget doituong))(setq diemve (cdr (assoc 10 laynoidung)))(command "circle" diemve 100)(setq thutu (+ thutu 1)))(command "undo" "end")(setvar "osmode" luubatdiem)(Princ))

Bn chy th lisp ny chn cc text n s v cc hnh trn vo im chn ca tng text.on sau gip ly ra im chn ca text:(setq laynoidung (entget doituong))(setq diemve (cdr (assoc 10 laynoidung)))Bi sau mnh s ni v cch ly cc thng tin v i tng cad bng lisp, c bao hm c hai dng trn. Bi ny bn chp nhn n nh.* thc hnh mnh ra 1 bi bn vit th nh.Vit lisp hi chn cc text, hi chn im canh l, move cc text c chn sao cho im canh l ca text thng hng theo phng thng ng.*Gi :-C bn on lisp nh trn. -Sau khi chn i tng thm phn hi chn im canh l. (diemchuan)-Sau khi ly c im canh l text (trng hp ny l diemve). B dng v hnh trn m thay bng dng move.-Move tng text t im canh l (diemve) n im mi. im mi xc nh bng cch ly gi tr x ca diemchuan v y ca diemve.*S c p n trong bi ti.Cch lm 1 b lisp di ng.

23:34 c ng bi Phm Quc Duy

*Bn c trong tay mt b lisp ng v dng quen. i lc bn ngi 1 my khc cm thy rt bt tin, ci lisp ca mnh vo th s nh hng n ngi khc.*Mnh cng b tnh trng ny v n nay tm ra cch gii quyt nn khoe vi mi ngi. Cch ny mnh gi l lisp di ng.-Nhiu bn s ngh lisp th u cng khng quan trng ch cn load ln thi c g phi tinh vi,,,,,,,,,,, Vn l lisp nhiu khi khng n thun ch l cc file lisp m cn rt nhiu th km theo v d:+File dwg dng chn vo phc v nhu cu no ca lisp.+File dcl dng hin th hp thoi.+Cc file sld dng cho hp thoi v cc mc ch trang tr, minh ha khc.Ni chung l c rt nhiu loi file km theo cn phi dng trong ng dng lisp.

-Thng thng ngi vit lisp c hai cch ng x vi cc file ny:+Ch ch danh file vi y ng dn v d:(command ".INSERT" "C:\\tienich\\dwg\\cott.dwg" (list (car a)(cadr a)) 1 1 0)+Ch tn file khng c ng dn v to Support File Search Path n th mc cha file v d:(command ".INSERT" "cott.dwg" (list (car a)(cadr a)) 1 1 0)V Add th mc C:\\tienich\\dwg\\ vo Support File Search Path.-C hai trng hp trn ph hp khi lisp nm c nh trn my. By gi bn chp tt c vo CD hoc USB em n i my khc th ng dn s khng cn n nh (mi my mi khc) Ti xin trnh by cch m ti p dng cho ng dng lisp ca mnh nh sau:

-T chc mt th mc tng (ti t tn tienich).Bn trong l cc th mc con theo tng loi file ( d kim sot) v d ti t nh sau:+DWG+DCL+LENH+FLIEHETHONG-To 1 file bt k tt nht nn l file c nh dng t bit cht cho nhm ln (trng hp ca ti l file DUY.ICO). t file ny trong th mc tng v d: tienich\\duy.ico. Tc dng ca file ny ti s trnh by pha di.-Ci to tt c cc dng trong lisp c lin quan n file bn ngoi nh sau:

(start_image "img_1")(slide_image 0 0 (dimx_tile "img_1")(dimy_tile "img_1") (strcat odiachay "\\tienich\\dcl\\lgoduy.sld"))(end_image)

(setq DCL_ID (load_dialog (strcat odiachay "\\tienich\\dcl\\VEKHOIDAC.DCL")))

(command "INSERT" (strcat odiachay "\\tienich\\dwg\\cos") (list (car p0cos)(cadr p0cos)) 1 1 0)Ngha l cn phi xc nh bin odiachay th cc dng dn n file mi hon thin.-To file lisp khi load ln s lm tt c cc bc sau:+Xc nh bin odiachay.+Load tt c cc file lsp cn load.Ni dung nh sau:

(setq vitrifilekiemtraduongdan (getfiled "DE XAC DINH DUONG DAN BAN HAY CHON FILE DUY.ICON " "" "ico" 0))(setq dodaiduongdantienichdocduoc (strlen vitrifilekiemtraduongdan))(setq dodaiduongdantienichdocduoctru (- dodaiduongdantienichdocduoc 16))(setq tenodiachay (substr vitrifilekiemtraduongdan 1 dodaiduongdantienichdocduoctru))(setq odiachay tenodiachay)(load(strcat odiachay "/tienich/lenh/thuvienndung"))(load(strcat odiachay "/tienich/lenh/thuvienchitiet"))(load(strcat odiachay "/tienich/lenh/tienichchonht"))(load(strcat odiachay "/tienich/lenh/thongke"))

Phn mu xanh dng load cc file lisp.Phn mu cam dng xc nh bin odiachay cch lm vic nh sau:+Hin th hp thoi open file vi tiu DE XAC DINH DUONG DAN BAN HAY CHON FILE DUY.ICON, nh dng file mc nh l file *.ico.+c ra ng dn y ca file DUY.ICO.+m s k t trong chui va thu c.+Tr s k t i 16 (l s k t ca chui tienich\\duy.ico).+Ly gi ra chui con ca chui tn file y t v tr u tin n v tr th tr i 16.Gi tr ny chnh l bin odiachay.

*Tt nhin c nhiu cch hay hn lm vic lisp di ng ny nhng mnh lm c nh vy v dng thy rt n nn gii thiu ln y mong gip c cho nhng bn ang b vng vn nh mnh.*Tham kho sn phm y!Hng dn vit lisp bi 30:

01:38 c ng bi Phm Quc Duy

p n y. Hy vng bn hon thnh ging nh sau:

(defun c:vht ()(command "undo" "be")(setq luubatdiem (getvar "osmode"))(setvar "osmode" 0)

(Princ "\nChon cac text :")(setq tapdoituong (ssget '((0 . "text"))))(setq diemchuan (getpoint "\nChon diem canh le: "))(setq thutu 0)(setq sodoituong (sslength tapdoituong))

(while (< thutu sodoituong)(setq doituong (ssname tapdoituong thutu))(setq laynoidung (entget doituong))(setq diemve (cdr (assoc 10 laynoidung)))

(setq xmoi (car diemchuan))(setq ymoi (cadr diemve))(setq diemmoi (list xmoi ymoi))

(command "move" doituong "" diemve diemmoi)(setq thutu (+ thutu 1)))(command "undo" "end")(setvar "osmode" luubatdiem)(Princ))

**Sau y mnh ni v cch ly thng tin ca i tng bng lisp:Gi s rng bn c i tng (doituong) bn c c bng cch no th ty. Mun ly thng tin t n bn phi lm vic ging nh l m ca bc vo trong phng. Dng hm enteget:(setq laynoidung (entget doituong))Khi vo phng th c nhiu th ly. Mi thng tin ca i tng c 1 con s i din v d im canh l th nht ca text l s 10. Dng hm cdr v assoc s ly c thng tin tng ng vi con s .(setq diemve (cdr (assoc 10 laynoidung)))Mnh s g li bng cc s i din nh t in bn cn thng s g th vo tra nh. (Mt vi ci hay dng thi ch nhiu lm mnh g khng ni, bn mua sch v lisp s c bng ny).

CHUNG:Layer ca i tng: 8Kiu ca i tng: 0Mu ca i tng: 62Tn dng ng: 6

TEXT:Ni dung text: 1 ln text: 40Style: 7im canh l th nht: 10

BLOCK: (INSERT) Lu block th trong t in ca cad l i tng INSERTTn BLOCK: 2im chn: 10Gc quay: 50T l theo trc X: 41T l theo trc Y: 42T l theo trc Z: 43

LINE:im u: 10im cui: 11

CIRCLE:Ta tm: 10Bn knh: 40

PLINE: (LWPOLYLINE) rng: 43S lng nh: 90

DIMENSION:Style: 3

Vy cch ly thng tin text nh sau:Ni dung text: (setq noidung (cdr (assoc 1 laynoidung))) ln text: (setq dolon (cdr (assoc 40 laynoidung)))Style: (setq style (cdr (assoc 7 laynoidung)))im canh l th nht: (setq diemve (cdr (assoc 10 laynoidung)))

Hng dn vit DCL bi m u:

06:08 c ng bi Phm Quc Duy

n y phn lisp coi nh tm dng, v c bn th by nhiu nm vng v ng dng linh hot th lm c i chuyn. Phn h tr thm cho lisp m gn gi nht l hp thoi: Ci ny ch yu gii quyt khu oai v mu m. Kin thc ny ca mnh cng t nhng cng mnh dn lm vi bi gip cc bn c khi nim c bn c th t nghin cu chuyn thm tu vo kh nng ca mi ngi.

**Chng trnh dng vit hp thoi: Tt c cc chng trnh son tho vn bn. Mnh vn dng notepad. Lu n ra nh dng *.DCL l c.**Trong 1 file *.DCL c th cha nhiu hp thoi trong :-M u bngtenhopthoai : dialog {label = "noidungtieude";-Kt thc bng}

-Trong :+ tenhopthoai l tn lisp dng gi hp thoi ny (lu t tn khc nhau cho cc hp thoi v vit lin tc khng khong cch)+ Noidungtieude l ni dung hin th pha trn ca hp thoi (Ci ny ng vit sao cng c c th c khong cch ch yu dng bo tn hoc chc nng hp thoi ny. Mun b trng th label = " ";

**S du { v } trong 1 nh ngha hp thoi l bng nhau.**Hp thoi ch l ci v cn ni dung bn trong, hot ng th no l do lisp quyt nh. Trc tin c thit k hp thoi cho ng ci , t t tnh ti ni dung.*Mo: khi vit xong hp thoi mun ngha xem n nh no m cha cn vit lisp gi hn ln th bn lm nh sau:

-Khi ng cad.-Vo Tools => Autolisp => Visual lisp editor. N kh ng ln chng trnh.-Bn vo File => Open v open ci file *.DCL mun ngha ln.-Vo Tools => Inter face tools => Preview DCL Editor. N s hin ci hp thoi ln cho bn xem trc.

**Mi hp thoi t nht phi c 1 nt dng thot khi hp thoi m ko thc hin chc nng no nh sau.:button {label = "Cancel";key = "Cancel";is_cancel = true;}

**Bt u l th tc c 1 nt nhn cho hp thoi.

:button {label = "Ten nut 1";width = 0;key = "btn_bieuthuc1";}

Vy hp thoi n gin nh sau:

tenhopthoai : dialog {label = "noidungtieude";

:button {label = "Cancel";key = "Cancel";is_cancel = true;}

}

Hnh dng nh sau:

Hp thoi ny ch c duy nht nt thot khi hp thoi. Kt hp thm 1 nt na lm vic khc nh sau:

tenhopthoai : dialog {label = "noidungtieude";

:button {label = "Ten nut 1";width = 0;key = "btn_bieuthuc1";}

:button {label = "Cancel";key = "Cancel";is_cancel = true;}

}

Hnh dng nh sau:

Khi khng ni g th cc ni dung trong hp thoi s xp t trn xung di. Mun sp xp li th dng 2 c php sp sp ( xem bi sau).To PLINE trong lisp:

05:57 c ng bi Phm Quc Duy

Vn vng kh chu nht ca b con (k c mnh) khi vit lisp l lm vic vi pline: -Trng hp n gin nht l v 1 pline vi s nh bt k sau ly gi tr din tch ca n min cng lm th vit nh sau:(DEFUN c:dtpl ( )(setq a (getpoint "\nChon diem dau tien: "))(setq b (getpoint a"\nChon diem tiep theo: "))(command "pline" a b "")(setq plhoinay (entlast))(setq a b)(while (setq b (getpoint a"\nChon diem tiep theo : ")) (command "pline" a b "")(command "pedit" "m" "L" plhoinay "" "j" "0" "")(setq plhoinay (entlast))(setq a b))(command "pedit" plhoinay "c" "")(command "area" "object" "last")(setq dientich (getvar "area"))(alert (rtos dientich 2 2))(princ))

Gii thch lisp trn nh sau:

(setq a (getpoint "\nChon diem dau tien: "))Hi chn 1 im trn mn hnh v gn cho bin a(setq b (getpoint a"\nChon diem tiep theo: "))Hi chn 1 im trn mn hnh v gn cho bin b(command "pline" a b "")Thc hin lnh pline v t a n b, kt thc lnh pline(setq plhoinay (entlast))Gn pl va to cho bin hoinay(setq a b)Gn im b hin ti thnh im a(while (setq b (getpoint a"\nChon diem tiep theo : "))Khi ng vng lp tn ti khi iu kin bin im b c gn bng pick im, nu enter th kt thc vng lp(command "pline" a b "")Thc hin lnh pline v t a n b, kt thc lnh pline.......lu lc ny im a chnh l im b ca on trn c gn qua nh(command "pedit" "m" "L" plhoinay "" "j" "0" "")Thc hin lnh pedit la chn m, chn pline va to, chn pline to trong on trc gn cho bin plhoinay, chn J ni thnh 1 pline lin tc(setq plhoinay (entlast))Gn pl va to cho bin hoinay(setq a b)Gn im b hin ti thnh im a)kt thc vng lp nu nhn enter, lc ny sn phm l 1 ng pline hon bn di l th tc ng kn pline v ly gi tr din tch v bo ra kt qu. Nhng nu vng mun tnh din tch cha c cung trn th vit vit nhi theo lnh pline l rt kh khn v cui cng mnh cng tm ra gii php bng cch lisp tr hn v cad thc hin xong lnh pline xong th lisp tip tc chy.

Bi ny Duy ang vit d nha bn .....

Lisp quay mi loi i tng quanh tm chnh n.

20:40 c ng bi Phm Quc Duy

*Lisp ny mnh su tm ch yu l hc, c 2 iu mnh hc c rong lisp ny-1.Cch ng s vi tng i tng trong 1 nhm i tng m lu nay mnh vit hi di nay theo kiu y th tit km kha kh.-2. Cch lu li gi tr nhp vo nh trn.

Bn copy ni dung v to file lisp nh!

(defun c:rb()(defun ST:Geom-Center (ent / p1 p2)(vla-getboundingbox (vlax-ename->vla-object ent) 'p1 'p2)(setq p1 (vlax-safearray->list p1)p2 (vlax-safearray->list p2) pt (mapcar '* (mapcar '+ p1 p2) '(0.5 0.5 0.5))))(or ang (setq ang 180))(setq ang (cond ((getreal (strcat "\nGoc quay < " (rtos ang 2 2) " >:")))(ang)))(foreach e (acet-ss-to-list (ssget))(command ".rotate" e "" "_non" (ST:Geom-Center e) ang )))

Hm con: To, gn gi hp thoi.

06:59 c ng bi Phm Quc Duy

0 nhn xt Bt u lot bi v to cc hm con v ng dng theo kiu khng ging ai ca Du782006. Hm nay l lot cc hm to, gn gi hp thoi.

(defun c:ght ()(duy:vht_modau "Hop thoai thu nghiem")(duy:vht_modaucotbao "Test thu cac chuc nang")(duy:vht_dongtextg "Ung dung ham con:")(duy:vht_dongtext "Tao, gan thao tac cho hop thoai")(duy:vht_dongtext "bang aultolisp")(duy:vht_ketthuccothang)(duy:vht_modauhangbao "cac nut")(duy:vht_nut "Ve circle" "tacdung1" "0")(duy:vht_nut "Ve line" "tacdung2" "0")(duy:vht_ketthuccothang)(duy:vht_ketthuc "x" "---o0o-duy782006-o0o---")(duy:vht_goihopthoai))

-on lisp trn s ph trch vic to gn, gi lm cho xut hin hp thoi nh trn, ngha l gn lun chc nng khi nhn vo nt s thc hin thao tc lun. Tm thi mnh ch mi vit cho xut hin cc text, n nt gi lnh cc th khc s t t lm tip.-Cch ng dng:

A. Mt hp thoi ti thiu s c tn hp thoi. 1 nt dng thot hp thoi. y mnh cung cp hm duy:vht_modau v duy:vht_ket thuc ch cn 2 hm ny s c 1 hp thoi n gin nht.

1. duy:vht_modau Tc dng: bt u 1 hp thoi.C php: (duy:vht_modau tieu de)Trong tieu de do bn nhp vo v hin th pha trn hp thoi

2. duy:vht_ketthucTc dng : kt thc 1 hp thoi bao gm 1 nt thot v 1 dng gii thiu tc giC php: (duy:vht_ketthuc ten nut tacgia)Trong ten nut do bn nhp vo v hin th trn nt thot. tac gia do bn nhp vo v hin th l 1 text nm pha trn nt thot.

3. duy:vht_nutthoatTc dng: to 1 nt tc dng thot hp thoiC php: (duy:vht_nutthoat ten nut)Trong ten nut do bn nhp vo v hin th trn nt thot

4. duy:vht_ketthuckhongnutTc dng: dng kt thc 1 hp thoi m ko km theo nt thotC php: (duy:vht_ketthuckhongnut tac gia)Trong tac gia do bn nhp vo v hin th l 1 text nm pha di cng hp thoi.

5. duy:vht_dongtextTc dng: dng vit 1 dng text canh l tri ln hp thoiC php: (duy:vht_dongtext noi dung)Trong ni dung do bn nhp vo v hin th trn hp thoi

6. duy:vht_dongtextgTc dng: dng vit 1 dng text canh l gia ln hp thoiC php: (duy:vht_dongtextg noi dung)Trong ni dung do bn nhp vo v hin th trn hp thoi

7. duy:vht_nutTc dng: to 1 nt gi lnh lisp trn hp thoi (lu l gi lnh bn nh)C php: (duy:vht_nut ten nut ten lenh do rong)Trong ten nut do bn nhp vo v hin th trn nt , ten lenh do bn nhp khi nhn vo nt th thot hp thoi v thc hin hm ny. do rong do mnh nhp vo tng ng gi tr whit khi tht k hp thoi mnh ko thy tc dng ci ny r lm nhng c chun b cho n thng s cu to.

8. duy:vht_viettextTc dng: to 1 cho php bn nhp text. V nhn gi tr nhp cho bin gia tri cho php ch nh gi tr mc nh nu cha tn ti.C php: (duy:vht_viettext tieu de gia tri mac dinh do rong)

9. duy:vht_modauhangTc dng: sp xp cc th sau n thnh hng.

10. duy:vht_modaucotTc dng: sp xp cc th sau n thnh ct.

11. duy:vht_modauhangbaoTc dng: sp xp cc th sau n thnh hng nm trong 1 hnh ch nht.C php (duy:vht_hangbang tieu de)Trong tieu do bn nhp vo v hin th pha trn bn phi hnh ch nht, nu ko mun hin th g th nhp .

12. duy:vht_modaucotbaoTc dng: sp xp cc th sau n thnh ct nm trong 1 hnh ch nht.C php (duy:vht_cotbang tieu de)Trong tieu do bn nhp vo v hin th pha trn bn phi hnh ch nht, nu ko mun hin th g th nhp .

13. duy:vht_ketthuccothangTc dng: kt thc ct hoc hng to bng 4 hm pha trn

14. duy:vht_imageTc dng hin th 1 nh sld c sn.C php: (duy:vht_anh tieu de do rong do cao maunen duong dan )Trong : tieu de do bn nhp vo g cng c min trong 1 hp thoi ng c trng nhau. Do rong l rng ca nh. Do cao l cao ca nh. Duong dan l ng dn y c c .sld ca nh. Mau nen l mu nn ca nh (nu mun ging i mu hp thoi th nhp -15.

14. duy:vht_imagevTc dng ging bn trn nhng ko phi nhp dng dn m l tn 1 k hiu mnh chun b sn (ci ny v vector trc tip) 10 k hiu . Bn g lnh GTKH xem hnh v tn dng gi hnh ny.C php: ging bn trn nhung thay duong dan bng kyhieu

15. duy:vht_goihopthoaiTc dng: hon tt qu trnh to gn v gi hp thoi.

* y mnh lm file to hp thoi ring v file v k hiu ring nu bn no ko dng k hiu c sn th ko cn load file k hiu cho nng my.

*Them 1 ng dng n non cho ci ny l hm to bng thng bo vi cc k hiu km theo.C php: (duy:vht_goithongbao tieu de noi dung ky hieu do rong tacgia)

V d:(duy:vht_goithongbao Chao ban Cam on ban a quan tam den chu de dau! 4 ---Duy782006---)Th ra nh sau:

Gii thiu thm 10 icon mi v. Xem ten bng lnh GTKHF.

Load file to hp thoi Load file v k hiu Load file v k hiu f_1431098312.unknown

_1431098537.unknown

_1431098649.unknown

_1431098701.unknown

_1431098837.unknown

_1431099016.unknown

_1431099065.unknown

_1431098781.unknown

_1431098673.unknown

_1431098587.unknown

_1431098625.unknown

_1431098561.unknown

_1431098425.unknown

_1431098469.unknown

_1431098515.unknown

_1431098446.unknown

_1431098380.unknown

_1431098404.unknown

_1431098340.unknown

_1431097781.unknown

_1431098247.unknown

_1431098282.unknown

_1431097822.unknown

_1431097643.unknown

_1431097755.unknown

_1431097591.unknown