如果奇数d4d=>d4d=第一个更高的数字乘以1
- (defun c:rl ()
- (prompt "enter roof slope rise for rafter")
- (setq raf1 (getstring "\n INPUT: 2,3,4,5,6,7,8,9,10,12,14,15,16"))
- (if (= raf1 "2") (setq raf2 1.014))
- (if (= raf1 "3") (setq raf2 1.031))
- (if (= raf1 "4") (setq raf2 1.054))
- (if (= raf1 "5") (setq raf2 1.083))
- (if (= raf1 "6") (setq raf2 1.118))
- (if (= raf1 "7") (setq raf2 1.158))
- (if (= raf1 "8") (setq raf2 1.202))
- (if (= raf1 "9") (setq raf2 1.250))
- (if (= raf1 "10") (setq raf2 1.302))
- (if (= raf1 "11") (setq raf2 1.357))
- (if (= raf1 "12") (setq raf2 1.414))
- (if (= raf1 "13") (setq raf2 1.475))
- (if (= raf1 "14") (setq raf2 1.537))
- (and (setq ss (ssget "_:L" '((0 . "LINE"))))
- (while (setq en (ssname ss 0))
- (setq ed (entget en))
- (setq p10 (cdr (assoc 10 ed)))
- (setq p11 (cdr (assoc 11 ed)))
- (setq mpt (mapcar '(lambda (a b) (* (+ a b) 0.5)) p10 p11))
- (setq d2d (distance (cdr (reverse p10)) (cdr (reverse p11))))
- (setq d1d (/ d2d 12.))
- (setq d3d (* d1d raf2))
- (if (<= d3d 8.0)
- (setq d4d (fix (+ d3d 1))))
- (if (>= d3d 9.0)
- (setq d4d (fix (* (+ (/ d3d 2.0) 0.5)2.0))))
- [highlight](if (/= (/ (float d4d) 2) (fix (/ (float d4d) 2))) (setq d4d (+ d4d 1)) )[/highlight]
- (setq lan (angle p10 p11))
- (setq dir (if (< (* pi 0.5) lan (* pi 1.5)) - +))
- (setq tan (if (> (* pi 1.5) lan (* pi 0.5)) (+ lan pi) lan))
- (entmake (list (cons 0 "TEXT")
- (cons 8 (getvar "CLAYER"))
- (cons 7 (getvar "TEXTSTYLE"))
- (cons 40 (getvar "TEXTSIZE"))
- (cons 72 4)
- (setq fg(cons 10 (polar mpt (dir (angle p10 p11) (* pi 0.5))
- (getvar "TEXTSIZE"))))
- (setq hg(cons 11 (polar mpt (dir (angle p10 p11) (* pi 0.5))
- (getvar "TEXTSIZE"))))
- (cons 50 tan)
- (setq rb1 (cons 1 (strcat (itoa d4d) "'")))))
- (ssdel en ss)))
- (prin1))
M.R。 |