QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

全站
10天前
查看: 2603|回复: 2
收起左侧

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

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

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

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

x
本帖最后由 chenxuy2006 于 2010-4-17 21:53 编辑
- |) q9 k) Q( v2 v7 E# F) _6 n/ |0 i: L: s, M
我是搞钢结构设计的,写了个计算不规则钢板重量的autolisp程序,感觉很好用。如果把钢板密度改成别的,或用个变量输入,可以计算其他板材。(补充说明:单位是mm、kg)+ c! s, N& l4 [) _
. }  U# b, O/ G% S4 Q
(defun C:gw(/ ss str bl hd a n mj wt fil sdata st sl fl fl2 sn)
; l2 x6 h* w- o; W4 ?  (princ "\n计算不规则钢板重量")* j3 M2 S5 R' @$ b/ E* D7 Q
  (princ "\n请选择用于生成面域的直线或面域")& {+ m4 p1 j, g7 v, Q
  (setq ss (ssget))  q' g; u0 b2 r. R2 Q
  (setq st (sslength ss))
; q, Z$ O0 m7 Z! y5 P% D  (setq sl (- st 1))
& z2 I! V' r/ f  (while (>= sl 0)
. L' e& j, Y+ v4 {9 L( G    (setq sn (ssname ss sl))
6 l* T3 D  I5 K/ T- p    (setq sdata (entget sn))0 y8 y/ j  x3 a
    (if (= (cdr (assoc 0 sdata)) "REGION")(setq fl T))9 `0 P2 P$ O* w& ~, p: W
    (setq sl (- sl 1))+ g2 V& j7 ^3 {8 I) q
  );end while
1 l3 W: Y/ J5 I% a, k4 |$ _  (if (not fl)4 L  `# c/ {5 `( l$ B  }- E
     (progn
2 o4 G, g  J6 X, T( d; C& P6 p        (command "region" ss "")
' p) f. f4 b  ~. M- {! ]) T0 K" u1 M        (if (not (setq ss (ssget "p")))# T- o- T( g' ^7 f; `9 T5 @; V
           (setq ss (entlast) fl2 T)% f# T7 p  `* p0 H2 x& `* P" W" E
           (if (= (sslength ss) st)
. p0 J; @/ y+ ^& E/ G8 `              (princ "\n图形错误,不能生成面域!请检查图形!     " )1 S7 f  a, d3 a, u  i% r8 a
              (setq ss (entlast) fl2 T)
9 z9 T+ q& X! R3 _" M1 C           );end if7 I; N, L7 k) C& x% C% v! R" i
        );end if
0 ^6 U1 W  ^4 W; ?3 A' s: `( E     );end progn
, D& F) n" `; ?& E/ n! A  );end if4 l4 |/ j- g6 D# i9 g8 j3 B
  (if fl9 p* a+ q: o+ a4 B6 Q1 b+ \
     (if (> st 1): z/ Q$ L& q" r5 _
       (progn
* g: Q& J0 y; u         (command)
' I. ^) Z$ [2 B. O, Z7 v( T  F         (princ "\n选择面域太多,或有非面域实体!     " )
# C% G) q; s4 [' O, n, [; ?7 Q       );end progn
) w  E6 p8 V( f9 e! z! ^8 j2 ?. N       (setq fl2 T). T$ T" a( z; c, I+ d( x! O$ Z
     );end if6 A# \2 S1 n( W& ~+ l! H
  );end if  H7 z9 j+ A8 P
  (if fl2
6 k! T' R7 k6 k$ T) E9 y    (progn0 _: m' I, I$ N
      (command "_area" "o" ss)
6 g! Y; w; E% \. y/ F$ j      (setq bl (getstring "\n输入图形比例:"))
3 c8 Q& R. b6 d+ L      (setq bl (atof bl))
) L. _" ?9 T8 _; D( X* _, a' M      (setq hd (getstring "\n输入图形厚度:"))* n2 s0 N7 Y2 ^' n' @% j# S
      (setq hd (atof hd))! j4 N: r8 Y' @2 F" c. |
      (setq str "\n图形单位:mm   材料:钢 7850kg/m3")
9 y1 U4 o1 q4 E      (setq mj (getvar "AREA"))8 N6 J1 r: Q: u: Y
      (progn5 z; D, S: u, n+ f+ r1 {; R
            (setq wt (* mj bl bl hd 0.00000785))
7 x1 L9 u: t& U- k            (setq wt (rtos wt 2 2))
0 l$ x  u! q* I( Q& a5 F( \8 h) K$ p            (setq wt (strcat "\n重量= " wt " kg         "))6 L! g  Y/ y$ P0 L
            (princ wt)
9 c& _; S% K: F$ [- ~      );;end progn
" G; A' U1 e( K$ Z- x    );end progn" x; J+ |; Y$ r3 |, z" m- b, Y
  );end if
. l/ F, E; Z! b  P6 W);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 )

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