|
|
马上注册,结识高手,享用更多资源,轻松玩转三维网社区。
您需要 登录 才可以下载或查看,没有帐号?注册
x
lisp 可是使用後確有問題,會出現 "; 錯誤: no function definition: XDRX_ENTSEL"( y. a/ _% L) d: n. R u
(defun c:123 (/ get_all_lyr pick_lyr xdrx_redraw n lyrl sline rline 3 V5 ?# U$ @& h; Q; X! [& J
) X( k4 v& q/ X% A G
sarc rarc rcir % Z& ? e; R6 E2 y+ W' O
) x' [9 N* l+ ]1 x3 N0 x# @6 y)
4 a- F* s3 Y6 j6 w8 J. c# r% j: B0 x0 d+ X4 u8 W6 \3 Z) g7 _
(defun get_all_lyr (/ lyr lyrl) ; 獲取所有層名
?! I8 w* l. A9 }" ?/ p
9 T, B5 z4 c1 c9 \) h" O( Z(xdrx_object_get "layer")
# d, M8 @# j! W x+ W1 K9 d z0 R' g: k3 N
(while (setq lyr (xdrx_object_next)) " c) A& l) n! f, D. f8 @# {; I
1 H J/ u9 ~. F/ y' l% x& r(setq lyrl (cons lyr lyrl))
* w& i2 F6 e8 h0 b z4 I' p! N# I2 O0 s8 q7 _
) ' h T) l$ f4 C4 X
J" w8 m& Y$ a+ p7 H
(mapcar
6 [6 b$ v; I8 G2 g4 ]' D( R7 `
* d0 f! `. ?' n3 j/ E7 g'car " W/ h5 ?. ^, ~7 |
# A# p! [ M: Z2 D* `
(reverse lyrl) ( X& [3 R. ^9 q$ d5 I1 w. N+ y
; H" ]& y7 V; R% N8 I)
$ j7 B9 |% g. m; Z% @+ ~7 L
3 g$ z* {# n- s) I0 T1 h( n) u- O) 5 `, |1 u# w m. d+ g# B
) @# w0 {2 {$ o' R
(defun xdrx_redraw (ss mode / e) ' y& i1 M+ K8 t# R
4 j6 m2 U& X3 d" }/ W) z
(xdrx_setsstodb ss 0) ( h3 O+ X1 q2 x- {# S+ ^
8 E1 [; S1 I" n' f- E, `" ^
(while (setq e (xdrx_getentdata 0)) h# ~0 V# {' L9 K% ^+ U' } a
) ]! R1 L g" e( c$ H$ n& [
(redraw e mode) 7 D. Z; D/ S( t) q5 w. U1 y
8 L1 o2 }7 r4 q% O, r) 4 j4 Z" x) [, m# J1 m' |
5 L: f) V/ ?% x w! G) + X. f! z/ ^ O A( v) c% |8 n
, y) m2 C( ]7 ~5 X9 e8 P(defun pick_lyr (msg / lyrl lyr e)
1 \+ _8 `( s4 K1 g$ C' c* r4 k( C
, d7 \8 `" m. K8 A! I# H' `6 H% i(while (setq e (car (xdrx_entsel msg))) $ y d+ w. j; Y1 w3 \/ {1 o
' h- L1 O5 p8 R- }
(xdrx_setenttodb e) % r* m) ]8 `, W2 ]& P8 _
* D" i. S, J0 f+ r(setq lyr (xdrx_getentdxf 8))
, C! r4 {3 g* i1 ^9 c K- [ m6 X {6 x- f
(if (not (member lyr lyrl))
( i. s! U3 }) a5 T% A
6 B3 u3 `+ ?2 S' Y, I(progn
5 H8 e7 l; q! n; u! @6 J# e" o, V; r) n2 e3 ]# e6 ~! p% M
(setq lxd lyr) ' ~' K/ r4 L. X9 K% }7 J
4 [9 R: w% ^; r6 ~0 R7 }
(setq lyrl (cons lyr lyrl)) ; (xdrx_redraw (ssget "x" (list $ r$ Y- L6 f+ n$ v5 T8 q) Z
. J2 {8 Y. ^8 C( m4 l; (cons 8 lyr))) 3) 1 g4 d" W% a7 X
1 Y6 C+ ~ Q& r% `1 ~ W
) & N/ `5 `: x( x9 |
# Y0 V( {& y9 M* [2 |, V
(progn
3 y6 L" b- n4 Y9 R5 k
0 t8 L- H+ L$ {4 V+ n. F! K8 b(xdrx_system_beep 1000 1000)
) C% ]) O% V9 M! r" S Q4 g8 F# ?4 `! _- w$ r5 S9 F- z
(prompt (strcat "\n 層" lyr "已經選中,再選!")) 4 M! \ e1 Y+ `- a7 H7 M- ?
7 g P$ J9 R1 y7 z4 D4 g- m! R. c)
* w) H6 P+ y8 Y+ E7 ]5 h0 z
8 k+ P5 z: _! e2 t: T5 s: ^5 \) ) \* K" `- v' U/ F# F9 m) h
7 |8 r1 }* X- B9 b% w, ~) 4 D2 W8 j* A* q( A( z
. J: W8 S2 m" {/ _, j( U1 f/ ]& J
(reverse lyrl) 2 V# {( [/ J. l- Y7 A; T
3 P+ f! o1 ?: ]- k, X" @
) 8 R r( C0 R) g) d6 p7 Y
3 {- x9 t% r4 i) t5 A1 Q# @
(if (not (setq lyrl (pick_lyr "\n請點取要消重曲線(line,arc,circle)所在層的實體<所有層>"))) 2 C/ I6 g& ~6 d: j1 f
" T" {. ]$ O( R4 d) u. J(setq lyrl (get_all_lyr))
n% I& v. P1 |) B I# @. U
# `3 q: n% A6 L; F ?$ T/ B) Y)
% G# J" e* h6 O" v0 y `
! r6 i" W# y5 @% E(setq short_l 100) ; 超短線長度,可以修改該值
2 i; z+ M( Y/ z- Z z' a, C1 X. [6 C% Y5 t
(foreach n lyrl + |$ v0 p1 t) S/ K
4 F% w' Z/ p' I(if (setq ss (ssget "x" (list (cons 8 n) '(0 . "line,arc,circle")))) + K h1 ~) q8 a! H$ k5 w$ c
1 @( Z+ i, ~' p5 N: d9 w4 c$ c- ~(progn . ?! u4 p y8 U# G* _7 _2 B* t
# J' n5 D0 F, e4 r8 ?! ^- I
(prompt (strcat "\n處理" n "層中,稍後..."))
" Z9 b) a" _% a6 q# P( J; v4 F+ j. R; g ?# J& z2 i* I' A
(setq num (xdrx_curve_remove_dup ss short_l 10 100))
) D# ?. p5 o/ K: c" A
/ }* ]5 L# |6 K5 T4 @0 Y(setq len (sslength ss)
2 B( P1 H& x0 f+ G9 p. c# I9 U
1 Q8 _; W' \" v! Asline (cadar num) * y1 I( f, r8 n& Q5 |
& q" \# e% [$ Q& ?, F+ \
rline (caar num)
! Q2 z2 H, ~4 |* h2 j, d0 R0 n& N+ Z* j4 n
rarc (caadr num) |% r* w5 q4 b) S8 y) y* _) B6 X
& Q- a$ A3 M( @, f3 |4 H( {sarc (cadadr num) { \. z* y- R/ \/ R) L
. p! Z* h& C! l4 ]! Q8 y7 Urcir (car (last num)) ( x o6 f/ P: e7 |2 r3 K7 B7 z
7 }' d# [$ x1 C3 c- v
) ( H2 _1 i' f3 d2 u
, y! z4 C" i1 s5 s* v, @% W- O4 h
(prompt (strcat "\n 搜索到 Line,Arc,Circle 共:" (itoa len)
; T9 E% _' @( k# l) s' A: }& s4 M1 {8 H
9 i. m# q* j1 n& i8 M"\n 刪除超短線: " (itoa sline) " 刪除重線: " . r+ `; ]4 H" Y% x+ R
2 j! A2 d/ B6 h(itoa rline) "\n 刪除超短弧: " (itoa sarc) 0 m* j; l% u3 v0 r
4 b* i' F8 c& r" 刪除重弧: " (itoa rarc) "\n 刪除重圓: " $ h# D* s2 ]) J. C- ]! ^ B- t! s
4 ~2 N0 \7 ]7 k$ F1 h+ \(itoa rcir) "\n 還剩: " (itoa (- len sline rline
4 c- N7 j: H( A) g4 }! g% k5 [& u; `7 m! E6 x4 `8 O& A
sarc rarc rcir
+ \; z: M& N: ^* [) t# F) r! ?5 I2 q& x% m. p1 f
)
' U8 q; a# y$ N: x
* [ {/ N: D4 x: u5 v)
2 B3 g5 j" V4 {! g4 [! e0 V( v# o- m; O8 y
) 2 ]* \' n. L7 y: G4 j
+ f& {% i. g6 i5 F* E; e5 d)
' T. i, |& r1 z4 d0 I9 W
% |" l) H# p! z5 a& L) l(princ "\n") \# H; T- X% s. s
% [6 {3 _+ M$ s9 R0 l8 o
) ! s+ l, k p/ g3 g5 w! K' Z
& S' s! E( m8 G) 2 r0 a% n7 p* e+ W/ M
9 L* _9 {% p3 x5 V5 n9 X" Z
) % j6 d4 f4 J$ Z" \
7 o# ^* ^1 S8 B(princ) / t8 x/ |' n" ?
8 B( e9 H* w2 t
) |
|