QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

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

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

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

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

x
本帖最后由 chenxuy2006 于 2010-4-17 21:53 编辑 ) b% f* |- I8 J4 c. [) w* ~
2 _7 d6 S' L/ Z$ d& {
我是搞钢结构设计的,写了个计算不规则钢板重量的autolisp程序,感觉很好用。如果把钢板密度改成别的,或用个变量输入,可以计算其他板材。(补充说明:单位是mm、kg)6 c6 a/ D6 ~  P3 d" f( c+ e
3 B: l0 K4 B  N
(defun C:gw(/ ss str bl hd a n mj wt fil sdata st sl fl fl2 sn)' P& H/ _! Q" p# B, m
  (princ "\n计算不规则钢板重量")/ E3 j2 r) A& O  M7 R8 P
  (princ "\n请选择用于生成面域的直线或面域")
% @7 G/ A( {4 q! R# ?3 M" ]) ]6 g4 C: K  (setq ss (ssget)); }9 w8 W9 v2 P& O( h( W
  (setq st (sslength ss))
4 I' P  M! a& c2 c9 z  (setq sl (- st 1))0 h( t: H$ U) e! S7 N& s
  (while (>= sl 0)
+ }; K$ c3 i( j1 C: ]+ a5 ?    (setq sn (ssname ss sl))  M0 \4 p9 B+ T2 t
    (setq sdata (entget sn))
. b3 o  h0 r1 s. t    (if (= (cdr (assoc 0 sdata)) "REGION")(setq fl T))
0 [5 F& f$ I+ f# a! [9 R9 {    (setq sl (- sl 1))% t9 ^. ]* v' [* ^( R  F
  );end while+ B. w# }9 n+ y# _
  (if (not fl)" X, e* N* J* k" c+ a0 ]6 k
     (progn7 w' }2 _2 O4 m, D( Q( I/ w2 K9 p
        (command "region" ss "")( L3 X* m# z* ?! F8 ?( @
        (if (not (setq ss (ssget "p")))
# f5 \$ l9 ?* {6 c. Q7 h/ M           (setq ss (entlast) fl2 T)
. ?" i! N7 Y, W  O  B, P5 F% \3 N! f- p           (if (= (sslength ss) st)1 h* g8 A% _2 q) l7 f- }& O9 J
              (princ "\n图形错误,不能生成面域!请检查图形!     " )1 z; O. e4 C' L, L8 q) f$ o' m
              (setq ss (entlast) fl2 T)0 y3 X% z, H# z; P
           );end if
# N1 N- }1 y+ {0 B- S        );end if9 }% p5 V8 f& J7 j. Q/ a1 s
     );end progn4 ~4 h* S& i# I- M
  );end if* ^- E0 k& C  V" ^! I1 o: _
  (if fl
: G! H& a8 k' s6 J# v     (if (> st 1)
! ]4 ]* W$ w# K& T* \       (progn
, l5 w; Y2 C* x1 D8 @; e- p! p         (command)
0 S+ D- z/ l$ n         (princ "\n选择面域太多,或有非面域实体!     " )
. f& n  y2 k- t  Q4 y1 M       );end progn% y5 F/ g' N+ ?7 f1 `
       (setq fl2 T)
# }6 H2 J# M$ ?) o7 g0 s% y' r     );end if
# p% l7 y4 J6 U5 ?6 P  {  );end if
. t  @" L, m& }/ m. V  (if fl2
, I- l" o6 g9 |; A    (progn
; w" p4 G- o1 S, p1 I      (command "_area" "o" ss)3 v6 m$ |3 W- {: a* t$ M
      (setq bl (getstring "\n输入图形比例:"))
# `* [9 y: H; S# r7 v: i      (setq bl (atof bl))) }5 T. M8 K. S: J. j7 z0 {$ C' `% w
      (setq hd (getstring "\n输入图形厚度:"))
% K- Y$ h# O1 B! N      (setq hd (atof hd))- J$ d8 o8 Q# T; ~% n
      (setq str "\n图形单位:mm   材料:钢 7850kg/m3")5 _8 o1 M3 k& D: C! K( H
      (setq mj (getvar "AREA"))) r, ~* ^! E* A1 o; q: d
      (progn8 Z* G- Z1 T7 ~8 C* u: U
            (setq wt (* mj bl bl hd 0.00000785))
5 @8 u, \4 f& t% e            (setq wt (rtos wt 2 2))$ S$ w. k& X' u0 L
            (setq wt (strcat "\n重量= " wt " kg         "))
% Y# ]' l( m' S) C# B3 s            (princ wt)7 Y1 a6 F7 H4 g
      );;end progn
; q  p: t" X! x4 w" O6 j    );end progn! C# ~+ v5 D, _6 f8 `
  );end if2 L" Q1 v  p6 Z7 R' B% t+ _; f, f
);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 )

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