QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

查看: 2652|回复: 2
收起左侧

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

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

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

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

x
本帖最后由 chenxuy2006 于 2010-4-17 21:53 编辑
& T3 ^7 z6 e+ s+ Q" m, P" j5 W' p# E$ x1 Z9 V4 K; s6 r0 _6 R
我是搞钢结构设计的,写了个计算不规则钢板重量的autolisp程序,感觉很好用。如果把钢板密度改成别的,或用个变量输入,可以计算其他板材。(补充说明:单位是mm、kg)' v+ V6 l! P2 o+ C
4 W5 a) u5 O; d3 _
(defun C:gw(/ ss str bl hd a n mj wt fil sdata st sl fl fl2 sn)
2 M0 }3 O1 K: Q" B' P  (princ "\n计算不规则钢板重量")
, `0 s& ?  V7 Z2 t3 Q; C: z  (princ "\n请选择用于生成面域的直线或面域")
" [9 S. Q! ~, A, ?$ L  j& S" x% r& p  (setq ss (ssget))
* }$ \$ k  B- j  (setq st (sslength ss))
  Y2 A, m! N/ ?. E& M3 v0 ?  (setq sl (- st 1))
3 ~, L; S/ [% ^7 K- q  (while (>= sl 0)
% g4 n/ _% U& g" J" O    (setq sn (ssname ss sl))
' h/ Q6 S) }* ]. C+ e8 X, z/ K/ o    (setq sdata (entget sn))
5 Z# F# {/ ?  O7 q8 b0 F* `    (if (= (cdr (assoc 0 sdata)) "REGION")(setq fl T))& U& c, c! b/ E
    (setq sl (- sl 1)). f  ^0 t9 d/ R+ t9 Q# r# S: N
  );end while
8 S9 l; n* g4 \( N  (if (not fl)
- {0 t, b8 V2 m0 V8 ^+ d7 a     (progn4 t  _( h+ A" a) G
        (command "region" ss "")
7 h. F! |/ r# k        (if (not (setq ss (ssget "p")))
7 `$ x5 G' @. w/ S, v7 G           (setq ss (entlast) fl2 T)3 `& n. A6 B3 o3 [/ z9 O+ ]
           (if (= (sslength ss) st)
6 D/ U7 \, `6 i7 p              (princ "\n图形错误,不能生成面域!请检查图形!     " )5 I) a6 r. p5 J' T1 u% \# \2 A
              (setq ss (entlast) fl2 T)  P, Z& X3 C* Q* H
           );end if9 t$ R8 h! |; J' i
        );end if
. j( _9 ?9 p& }     );end progn
" A6 k3 O" F2 P2 a# r4 I3 p  );end if  v; c3 Z/ _( K) I' J/ i7 N
  (if fl, R2 H1 D6 S) q
     (if (> st 1)0 t9 r, h& P* R; U- O
       (progn( X5 G7 b* D; D& i9 R1 R
         (command)1 a* ~6 Y9 K: \) {3 c, Y  h
         (princ "\n选择面域太多,或有非面域实体!     " )% ]; S; Z5 V# u1 ]. s1 Q2 c
       );end progn
+ F+ l4 M9 U+ O; o; `8 G& k9 T       (setq fl2 T)8 h8 q- r3 ^& L; ~% {9 Z. E( b
     );end if2 ~$ F3 W, L0 W: L8 k$ ^0 s
  );end if- L; X2 O9 T4 g
  (if fl2
2 c+ q9 z. F0 N3 T' B9 a1 y    (progn' y! @+ r0 m: V- M2 P
      (command "_area" "o" ss)' x/ u: z- ?3 [% y* }9 s
      (setq bl (getstring "\n输入图形比例:"))0 _4 f4 ?) q0 p. [/ ], m( {* d
      (setq bl (atof bl))
  I: m6 t! B5 n( L      (setq hd (getstring "\n输入图形厚度:"))
, k5 x' Q7 e& E, `      (setq hd (atof hd))
  T1 R+ B. o4 \; {* L6 J9 U      (setq str "\n图形单位:mm   材料:钢 7850kg/m3")
8 B' \2 ]9 r( O% x- T, c( y, g0 u      (setq mj (getvar "AREA"))+ I/ t" p* C9 N# k
      (progn9 [! ^; c% O) s4 z3 r" a, @
            (setq wt (* mj bl bl hd 0.00000785))" ?/ F* n$ ^- R9 f1 @
            (setq wt (rtos wt 2 2))1 ^5 ]( K* n# ~& D2 F2 K
            (setq wt (strcat "\n重量= " wt " kg         "))* `6 J/ H4 Y& z- O& Z/ {* X) Q
            (princ wt)
+ T& B4 C3 h% A& |: j      );;end progn
: g/ I0 i7 o- J) _5 F8 F9 l    );end progn
( J! O* ]6 n/ F2 F/ f  O% T  );end if
' p. Y5 a' |  [7 F: w, z* I( l- G);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 )

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