|
|
马上注册,结识高手,享用更多资源,轻松玩转三维网社区。
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 chenxuy2006 于 2010-4-17 21:53 编辑
X0 s, w! i; T" H. H' u" Z* X; E
4 @# A& U. W: E) U我是搞钢结构设计的,写了个计算不规则钢板重量的autolisp程序,感觉很好用。如果把钢板密度改成别的,或用个变量输入,可以计算其他板材。(补充说明:单位是mm、kg)
8 w. i4 U" o) Z1 q+ U: w# \6 o( d; l- Q- j0 C; c; P
(defun C:gw(/ ss str bl hd a n mj wt fil sdata st sl fl fl2 sn)
* D3 M9 D0 u2 o t! W (princ "\n计算不规则钢板重量")
. F) w9 p! x1 y& V* y4 c (princ "\n请选择用于生成面域的直线或面域")
7 h, R7 c" e2 f (setq ss (ssget))
- H' ~$ e. | I- s9 ?9 \ (setq st (sslength ss))
/ Y5 h- \# ^! ~% P2 ^$ D (setq sl (- st 1)); M6 E+ j/ l& m7 P3 t+ l
(while (>= sl 0). |% l8 c! {3 [
(setq sn (ssname ss sl))
6 o) A9 }+ w( x3 ?( |: C5 U+ f (setq sdata (entget sn))
/ w7 P! i7 y3 l$ x+ F, Z/ I (if (= (cdr (assoc 0 sdata)) "REGION")(setq fl T))# o4 K0 t- J* V
(setq sl (- sl 1))
Z7 x+ t: E0 S6 t7 p );end while
% Y) K& P- ?, o, T5 X0 j& _ (if (not fl)
9 U& i% a8 E2 l) ]2 L (progn; A0 }# Y$ j* f; N6 G
(command "region" ss "")
8 |/ v$ p# C7 w5 Q" f (if (not (setq ss (ssget "p")))
4 M2 u( z# A) c2 _) c5 i (setq ss (entlast) fl2 T)
, r; \6 Q; A- O& I (if (= (sslength ss) st)
, }% C: X+ j a (princ "\n图形错误,不能生成面域!请检查图形! " )6 ~: r7 X8 S0 p# O$ W
(setq ss (entlast) fl2 T)
$ {0 e) ^' ^9 \5 Q. ] );end if( K8 Z; ]4 j6 R
);end if
~9 o2 B& S+ I/ g+ M: R );end progn4 d* g1 V: P6 F
);end if
' j1 H. B6 c' z9 `/ |. | (if fl/ T( y4 m9 o! _+ y
(if (> st 1)
3 n6 L; s6 S/ c/ N (progn! m0 z, N! S4 D- O% W
(command)$ ~) e6 O8 @6 H' z6 D4 S! N; L/ x' `) `
(princ "\n选择面域太多,或有非面域实体! " )
: U" M9 t$ h/ ~0 Z+ ^ );end progn
8 [& O& S: t& h9 X( n (setq fl2 T)2 }7 r) ^4 N+ X
);end if6 Q$ ~6 B. u) \, Q" S0 }
);end if
# J" ]+ A7 ~# { (if fl2
: L, l+ f8 W1 `( _, U1 u (progn8 @+ [; _& w4 @2 X" m W
(command "_area" "o" ss)9 u) Q! j" v6 b" L G
(setq bl (getstring "\n输入图形比例:"))6 Y" d: e; Y0 _( W
(setq bl (atof bl))0 L" C1 U% S6 W5 N. S( N
(setq hd (getstring "\n输入图形厚度:"))
& Y& X' y: f- G& d (setq hd (atof hd))
# x6 j# `6 H: y* c$ g (setq str "\n图形单位:mm 材料:钢 7850kg/m3")* K% s/ l4 n* d1 f( |( W
(setq mj (getvar "AREA"))
" [$ |5 |; l- f. m- g% a* n# P' [ (progn
, l. D9 ^! E+ n (setq wt (* mj bl bl hd 0.00000785))
7 J4 A' ~0 [+ z; f8 \ (setq wt (rtos wt 2 2)). J9 ^0 C9 Z; n- W4 D, G; G
(setq wt (strcat "\n重量= " wt " kg "))! k, t8 g0 q& \. h$ r
(princ wt)
& ~# E% Y' \2 k0 L! l. \ );;end progn
9 w/ `' B. k6 S+ W1 E6 L( c& H( H );end progn: L. i: O$ ^. d- ~1 `5 \7 V
);end if1 H# G" K9 O, n9 a
);end defun |
|