|
马上注册,结识高手,享用更多资源,轻松玩转三维网社区。
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 chenxuy2006 于 2010-4-17 21:53 编辑
- |) q9 k) Q( v2 v7 E# F) _6 n/ |0 i: L: s, M
我是搞钢结构设计的,写了个计算不规则钢板重量的autolisp程序,感觉很好用。如果把钢板密度改成别的,或用个变量输入,可以计算其他板材。(补充说明:单位是mm、kg)+ c! s, N& l4 [) _
. } U# b, O/ G% S4 Q
(defun C:gw(/ ss str bl hd a n mj wt fil sdata st sl fl fl2 sn)
; l2 x6 h* w- o; W4 ? (princ "\n计算不规则钢板重量")* j3 M2 S5 R' @$ b/ E* D7 Q
(princ "\n请选择用于生成面域的直线或面域")& {+ m4 p1 j, g7 v, Q
(setq ss (ssget)) q' g; u0 b2 r. R2 Q
(setq st (sslength ss))
; q, Z$ O0 m7 Z! y5 P% D (setq sl (- st 1))
& z2 I! V' r/ f (while (>= sl 0)
. L' e& j, Y+ v4 {9 L( G (setq sn (ssname ss sl))
6 l* T3 D I5 K/ T- p (setq sdata (entget sn))0 y8 y/ j x3 a
(if (= (cdr (assoc 0 sdata)) "REGION")(setq fl T))9 `0 P2 P$ O* w& ~, p: W
(setq sl (- sl 1))+ g2 V& j7 ^3 {8 I) q
);end while
1 l3 W: Y/ J5 I% a, k4 |$ _ (if (not fl)4 L `# c/ {5 `( l$ B }- E
(progn
2 o4 G, g J6 X, T( d; C& P6 p (command "region" ss "")
' p) f. f4 b ~. M- {! ]) T0 K" u1 M (if (not (setq ss (ssget "p")))# T- o- T( g' ^7 f; `9 T5 @; V
(setq ss (entlast) fl2 T)% f# T7 p `* p0 H2 x& `* P" W" E
(if (= (sslength ss) st)
. p0 J; @/ y+ ^& E/ G8 ` (princ "\n图形错误,不能生成面域!请检查图形! " )1 S7 f a, d3 a, u i% r8 a
(setq ss (entlast) fl2 T)
9 z9 T+ q& X! R3 _" M1 C );end if7 I; N, L7 k) C& x% C% v! R" i
);end if
0 ^6 U1 W ^4 W; ?3 A' s: `( E );end progn
, D& F) n" `; ?& E/ n! A );end if4 l4 |/ j- g6 D# i9 g8 j3 B
(if fl9 p* a+ q: o+ a4 B6 Q1 b+ \
(if (> st 1): z/ Q$ L& q" r5 _
(progn
* g: Q& J0 y; u (command)
' I. ^) Z$ [2 B. O, Z7 v( T F (princ "\n选择面域太多,或有非面域实体! " )
# C% G) q; s4 [' O, n, [; ?7 Q );end progn
) w E6 p8 V( f9 e! z! ^8 j2 ?. N (setq fl2 T). T$ T" a( z; c, I+ d( x! O$ Z
);end if6 A# \2 S1 n( W& ~+ l! H
);end if H7 z9 j+ A8 P
(if fl2
6 k! T' R7 k6 k$ T) E9 y (progn0 _: m' I, I$ N
(command "_area" "o" ss)
6 g! Y; w; E% \. y/ F$ j (setq bl (getstring "\n输入图形比例:"))
3 c8 Q& R. b6 d+ L (setq bl (atof bl))
) L. _" ?9 T8 _; D( X* _, a' M (setq hd (getstring "\n输入图形厚度:"))* n2 s0 N7 Y2 ^' n' @% j# S
(setq hd (atof hd))! j4 N: r8 Y' @2 F" c. |
(setq str "\n图形单位:mm 材料:钢 7850kg/m3")
9 y1 U4 o1 q4 E (setq mj (getvar "AREA"))8 N6 J1 r: Q: u: Y
(progn5 z; D, S: u, n+ f+ r1 {; R
(setq wt (* mj bl bl hd 0.00000785))
7 x1 L9 u: t& U- k (setq wt (rtos wt 2 2))
0 l$ x u! q* I( Q& a5 F( \8 h) K$ p (setq wt (strcat "\n重量= " wt " kg "))6 L! g Y/ y$ P0 L
(princ wt)
9 c& _; S% K: F$ [- ~ );;end progn
" G; A' U1 e( K$ Z- x );end progn" x; J+ |; Y$ r3 |, z" m- b, Y
);end if
. l/ F, E; Z! b P6 W);end defun |
|