QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

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

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

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

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

x
本帖最后由 chenxuy2006 于 2010-4-17 21:53 编辑 # `8 f/ ~- D- l& ?7 ?# e

+ A& H% Z. z0 ]. b  @$ a我是搞钢结构设计的,写了个计算不规则钢板重量的autolisp程序,感觉很好用。如果把钢板密度改成别的,或用个变量输入,可以计算其他板材。(补充说明:单位是mm、kg)
& e/ r/ \! q# B1 X5 F1 t' |$ E* V/ g/ `
(defun C:gw(/ ss str bl hd a n mj wt fil sdata st sl fl fl2 sn)9 Z# G- u9 Y2 T3 b5 K) X0 I
  (princ "\n计算不规则钢板重量"); G, l; Q* W8 Y- G' q6 V3 L  u
  (princ "\n请选择用于生成面域的直线或面域")
' N+ `6 ]9 q4 A% N1 n: y; Y9 ^4 Q- V  (setq ss (ssget)), g+ L+ |9 {4 F+ {# o- ]) k
  (setq st (sslength ss))
( G* i. z& |% o) e8 Z' D  (setq sl (- st 1))/ o8 {" K+ E# L4 G# r
  (while (>= sl 0)
3 }/ g. Z/ i! X8 W# f7 j- p    (setq sn (ssname ss sl))
6 @& h, Y+ d5 t" W    (setq sdata (entget sn))) m+ `9 l8 i* n
    (if (= (cdr (assoc 0 sdata)) "REGION")(setq fl T))
) i# `; {7 n0 ^5 i2 ~- R' X    (setq sl (- sl 1))
6 j" c0 G" W4 P  x$ d% R  );end while
+ w& B5 x3 |# e' ~8 T& ^  (if (not fl)9 q6 \7 v( L6 i# X
     (progn) f- [8 W4 i3 _/ q$ E$ M0 ?
        (command "region" ss "")9 K7 C% S# C& ~$ J' I1 H
        (if (not (setq ss (ssget "p")))
8 H1 P7 A* p0 W% M! `7 i3 ~           (setq ss (entlast) fl2 T)
! N( f2 m# `. `           (if (= (sslength ss) st)
7 T5 D; U9 E! }0 m% }% \$ a              (princ "\n图形错误,不能生成面域!请检查图形!     " )
' B  S2 R. h, |; c              (setq ss (entlast) fl2 T)
9 z; g$ A0 Q# h           );end if6 P6 m2 o' W+ B- t- x+ N, M
        );end if
' P" _- a8 u% Q$ ^     );end progn2 M  g6 q( Z2 O' n% U+ [" D9 K& ?
  );end if
2 E7 @1 B, e) D; o- W  (if fl) `4 B# Z2 \& {+ \# p. B
     (if (> st 1)
8 m2 ^6 R. u4 ]" ~: B/ j6 v# D) u6 X       (progn
7 K+ j) {" S0 [         (command): Z1 S8 w3 f. {. L) \
         (princ "\n选择面域太多,或有非面域实体!     " )$ O# Z) `; k% j3 }+ C* T! i
       );end progn) q6 j  y4 m$ ]# O1 y: K+ a
       (setq fl2 T)* |5 v3 c5 X+ ~1 Y1 o: ^) |
     );end if9 `2 M8 P* Y/ X) ~5 y
  );end if
2 W) `2 r8 @  \3 j  (if fl2 " }4 v7 M, m! N
    (progn
& V/ V" ~( o$ Y6 ]7 |      (command "_area" "o" ss)
, F& j7 T5 K- x$ @. Y7 I      (setq bl (getstring "\n输入图形比例:"))+ r# C8 X; T/ J3 ~0 u$ O
      (setq bl (atof bl))0 u  y3 G- b7 B0 f) A
      (setq hd (getstring "\n输入图形厚度:"))
( n. G* S4 @# I+ v. O      (setq hd (atof hd))4 O; B7 r2 n2 b
      (setq str "\n图形单位:mm   材料:钢 7850kg/m3")
; b4 F& T4 Z6 B% b+ O      (setq mj (getvar "AREA"))2 U# }9 o4 n7 B2 y. h
      (progn
: J! a4 f! B" L            (setq wt (* mj bl bl hd 0.00000785))
- ]# G0 a9 R$ T; i            (setq wt (rtos wt 2 2))3 j6 F3 A% @8 ~6 L
            (setq wt (strcat "\n重量= " wt " kg         "))
; r* c6 ^8 x" L. v1 X: N% T            (princ wt)
( b# }2 ?2 n5 n) D      );;end progn
2 T" A1 }! f6 i7 d/ p/ |$ C2 {    );end progn! i9 a0 U4 C3 q3 ^) U  J, f- O/ X4 O
  );end if& U$ D6 ^7 I7 {, ?
);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 )

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