|
|
马上注册,结识高手,享用更多资源,轻松玩转三维网社区。
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 chenxuy2006 于 2010-4-17 21:53 编辑
5 q, y) ?3 c% R: [3 Q
, g1 g, ~7 ^( s4 u+ {8 `我是搞钢结构设计的,写了个计算不规则钢板重量的autolisp程序,感觉很好用。如果把钢板密度改成别的,或用个变量输入,可以计算其他板材。(补充说明:单位是mm、kg)
1 g. u; H! P9 ]7 o+ o- C$ h9 Z7 D2 [1 T* s, c! m
(defun C:gw(/ ss str bl hd a n mj wt fil sdata st sl fl fl2 sn). R' E# {" o7 |+ W7 z4 ]0 I( a& U
(princ "\n计算不规则钢板重量")3 t7 n5 ]) P' g+ H/ l
(princ "\n请选择用于生成面域的直线或面域"), q1 c: t& W. ^1 ^
(setq ss (ssget))9 R& N' c; l d) q' ~. \
(setq st (sslength ss))
9 S; M; I( H% M" f( n0 { (setq sl (- st 1))$ A9 H0 M* L" ]; q% w) H
(while (>= sl 0)
% A3 k* a) V2 I2 e& t$ r (setq sn (ssname ss sl))
% z* w4 l5 P* {& n5 u! n5 o (setq sdata (entget sn))
8 r7 g. Z0 [& j7 U/ l% W (if (= (cdr (assoc 0 sdata)) "REGION")(setq fl T))
# N' T' R+ o3 | (setq sl (- sl 1))
- @) W& @- j; N );end while
7 c- [4 A1 |6 f (if (not fl)% J/ n3 f( k% d/ I
(progn
5 z/ p1 T) y8 D' ~" M (command "region" ss "")6 k8 h$ L# X9 B
(if (not (setq ss (ssget "p")))3 @; A" p$ u1 Y+ ?' L9 M2 @% X
(setq ss (entlast) fl2 T)" v+ i, L7 A2 P$ Z8 P8 Q3 }
(if (= (sslength ss) st)
" W7 o0 i% ^% u (princ "\n图形错误,不能生成面域!请检查图形! " )
6 g! m+ _$ _8 V1 i: G5 \ (setq ss (entlast) fl2 T)
4 n2 }4 d" k o" M0 Y );end if& n- Q( t: o5 Q' S
);end if$ z* U1 Q# y. {, {
);end progn
9 }3 L% p: @) A& N; i );end if) ~# h% N W! h4 i% N9 I
(if fl5 v( _8 }/ a) ~! j& K- ~ z
(if (> st 1)
! A) u, p) V. e" D: U4 V3 F (progn
@, L ]- M- }. e3 Q# l# } (command) n1 f* n: `: E5 B, ]9 l) }& I) g
(princ "\n选择面域太多,或有非面域实体! " ): t. k, M+ `3 j6 h9 n: x
);end progn
& A+ }1 {3 r! { (setq fl2 T)2 J+ P4 H9 g6 b, s$ x
);end if
8 ^4 G1 I7 q2 @) n$ y% J );end if/ q& M3 H4 E% k7 u
(if fl2
( V0 ~$ S3 C1 N; p (progn
5 I+ {! @2 F- X8 `" l1 }: B( T (command "_area" "o" ss)2 f- U& ~9 ^5 t/ @
(setq bl (getstring "\n输入图形比例:"))
% `1 j$ h+ h, y0 } S* T. J (setq bl (atof bl))
# Y, g- L0 V1 l# G$ H# {& h5 w (setq hd (getstring "\n输入图形厚度:")): l2 V! p4 V% g4 p1 h
(setq hd (atof hd))
4 h$ n$ j o' n (setq str "\n图形单位:mm 材料:钢 7850kg/m3")
2 ~% v( [# C4 {1 n* d (setq mj (getvar "AREA"))
1 Q7 U3 T( F8 r; C (progn
Y7 Q2 x: c: u! Q! R- `4 R5 m2 K (setq wt (* mj bl bl hd 0.00000785))
8 j ^1 [0 t% C& Y& C! }: K+ N (setq wt (rtos wt 2 2))- n, m6 q8 U* E& x+ ^% A, y# u
(setq wt (strcat "\n重量= " wt " kg "))
/ n7 p4 T0 n5 T" d& U' S D2 ~ M (princ wt)
$ X% |' U! v, Q' S );;end progn
6 ?6 m5 x0 b0 x );end progn, o% E; L" p+ Z
);end if1 l3 z. t* V7 h5 {$ p
);end defun |
|