Beam Fin1
Beam Fin1
(defun getosnap()
(setq osnapsaved (getvar "osmode"))
(setvar "osmode" 0)
)
(defun restoreosnap()
(if osnapsaved
(setvar "osmode" osnapsaved)
)
)
(defun drawbottomline()
(setq dimscal (/ (getvar "dimscale") 25.0))
(setq dimscal 1.0)
(getosnap)
; (setq xlin1 (car (cdr (assoc 10 (entget lin1)))))
; (setq xlin2 (car (cdr (assoc 10 (entget lin2)))))
(messagebox "1")
(setq xxlin1 (+ xlin1 (* 2 dimscal) ))
(setq xxlin2 (- xlin2 (* 2 dimscal) ))
;(setq apt1 (list xxlin1 (+ ylevel (* 1 dimscal)) ))
;(setq apt2 (list xxlin2 (+ ylevel (* 1 dimscal)) ))
(princ "Values ") (princ apt1) (princ " ") (princ apt2)
(command "line" (polar apt1 (* pi 0.5) yleveldiff) apt1 apt2 (polar apt2 (*
pi 0.5) yleveldiff) "")
) ;; (defun drawbottomline()
(defun drawtopline()
(setq dimscal 1.0)
(setvar "osmode" 0)
(command "line" (polar apt1t (* pi 1.5) yleveldiff) apt1t apt2t (polar apt2t
(* pi 1.5) yleveldiff) "")
(defun getlines()
(princ "You may select all the Center and End lines together using
window/Crossing")
(setq lines (ssget ))
(sslength lines)
)
(defun getlineang()
(setq ent1 (ssname lines 0))
(setq entg (entget ent1))
(setq pt1s (cdr (assoc 10 entg)))
(setq pt1e (cdr (assoc 11 entg)))
(setq ang1 (angle pt1e pt1s))
(setq ang2 (angle pt1s pt1e))
(setq lineang (min ang1 ang2))
;; (setq lineang (/ (* (min ang1 ang2) 180 ) pi))
(if (= lineang 0)
(setq lineang pi)
)
lineang)
(defun getslablevel()
(setq slablevel1 (getpoint "Pick the lower Level to draw Slab"))
; (setq slablevel2 (getpoint "Pick the Upper Level to draw Slab"))
(setq slablevel2 (polar slablevel1 (+ lineang (/ pi 2)) 1))
)
(defun getintersec()
(setq cou 0)
(setq intersec_list nil)
(repeat (sslength lines)
(setq ent1 (ssname lines cou))
(setq entg (entget ent1))
(setq pt1s (cdr (assoc 10 entg)))
(setq pt1e (cdr (assoc 11 entg)))
(setq intersec (inters slablevel1 slablevel2 pt1s pt1e nil))
(setq cou (+ cou 1))
(defun beamlines()
(setq bunit (/ 1.0 25.4)) ;; this decides whether drg is in mm or inch
(setq ht1 (* 1.5 bunit (getvar "dimscale"))) ;; 1.5 units height of bend line
base from straight long line
(setq ht2 (* 4.5 bunit (getvar "dimscale"))) ;; 3 units height of bend top
line from bend's bottom base
(setq ht2 (- (- ylevel2 ylevel) 1.5))
(setq ht3 (* 5.75 bunit (getvar "dimscale"))) ;; 1.5 units height of top most
line from bend top most line
(setq ht3 (- ylevel2 ylevel 1.5) )
(princ "level1")
(princ "level2")
(princ "level2")
(princ "level3")
(repeat loops
(if (= cou 1)
(setq div1 (/ dis1 division) )
(setq div1 (/ dis1 5.0) )
)
(if (= cou loops)
(setq div2 (/ dis1 division) )
(setq div2 (/ dis1 5.0) )
)
(command p1 p2 p3 p4 p5)
(setq cou (+ cou 2))
;;(getstring "Press ENter to Move")
);; repeat
(command slab_last_point "")
(setq cou 1)
(repeat loops
(setq point1 (nth cou sorted_list))
(setq point2 (nth (+ cou 1) sorted_list))
(setq dis1 (distance point1 point2))
;;;;; Top Bars to be L/4 if L/5 option and L/5 if L/7 Option selected for first and
last bar
;;;; modified on 30-mar-2005 as desired by Garg Sahib
);; if
(if (and (= cou loops) (= division 7.0))
(setq tdiv2 (/ dis1 5.0))
(setq tdiv2 (/ dis1 4.0))
);; if
);; repeat
(setq topline_last_point (polar2 list_last_point addangle ht3 (+ addangle
(/ pi 2)) 1))
;; (setq point2 (nth sorted_list))
;; (setq p1 (polar point1 addangle ht3))
(command "LINE" topline_last_point p6 "")
(defun c:beam()
(c:1)
(c:2)
(c:3)
(c:4)
(c:5)
(setq division (getreal "Enter the Division for First and Last Slab(7 or 5) <5>"))
(if (= division nil)
(setq division 5.0)
)
(command "layer" "s" "reinforcement" "")
(drawtopline)
(drawbottomline)
(beamlines)
(setvar "osmode" saveosnap)
(command "layer" "s" "0" "")
(princ )
);;
(defun c:chksort()
(setq cou 0)
(repeat (length sorted_list)
(setq cpt (nth cou sorted_list))
(command "color" 2)
(command "circle" cpt (- ht3 ht2))
(setq cou (+ cou 1))
(setq wait (getstring "Press any key to move"))
)
)