找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1323|回复: 1

[求助] [LISP程序]:求助空间钢束计算的LSP程序?

[复制链接]
发表于 2004-5-28 22:38:01 | 显示全部楼层 |阅读模式

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

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

×
在预应力混凝土结构的设计中常遇到空间钢束的长度和引伸量的计算.一般是分别绘出立面和平面图.这时如何选取了这两个图就能计算出长度.另外还有引伸量的计算.求助高手.
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2004-5-29 00:26:18 | 显示全部楼层
其实求出空间的钢束长度,要是能准确画出就知道长度,但是难点就在于怎么画出,同时有平弯竖弯的是后这个曲线就是两个拄面的交线,是很难画出的。在施工中估计也很难精确作出,其实在施工中一般应该都是采取球面的做法。其实我一般是把平弯和竖弯尽量不同时发生,也就是说可以在竖弯完成以后在进行平弯,这样分别计算长度就容易计算,而且需要有平弯的时候几乎都是要弯到腹板中的吧,所以在到竖弯点前完成平弯也是可以很好的不和腹板打架的。以上都是个人的意见。

至于引伸量我倒是有一个程序了,不过做一端张拉和两端张拉(需要是对称的)还可以,两段不对称的就不行了,因为每边的损失是不同的,很难找到向两边力相等的那个点,加之两边的引伸量也不同。所以我也没有做到。

你看看可以不??这个也是只有单纯的一个方向的弯。


[PHP]
(defun c:scl ()
  (setvar "cmdecho" 0)  
  (setq Ay 1668)
  (setq Eg 195000)
  (setq u 0.25)
  (setq k 0.0015)
  (setq MPa 1860)
  (setq pv (* 0.75 (* MPa Ay)))
  (setq en (entsel "objet"))
  (setq sum 0)
  (while (/= en nil)
    (command "lengthen" (car en) "")
    (setq l (getvar "perimeter"))
    (setq en_data (entget (car en)))
    (setq kind (cdr (assoc 0 en_data)))
    (if (= kind "ARC")
      (progn
        (setq qd (CDR (ASSOC 50 en_data)))
        (setq zd (CDR (ASSOC 51 en_data)))
        (setq a (abs (- zd qd)))
      )
    )
    (if (= kind "LINE")
      (setq a 0)
    )
    (if (= kind "SPLINE")
      (progn
        (setq n 0)
        (setq i 0)
        (setq az 0)
        (setq aa 0)
        (setq aaa 0)
        (repeat (length en_data)
          (setq pp (nth n en_data))
          (setq key (car pp))          
          (if (= key 10)
            (progn
              (setq x (cadr pp))
              (setq y (caddr pp))
              (if (/= i 0)
                (progn
                   (setq zx (- x xx))
                  (setq zy (- y yy))
                  (setq a1 (atan (abs zy) (abs zx)))
                  (if (> i 1) (setq aaa (abs (- a1 aa))))                    
                  (setq aa a1)                  
                )
                (setq a1 0)
              )
              (setq xx x)
              (setq yy y)
              (setq i (1+ i))
              (setq az (+ az aaa))
            )
          )
          (setq n (1+ n))
        )
        (setq a az)
      )
    )   
    (setq pv (* pv (/ (+ 1 (exp (- 0 (+ (* u a) (* k (/ l 100)))))) 2)))
    (setq dl (/ (* pv l) (* Ay Eg)))
    (setq sum (+ sum dl))
    (setq en (entsel "objet:"))
  )
  (alert (strcat "伸长量=" (rtos sum 2 2)))
  (prin1)
)
(prin1)
[/PHP]


还有我把需要输入的参数值直接复值的,需要改的话在程序里面改就可以了,钢束图要准确的画在cad中,然后一个一个选取每段钢束就可以了。(对称的只取一半,然后乘2就可以了)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-9-27 07:04 , Processed in 0.268640 second(s), 34 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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