📄 b.lsp
字号:
(command "arc" "C" jd p1 p4))
(command "line" jd (polar jd a1 (* r_darc 1.2)) "")
(command "line" jd (polar jd a2 (* r_darc 1.2)) "")
(cond ((or (< (bj__a (rtd a0)) 90) (> (bj__a (rtd a0)) 270))
(command "text" pc bzg 0 (strcat (rtos1 dtal bzw) "%%D")))
(t (command "text" "R" pc bzg 0 (strcat (rtos1 dtal bzw) "%%d")))))
(defun rom(a nn al / tt)
(setq tt(strcat (chr 162)(chr (+ 240 nn))))
(command "text" "c" a h_rom (rtd al) tt)
)
(defun hpm1 (jd1 jd2 lx / al_a jda jdb)
(setq al_a(angle jd1 jd2))
(lin1 (polar jd1 (+ pi al_a) (* sca_a 3)) jd1)
(lin1 (polar jd2 al_a (* sca_a 3)) jd2)
(setq jda(polar jd1 (+ al_a pi) (* sca_a 5)) jda(polar jda (- al_a pi2) (* sca_a 2))
jdb(polar jd2 al_a (* sca_a 5)) jdb(polar jdb (- al_a pi2) (* sca_a 2)))
(rom jda lx al_a)(rom jdb lx al_a))
(defun hpm2 (jd1 jd2 lx / al_a jda jdb p1 p2)
(setq al_a(angle jd1 jd2))
(setq p1(polar jd1 (+ pi2 al_a) (* sca_a 2.5))
p2(polar jd2 (+ pi2 al_a) (* sca_a 2.5)))
(command "pline" (polar jd1 al_a (* sca_a 5)) "W" 0 0 jd1 p1
"W" bzjk 0 (polar p1 (+ pi2 al_a) (* sca_a 1.5)) "")
(command "pline" (polar jd2 (+ pi al_a) (* sca_a 5)) jd2 p2
"W" bzjk 0 (polar p2 (+ pi2 al_a) (* sca_a 1.5)) "")
(setq jda(polar jd1 (+ pi2 al_a) (* sca_a 6)) jda(polar jda al_a (* sca_a 2)))
(setq jdb(polar jd2 (+ pi2 al_a) (* sca_a 6)) jdb(polar jdb al_a (* sca_a 2)))
(rom jda lx (+ pi2 al_a))
(rom jdb lx (+ pi2 al_a)))
(defun marr(ss gs ajj al / jd1 jd ll n_a)
(setq ll(stsl ajj gs) n_a 1 jd1 '(0 0))
(while (<= n_a gs)
(setq jd(polar jd1 (dtr al) (vln ll n_a)))
(if (and ss (> (nth (- n_a 1) ll) 0))
(command "copy" ss "" jd1 jd))
(setq n_a(1+ n_a))))
(defun hdx2(pt1 pt2 / al pc1 pc2 pc3 ds d1 pcc)
(setq ds(distance pt1 pt2) al(angle pt1 pt2))
(setq pc1(polar pt1 al (/ ds 4))pc1(polar pc1 (- al pi2) (/ ds 8))
pc2(polar pt1 al (* 0.75 ds))pc2(polar pc2 (+ pi2 al) (/ ds 8))
pcc(polar pt1 al (/ ds 2)) pc3(polar pc2 (- al pi2) (/ ds 4)))
(command "arc" pt1 pc1 pcc "arc" pcc pc2 pt2 "arc" pcc pc3 pt2))
(defun gt1(pp1 aa tt / l)
(setq l(+ (* 2 (strlen tt)) (* 2 bzjj)))
(setq pp1(polar pp1 (+ pi2 (dtr aa)) (/ bzjj 3.0)))
(trlp pp1 l (+ bzg (* 2 bzjj)) aa)
(setq pp1(polar pp1 (+ pi2 (dtr aa)) bzjj))
(command "text" "C" pp1 2 aa tt))
(defun lin (x y) (command "pline" x "w" pw_a pw_a y ""))
(defun lin1 (x y) (command "line" x y ""))
(defun bg(pt1 str1 / pt2 w cd)
(setq w(cdr (assoc 41 (tblsearch "style" (getvar "textstyle")))))
(setq cd(+ (* sca_a 3.5) (* w bzg (strlen str1))))
(setq pt2(polar pt1 pi (* 1.5 sca_a)))
(lin1 pt2 (polar pt2 0 cd))
(command "line" pt1 (setq pt2 (polar pt1 (/ pi 3) (* 2 sca_a)))
(polar pt2 pi (* 2 sca_a)) "c")
(setq pt2 (ppt pt1 (* 2 sca_a) bzjj))
(command "text" pt2 bzg 0 str1)
)
(defun stx1(d wz / cd lx jj)
(if (= (type wz) 'STR)
(setq cd(+ (* sca_a 4) (* h_rom 0.5 (strlen wz))) lx 0)
(setq cd (* sca_a 14) lx 1)
)
(setq jj sca_a)
(lin (polar d pi (/ cd 2)) (polar d 0 (/ cd 2)))
(lin1 (ppt d (/ cd -2) (- jj)) (ppt d (/ cd 2) (- jj)))
(if (= lx 0)
(command "text" "c" (polar d pi2 (* sca_a 1.5)) h_rom "0" wz)
(lin1 (ppt d (* sca_a -2) (* sca_a 3))(ppt d (* sca_a 2) (* sca_a 3)))
)
(if (= lx 1)(progn
(rom (ppt d (* -5 sca_a) (/ h_rom 4)) (fix wz) 0)
(rom (ppt d (* sca_a 5) (/ h_rom 4)) (fix wz) 0))
)
)
(defun hdx1(jd1 jd2 zy / z y s)
(setq z(* sca_a 2) y (* sca_a 2) s (* sca_a 1.5))
(if (= zy 1) (setq z 0))
(if (= zy 2) (setq y 0))
(if (= zy 0) (setq z 0 y 0))
(setq j(angle jd1 jd2))
(setq l(distance jd1 jd2))
(setq d1 (polar jd1 (- j pi) z))
(setq d2 (polar jd1 j (- (/ l 2) s)))
(setq d3 (polar d2 (+ j (/ pi 2.5)) s))
(setq d4 (polar jd1 j (+ (/ l 2) s)))
(setq d5 (polar d4 (- j (/ pi 1.66667)) s))
(setq d6 (polar jd2 j y))
(command "line" d1 d2 d3 d5 d4 d6 ""))
(defun txt (a b jd)
(command "text" "c" a bzg jd (rtos b 2 1)))
(defun hbg1(jd sphs)
(if (and hbg_1 hbg_2)
(setq hbg_d(djcd hbg_1 hbg_2))
)
(setq i 0)
(if hbg_d
(repeat (length hbg_d)
(if (<= (nth i hbg_1) 10) (setq hbg_d (lth hbg_d i 0)))
(setq i (1+ i))
)
)
(if (and (= (vln hbg_d (length hbg_d)) 0) hbg_d)
(hbgd0 jd sphs)
(hbgd1 jd sphs)
)
)
(defun hbgd0(jd sphs / d1 d2 d3 d4 d5 d6 i lh)
;没有搭接钢筋明细表
(setq lh (+ (* -12 sca_a) (/ bg_a -2.0)))
(if (and hbg_m (= (type (nth 0 hbg_m)) 'STR))
(stx1 jd (strcat (nth 0 hbg_m) "钢筋明细表"))
(stx1 jd "钢筋明细表")
)
(setq d1(ppt jd (* -31 sca_a) (* -3 sca_a)) d2(polar d1 0 (* 62 sca_a))
d3(polar d1 pi3 (* sca_a 12)) d4(polar d2 pi3 (* sca_a 12) )
d5 (polar d3 pi3 (* bg_a sphs)) d6(polar d4 pi3 (* bg_a sphs)))
(lin1 d1 d2)(lin1 d1 d5)(lin1 d2 d6)
(repeat (+ sphs 1)
(lin1 d3 d4)
(setq d3 (polar d3 pi3 bg_a) d4(polar d4 pi3 bg_a))
)
(setq d3(polar d1 0 (* sca_a 8)) d4(polar d5 0 (* sca_a 8)))(lin1 d3 d4)
(setq d3(polar d3 0 (* sca_a 12)) d4(polar d4 0 (* sca_a 12)))(lin1 d3 d4)
(setq d3(polar d3 0 (* sca_a 16)) d4(polar d4 0 (* sca_a 16)))(lin1 d3 d4)
(setq d3(polar d3 0 (* sca_a 10)) d4(polar d4 0 (* sca_a 10)))(lin1 d3 d4)
(setq d3(ppt d1 (* sca_a 4) (* -3.5 sca_a)))
(command "text" "M" d3 (* 3.2 sca_a) "0" "编")
(command "text" "M" (polar d3 pi3 (* sca_a 5)) (* 3.2 sca_a) "0" "号")
(setq d3 (polar d3 0 (* sca_a 10)))
(command "text" "M" d3 (* sca_a 3.2) "0" "直径")
(command "text" "M" (polar d3 pi3 (* sca_a 5)) (* 3 sca_a) "0" "(mm)")
(setq d3 (polar d3 0 (* sca_a 14)))
(command "text" "M" d3 (* sca_a 3.2) "0" "每根长度")
(command "text" "M" (polar d3 pi3 (* sca_a 5)) (* 3 sca_a) "0" "(cm)")
(setq d3(polar d3 0 (* sca_a 13)))
(command "text" "M" d3 (* sca_a 3.2) "0" "根数")
(command "text" "M" (polar d3 pi3 (* 5 sca_a)) (* 3 sca_a) "0" "(根)")
(setq d3 (polar d3 0 (* sca_a 13)))
(command "text" "M" d3 (* 3.2 sca_a) "0" "共长")
(command "text" "M" (polar d3 pi3 (* sca_a 5)) (* 3 sca_a) "0" "(m)")
(setq d3 (ppt d1 (* 4 sca_a) lh))
(setq i 0)
(repeat sphs
(setq d4 (polar d3 pi3 (* i bg_a)) i (+ i 1))
(if hbg_0
(command "text" "M" d4 (* 2 sca_a) "0" (nth (1- i) hbg_0))
(command "text" "M" d4 (* 2 sca_a) "0" i)
)
)
(if hbg_1 (ds (ppt d3 (* sca_a 10) 0) hbg_1 -1))
(if hbg_2 (ds (ppt d3 (* sca_a 24) 0) hbg_2 1))
(if hbg_3 (ds (ppt d3 (* sca_a 37) 0) hbg_3 0))
(if (and hbg_2 hbg_3)(setq hbg_4(dv (mapcar '* hbg_2 hbg_3) 100)))
(if hbg_4 (ds (ppt d3 (* sca_a 50) 0) hbg_4 2))
(if hbg_4 (setq hbg_4(mapcar '(lambda (x) (read (rtos x 2 2))) hbg_4)))
)
(defun hbgd1(jd sphs / d1 d2 d3 d4 d5 d6 i lh)
;有搭接钢筋明细表
(setq lh (+ (* -12 sca_a) (/ bg_a -2.0)))
(if (and hbg_m (= (type (nth 0 hbg_m)) 'STR))
(stx1 jd (strcat (nth 0 hbg_m) "钢筋明细表"))
(stx1 jd "钢筋明细表")
)
(setq d1(ppt jd (* -39 sca_a) (* -3 sca_a)) d2(polar d1 0 (* 78 sca_a))
d3(polar d1 pi3 (* sca_a 12)) d4(polar d2 pi3 (* sca_a 12))
d5 (polar d3 pi3 (* bg_a sphs))d6(polar d4 pi3 (* bg_a sphs))
)
(lin1 d1 d2)(lin1 d1 d5)(lin1 d2 d6)
(repeat (+ sphs 1)
(lin1 d3 d4)
(setq d3 (polar d3 pi3 bg_a) d4(polar d4 pi3 bg_a))
)
(setq d3(polar d1 0 (* sca_a 8)) d4(polar d5 0 (* sca_a 8)))(lin1 d3 d4)
(setq d3(polar d3 0 (* sca_a 12)) d4(polar d4 0 (* sca_a 12)))(lin1 d3 d4)
(setq d3(polar d3 0 (* sca_a 16)) d4(polar d4 0 (* sca_a 16)))(lin1 d3 d4)
(setq d3(polar d3 0 (* sca_a 16)) d4(polar d4 0 (* sca_a 16)))(lin1 d3 d4)
(setq d3(polar d3 0 (* sca_a 10)) d4(polar d4 0 (* sca_a 10)))(lin1 d3 d4)
(setq d3(ppt d1 (* sca_a 4) (* -3.5 sca_a)))
(command "text" "M" d3 (* 3.2 sca_a) "0" "编")
(command "text" "M" (polar d3 pi3 (* sca_a 5)) (* 3.2 sca_a) "0" "号")
(setq d3 (polar d3 0 (* sca_a 10)))
(command "text" "M" d3 (* sca_a 3.2) "0" "直径")
(command "text" "M" (polar d3 pi3 (* sca_a 5)) (* 3 sca_a) "0" "(mm)")
(setq d3 (polar d3 0 (* sca_a 14)))
(command "text" "M" d3 (* sca_a 3.2) "0" "每根长度")
(command "text" "M" (polar d3 pi3 (* sca_a 5)) (* 3 sca_a) "0" "(cm)")
(setq d3 (polar d3 0 (* sca_a 16)))
(command "text" "M" d3 (* sca_a 3.2) "0" "搭接长度")
(command "text" "M" (polar d3 pi3 (* sca_a 5)) (* 3 sca_a) "0" "(cm)")
(setq d3(polar d3 0 (* sca_a 13)))
(command "text" "M" d3 (* sca_a 3.2) "0" "根数")
(command "text" "M" (polar d3 pi3 (* 5 sca_a)) (* 3 sca_a) "0" "(根)")
(setq d3 (polar d3 0 (* sca_a 13)))
(command "text" "M" d3 (* 3.2 sca_a) "0" "共长")
(command "text" "M" (polar d3 pi3 (* sca_a 5)) (* 3 sca_a) "0" "(m)")
(setq d3 (ppt d1 (* 4 sca_a) lh))
(setq i 0)
(repeat sphs
(setq d4 (polar d3 pi3 (* i bg_a)) i (+ i 1))
(if hbg_0
(command "text" "M" d4 (* 2 sca_a) "0" (nth (1- i) hbg_0))
(command "text" "M" d4 (* 2 sca_a) "0" i)
)
)
(if hbg_1 (ds (ppt d3 (* sca_a 10) 0) hbg_1 -1))
(if hbg_2 (ds (ppt d3 (* sca_a 24) 0) hbg_2 1))
(if hbg_3 (ds (ppt d3 (* sca_a 53) 0) hbg_3 0))
(if hbg_d (ds (ppt d3 (* sca_a 40) 0) hbg_d 0))
(if (and hbg_2 hbg_3)
(setq hbg_4(mapcar '+ hbg_2 hbg_d)
hbg_4(dv (mapcar '* hbg_4 hbg_3) 100))
)
(if hbg_4 (ds (ppt d3 (* sca_a 66) 0) hbg_4 2))
(if hbg_4 (setq hbg_4(mapcar '(lambda (x) (read (rtos x 2 2))) hbg_4)))
)
(defun hbg2(jd sphs bh); / d1 d2 d3 d4 d5 d6 i n nw yn lh n_1 n_2)
;材料数量表
(setq yn sphs)
(if (and hbg_1 hbg_4 (< yn 1)) (progn
(setq i 0 n(length hbg_1) hbg_5 nil hbg_6 nil hbg_7 nil n_1 0 n_2 0)
(repeat n
(if (not (member (nth i hbg_1) hbg_5))
(setq hbg_5(append hbg_5 (list (nth i hbg_1))))
)
(setq i(1+ i))
)
(setq hbg_5(px_a hbg_5) sphs(length hbg_5) i 0)
(repeat sphs
(if (> (nth i hbg_5) yjgzj)(setq n_1(1+ n_1))(setq n_2(1+ n_2)))
(setq hbg_7(append hbg_7 (list (gjdw_a (nth i hbg_5))))
hbg_6(append hbg_6 (list 0)) i(1+ i))
)
(setq i 0)
(repeat n
(setq nw(- sphs (length (member (nth i hbg_1) hbg_5)))
hbg_6(lth hbg_6 nw (+ (nth nw hbg_6) (nth i hbg_4)))
i(1+ i))
)
(setq hbg_6(dv hbg_6 (/ 1.0 hbg_n)))
(setq hbg_8(mapcar '* hbg_6 hbg_7)
hbg_8(mapcar '(lambda(x) (read (rtos x 2 2))) hbg_8)
)
))
(if (> bh 0) (setq lh (* bg_a (1+ sphs)))(setq lh (* bg_a sphs)))
(if (and hbg_m (= (type (nth 1 hbg_m)) 'STR))
(stx1 jd (strcat (nth 1 hbg_m) "钢筋数量表"))
(stx1 jd "钢筋数量表")
)
(setq d1(ppt jd (* sca_a -39) (* sca_a -3)) d2(polar d1 0 (* sca_a 78))
d3(polar d1 pi3 (* sca_a 12))d4(polar d3 0 (* sca_a 78))
d5(polar d3 pi3 lh)d6(polar d5 0 (* sca_a 78))
)
(lin1 d1 d2)(lin1 d3 d4)(lin1 d5 d6)(lin1 d1 d5)(lin1 d2 d6)
(lin1 (polar d1 0 (* sca_a 8)) (polar d5 0 (* sca_a 8)))
(if(> bh 0) (lin1 (polar d5 pi2 bg_a)(polar d6 pi2 bg_a)))
(setq d3(polar d3 pi3 bg_a) d4(polar d3 0 (* sca_a 64)))
(repeat (- n_1 1)
(lin1 d3 (polar d3 0 (* sca_a 64)))
(setq d3 (polar d3 pi3 bg_a))
)
(if (and (> n_2 0) (> n_1 0))(progn
(lin1 d3(polar d3 0 (* sca_a 78)))
(setq d3 (polar d3 pi3 bg_a))
))
(repeat (- n_2 1)
(lin1 d3 (polar d3 0 (* sca_a 64)))
(setq d3 (polar d3 pi3 bg_a))
)
(if(> bh 0)
(setq d4(ppt d5 (* sca_a 20) bg_a))
(setq d4(ppt d5 (* sca_a 20) 0))
)
(setq d3(polar d1 0 (* sca_a 20))) (lin1 d3 d4)
(setq d3(polar d3 0 (* sca_a 14)) d4(polar d4 0 (* sca_a 14)))(lin1 d3 d4)
(setq d3(polar d3 0 (* sca_a 16)) d4(polar d4 0 (* sca_a 16)))(lin1 d3 d4)
(setq d3(polar d3 0 (* sca_a 14)) d4(polar d4 0 (* sca_a 14)))(lin1 d3 d4)
(if(> bh 0)(progn
(setq d3(polar d6 pi (* sca_a 20)))
(lin1 (polar d3 pi2 bg_a) d3)
))
(setq d3(ppt d1 (* sca_a 4 )(* sca_a -3.5)))
(command "text" "M" d3 (* sca_a 3.2) "0" "序")
(command "text" "M" (polar d3 pi3 (* sca_a 5)) (* sca_a 3.2) "0" "号")
(setq d3(polar d3 0 (* sca_a 10)))
(command "text" "M" d3 (* sca_a 3.2) "0" "直径")
(command "text" "M" (polar d3 pi3 (* sca_a 5)) (* sca_a 3) "0" "(mm)")
(setq d3(polar d3 0 (* sca_a 13)))
(command "text" "M" d3 (* sca_a 3.2) "0" "总长")
(command "text" "M" (polar d3 pi3 (* sca_a 5)) (* sca_a 3) "0" "(m)")
(setq d3(polar d3 0 (* sca_a 15)))
(command "text" "M" d3 (* sca_a 3.2) "0" "单位重")
(command "text" "M" (polar d3 pi3 (* sca_a 4.8)) (* sca_a 2.8) "0" "(kg/m)")
(setq d3(polar d3 0 (* sca_a 15)))
(command "text" "M" d3 (* sca_a 3.2) "0" "总重")
(command "text" "M" (polar d3 pi3 (* sca_a 4.8)) (* sca_a 2.8) "0" "(kg)")
(setq d3(polar d3 0 (* sca_a 14)))
(command "text" "M" d3 (* sca_a 3.2) "0" "合计")
(command "text" "M" (polar d3 pi3 (* sca_a 4.8)) (* sca_a 2.8) "0" "(kg)")
(if(> bh 0)
(progn
(setq d3(ppt d5 (* 29 sca_a) (/ bg_a 2.0)))
(command "text" "M" d3 (* sca_a 3) "0" (strcat (rtos bh 2 0) "#混凝土(m )"))
(command "text" (polar d3 0 (* sca_a 9)) (* sca_a 2) "0" 3)
(command "text" "M" (ppt d6 (* -10 sca_a) (* bg_a 0.5)) bzg "0" hbg_h)
)
)
(setq d3(ppt d1 (* sca_a 4) (+ (* sca_a -12) (/ bg_a -2.0))) i 1)
(repeat sphs
(command "text" "m" d3 (* sca_a 2) "0" i)
(setq d3 (polar d3 pi3 bg_a) i(+ i 1))
)
(if(> bh 0)(command "text" "M" d3 (* sca_a 2) "0" i))
(setq d3(ppt d1 (* sca_a 14) (+ (* sca_a -12) (/ bg_a -2.0))) i 1)
(if (and (< yn 1) hbg_5)(progn
(ds d3 hbg_5 -1)
(ds (ppt d3 (* sca_a 13) 0) hbg_6 2)
(ds (ppt d3 (* sca_a 28) 0) hbg_7 3)
(ds (ppt d3 (* sca_a 43) 0) hbg_8 2)
))
(if (and (< yn 1) hbg_5 (> n_1 0))
(ds (ppt d3 (* sca_a 57) (* (- n_1 1) -0.5 bg_a)) (vln hbg_8 n_1) 2)
)
(if (and (< yn 1) hbg_5 (> n_2 0))
(ds (ppt d3 (* sca_a 57) (+ (* n_1 bg_a -1) (* (- n_2 1) -0.5 bg_a))) (- (vln hbg_8 sphs)(vln hbg_8 n_1)) 2)
)
)
(defun djcd(l1 l2 / n1 nn ll v)
(setq nn(min (length l1)(length l2)) n1 0)
(repeat nn
(setq v(* (fix (/ (nth n1 l2) dj_fdc)) (nth n1 l1) 0.1 dj_n)
ll(append ll (list (fin v 2)))
n1(1+ n1)
)
)
ll
)
(defun hdmx(pt1 pt2 / dis j1 j2 jj jl an1 an2 nn p0 p1 p2 ii)
(setq an1(dtr 135) an2(dtr 45) ang(angle pt1 pt2) ii 0
j1 (* (/ 0.6 (cos (dtr 45))) sca_a)
j2 (* (/ 1.0 (cos (dtr 45))) sca_a)
dis(distance pt1 pt2) jl(+ j1 j1 j2)
nn(fix (/ dis jl))
)
(repeat nn
(setq p0(polar pt1 ang (* ii jl))
p2(polar p0 (- ang an1) (* 2.5 sca_a))
)
(lin1 p0 p2)
(setq p1(polar p0 ang j1)
p2(polar p2 ang j1)
)
(lin1 p1 p2)
(setq p1(polar p1 ang j1)
p2(polar p2 ang j1)
)
(lin1 p1 p2)
(setq p1(polar p1 (- ang an1) (* 0.6 sca_a))
p2(polar p1 (- ang an2) (* 0.6 sca_a))
)
(lin1 p1 p2)
(setq p1(polar p1 (- ang an1) (* 0.6 sca_a))
p2(polar p1 (- ang an2) (* 0.6 sca_a))
)
(lin1 p1 p2)
(setq ii(+ ii 1))
)
)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -