|
|
马上注册,结识高手,享用更多资源,轻松玩转三维网社区。
您需要 登录 才可以下载或查看,没有帐号?注册
x
lisp 可是使用後確有問題,會出現 "; 錯誤: no function definition: XDRX_ENTSEL"
9 ?8 i$ ?" _8 N' B8 O(defun c:123 (/ get_all_lyr pick_lyr xdrx_redraw n lyrl sline rline
r. h* p! ` g) c/ S6 t
9 V- F; w2 J& e; o" t6 s! o5 Isarc rarc rcir
: j U6 ?3 e& P/ `: u8 y( a6 t. f1 n* C9 v) t3 c
)
8 j2 c5 v2 @& |
- l. i' d: ?$ L3 R(defun get_all_lyr (/ lyr lyrl) ; 獲取所有層名 2 _" B/ a! C7 i) F
5 w- ~) A U. I. S, v(xdrx_object_get "layer")
: F8 I! t% y% R3 Z" \ A
) u! v) \ \9 C3 H# c. Z C+ ](while (setq lyr (xdrx_object_next)) ) D3 E( i1 X7 M G$ B
, h- ~1 O1 K( }6 T5 q(setq lyrl (cons lyr lyrl)) / ~0 m( [; }2 k1 M' [0 h
& z, Z* h2 W# t+ I: B- @! b: o)
: S% k6 s+ {$ g9 p. I6 p
, G _; r( l, Z(mapcar 1 J" `, S9 {& l+ J$ K! }+ O: p9 _0 \
; |! [& n; t7 E) q8 Q'car 0 i6 F% ^% `/ o" Q" n5 K' S2 M
0 K, P7 v9 ?0 m(reverse lyrl) # v9 P0 t6 a3 m. z5 J ^
; |* O" ? Q: p* C$ V8 b! n
) 6 s( S# G& l1 O: v0 e
6 i7 x3 B5 L9 N( A' o)
$ { N+ n9 p# w! W. M) o1 V. l/ H" p- d& y
(defun xdrx_redraw (ss mode / e)
0 y0 Z m/ d I4 C5 [. O# i6 W6 r0 k: ]8 ?7 u7 z& n
(xdrx_setsstodb ss 0) 9 L7 U2 [7 z5 p( F/ x
' w9 ?$ n/ @8 |6 U(while (setq e (xdrx_getentdata 0)) 0 R0 y; D5 p- K( D* F) d
: T% d. K7 b7 Z, {(redraw e mode) ' T3 Q) k2 ]* x. _* D# I
( i6 {6 m' ~6 z8 z5 x) ' X1 X* @ F, ?
$ K% _4 }6 _; s
)
/ c: m7 v# Y* N- S! z! c. m, k6 _* a$ _, ]
(defun pick_lyr (msg / lyrl lyr e) . u- W- C: E1 W" C
& y& Z8 g/ v# [9 n(while (setq e (car (xdrx_entsel msg))) % g0 ?1 i1 B$ r9 P+ P) s
0 i, p+ T% i U! q. ]: F! [5 p(xdrx_setenttodb e) 1 s) v% }7 ], P" o
9 L# I9 j7 W E(setq lyr (xdrx_getentdxf 8)) & R0 l4 Q0 o/ j, x- w0 |
; N' G6 z2 B, k1 M0 k' [(if (not (member lyr lyrl)) * H+ U2 V1 Z$ i0 u. T# ^% d6 S
" H7 I( U/ i8 I& W; i1 M3 ]1 T
(progn
9 D# }$ T- J+ K+ d$ K- q% i, j1 W8 Z3 p1 U( O$ }% M
(setq lxd lyr) * S% A2 V$ m; G: P0 o" w3 e
8 z5 Y* `8 H: y8 o- R(setq lyrl (cons lyr lyrl)) ; (xdrx_redraw (ssget "x" (list
- K. e6 Y3 i; G
! R: F2 G3 {! j1 w; (cons 8 lyr))) 3) 3 l8 L( N" k- ]( v0 y' j
4 U! f7 [$ C- R; j: w3 a! Z)
+ i* Y7 p3 d; p I
) N- v) o# u# J( Z7 V$ j& ~(progn
" F8 i4 j) @) Y. o K5 |4 h1 x" K) o* U0 y8 E& H
(xdrx_system_beep 1000 1000) $ G4 l/ k) f8 f) e9 A5 B+ Y
0 o: {3 ^9 a0 ^: {! F: J0 b
(prompt (strcat "\n 層" lyr "已經選中,再選!"))
4 C1 w8 ?, Q+ i$ K
; J, d8 X, \$ N3 D1 U$ n% K5 e' t) ) H+ N) R( Q1 T* A* g
: S( T/ f1 D5 P+ J' ?7 k* S })
* H5 s4 Q( H: b9 P- D0 L; @5 l- C* n8 n4 w3 E& n/ M* ~ Z0 W
) & q# U3 c/ n* {( A- d1 y
3 q0 z7 _) P+ W: k; ^; l g(reverse lyrl)
+ @9 g7 ~3 w7 @3 m: t) r; H
/ u8 [: ~. p; v/ a: v. _0 u* {) ! q* K7 W2 ^% N/ i( o
. U2 }7 [/ l! Z+ F(if (not (setq lyrl (pick_lyr "\n請點取要消重曲線(line,arc,circle)所在層的實體<所有層>"))) , {" J8 |3 `. g7 x1 w
# c; `; i# ^: b! z' f' f) p(setq lyrl (get_all_lyr))
/ ^9 [2 t4 u; G1 B# Y
2 b) p0 C( A0 k X* a( B) w0 C0 W# r' L1 e5 n
& ?- R) @! C+ y- H( Y
(setq short_l 100) ; 超短線長度,可以修改該值 / K- g. t A, R7 {
+ h3 G }* {/ m$ a) L$ u
(foreach n lyrl
$ H' u [" z N* O; N& Q
+ N8 J% E: e* D(if (setq ss (ssget "x" (list (cons 8 n) '(0 . "line,arc,circle")))) ( j/ n' H, z2 Y% a% v' Q
% G% S7 [, N. t) X; S4 w- S. d(progn
; _7 }. {+ l. O3 Y- W
- W e2 d7 W2 Z2 i& b' u! a' O(prompt (strcat "\n處理" n "層中,稍後...")) ) U8 W5 s3 R( Y- J( f3 w6 d0 h% z
0 x; p1 F" i% S7 U1 P(setq num (xdrx_curve_remove_dup ss short_l 10 100)) * j7 v4 |0 e# N) x+ i+ ~" u; B6 L! s
2 D: t+ ^% ]- o: @ j# |& ^(setq len (sslength ss) 3 m1 c/ ]0 @! g" a0 o- _- B
3 P; e" x' g2 w. psline (cadar num) ; h) h" M" y1 |/ ?' v; }
* ^* _$ C1 K8 h6 v/ i; I; n/ Lrline (caar num)
/ f$ y8 _, ?, k$ f( i
0 H# Z U+ M0 J! `rarc (caadr num) $ K% t- ^/ \' v
1 k' h; z* q1 J' D' Z- w
sarc (cadadr num)
6 i6 t; a! ?. E( H2 y3 B5 Y! }0 z% ^. [& A% [! m; l7 g
rcir (car (last num)) , F7 J: j$ l9 `3 n
# i3 K; q* H/ F)
. C) h! L4 O) H4 m, x
9 j) k2 i, x9 u(prompt (strcat "\n 搜索到 Line,Arc,Circle 共:" (itoa len)
; `4 p% g$ L' ~% W, P- h: F( D2 j0 X
"\n 刪除超短線: " (itoa sline) " 刪除重線: " X7 T/ n0 h2 e- y: m% f4 |
/ G. x; t# W# }$ i0 \. ?7 s" T3 I: V/ U% S
(itoa rline) "\n 刪除超短弧: " (itoa sarc) 6 H O, q) o- ^- A- e% K
4 B; F2 e" t* H! S) S k: G2 x
" 刪除重弧: " (itoa rarc) "\n 刪除重圓: " 9 r# C- r7 u3 ]% P+ V
7 J9 u; t( \1 c3 X' K; i) I9 {(itoa rcir) "\n 還剩: " (itoa (- len sline rline
' l/ N) U8 v0 E% D/ l0 A. P) I0 w# \! U: V6 ?9 b
sarc rarc rcir ! X8 C4 D4 ^2 i# \: `$ p, p) F
/ v& n; J" a+ @2 Y# R+ k( H7 o' \ l
) * |$ s" H P% V4 q
. j6 e' z8 ~/ j; I: }7 C; L, _; y4 D
)
+ k W5 u4 ]& O! F' n9 u% a1 ^: F- Q4 i! Y
) 5 J U E% s' M# r
& v3 W/ i; f- { x5 z' M4 ]; x
)
1 f% p4 S/ H" q* l6 C4 J8 @) w! a3 ] _, |, [- H+ e% W
(princ "\n")
* a [! S+ }, L/ U7 N6 j" J: B/ D3 e7 W1 _/ @0 G
)
* ^8 w; F. S9 w3 ~2 h1 h
. b6 S/ x* U6 l% S5 z)
8 U) Q1 u' B( _( D4 \5 k: o$ ^% }$ u. p; M6 Y9 d+ U
) . U9 ^3 |; W, q) D% K2 Z o
( g0 t b% h6 e9 ~' P" H, _2 L. T
(princ)
1 }/ K" ^( u T1 |) ~7 H
. F- F; `8 [4 P/ z. w9 d- y1 o) |
|