建筑新时代论坛's Archiver

【热门搜索】建材Autocad膜结构钢结构加固招聘工程机械测绘建筑材料工程造价建筑施工图

nvitlb 发表于 2007-9-18 17:50

画箍筋的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)
)

kook 发表于 2007-9-23 08:42

源程序 不错

看样子这里搞建筑的要多些

我也用不上 支持一下

sjlsnow 发表于 2007-11-8 12:54

做桥梁的可以用吗?

pinkykwuo 发表于 2008-8-20 13:22

命令式啥啊??????????:)

圆月弯刀 发表于 2008-11-7 13:04

输入命令GG,不能用,楼主能解析一下吗?

页: [1]

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.