QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

全站
goto3d 说: 此次SW竞赛获奖名单公布如下,抱歉晚了,版主最近太忙:一等奖:塔山817;二等奖:a9041、飞鱼;三等奖:wx_dfA5IKla、xwj960414、bzlgl、hklecon;请以上各位和版主联系,领取奖金!!!
2022-03-11
全站
goto3d 说: 在线网校新上线表哥同事(Mastercam2022)+虞为民版大(inventor2022)的最新课程,来围观吧!
2021-06-26
查看: 2508|回复: 2
收起左侧

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

[复制链接]
发表于 2010-4-17 18:33:57 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 chenxuy2006 于 2010-4-17 21:53 编辑 " w8 b8 S6 w2 b! [

. F( e9 E6 @2 o我是搞钢结构设计的,写了个计算不规则钢板重量的autolisp程序,感觉很好用。如果把钢板密度改成别的,或用个变量输入,可以计算其他板材。(补充说明:单位是mm、kg)
7 O' J; `; J/ r) l& V: u7 b) f$ s, I$ j$ l4 a2 L
(defun C:gw(/ ss str bl hd a n mj wt fil sdata st sl fl fl2 sn)
3 U8 A- M+ h% c  F  (princ "\n计算不规则钢板重量")% u- ~& v! M& d1 E# Y# z) H
  (princ "\n请选择用于生成面域的直线或面域")
3 o% l# f: @8 ^1 a  (setq ss (ssget))/ `# j1 f+ z5 P! @: y
  (setq st (sslength ss))7 n9 v: H3 l7 @4 @
  (setq sl (- st 1))3 d7 `" E0 s: E! O
  (while (>= sl 0)) w: _" ?8 d$ c! ?
    (setq sn (ssname ss sl))1 u  g" L6 a/ I! ?; y& `
    (setq sdata (entget sn))
2 R# |; \- v1 q" D9 [8 n# P* b$ R' Z    (if (= (cdr (assoc 0 sdata)) "REGION")(setq fl T))
6 S% |, J6 k/ @0 d    (setq sl (- sl 1))) ~& a$ S- i. _. ^5 k* G
  );end while! R9 G) J  n' W' v1 w! z
  (if (not fl)
2 b5 c1 ^$ p; E     (progn+ ]$ Q* y" J2 G8 j0 M  U  @
        (command "region" ss "")
3 u, o, W  H$ k7 u        (if (not (setq ss (ssget "p")))  ?5 S' F& r/ y* @; D2 Q
           (setq ss (entlast) fl2 T)
" ~) }$ k2 \: r7 _, S' b           (if (= (sslength ss) st)
, h. m) r( M0 W4 r( S/ T              (princ "\n图形错误,不能生成面域!请检查图形!     " )
1 T# e- t6 d( E. K: z/ u- ~              (setq ss (entlast) fl2 T)1 ?6 w* P( b4 \% a: s$ `2 g- p
           );end if
: {6 x( r3 C- x% v, ]        );end if, s/ i1 R- D- m; N
     );end progn
2 k; Q, j  Z+ l1 N/ n' a6 Q  );end if
" v' t" H; t& a+ H/ G& j, e" W  (if fl
. g0 ^: _: ]- g2 R" P     (if (> st 1)
/ K. ~( L$ c7 j  K  N. e4 q4 b" I% |       (progn
  Y( n2 y! W7 n; ~3 \0 t' f         (command)
- F/ U+ M2 w, O" o3 {: c         (princ "\n选择面域太多,或有非面域实体!     " )
4 g$ R7 J4 b2 i# r: ]7 I9 U       );end progn
, K2 W" ~2 _6 I- C       (setq fl2 T)
4 h# Q3 A7 p/ {' T$ t. B2 a     );end if; p2 I8 d3 W( r. v4 H
  );end if1 m; f% ~2 U6 Y3 ?( Z% M4 ?- t* E
  (if fl2 % x, ^' j- u! c& x  B
    (progn9 h$ Z" m; W( Y2 @6 H6 Z' d' m
      (command "_area" "o" ss)2 O) n5 w3 }8 E# T+ j
      (setq bl (getstring "\n输入图形比例:"))
  V6 p! Y) z. \* m1 b      (setq bl (atof bl))
7 s  G" M9 e3 w: F. ?0 N1 F# b      (setq hd (getstring "\n输入图形厚度:"))6 V  L' g6 W) S8 I! i& j! ~. x
      (setq hd (atof hd))" O) X- ]" [$ \% M3 R
      (setq str "\n图形单位:mm   材料:钢 7850kg/m3")
: g/ D  z* @) z      (setq mj (getvar "AREA"))) q) G) ?% q( ~
      (progn1 \4 K( f3 z( \9 U/ [, O
            (setq wt (* mj bl bl hd 0.00000785))0 [; P( n! ~- M9 ^7 H3 l
            (setq wt (rtos wt 2 2))4 [: @8 e/ N7 n3 h3 @; J
            (setq wt (strcat "\n重量= " wt " kg         "))
/ @) F) v2 L3 F; o5 ~( H            (princ wt)1 t+ |6 @$ F$ \2 P# T
      );;end progn9 q. @+ m7 Y: f8 H5 {/ P1 O
    );end progn' X/ ^) o% j* r7 J% `
  );end if7 m" V+ H# S3 a) m& _
);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 )

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