画箍筋的lisp程序
画剪力墙暗柱很实用。(defun C:gg ()
(inivar)
(command "layer" "m" "gangjin" "c" "24" "" "s" "gangjin" "");新建钢筋图层
(resvar)
(setq p1 (getpoint "\n 选第一点:") ;外框线左下角点
p3 (getpoint "\n 选对角点:")
)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(if (> (* (- (car p1) (car p3)) (- (cadr p1) (cadr p3))) 0)
(progn
(if (> (- (car p1) (car p3)) 0)
(setq p0 p1
p1 p3
p3 p0
)
)
(setq p2 (list (car p3) (cadr p1))
p4 (list (car p1) (cadr p3))
)
)
);判断取点方向并排序1
;;;;;;
(if (< (* (- (car p1) (car p3)) (- (cadr p1) (cadr p3))) 0)
(progn
(if (> (- (car p1) (car p3)) 0)
(setq p2 p1
p4 p3
)
(setq p4 p1
p2 p3
)
)
(setq p1 (list (car p4) (cadr p2))
p3 (list (car p2) (cadr p4))
)
)
);判断取点方向并排序2
;;;;;;
(setq p5 (polar p1 (* 0.25 pi) 141) ;箍筋第一点
p6 (polar p2 (* 0.75 pi) 141)
p7 (polar p3 (* 1.25 pi) 141)
p8 (polar p4 (* 1.75 pi) 141)
pd1(polar p5 (* 0.25 pi) 100)
pd2(polar p6 (* 0.75 pi) 100)
pd3(polar p7 (* 1.25 pi) 100)
pd4(polar p8 (* 1.75 pi) 100)
)
(inivar)
(command "pline" p5 "w" "45" "" p6 p7 p8 "c" "")
(resvar)
(setq p01 (getpoint"\n 箍筋弯钩点:"))
(inivar)
(if (and (< (abs (- (car p01) (car p1))) 100) (< (abs (- (cadr p01) (cadr p1))) 100))
(gujin1 p5)
)
(if (and (< (abs (- (car p01) (car p2))) 100) (< (abs (- (cadr p01) (cadr p2))) 100))
(gujin2 p6)
)
(if (and (< (abs (- (car p01) (car p3))) 100) (< (abs (- (cadr p01) (cadr p3))) 100))
(gujin3 p7)
)
(if (and (< (abs (- (car p01) (car p4))) 100) (< (abs (- (cadr p01) (cadr p4))) 100))
(gujin4 p8)
)
(command "layer" "m" "dianjin" "c" "253" "" "s" "dianjin" "")
(command "donut" "0" "80" pd1 pd2 pd3 pd4 "")
(resvar)
)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;画箍筋的子程序
(defun gujin1 (p5)
(setq d1120
d2150
p11 (list (car p5) (+ (cadr p5) d1))
p12 (list (+ (car p5) d1) (cadr p5))
p13 (polar p11 (* 0.25 pi) d2)
p14 (polar p12 (* 0.25 pi) d2)
)
(command "pline" p13 "w" "45" "" p11 p5 p12 p14 "")
)
;;;
(defun gujin2 (p6)
(setq d1120
d2150
p11 (list (car p6) (+ (cadr p6) d1))
p12 (list (- (car p6) d1) (cadr p6))
p13 (polar p11 (* 0.75 pi) d2)
p14 (polar p12 (* 0.75 pi) d2)
)
(command "pline" p13 "w" "45" "" p11 p6 p12 p14 "")
)
;;;
(defun gujin3 (p7)
(setq d1120
d2150
p11 (list (car p7) (- (cadr p7) d1))
p12 (list (- (car p7) d1) (cadr p7))
p13 (polar p11 (* 1.25 pi) d2)
p14 (polar p12 (* 1.25 pi) d2)
)
(command "pline" p13 "w" "45" "" p11 p7 p12 p14 "")
)
;;;
(defun gujin4 (p8)
(setq d1120
d2150
p11 (list (car p8) (- (cadr p8) d1))
p12 (list (+ (car p8) d1) (cadr p8))
p13 (polar p11 (* 1.75 pi) d2)
p14 (polar p12 (* 1.75 pi) d2)
)
(command "pline" p13 "w" "45" "" p11 p8 p12 p14 "")
)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun inivar ()
;如果没有设定比例,默认其为100
(if (<= (getvar "userr1") 0)
(setvar "userr1" 100)
)
;读取系统变量
(setq oer *error*
*error* clmerr
)
(setq cmdold (getvar "CMDECHO")
osmold (getvar "OSMODE")
bliold (getvar "BLIPMODE")
) ;setq end
(setvar "CMDECHO" 0)
(setvar "OSMODE" 0)
(setvar "BLIPMODE" 0)
(princ)
) ;defun end
;系统变量还原
(defun resvar ()
(setvar "CMDECHO" cmdold)
(setvar "OSMODE" osmold)
(setvar "BLIPMODE" bliold)
(setq *error* oer)
(princ)
) 源程序 不错
看样子这里搞建筑的要多些
我也用不上 支持一下 做桥梁的可以用吗? 命令式啥啊??????????:) 输入命令GG,不能用,楼主能解析一下吗?
页:
[1]