|
|
马上注册,结识高手,享用更多资源,轻松玩转三维网社区。
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 chenxuy2006 于 2010-4-17 21:53 编辑 ) X8 U. s/ _- y: F% n
% i- n6 e) A! p) h" S' S. R
我是搞钢结构设计的,写了个计算不规则钢板重量的autolisp程序,感觉很好用。如果把钢板密度改成别的,或用个变量输入,可以计算其他板材。(补充说明:单位是mm、kg)
8 l( J2 e/ U5 ^9 y
! N' {1 w3 j/ Z& u( R9 k# f(defun C:gw(/ ss str bl hd a n mj wt fil sdata st sl fl fl2 sn)4 F5 F' k/ C3 {( q
(princ "\n计算不规则钢板重量")) o* o" D8 l9 o7 k
(princ "\n请选择用于生成面域的直线或面域")
$ x- G8 p& a& W( B6 `7 a' B (setq ss (ssget))& v! G3 W d! o7 i! N
(setq st (sslength ss))
! v: ?% X9 a& Z% K/ n; d/ n' A (setq sl (- st 1)): c0 S7 R, k6 u9 Y
(while (>= sl 0)
; i7 o; E3 @- g; P (setq sn (ssname ss sl))
: v' `9 B8 h3 E5 p2 ` (setq sdata (entget sn))) M6 u% Z0 k6 }' }7 h3 B+ }
(if (= (cdr (assoc 0 sdata)) "REGION")(setq fl T))
$ n2 @$ |8 H% @( L. X/ C9 c (setq sl (- sl 1))
" i9 F7 } J, O );end while( R' e! g4 _) U( `6 z; ]8 B' H+ z
(if (not fl)
6 y; z- F4 X* z ]: I (progn
6 a& S. u5 T4 C& D1 j (command "region" ss "")
+ f0 R- L& I2 w' v7 M$ R _ (if (not (setq ss (ssget "p")))
4 `+ f: p& g4 l/ S+ W (setq ss (entlast) fl2 T)) i) \7 {* x8 F" _2 \( R9 O* I
(if (= (sslength ss) st)% x' C, q# e( t# S
(princ "\n图形错误,不能生成面域!请检查图形! " )
* C& K1 ^6 @6 E0 ]( y3 g (setq ss (entlast) fl2 T)
4 P1 a( J0 m6 Z' ~0 H );end if
" R* {/ q1 e% X );end if
! v! e8 i# U2 e, ?9 z6 Z* g' ? );end progn
1 K1 ? A& N B1 S );end if, X" |& g+ i( M- t4 u
(if fl# o/ E& e* B( ~7 G6 U r4 R. {
(if (> st 1)9 p& N* z- \0 I( f+ l8 z0 p
(progn
, h$ s# e% B: S* b w$ ~ (command)
- ^6 y2 ]4 M8 l, R! j' U/ k (princ "\n选择面域太多,或有非面域实体! " )$ B4 P5 t; r% f
);end progn
. B' x) q) N. s* V (setq fl2 T)4 b7 V# Q. k4 v
);end if$ u% H5 n9 l; g* I
);end if& `. b3 {( H& Z- W( z" J
(if fl2
1 y9 T- Y. `# I2 [4 U (progn
- H1 W% T9 A5 v r6 ^7 X& r4 g% I (command "_area" "o" ss), P9 j1 V# W% r0 p
(setq bl (getstring "\n输入图形比例:"))
, t; [9 ^! e5 H (setq bl (atof bl))
+ ?+ M* X1 ^# W- @8 G3 { (setq hd (getstring "\n输入图形厚度:"))3 `/ H! @% E/ |' }$ f8 x
(setq hd (atof hd))% t% P7 f$ M" Q" n- c, G) B% f
(setq str "\n图形单位:mm 材料:钢 7850kg/m3")
2 ?1 n/ W3 Z- L (setq mj (getvar "AREA"))
" W: t! g0 o% z* V* q! T% s& D (progn
9 u( p2 G* F' o0 l6 G (setq wt (* mj bl bl hd 0.00000785))* T+ x2 r, }+ L& @$ P. O
(setq wt (rtos wt 2 2))$ t9 N* q3 a0 Q/ g
(setq wt (strcat "\n重量= " wt " kg "))$ i1 A5 k) r. @
(princ wt): b m0 I. _. @$ Y
);;end progn
% o9 s% m7 Z- b: N3 _, | ] );end progn; \5 i* y* ^) [% V) ^; D. q- V, H9 W3 @
);end if
; n5 b; w1 m8 c$ c0 S7 t);end defun |
|