|
|
马上注册,结识高手,享用更多资源,轻松玩转三维网社区。
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 chenxuy2006 于 2010-4-17 21:53 编辑 ) O; [! ?1 N7 _- w$ s" a
- ~1 z' A$ F, l
我是搞钢结构设计的,写了个计算不规则钢板重量的autolisp程序,感觉很好用。如果把钢板密度改成别的,或用个变量输入,可以计算其他板材。(补充说明:单位是mm、kg)! |0 H3 l/ H* u5 g! H6 Q* l
0 w, x7 i) h: j5 N( t(defun C:gw(/ ss str bl hd a n mj wt fil sdata st sl fl fl2 sn)
+ u3 T l' _* c7 N" W9 O2 u5 O (princ "\n计算不规则钢板重量")
7 H$ F# L) @. n" V (princ "\n请选择用于生成面域的直线或面域")
5 E' @# N: W1 L+ Y! h G (setq ss (ssget))
, E, n' y& y: x2 E (setq st (sslength ss))
- `/ _) M2 ]' s; M0 K6 p( e# j (setq sl (- st 1))
( E9 d& D5 P m; {9 r (while (>= sl 0)
! a6 Y/ [" @6 ^; G" p' c) z" P (setq sn (ssname ss sl))
( D% w9 o# y$ \2 f+ g (setq sdata (entget sn))
s; F1 ]" w) u2 t+ X (if (= (cdr (assoc 0 sdata)) "REGION")(setq fl T))7 _8 w, }2 i, @: O$ m- r
(setq sl (- sl 1))
5 |. |5 |3 f5 U6 o );end while# z/ }: w" [) O& X% q
(if (not fl)+ G' I7 F0 E' `: F; I
(progn
* v" l1 }& O- b: S (command "region" ss "")
0 w7 w0 n d7 W3 T& W (if (not (setq ss (ssget "p")))
+ @: q$ Y8 s% y& C, S# t- v (setq ss (entlast) fl2 T)3 o" V' j, q% o( z& X ` P- D
(if (= (sslength ss) st)$ m: q& p0 Z1 G
(princ "\n图形错误,不能生成面域!请检查图形! " )7 @: G" A$ l& T- o# W1 N7 k( E& X
(setq ss (entlast) fl2 T)) P" w8 \0 e; h4 s' E
);end if
7 Z: Z2 S; D/ _ );end if/ Q" {0 A) t5 Q
);end progn, U* L$ X1 q0 r) Q
);end if0 S7 ?/ h% y* W n" F
(if fl
; ^! X0 K+ N$ c2 M (if (> st 1). b9 q# E8 |. I/ l' T( J# x
(progn
- I2 D% g6 q( g. t (command)
. W+ A2 q, J; W5 X (princ "\n选择面域太多,或有非面域实体! " )" H0 E$ M8 N' c$ x- Y
);end progn
0 P6 d; b1 u" [" R (setq fl2 T)6 A; u3 Y6 S+ _7 |# l+ k
);end if
% }8 X& j' s) z% b+ x" J- t; H );end if
7 G! g. w+ ? U9 g$ T" p' P% y% p" D (if fl2 , H; E6 t) d6 K) m- ?) M
(progn/ c9 i6 p4 y' J, x; }; t
(command "_area" "o" ss)! w0 r+ c' \& g# R- ?: _7 a
(setq bl (getstring "\n输入图形比例:"))
4 L* X Y1 z5 i4 C (setq bl (atof bl))
2 b9 s4 e& P8 F4 c5 I (setq hd (getstring "\n输入图形厚度:"))
2 g: y3 @' ]/ `" v: Q+ l/ [1 e" V" G (setq hd (atof hd))* d" i/ ~ b0 z/ x6 K0 x9 H
(setq str "\n图形单位:mm 材料:钢 7850kg/m3")
$ d9 j9 v- }3 y; h! ] (setq mj (getvar "AREA"))+ j5 e% c) h" J( i
(progn
( v8 n& ]6 s7 g; }2 t (setq wt (* mj bl bl hd 0.00000785))
* o' w0 v+ Q; Y2 k2 E7 e% ~# S (setq wt (rtos wt 2 2))* E, D' S( l @
(setq wt (strcat "\n重量= " wt " kg "))$ {' g. K8 k6 f+ j+ }& p0 S
(princ wt)
; Z) e( C4 p! A+ X, C" U# w );;end progn# @' `' B# a7 x. T+ B2 }1 B' T
);end progn7 G' F' c8 T. X( c+ r _: f. E. M
);end if
6 T8 P3 e/ x4 U);end defun |
|