33
96
65
初露锋芒
;Version 1.02(defun C:bd(/ width depth membr suffix suffixs prx tsz dpth wdth label label2 label1)(setq lsttsz ' ("11x17" "24x36") lstmembr '("Flush Beam" "Header/Drop Beam") lstprx '("1 ply" "2 ply" "3 ply") lstwidth '("1.5" "1.75" "3" "3.5" "4.5" "5.25" "7" "2.5") lstdepth '("5.5" "6" "7.25" "8" "9.25" "9.5" "10" "11.25" "11.875" "12" "14" "16" "18" "24") lstsuffix '("PSL" "LVL" "LSL") lstsuffixs '("FRB" "UWA" "UCA" "nothing"));end setq(or tsz (setq tsz (car lsttsz))) (or membr (setq membr (car lstmembr)))(or prx (setq prx (car lstprx)))(or width (setq width (car lstWidth)))(or depth (setq depth (car lstDepth)))(or suffix (setq suffix (car lstsuffix)))(or suffixs (setq suffixs (car lstsuffixs)))(setq dcl_id (load_dialog "beam.dcl")) (if (not (new_dialog "beam" dcl_id)) (exit)) (progn (set_tile tsz "1") (set_tile membr "1") (set_tile prx "1") (set_tile width "1") (set_tile depth "1") (set_tile suffix "1") (set_tile suffixs "1") (action_tile "tsz" "(setq tsz $value)") (action_tile "membr" "(setq membr $value)") (action_tile "prx" "(setq prx $value)") (action_tile "width" "(setq width $value)") (action_tile "depth" "(setq depth $value)") (action_tile "suffix" "(setq suffix $value)") (action_tile "suffixs" "(setq suffixs $value)"));end progn (start_dialog) (unload_dialog dcl_id);;;----set variables ------------------------------------- ;(setvar expert 1) (setq layerset (getvar "clayer")orthoset (getvar "orthomode")polyset (getvar "plinewid"));setq;------------What size text for border -------------------(if(= tsz "11x17") (setq tsz1 "6"))(if(= tsz "24x36")(setq tsz1 "4.5"));------------Which layer it draws the beam on-------------------(if(= membr "Flush Beam") (setq layer_name "S-FRM-BEAM"))(if(= membr "Header/Drop Beam")(setq layer_name "S-FRM-HEADER")) (command "expert" "1" "");-------------Creat layers for beam------------------------------- (command "_.layer" "M" layer_name "c" "12" layer_name "S" layer_name "");-----------------draw beams ------------------------- (command "pline" pause "w" width width pause "");----------change thickness of polyline---------------- (command "chprop" "l" "" "t" depth "");----------change text size and style------------------- (command "textsize" tsz1 "")(command "_.style" "romans" "romans" "0" "0.80" "" "" "" "");-------------Creat layers for text------------------------------- (command "_.layer" "M" "S-ANNO-TEXT" "c" "1" "S-ANNO-TEXT" "S" "S-ANNO-TEXT" "")(and (setq ss (ssget "L" '((0 . "*polyline")))) (while (setq en (ssname ss 0)) (setq ed (entget en)) (setq p10 (cdr (assoc 10 ed))) (setq p9 (reverse ed)) (setq p11 (cdr (assoc 10 p9))) (setq mpt (mapcar '(lambda (a b) (* (+ a b) 0.5)) p10 p11)) (setq ltype (cdr (cond ((assoc 6 ed))))) (setq dpth (cdr (cond ((assoc 39 ed))))) (setq wdth (cdr (cond ((assoc 40 ed)))));---------How many plys the member has----------(cond ((= prx "1 ply") (and (< width "1.75")(setq label2 ""))) ((= prx "2 ply")(setq label2 "2~")) ((= prx "3 ply")(setq label2 "3~")));end cond;----------Width of the member--------- (cond ((= wdth 1.5)(setq label "2x" suffix "")) ((= wdth 1.75)(setq label "1.75x")) ((= wdth 2.5)(setq label "I-JOIST/BEAM" label2 "" dpth 0 suffix "")) ((= wdth 3)(setq label "2x" suffix "" )) ((= wdth 3.5)(setq label "3.5x" label2 "")) ((= wdth 4.5)(setq label "2x" suffix "")) ((= wdth 5.25)(setq label "5.25x" label2 "")) ((= wdth 7)(setq label "7x" label2 "")));end cond;----------Depth of the Member------------- (cond ((= dpth 5.5)(setq label1 (rtos dpth 2 1))) ((= dpth 6)(setq label1 (rtos dpth 2 0))) ((= dpth 7.25)(setq label1 (rtos dpth 2 2))) ((= dpth 9.25)(setq label1 (rtos dpth 2 2))) ((= dpth 9.5)(setq label1 (rtos dpth 2 1))) ((= dpth (setq label1 (rtos dpth 2 0))) ((= dpth 10)(setq label1 (rtos dpth 2 0))) ((= dpth 11.25)(setq label1 (rtos dpth 2 2))) ((= dpth 12)(setq label1 (rtos dpth 2 0))) ((= dpth 11.875)(setq label1 (rtos dpth 2 3)))