QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

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

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

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

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

x
本帖最后由 chenxuy2006 于 2010-4-17 21:53 编辑
; _, J0 L+ _. |3 X
( ^9 O7 [8 \9 h$ C我是搞钢结构设计的,写了个计算不规则钢板重量的autolisp程序,感觉很好用。如果把钢板密度改成别的,或用个变量输入,可以计算其他板材。(补充说明:单位是mm、kg)+ e! p$ |/ p2 D" n" W  M
. Z7 r8 t) N9 c* `; w7 g# a. W
(defun C:gw(/ ss str bl hd a n mj wt fil sdata st sl fl fl2 sn)
2 M( S: z0 u: _' }  P- [) d6 k  (princ "\n计算不规则钢板重量")# ^  K& c/ E' U
  (princ "\n请选择用于生成面域的直线或面域")- P2 A' w2 Y+ P; X1 g
  (setq ss (ssget))' I  Z: Q2 w3 s7 R2 z. r
  (setq st (sslength ss))
) p2 s- o+ T- Q. q4 C" t  p  (setq sl (- st 1))8 c1 y2 M4 {0 [4 ~. g2 |
  (while (>= sl 0)6 T/ l# B: }, n$ g$ i& \
    (setq sn (ssname ss sl))/ a& ~7 e# ^$ n9 U: F
    (setq sdata (entget sn))
5 P: a( o9 k: Y# S& \/ E& a    (if (= (cdr (assoc 0 sdata)) "REGION")(setq fl T))
; a( `2 O' _" U3 t0 V    (setq sl (- sl 1))
! r2 g& s1 @6 U. _  );end while
4 b( ~5 Y& K) E$ n1 e0 w  (if (not fl)
" i" b- ~  c. [8 w* o     (progn
. T  K* K2 @$ o        (command "region" ss "")8 G8 I! G- i5 \1 P4 r9 u
        (if (not (setq ss (ssget "p"))): Y  y, H% i% i$ i0 P- h
           (setq ss (entlast) fl2 T)
2 q, y6 s6 Q: p0 f7 R) g/ v           (if (= (sslength ss) st)6 m- u+ I  n5 b
              (princ "\n图形错误,不能生成面域!请检查图形!     " )
' Y+ h8 G: B4 ]& e              (setq ss (entlast) fl2 T)
: Y+ ?. c$ A- @. n1 G% f% }: q           );end if
8 V* [( D7 d6 x8 `8 O0 }' h        );end if
. u6 r3 y& Q8 C8 b; L3 l) X/ l     );end progn8 p" }! t6 Q$ h5 x$ a- B# O
  );end if$ q! X) R0 `6 {) K% Z
  (if fl
! e) E5 b4 y! c     (if (> st 1)% c: Y' T: A) o4 R- J( G. N: C
       (progn; Z$ O1 G! |3 H. ?0 h' s. y/ I: s
         (command)
. A# |( G/ C0 ?- h         (princ "\n选择面域太多,或有非面域实体!     " )
: O0 K' x2 r0 d+ m0 O9 `4 E7 H) U% |) t       );end progn
" S) u. k8 T: [5 S; l4 y9 Q       (setq fl2 T)% ]8 Z+ e' I6 {, U" X0 n) c- h
     );end if/ h& j8 }1 I6 B  t! {9 o! Z# ]+ N3 A
  );end if
6 _! b: g  t4 P. @& }( x0 Y6 h. S  (if fl2 ( n8 X5 w6 V0 V1 U( {
    (progn3 d5 x+ I, Y5 @6 r4 c
      (command "_area" "o" ss)3 m' _8 Z$ d9 ]+ L
      (setq bl (getstring "\n输入图形比例:"))' I6 f4 u: e5 n+ }
      (setq bl (atof bl))
$ E3 x7 P( `* F, _; J$ @; ?0 o      (setq hd (getstring "\n输入图形厚度:"))8 Z& Y# d5 s% s1 s; ~6 F, V* R
      (setq hd (atof hd))# x3 K$ h0 d8 l, w- U8 t
      (setq str "\n图形单位:mm   材料:钢 7850kg/m3")
% L8 U" b1 p9 V8 d: {1 y      (setq mj (getvar "AREA"))
- _, @( F9 g" f9 Q1 e( q- E( f; U" [      (progn
2 Y: S0 Q- f  C7 I- t9 H            (setq wt (* mj bl bl hd 0.00000785))2 X; h& R" L$ w2 m
            (setq wt (rtos wt 2 2))* B; Y( P) K6 Z# J
            (setq wt (strcat "\n重量= " wt " kg         "))+ j& W' U/ A# R. m. |& B7 o
            (princ wt)
" q4 {5 U0 a8 P3 S. h( R      );;end progn
& E5 B2 |6 Z4 v8 X  r2 \( Q7 w3 j    );end progn
; p3 `. F0 m$ w+ [- m! b  );end if
- T+ }5 n* Q( n* {6 X2 L% h: T);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 )

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