QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

全站
3天前
查看: 2598|回复: 2
收起左侧

[原创] 计算不规则钢板重量的autolisp程序

[复制链接]
发表于 2010-4-17 18:33:57 | 显示全部楼层 |阅读模式 来自: 中国四川乐山

马上注册,结识高手,享用更多资源,轻松玩转三维网社区。

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

x
本帖最后由 chenxuy2006 于 2010-4-17 21:53 编辑
2 A8 V' }1 O7 I$ b5 c  O+ y
% {2 u0 P/ g, z我是搞钢结构设计的,写了个计算不规则钢板重量的autolisp程序,感觉很好用。如果把钢板密度改成别的,或用个变量输入,可以计算其他板材。(补充说明:单位是mm、kg)
6 Q% n# Q) m! e6 k4 J( X' Q/ `/ {% c/ t: [" `/ ^
(defun C:gw(/ ss str bl hd a n mj wt fil sdata st sl fl fl2 sn)
! H& a. {& l0 t, k  (princ "\n计算不规则钢板重量"): I1 b, I3 A' }- K+ X0 T
  (princ "\n请选择用于生成面域的直线或面域"). Y/ t* f- {+ h; q7 `  m
  (setq ss (ssget))! g9 H2 k1 p3 a& i
  (setq st (sslength ss))
, ?: P4 H" ]6 F  (setq sl (- st 1))
$ v4 D# p$ [6 U9 c% v0 t  (while (>= sl 0)
: f6 }8 a7 N2 k' G/ g' a* G6 f8 j- D    (setq sn (ssname ss sl))2 _0 C) r1 h( u* [9 \' f
    (setq sdata (entget sn))* B" v9 d5 e0 t* c1 {" d7 j0 |
    (if (= (cdr (assoc 0 sdata)) "REGION")(setq fl T))
9 u, h1 a: l. c$ ?    (setq sl (- sl 1))' f0 H" D- V$ L# S
  );end while
1 w) W7 l; Q8 O: y  (if (not fl)4 R+ p4 k2 L3 ^, h  M- B9 b
     (progn' Y/ o3 m/ M& Q# J; I6 A
        (command "region" ss "")& d4 N& R) v+ z' J2 C) I4 L
        (if (not (setq ss (ssget "p")))
5 A: H" z) k& s# P) {  Z1 \6 w           (setq ss (entlast) fl2 T)  l+ y3 l! [9 O
           (if (= (sslength ss) st)
$ `( d1 j' Y9 f              (princ "\n图形错误,不能生成面域!请检查图形!     " )- {+ V! j9 L0 @1 z
              (setq ss (entlast) fl2 T)1 S) |$ U$ z1 B2 G, _# w; N/ d
           );end if) T$ P9 V% Z7 J- W% E) s4 H# I
        );end if( Y2 i0 ?" h- E" ?* n- B
     );end progn5 e+ ^) c) y5 m, y
  );end if8 |* [' b. H4 L3 d1 C( l+ W0 e3 f7 i& Q
  (if fl
! D0 Y  j4 Y4 q* h) p/ `9 I     (if (> st 1)
4 g" |$ C2 i- ]9 A' h( }       (progn& Q1 n6 y3 |$ R5 D
         (command)6 X$ V) ?: w$ F% e
         (princ "\n选择面域太多,或有非面域实体!     " )
* Y; p# L* Z6 `       );end progn; C" }0 x$ ^) G+ r; A" }/ n
       (setq fl2 T)
& ?- \% b9 ~5 d7 R5 m0 X     );end if# z4 e) S9 Y, q4 e9 ^: T
  );end if" n2 p) p* ]2 O- s- W/ ^
  (if fl2 + c" O; u: |6 ]; _
    (progn
( n: V% }+ R% F/ ~+ T2 E2 H      (command "_area" "o" ss)
( c$ Q7 q0 n5 u, K/ C      (setq bl (getstring "\n输入图形比例:"))
* e0 p/ Z' q& [) M( \      (setq bl (atof bl))8 B1 C: G: c, Q, r6 D5 s! I! Q
      (setq hd (getstring "\n输入图形厚度:"))4 B1 D. N! e: U8 U
      (setq hd (atof hd))" Z) u1 H# L$ g+ @: J1 f
      (setq str "\n图形单位:mm   材料:钢 7850kg/m3")$ n; `2 f# j* p" H& }+ L5 @8 @
      (setq mj (getvar "AREA"))1 Y  K3 y: V4 S+ h1 ?+ R+ b
      (progn# x6 }* m+ `8 D  o$ `2 o' \
            (setq wt (* mj bl bl hd 0.00000785))9 a9 j4 d3 p2 u( O+ H3 I# G) V
            (setq wt (rtos wt 2 2))
; [( @6 x7 f2 [. C9 f: v7 |3 `            (setq wt (strcat "\n重量= " wt " kg         "))9 @# |" A+ U% d6 Y+ k1 N2 S
            (princ wt)
5 v- a  ?' z- I# Y- c% N      );;end progn% ]4 a' n: u& a
    );end progn
+ l; _3 L& L3 R, H6 u  );end if4 ^' d/ ]2 b! a  S/ Z2 m9 S
);end defun
发表于 2010-6-12 08:29:32 | 显示全部楼层 来自: 中国上海
有面积算出体积乘以密度,就可以了。
发表于 2010-6-30 08:42:10 | 显示全部楼层 来自: 中国台湾
感谢楼主分享程序!
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Licensed Copyright © 2016-2020 http://www.3dportal.cn/ All Rights Reserved 京 ICP备13008828号

小黑屋|手机版|Archiver|三维网 ( 京ICP备2023026364号-1 )

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