QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

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

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

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

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

x
本帖最后由 chenxuy2006 于 2010-4-17 21:53 编辑 , O5 i& X- p, j4 v5 g

  T/ K8 p+ Z% w, r8 i/ ~/ T我是搞钢结构设计的,写了个计算不规则钢板重量的autolisp程序,感觉很好用。如果把钢板密度改成别的,或用个变量输入,可以计算其他板材。(补充说明:单位是mm、kg); L0 ~: J/ K1 k- y5 [2 B( |

$ h# l# L3 z& e) W1 f(defun C:gw(/ ss str bl hd a n mj wt fil sdata st sl fl fl2 sn)
( |3 R' }- C. B) T1 N7 j  (princ "\n计算不规则钢板重量")) Q$ @9 h' j7 t) Q2 e5 f0 Q
  (princ "\n请选择用于生成面域的直线或面域")1 Z, l  Q, u& Z" A( _5 U& e
  (setq ss (ssget))
: D: y* w$ H0 K. a/ K  (setq st (sslength ss))7 E& h4 ^% l- z7 y5 X/ ^, z
  (setq sl (- st 1))
2 x$ R+ H" _- {' d3 z: y! _  (while (>= sl 0)# e6 ~# k* A# ~5 W9 M7 _- ^
    (setq sn (ssname ss sl))
7 b  U: h6 K! }, Q  S* W* E) A    (setq sdata (entget sn))
5 X# d# k# s" k6 b; F" J/ r    (if (= (cdr (assoc 0 sdata)) "REGION")(setq fl T)). b$ k; Z" ~. K( s5 A$ `
    (setq sl (- sl 1))& S3 P$ M+ ^0 B! k8 _' Q9 E% i
  );end while9 ~$ {* B+ q5 Z( G# n3 g: \
  (if (not fl)6 d3 M9 A! P( J0 |0 n0 v
     (progn
, c4 k9 z  M) v3 X3 O- j5 Q8 j        (command "region" ss "")
0 B9 U/ e9 U/ d6 u  \& u, ?        (if (not (setq ss (ssget "p")))
, B9 a& D% m9 l. j           (setq ss (entlast) fl2 T)/ A3 T, C( h2 v7 k7 D( a% F/ t. s
           (if (= (sslength ss) st)
/ T, ~- D, R; w              (princ "\n图形错误,不能生成面域!请检查图形!     " )  m, E3 N( X1 ^; R
              (setq ss (entlast) fl2 T)
/ }% b! b) X6 G' x( J# q4 D5 p           );end if+ y* G; i$ Y% M! n4 K
        );end if
& i  d$ ?9 a: a: a9 ]% _/ ~9 z     );end progn+ _. v3 E$ @% U' z& k1 |6 m) [
  );end if5 Z0 f6 c9 q& b. t. x; D
  (if fl% Q2 _' l" p& \( ]9 n6 E
     (if (> st 1)* V2 v) R9 A3 v# w/ C
       (progn0 i1 U# Z$ f0 {6 B+ T9 \. k4 H
         (command)
. Y  Q+ ^/ H0 c5 w  o         (princ "\n选择面域太多,或有非面域实体!     " )
0 F; q0 j! o, o+ @& A" ~4 c8 S( l       );end progn& O+ y0 e* J- |# Y! [$ H4 ~; H& w
       (setq fl2 T), y# c- N' ~3 z' ]
     );end if6 Z9 {$ z; a8 k/ E
  );end if
. O: Q1 A* f& ]* ?: i' G  (if fl2
3 |" A4 e) `: H- t( H    (progn
. S* f3 J/ F; ?+ }1 L: j      (command "_area" "o" ss)
7 }0 }, n; w  f5 L) n8 {      (setq bl (getstring "\n输入图形比例:"))
7 F6 T% h+ N( D4 M* p/ H      (setq bl (atof bl))- n- _2 A6 O6 J! @5 r( B
      (setq hd (getstring "\n输入图形厚度:"))$ u4 l& n3 ]1 ]5 i& Z: I
      (setq hd (atof hd))0 }) e- b' U+ Q- Z5 d
      (setq str "\n图形单位:mm   材料:钢 7850kg/m3")
) P$ t* P6 ]( }3 K/ M      (setq mj (getvar "AREA"))
; e7 V& |1 l9 y4 z3 W6 |      (progn
! I1 ?9 f9 F) ~; a1 ]8 n% N. u( K            (setq wt (* mj bl bl hd 0.00000785))
: ~0 W+ D3 S" `! v9 D            (setq wt (rtos wt 2 2))
- X7 @8 f- C2 X- a            (setq wt (strcat "\n重量= " wt " kg         "))* E: [( L0 {1 P( C" C* e
            (princ wt)( Z3 x1 ^# w+ K  `8 C3 @3 r
      );;end progn
( G+ i8 Q" p3 J- D% x0 z. x; m    );end progn
/ ]# f$ n/ s6 g5 K4 ~! P' L  );end if
8 L/ D/ i. L8 m& H1 a  d);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 )

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