|
|
马上注册,结识高手,享用更多资源,轻松玩转三维网社区。
您需要 登录 才可以下载或查看,没有帐号?注册
x
lisp 可是使用後確有問題,會出現 "; 錯誤: no function definition: XDRX_ENTSEL"0 {4 c( ]* D3 X$ N7 a/ O& R+ e/ q7 j
(defun c:123 (/ get_all_lyr pick_lyr xdrx_redraw n lyrl sline rline
3 r7 C4 i/ l2 m) L5 B. M
( O" e8 z' c: U4 h( H4 v ]sarc rarc rcir & D3 Z0 T) G3 g
9 r5 t/ W: N: Z. s)
% m A8 Q% G5 U, h @$ F ^1 x5 v6 {9 C
(defun get_all_lyr (/ lyr lyrl) ; 獲取所有層名
# p8 M; `8 _$ m- M( u/ U: L4 K$ O& T1 @
(xdrx_object_get "layer") 0 B% `4 }- ?" t' S
5 ~5 i0 [9 q2 U
(while (setq lyr (xdrx_object_next))
4 c/ U9 }, _9 U4 _3 f. \& V9 o; s3 p( D6 F) Y
(setq lyrl (cons lyr lyrl)) / r" w5 D! l+ v R0 q
# t: o7 D( ]" v" b)
) Z( O; r0 O3 P) @
$ v/ R8 \) }& {. s- l(mapcar 7 r$ R, q# B- |6 p- ?
9 R* o5 |. F* |8 N4 S# t'car
8 Q$ C1 {" z* N- `/ n& T2 Q8 D, B. t/ B7 ?' T- A
(reverse lyrl) 5 A; {) P, y$ f; Q: Q" h
( z/ A8 ` C0 v8 j+ u0 H( M
) 6 T1 l& T) Q( n/ e0 }
( D! \3 ?+ B E/ l) - O4 b8 L* F7 Q& [" `
* ^6 Y) L1 t7 V) w(defun xdrx_redraw (ss mode / e)
" v$ U# S# a7 {
, S7 k% \0 F) K, J' Z; ^(xdrx_setsstodb ss 0)
) j6 N+ s, v! |3 X/ o; O4 _
3 G- h* h. f9 @% ]# C(while (setq e (xdrx_getentdata 0)) 2 ]2 K% G) C5 A! L1 R
) o0 d* y' V& a, a+ H5 G
(redraw e mode) / m/ u0 ?: k4 z9 ~! B
1 v& \* g+ Y" y2 a* [% M% })
+ [7 _& J6 F6 n, r/ V; G4 c' \/ v3 ?4 B: G1 }( V) L1 }3 v
) * c- q$ X( A/ _
6 \# @6 k" B6 I! ?- `* A" n0 j& m(defun pick_lyr (msg / lyrl lyr e) . K0 k: q6 M9 M( C! z( H& |
8 z5 z! D! C8 M. _9 }/ C4 Y(while (setq e (car (xdrx_entsel msg))) & C+ W) c2 S! d, k: x
1 s" k" l ~& n+ `: r(xdrx_setenttodb e)
4 |- U1 f2 d6 J6 n: ]% h
" c o, I8 V8 b S0 x! q(setq lyr (xdrx_getentdxf 8))
2 e0 D+ c, \8 j9 V+ r6 A+ w8 u1 |( {* N
(if (not (member lyr lyrl)) , e* n- l; A$ l) a6 Y' w
( W; f" M$ ~7 A0 r7 F) }& B5 Z4 A(progn / G# u/ X: d! t* B9 \, v
, e7 ~) J9 |0 Q& ]( N# K
(setq lxd lyr) 5 x! n3 S- c, h7 o- N) d8 d
* V+ ]/ `- i: n+ a(setq lyrl (cons lyr lyrl)) ; (xdrx_redraw (ssget "x" (list
, n8 G7 U9 g# v! B e- `8 n3 t4 P# q1 Z# ?0 `' \9 @
; (cons 8 lyr))) 3) ; C( Y8 Q$ N7 E- e
' v# a# o6 {$ { q+ k, H; K O
)
% V5 l4 l7 x( z( z9 i6 M: S& [8 V$ R" y
(progn
0 f$ P; }6 l' v: R8 d
7 b2 d% q9 ~; |+ } P6 d5 C: u4 i2 t(xdrx_system_beep 1000 1000)
# N: v, {5 i7 S d/ \/ O
. \, H: T2 q" N(prompt (strcat "\n 層" lyr "已經選中,再選!")) 1 ?5 u- m% w% L6 c0 B
6 C% ?2 t# f4 J* B) & Z ]0 Q( t4 _$ _5 _3 C4 I9 k
1 [" W$ c4 s% B7 u( o, J
) * T3 q( V* P. [$ N' X( n) a. J. {
6 J$ a- m+ P5 b8 x
) ' p# T0 _) P' {% r! h$ @: I
* j& I* L& @9 _% l# U9 o6 N; i" l
(reverse lyrl)
" P5 s5 n1 }0 f% b" q8 c2 p
! y& j- D2 q% Y+ l- m p* m) / W5 u0 \# q* i' H) x/ r- r& ?* f
3 Y, c9 t' X6 y8 ~6 b(if (not (setq lyrl (pick_lyr "\n請點取要消重曲線(line,arc,circle)所在層的實體<所有層>"))) ) @9 A4 K! n+ W+ _' T% r
& I$ T3 j5 C, ^$ | {
(setq lyrl (get_all_lyr))
2 ?7 G3 X4 r) ]3 ?
4 k5 H2 w! @! w)
7 a8 Z6 V2 _9 Y
8 W4 j, h' w+ X: b& S' [(setq short_l 100) ; 超短線長度,可以修改該值
( g! O% a) G; f+ \
( v) ^# ?9 A! }7 Z- V3 [" r; o0 o(foreach n lyrl
' T: Y% h7 l) h# u G }2 Y
3 |6 T( B) Q! S) O. _) M4 v7 h# t' |(if (setq ss (ssget "x" (list (cons 8 n) '(0 . "line,arc,circle"))))
' C1 p* Z( W" W. c: t# ]& t& ~. B
$ I+ W. T0 A9 K- Y6 W0 p(progn
! D7 C9 L* d% y3 ?$ l9 b, _4 n+ _: }, Z K& H
(prompt (strcat "\n處理" n "層中,稍後...")) $ X% V, [& n4 Z& g
4 V7 r0 _' v0 m; @) a+ w(setq num (xdrx_curve_remove_dup ss short_l 10 100)) % h! M3 U; u# o& {6 j* M
9 c6 k0 ]9 Z& Z7 M: I
(setq len (sslength ss) f1 N; L. x$ F$ `2 Y2 N
d* s \. Z0 Q- c5 R. z1 A! z$ Esline (cadar num)
- l+ L& \9 A% [5 ~8 A
$ V6 S/ \1 k4 \1 g0 T Xrline (caar num)
# c6 y. C& I) `
N) k0 R ]0 g* M( ?1 w) J! S' _, brarc (caadr num) ! {% S+ [4 T2 M! q6 }2 W& l1 A
' D9 U, p; b+ M' [: ]sarc (cadadr num)
! H% b# V: O, a9 e- [* E: k, y( P" y( @4 y4 T% u6 B8 M
rcir (car (last num)) 1 \( S! n: S# i/ ^5 t
4 F' p2 [" o. C. }
)
! y2 c- U9 m7 z$ T) ?1 V5 n8 U; ]" c3 W
(prompt (strcat "\n 搜索到 Line,Arc,Circle 共:" (itoa len)
0 X$ y2 _: C1 L4 W' _+ l' i9 G- Y( o; J. R1 s8 @9 e5 E
"\n 刪除超短線: " (itoa sline) " 刪除重線: "
* M# Q$ e& |0 L; ]9 s; n8 ]0 w5 O( J' q( q1 b: _
(itoa rline) "\n 刪除超短弧: " (itoa sarc) * T3 p7 ?2 h& t0 q
4 e& i) R, X8 e# c ^% l/ T
" 刪除重弧: " (itoa rarc) "\n 刪除重圓: "
3 G8 p: S P& }/ V k `6 ]& T- f& M
(itoa rcir) "\n 還剩: " (itoa (- len sline rline " M3 Y0 z% U+ U# n9 e! L
+ w# {( s# j/ L4 j
sarc rarc rcir ! R0 d8 T* x- L* i7 z. u8 s5 N& }: k
% M2 v2 E4 w8 D( j/ f. M b- Q" f7 p( f) 0 C4 l0 W! I- e1 h+ m. {
, R8 j% N0 S" H& j6 o* C)
0 W$ Z. L3 X: A* I! \1 N0 E4 W- P2 Z
) ! }" p7 }4 V8 x1 W
( E$ n% l; _$ J6 N# \: k8 l- ]/ U)
: g$ n" U9 s" `' Z* S$ o# p+ M0 u5 H
(princ "\n")
8 f2 z& U3 I. `. Y- y8 i2 u' q- o) |
)
8 a5 [+ l" H9 E5 r; S/ r; R2 e/ H3 x2 k6 X/ H; \* ?& r
) 6 @9 n+ r6 v+ g% m' s. c
: s# [; ~" @/ F* O! u1 i
) 5 n4 N: z1 a+ {$ I' }4 r9 H e9 Z9 z
# _! @" X: x- m(princ)
S z) e* O+ |: A. g T% m5 C9 a
) |
|