33
96
65
初露锋芒
(defun C:bd(/)(setq lstWidth '( "1.75" "3.5" "5.25" "7") lstDepth '("5.5" "6" "7.25" "8" "9.25" "9.5" "10" "11.25" "11.875" "12" "14" "16" "18" "24") lstmembr '("Flush Beam" "Header/Drop Beam") lstSuffix '("PSL" "UWA" "UCA" "LVL" "LSL") LSTSuffixs '("FRB" "UWA" "UCA") lstPreffix '("1 ply" "2 ply" "3 ply"))(or membr (setq membr (car lstmembr)))(or preffix (setq preffix (car lstPreffix))) (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 membr "1") (set_tile preffix "1") (set_tile width "1") (set_tile depth "1") (set_tile suffix "1") (set_tile suffixs "1") (action_tile "kmembr" "(setq membr $value)") (action_tile "kpreffix" "(setq preffix $value)") (action_tile "kWidth" "(setq width $value)") (action_tile "kDepth" "(setq depth $value)") (action_tile "kSuffix" "(setq suffix $value)") (action_tile "kSuffixs" "(setq suffixs $value)") (start_dialog) (unload_dialog dcl_id) ))(if(= membr "Flush Beam") (setq layer_name "S-FRM-BEAM"))(if(= membr "Header/Drop Beam")(setq layer_name "S-FRM-HEADER"));(if (= depth "1")(setq depth "")) (command "_.layer" "M" layer_name "c" "12" layer_name "S" layer_name "") (command "pline" pause "w" width width pause "") (command "chprop" "l" "" "t" depth "") (command "textsize" "6" "")(command "_.style" "jaytxt" "romans" "0" "0.80" "" "" "" "")(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----------(if (= preffix "1.5") (and (= wdth 1.75)(setq label2 "2~")))(if (= preffix "1.5") (and (> wdth 1.75)(setq label2 "2x")))(if (= preffix "3")(setq label2 "2~2x"))(if (= preffix "4.5")(setq label2 "3~2x"))(if (= preffix "1")(setq label2 ""));----------Width of the member--------- (if (= wdth 1.75)(setq label "1.75x"))(if (= wdth 2.5)(setq label "I-JOIST/BEAM")) (if (= wdth 3.5)(setq label "3.5x"))(if (= wdth 5.25)(setq label "5.25x"))(if (= wdth 7)(setq label "7x"));----------Depth of the Member------------- (if (= dpth 5.5)(setq label1 (rtos dpth 2 1)))(if (= dpth 6)(setq label1 (rtos dpth 2 0)))(if (= dpth 7.25)(setq label1 (rtos dpth 2 2)))(if (= dpth 9.25)(setq label1 (rtos dpth 2 2)))(if (= dpth 9.5)(setq label1 (rtos dpth 2 1)))(if (= dpth (setq label1 (rtos dpth 2 0)))(if (= dpth 10)(setq label1 (rtos dpth 2 0)))(if (= dpth 11.25)(setq label1 (rtos dpth 2 2)))(if (= dpth 12)(setq label1 (rtos dpth 2 0)))(if (= dpth 11.875)(setq label1 (rtos dpth 2 3)))(if (= dpth 14)(setq label1 (rtos dpth 2 0)))(if (= dpth 16)(setq label1 (rtos dpth 2 0)))(if (= dpth 18)(setq label1 (rtos dpth 2 0)))(if (= dpth 24)(setq label1 (rtos dpth 2 0))) (if (= dpth 0)(setq label1 "")) (defun radians->degrees (r)(cvunit r "radian" "degree")) ;-------TEXT JUSTIFICATION---------------------------------------- (setq lan (angle p10 p11))(setq ad (radians->degrees lan)) (if (and (> ad 90.1) (<= ad 270.1)) (progn (setq ptemp p10) (setq p10 p11) (setq p11 ptemp) (setq lan (angle p10 p11)) (setq ad (radians->degrees lan)))) (setq dir (if (< (* pi 0.5) lan (* pi 1.5)) - +)) (setq r3(entmake (list (cons 0 "TEXT") (cons 8 (getvar "CLAYER")) (cons 7 (getvar "TEXTSTYLE")) (cons 40 (getvar "TEXTSIZE")) (cons 41 0.80) (cons 72 4) (setq fg(cons 10 (setq r1(polar mpt (dir lan (+ 1)) (getvar "TEXTSIZE")))))