Chuong Trinh Autolisp Ve Banh Rang Than Khai

You might also like

Download as doc, pdf, or txt
Download as doc, pdf, or txt
You are on page 1of 4

CHNG TRNH AUTOLISP V BNH RNG THN KHAI

Nguyn nh Trung Khoa C kh HGTVT TPHCM

Tm tt: Vic v bnh rng thn khai trong AutoCAD gp nhiu kh khn. Chng trnh c vit nhm t ng tnh ton v v bnh rng 3D bin dng rng thn khai (rng thng v rng nghing). Chng trnh yu cu ngi v nhp vo s rng, modul, gc p lc, gc nghing v chiu dy ca bnh rng cn v. 1. Khi nim v ng thn khai T cc c im trn, tc gi vit ng thn khai l mt ng cong mt chng trnh t ng v bin dng rng gm qu o ca mt im trn ng thn khai v to m hnh 3D ca bnh rng thng khi ng thng ny ln khng trt rng thng v rng nghing. Chng trnh trn mt ng trn. (Hnh 1). dng ngn ng AutoLisp, mt ngn ng lp ng thn khai thng c dng trnh c tch hp sn trong AutoCAD. lm bin dng ca cc bnh rng nht v cc 3. Gii thut dng vit chng trnh. l do sau: Ta cc im trn ng thn khai - Bo m c t s truyn nht nh khng i trong qu trnh n khp, do c tnh ton da vo phng trnh ng m bo c s chnh xc ca b thn khai theo ti liu [1]: truyn. - C hnh dng hnh hc n gin (bin dng sinh ca bnh rng l mt ng Cc thng s ca phng trnh trn thng) do d ch to v c chnh xc c th hin trn hnh 2. cao. Cho gc thay i, tnh c to - Cp bnh rng n khp c kh nng dch tm v kh nng lp ln, do cc im da vo gc v bn knh r. Cc bnh rng do chng trnh v ra l cc bnh thun tin cho vic lp rp v s dng. rng tiu chun (khng c dch chnh). 2. V ng thn khai Chng trnh AutoLisp c tn l Vic v ng thn khai bng tay banhrang, cc thng s c ngi s dng c thc hin nh sau (xem hnh 1) - Chia ng trn c s thnh n nhp vo t bn phm thng qua cc dng nhc bng ting Vit khng du rt d s phn bng nhau ti cc im P1, P2,,Pn. - Ti mi im chia Pn, v tip tuyn dng. 4. S dng chng trnh v vi ng trn c s. Trn tip tuyn ny, bnh rng ly mt im th hai sao cho khong Trc tin phi ti chng trnh vo cch gia hai im bng di ca cung AutoCAD. Dng lnh Appload ti trn tnh t im xut pht. (Theo hnh 1 ta chng trnh banhrang. Khi hp thoi chn c = , = ,). file xut hin, ch ng dn n v tr lu - Ni cc im ta c ng file banhrang.lsp v nhn nt load. Cch v thn khai cn v. Vic v ng thn khai trn my tnh bnh rng nh sau (v d v bnh rng thng dng phn mm AutoCAD cng thc hin modul l 3, s rng l 17, gc p lc l 20, tng t. y l mt cng vic khng c gc nghing bng khng, chiu dy bnh Auto lm v tn nhiu thi gian cng nh rng l 22mm): Command: banhrang cng sc ca ngi v. Hn na, vic v s Nhap vao modul cua banh rang...3 khng c chnh xc v khng th chia nh Nhap vao so rang can ve...17 ng trn c s thnh rt nhiu phn. Nhap vao goc ap luc...20 Nhap vao goc nghieng...0

Nhap vao chieu day cua banh rang...22

Chon vi tri tam banh rang...(chn mt im trn mn hnh lm tm bnh rng)


Hnh 4 Bnh rng tr rng nghing (m=3, Z=20, =20o, =20o, dy 20mm)

Hnh 1 ng trn c s v ng thn khai ca n. Hnh 5 Cp bnh rng tr rng thng n khp (m=3, Z1=20, =20o, =0o, dy 20mm, Z2=15)

Hnh 2 Ta im trn ng thn khai

Cc hnh nh sau l mt s bnh rng do chng trnh v ra:


Hnh 6 Cp bnh rng tr rng nghing n khp (m=3, Z1=17, =20o, =20o, dy 20mm, Z2=15) 5 . Kt lun

Hnh 3 Bnh rng tr rng thng (m=3, Z=20, =20o, =0o, dy 20mm)

Chng trnh AutoLisp gip n gin ha vic v bnh rng tr thng v nghing, lm cho qu trnh thit k v m hnh ha c nhanh chng v thun li hn. Mc khc, y l mt chng trnh n gin m mt ngi bit v hon ton c th thit lp (hoc nhp vo my theo phn ph lc nh km). Chng trnh c th m rng c th v cc chi tit phc tp v a dng hn.

Ti liu tham kho [1] inh Gia Tng, Nguyn Xun Lc, Trn Don Tin, 1994, Nguyn l my, Nh xut bn Gio Dc, H Ni [2] Nguyn Hu Lc, 2004, C s thit k my, Nh xut bn i hc Quc gia TPHCM. [3] Hng dn v v, lp trnh trong mc help ca AutoCAD. Ph lc Chng trnh autolisp v bnh rng (defun tkhai (ent ang / p1 p2 p r cen i tam do ob ms) ; chuong trinh ve duong than khai cua duong tron (setq r (cdr (assoc 40 (entget ent))) cen (cdr (assoc 10 (entget ent)))

p (polar cen 0 r) l (list (polar cen (* pi 1.5) (/ r 3.0))) i 1); bo hai gia tri dau (while (< (setq i (1+ i)) (1+ (/ ang 5.0))) (setq l (append l (list (polar (polar cen (setq tam (/ (* i pi 5.0) 180.0)) r) (- tam (* 0.5 pi)) (/ (* pi r i 5) 180.0))))) ) (arl (reverse l)) (append (list (entlast)) l) ) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (defun arl(l / a i); ve polyline bang cac doan cung tron (setq a (open "d:/arll.lsp" "w") i 2) (write-line "\(command \"arc\" (nth 0 l) (nth 1 l) (nth 2 l))" a) (while (< (setq i (1+ i)) (length l)) (write-line (strcat "\(command \"arc\" \"\" (nth " (itoa i) " l))") a) ) (close a) (load "d:/arll.lsp") (vl-file-delete "d:/arll.lsp") (command "pedit" (entlast) "y" "j" "all" "" "") (append (list (entlast) l)) ) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (defun brang(modul sorang alpha beta tam cao / rdi rch rcs rda ech eda ecs edi l p1 p2 p3 goc p4 p5 p6 p7 p8 ent ent1) (setq rdi (* modul (+ sorang 2.0) 0.5);bkinh vong dinh rdi2 (* rdi 1.05) rch (* modul sorang 0.5);bkinh vong chia rcs (* modul sorang (cos (/ (* pi alpha) 180.0)) 0.5);bkinh vong co so rda (* modul (- sorang 2.5) 0.5));bkinh vong chan (command "circle" tam rda) (setq eda (entlast)) (command "circle" tam rcs) (setq ecs (entlast)) (command "circle" tam rch) (setq ech (entlast)) (command "circle" tam rdi2); vong ngoai de subtract (setq edi2 (entlast)) (setq l (tkhai ecs 90)) (entdel ecs) (setq p (nth 1 l) p1 (nth (- (length l) 3) l)) (command "trim" edi2 "" p1 ""); trim phan than khai thua tren vong ngoai cung (command "zoom" "e") (command "trim" eda "" p ""); trim phan than khai thua tren vong day (setq p2 (vlax-safearray->list (vlax-variant-value (vla-intersectwith (vlax-ename->vla-object (car l)) (vlax-ename->vla-object ech) acextendnone))) p3 (polar tam (- (angle tam p2) (/ pi sorang 2.0)) rch))

(entdel ech) (command "zoom" "e") (command "mirror" (car l) "" tam p3 "") (command "trim" (entlast) (car l) "" "e" "n" (polar tam 0.5 rdi2) (polar tam 0.5 rda) "") (command "pedit" (nth 4 l) "j" "all" "" "") (setq ent (entlast)) (setq goc (/ (* cao (sin (setq rad (/ (* pi beta) 180.0)))) (cos rad) rch) p4 (list 0 rch 0) p5 (list (car tam) (cadr tam) cao) P6 (polar tam (+ goc (angle tam p3)) rch) p1 (polar tam (+ (* 0.5 goc) (angle tam p3)) rch) p2 (list (car p1) (cadr p1) (* 0.5 cao)) p7 (list (car p6) (cadr p6) cao) p8 (list 0 rch cao) ) (command "spline" p3 p2 p7 "" "" "") (setq ent1 (entlast)) (vla-copy (vlax-ename->vla-object ent)) (command "rotate" (entlast) "" tam (/ (* goc 180.0) pi)) (command "move" (entlast) "" tam p5) (command "_loft" "_mo" "_so" ent (entlast) "" "p" ent1) (command "-array" (entlast) "" "p" tam sorang "360" "y") (command "circle" tam rdi) (command "extrude" "_mo" "_so" "l" "" cao) (command "subtract" "l" "" "all" "") ) (defun c:banhrang() (vl-load-com) (setq os (getvar "osmode")) (setq modul (getdist "\nNhap vao modul cua banh rang...") z (getint "\nNhap vao so rang can ve...") alpha (getdist "\nNhap vao goc ap luc...") beta (getdist "\nNhap vao goc nghieng...") cao (getdist "\nNhap vao chieu day cua banh rang...") tam (getpoint "\nChon vi tri tam banh rang")) (setvar "osmode" 0) (setvar "cmdecho" 0) (brang modul z alpha beta tam cao) (setvar "osmode" os) (princ) )

You might also like