Đăng ký Đăng nhập
Trang chủ Chương trình autolisp...

Tài liệu Chương trình autolisp

.DOC
5
54
140

Mô tả:

Bé m«n GCVL&DCCN - §å ¸n tèt nghiÖp - CTM K39 Ch¬ng tr×nh Autolisp ;;------------------------------------------------------;; Subroutine: th©n khai ;; dïng ®Ó vÏ biªn d¹ng th©n khai ;; tham sè: t©m: täa ®é t©m b¸nh r¨ng cÇn vÏ ;; r0: b¸n kÝnh c¬ së ;; Rmin va Rmax: b¸n kÝnh ch©n vµ ®Ønh ;;------------------------------------------------------(defun thankhai ( tam r0 Rmin Rmax / phi phi1 phi2 step i ) (setq ptlist nil num 5) (if (> r0 Rmin) (progn (setq phi1 (/ (setq l (sqrt (- (* r0 r0) (* rmin rmin)))) rmin)) (setq phi1 (- (atan (/ l rmin)) phi1)) (setq ptlist (append ptlist (list (polar tam phi1 rmin) (polar tam 0 r0) ) ) ) (setq step (/ (- rmax r0) num 1.0) rtk r0) ) (setq ptlist (append ptlist (list (polar tam 0 rmin))) step (/ (- rmax rmin) num 1.0) rtk rmin) ) (princ step) (princ "***") (repeat num (princ (setq rtk (+ rtk step))) (princ " ") (setq phi1 (/ (setq l (sqrt (- (* rtk rtk) (* r0 r0)))) r0)) (setq phi2 (atan (/ l r0)) phi (- phi1 phi2)) (setq ptlist (append ptlist (list (polar tam phi rtk)))) ) ptlist ) Bé m«n GCVL&DCCN - §å ¸n tèt nghiÖp - CTM K39 ;;------------------------------------------------------;; C:GEAR - dïng ®Ó vÏ b¸nh r¨ng víi m, z vµ  (anfa) ;; cho vµo tõ bµn phÝm ;;------------------------------------------------------(defun c:gear ( / pts1 dc de di d0 anfa z m zve tam pts phi1 phi2 s1 s2 ) (setq tam (getpoint "\nT©m: ") m (getreal "\nModun: ") z (getint "\nSè r¨ng: ") b (getdist "\nBÒ réng: ") anfa (getreal "\nGãc ¸p lùc: ") zve (getint "\nSè r¨ng cÇn vÏ: ") ) (setq dc (* m z) de (+ dc m m) di (- dc (* 2.25 m)) d0 (* dc (cos (/ (* pi anfa) 180.0)))) (setq pts (thankhai tam (/ d0 2.0) (/ di 2.0) (/ de 2.0))) (command ".pline") (foreach pt pts (command pt)) (command "") (setq s1 (entlast) ang (/ pi 2 z)) (setq phi1 (/ (setq l (sqrt (- (* (/ dc 2.0) (/ dc 2.0)) (* (/ d0 2.0) (/ d0 2.0)) ) ) ) (/ d0 2.0) ) ) (setq phi2 (atan (/ l (/ d0 2.0))) phi (- phi1 phi2) ) (setq pt2 (polar tam (+ phi ang) (/ dc 2.0))) (command ".mirror" s1 "" tam pt2 "n") (setq s2 (entlast) pts2 nil) (while (setq s2 (entnext s2)) (setq ent (entget s2)) (if (= (cdr (assoc 0 ent)) "VERTEX") (setq pts2 (append pts2 (list (cdr (assoc 10 ent))))) ) ) (setq s2 (entlast)) (setq ang1 (angle tam (car pts))) (if (> ang1 pi) (setq ang1 (- ang1 (* 2 pi)))) (setq ang2 (* 2.0 (- (+ phi ang) ang1))) (setq ang3 (+ ang2 (- (/ (* 2 pi) z) ang2))) (command ".arc" (car pts2) "e" (polar tam (+ ang1 ang3) (/ di 2.0)) "r" (/ di 2.0)) (setq s3 (entlast)) (command ".arc" (last pts) "e" (last pts2) "r" (/ de 2.0)) (setq s4 (entlast)) (command ".array" s1 s2 s4 s3 "" "p" tam zve (* (/ 360.0 z) (1- zve)) "") (if (< zve z) Bé m«n GCVL&DCCN - §å ¸n tèt nghiÖp - CTM K39 (progn (setq goc (cdr (assoc 50 (entget (entlast))))) (entdel (entlast)) (command "line" (car pts) tam (polar tam goc (/ di 2.0)) "") ) ) (command ".pedit" s1 "j" "all" "" "x") ; (command ".extrude" "l" "" b "") ) ;;------------------------------------------------------;; C:PHAYDIA - dïng ®Ó m« pháng qu¸ tr×nh gia c«ng ;; b»ng ph¬ng ph¸p chÐp h×nh ;; (dao phay ®Üa modun) ;;------------------------------------------------------(defun c:phaydia ( ) (command "undo" "m") (setvar "cmdecho" 0) (setq tam (getpoint "\nT©m quay cña ph«i: ") m (getreal "\nModun b¸nh r¨ng cÇn gia c«ng: ") z (getint "\nSè r¨ng b¸nh r¨ng: ") ) (princ "\n***********************************") (princ "\n H·y chän ph«i: ") (setq s1 (car (entsel))) (princ "\n H·y chän dao phay ®Üa: ") (setq s2 (car (entsel))) (setq pt1 '(0 0 0) step (getdist "\nBíc dÞch cña dao (theo Z) ®Ó gia c«ng hÕt bÒ dµy r¨ng: ") Nd (getint "\nSè lÇn dÞch dao: ") Zgc (getint "\nSè r·nh r¨ng cÇn gia c«ng: ") pt2 (list (car pt1) (cadr pt1) (+ (last pt1) step)) ) (initget "C K") (setq ans (getkword "\nB¹n cã muèn t¹o ¶nh kh«ng ? /C: ")) (if (= "C" ans) (progn (initget) (setq i (getint "\nSè thø tù cña tÖp ¶nh®Çu tiªn: ")) ) ) (setq Rc (/ (* m z) 2.0) phando (/ 360.0 z)) (setq chieu (getint "\nChiÒu quay theo kim ®ång hå (-1) hay ngîc l¹i (+1) ? <+1>/-1: ")) (if (<= chieu 0) (setq phando (- phando))) ; (setvar "osnap" "none") (repeat Zgc (setq j 0) (repeat (1+ Nd) Bé m«n GCVL&DCCN - §å ¸n tèt nghiÖp - CTM K39 (command ".copy" s2 "" "@" "@") (command "subtract" s1 "" "l" "") (if (= "C" ans) (progn (c:render) (c:saveimg (itoa (setq i (1+ i))) "gif") ) ) (command ".move" s2 "" pt1 pt2) (setq j (1+ j)) ) (setq pt (list (car pt1) (cadr pt1) (+ (last pt1) (* j step)))) (command ".move" s2 "" pt pt1) (command ".rotate" s1 "" tam phando) ) ) (command ".rotate" s1 "" tam (- phando)) Bé m«n GCVL&DCCN - §å ¸n tèt nghiÖp - CTM K39 ;;------------------------------------------------------;; C:L¨NR¨NG - dïng ®Ó m« pháng qu¸ tr×nh gia c«ng ;; b»ng ph¬ng ph¸p bao h×nh ;; (dao phay l¨n r¨ng) ;;------------------------------------------------------(defun c:lanrang ( ) (command "undo" "m") (setvar "cmdecho" 0) (setq tam (getpoint "\nT©m quay cña ph«i: ") m (getreal "\nM«®un b¸nh r¨ng cÇn gia c«ng: ") z (getint "\nSè r¨ng b¸nh r¨ng: ") ) (princ "\n***********************************") (princ "\n H·y chän ph«i: ") (setq s1 (car (entsel))) (princ "\n H·y chän dao l¨n r¨ng (thanh r¨ng ®¹i diÖn): ") (setq s2 (car (entsel))) (setq pt1 '(0 0 0) step (getdist "\nBíc dÞch cña dao (theo X): ") Ngc (getint "\nSè lÇn dÞch dao ®Ó gia c«ng ®Þnh h×nh: ") pt2 (list (+ step (car pt1)) (cadr pt1) (last pt1)) ) (initget "C K") (setq ans (getkword "\nB¹n cã muèn t¹o ¶nh kh«ng ? /C: ")) (if (= "C" ans) (progn (initget) (setq i (getint "\nSè thø tù cña tÖp ¶nh ®Çu tiªn: ")) ) ) (setq Rc (/ (* m z) 2.0) gocquay (- (/ step Rc 1.0)) gocquay (/ (* gocquay 180) pi)) ) (repeat (1+ Ngc) (command ".copy" s2 "" "@" "@") (command "subtract" s1 "" "l" "") (if (= "C" ans) (progn (c:render) (c:saveimg (itoa (setq i (1+ i))) "gif") ) ) (command ".move" s2 "" pt1 pt2) (command ".rotate" s1 "" tam gocquay) ) (command ".move" s2 "" pt2 pt1) (command ".rotate" s1 "" tam (- gocquay))
- Xem thêm -

Tài liệu liên quan