找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 650|回复: 0

[求助]:关于画双跑楼梯剖面中粱的问题

[复制链接]
发表于 2005-5-15 13:04:57 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
哪位大大能告诉我如何把梁高改成400(默认的是350)
经自己一改把板给改成150了 哈 尴尬了真是
现请高手指点迷津
谢谢了!
;****************************************************画双跑楼梯剖面
;=======本程序可任意拷贝使用,但必须保留以下说明,并不得修改说明和程序.=======

;本程序用来画双跑楼梯剖面,装载后键入tt即可.
;创建于1999.6.26

;1999.6.28  增加功能:1.在输入参数时,可修改踏步数和踏步高.
;                      2.若是奇数级踏步,会提问第一跑是几步.
;1999.7.2  有较大改动:1.征求了方小军意见后,修改原程序的楼梯梁位置的不正确.
;                      2.使剖到梯段,看到梯段,扶手分别画在wall,win,line图层上.
;2000.6.6  增加:1.一层楼的出错提示.
;           修改:1.原来顶层楼板的错误长度。
(setvar "cmdecho" 0)
(gc)
(defun c:tt(/ p1 elev elevn k x stn stn1 stn2 stw sth pd1 os i
                d0 d1 d2 d3 d4 d5 d6 d7 d8 p2 p3 pd2 fd1 fd2 fd3 fd4
                a1 a2 a3 a4 a5 a6 a7 )
(prompt "---双跑楼梯剖面---by Lu Yongle")
        (setq elev (getdist "\n楼层高<2800>:"))
        (if (null elev) (setq elev 2800.0))
       
        (setq elevn (getint "\n楼层数<6>:"))
        (if (= elevn 1) (progn
                                (alert "一层楼也用楼梯吗?傻瓜!必需二层以上:)")
                                (setq elevn (getint "\n楼层数<6>:"))
                        )
        )
        (if (null elevn) (setq elevn 6))
       
        (setq k nil)
   (while (null k)
        (setq stn (getint "\n每层踏步数<18>:"))
        (if (null stn) (setq stn 18))
        (setq stw (getdist "\n踏步宽<280>:"))
        (if (null stw)(setq stw 280))
        (setq sth (/ elev stn))
        (prompt "踏步尺寸为:") (prin1 stw) (prompt "宽 x ")(prin1 sth)(prompt "高,")
        (initget 1 "Yes No")
        (setq x (getkword "可以吗?(Yes or No)"))
        (if (/= x "Yes")
            (progn (setq k nill ) (setq stn nill)(setq stw nill))
            (setq k 1)
        )
  );end while k
       
        (if (= (rem stn 2) 1)
            (progn (setq stn1 (getint "\n第一跑数:"))
                   (setq stn2 (- stn stn1))
            )
            (progn (setq stn1 (/ stn 2))
                 (setq stn2 (/ stn 2))
            )
        )

(graphscr)
(setq p1 (getpoint "\n起始点:"))
(setq d0 p1)
(setq pd1 (polar p1 (* pi 1.5) 100))

;设置绘图环境
(setq os (getvar "osmode"))
(setvar "osmode" 0)
(command "layer" "m" "line" "C" 2 "line" "")
(command "layer" "m" "win" "C" 4 "win" "")
(command "layer" "m" "wall" "C" 7 "wall" "")

(repeat (- elevn 1);楼层数

;-----下面为画楼板准备点
(setq d1 (polar p1 pi 1320))
(setq d2 (polar d1 (* pi 1.5 ) 350 ))
(setq d3 (polar d2 0 240))
(setq d4 (polar d3 (/ pi 2) 250))
(setq d5 (polar d4 0 840))
(setq d6 (polar d5 (* pi 1.5) 250))
(setq d7 (polar d6 0 240))
(setq d8 (polar d0 (* pi 1.5) 100))

(setq i 1)
(repeat stn1
        ;(/ stn 2);开始画第一跑踏步
        (setq p2 (polar p1 (/ pi 2) sth))
        (setq p3 (polar  p2 0 stw))
        (entmake (list  (cons 0 "line")(cons 8 "wall")(cons 10 p1)(cons 11 p2)))
        (if (< i stn1)
            (entmake (list  (cons 0 "line")(cons 8 "wall")(cons 10 p2)(cons 11 p3)))
        )
        (setq i (+ i 1))
        (setq pd2 (polar p1 (* pi 1.5) 100))
        (setq p1 p3)
);end repeat stn

;下面画扶手
(setq fd1 (polar d0 pi (/ stw 2)))
(setq fd2 (polar fd1 (/ pi 2) 900))
(setq fd3 (polar p2 0 (/ stw 2)))
(setq fd4 (polar fd3 (/ pi 2) 900))
(entmake (list (cons 0 "line") (cons 8 "win")(cons 10 fd1)(cons 11 fd2)))
(entmake (list (cons 0 "line") (cons 8 "win")(cons 10 fd2)(cons 11 fd4)))
(entmake (list (cons 0 "line") (cons 8 "win")(cons 10 fd4)(cons 11 fd3)))

;-----下面为画平台板准备点
(setq a7 (polar pd2 (* pi 1.5 )(- 350 sth 100)))
(setq a6 (polar a7 0 240))        ;梁宽240
(setq a5 (polar a6 (/ pi 2) 250))
(setq a4 (polar a5 0 1080))
(setq a3 (polar a4 (* pi 1.5) 250));楼板为350-250=100厚
(setq a2 (polar a3 0 240))
(setq a1 (polar a2 (/ pi 2) 350)) ;梁高350

(command "layer" "s" "wall" "")
(command "pline" d0 "w" 0 "" d1 d2 d3 d4 d5 d6 d7 d8 pd2  a7 a6 a5 a4 a3 a2 a1 p2 "")

(setq pd1 (polar p2 (* pi 1.5) 100))
(setq p1 p2)

(repeat stn2
        ;(/ stn 2);开始画第二跑踏步
        (setq p2 (polar p1 (/ pi 2) sth))
        (setq p3 (polar  p2 pi stw))
        (if (< i stn)
                (progn
                    (entmake (list (cons 0 "line")(cons 8 "line")(cons 10 p1)(cons 11 p2)))
                    (entmake (list (cons 0 "line")(cons 8 "line")(cons 10 p2)(cons 11 p3)))
                )
        )
        (setq i (+ i 1))
        (setq pd2 p1)
        (setq p1 p3)
        (setq d0 p2)
       
);end repeat stn

(setq pd2 (polar pd2 (* pi 1.5) 100))
(entmake (list (cons 0 "line")(cons 8 "line") (cons 10 pd1) (cons 11 pd2)));踏板底线

(setq fd2 fd4)
(setq fd3 (polar p2 pi (/ stw 2)))
(setq fd4 (polar fd3 (/ pi 2) 900))
(entmake (list (cons 0 "line")(cons 8 "win")(cons 10 fd2)(cons 11 fd4)));第二跑扶手

(setq pd1 (polar p1 (* pi 1.5) 100))
(setq p1 p2)

);end repeat elevn

(entmake (list (cons 0 "line")(cons 8 "win")(cons 10 fd3)(cons 11 fd4)));顶层扶手

;----下面画顶层楼板
(setq d1 (polar p2 pi 1320 ))
(setq d2 (polar d1 (* pi 1.5) 350))
(setq d3 (polar d2 0 240))
(setq d4 (polar d3 (/ pi 2) 250))
(setq d5 (polar d4 0 840))
(setq d6 (polar d5 (* pi 1.5) 250))
(setq d7 (polar d6 0 240))
(command "pline" p2 "w" 0 "" d1 d2 d3 d4 d5 d6 d7 "c")

(setvar "osmode" os)
(princ)
);end defun
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-11-19 22:39 , Processed in 0.157219 second(s), 30 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表