|
|
马上注册,结识高手,享用更多资源,轻松玩转三维网社区。
您需要 登录 才可以下载或查看,没有帐号?注册
x
lisp 可是使用後確有問題,會出現 "; 錯誤: no function definition: XDRX_ENTSEL"9 D, B" ^* r& \ \0 h! h
(defun c:123 (/ get_all_lyr pick_lyr xdrx_redraw n lyrl sline rline c+ u9 I; ?( N* A8 | N% A' P
% i) A- B1 I6 {
sarc rarc rcir
) Y- ?5 H& n/ L! g$ n9 }5 |/ l5 w; ]2 W' x* W' T8 C
)
; {" S2 H! V) G& o( k5 o8 ?- j
- _2 R7 }& q' D' R" w(defun get_all_lyr (/ lyr lyrl) ; 獲取所有層名 - B0 H+ B8 t; g& ~
2 c, P8 ~5 X2 r- ~1 I(xdrx_object_get "layer")
- G* @* `* m; g+ a/ ^
8 w1 [$ A1 i0 g+ ?(while (setq lyr (xdrx_object_next)) " Y7 ^+ t( q/ _" c1 q
, s- q3 I& V1 {* d( l: P, z(setq lyrl (cons lyr lyrl))
1 ^. e' O/ l+ U+ S. O% A/ H! y
5 k# _8 V1 ^4 Y: z4 K)
* `& r% L' p" a6 I3 Q' ^( p" z7 q; ^7 V3 F( [
(mapcar % T& A: j$ Q- T0 d' R
8 N# Y D' ~3 {2 U'car 7 p" k5 Q3 W/ k4 B) o9 o8 z. ?
/ j I, k1 O6 F, C% z F
(reverse lyrl)
& k% n/ b3 m. D4 [# a1 [! H4 s* s( k; a
) . @) L% ^ r& R# @' V) i
5 M$ w8 f. p5 `3 {; b)
5 O( K% K: H3 ]" n. y, H
( [$ q, A$ ]/ E5 [/ H9 Q+ K(defun xdrx_redraw (ss mode / e) 9 R9 b: y6 _2 Y5 F7 X, R$ k
4 U1 g2 V: N* V# w6 B(xdrx_setsstodb ss 0)
' ` F/ c+ x c6 u( o
- W2 { P- Z i' n) P; U6 n# u(while (setq e (xdrx_getentdata 0))
8 w& i+ Q. d1 W' Q2 |- ?( V0 s0 O, O2 S
(redraw e mode) & a/ R) S- R, V
- S* j, n+ v/ t0 C4 b8 F
) # E( P& B2 _( `6 n/ N" K
6 |# i" G; Z3 v9 J) _' x1 l- K
)
6 u5 e3 h: h/ T: }$ g2 i# b4 [
" m. p+ J/ W8 u6 b) a(defun pick_lyr (msg / lyrl lyr e)
9 E' a, {* W6 Y( M& g- I+ {
- j3 N, R- l1 ~" a) v4 R(while (setq e (car (xdrx_entsel msg))) " ~) k0 |) r3 Q% h9 I9 X5 B
9 }# ~2 I1 v' d- L; _& K
(xdrx_setenttodb e) 6 N3 v. N; P G
3 _; G9 d' N& U, z @
(setq lyr (xdrx_getentdxf 8)) & l. N( X- B3 y) |
# `" G8 q0 E1 `4 t3 J(if (not (member lyr lyrl))
* V7 F7 E9 w! R3 N
1 | n! v7 i+ R# ~3 c% I(progn
$ E s, d$ e' N) Y9 B
' A3 L3 H, O- e- a1 K(setq lxd lyr) # H- \$ h' ^) m& r. L- a
# s7 u M+ \ E. c(setq lyrl (cons lyr lyrl)) ; (xdrx_redraw (ssget "x" (list
2 I8 L3 B; q# ~" ]6 O
4 R! J6 I+ Z7 `: k: Q" h, S5 F; (cons 8 lyr))) 3) }& e6 |4 I7 y- G; m
1 H; H7 r ~( O( o)
! ~( o1 \2 @9 y' j M$ ^3 t
) r2 D* _0 y' ?4 O. K(progn
8 r0 u- B/ R& j; l( E
# S0 `. v0 g# p8 c(xdrx_system_beep 1000 1000)
) O ?9 v$ k; O; L" h) o1 p' T7 y6 h [: {
(prompt (strcat "\n 層" lyr "已經選中,再選!")) # l; h% }- J/ A2 c& A. e
' c" v. F# f; m
)
3 @2 V6 i, ~# T. M, V# n0 _) T0 R- ?
) - s) D I s. H( }. M
c8 D0 X% O8 r+ s9 s% J)
0 D2 }) p9 D2 D& Y+ y% g
7 S6 l* j4 N0 w0 G; L(reverse lyrl)
# o1 [$ u. p# Q8 r9 s$ G3 J7 P% i1 F7 [
)
& X4 I6 P5 W' b0 N! c& b) G" X
, m7 X+ i4 L, Z3 [/ j7 r2 M(if (not (setq lyrl (pick_lyr "\n請點取要消重曲線(line,arc,circle)所在層的實體<所有層>")))
7 |5 i/ g9 S- Q: J1 Y0 Y
# Y9 |) R Q! ~8 k(setq lyrl (get_all_lyr)) . j" a: T; G+ x/ g8 \
7 ^6 `# o+ x: P* {6 l3 G) D)
* E7 \1 B" g" y& G) ^: H' I W7 c8 S1 E
(setq short_l 100) ; 超短線長度,可以修改該值
0 I& y8 b! |3 r1 @8 u# z6 M5 I: Y
( i, l: d) W; Z5 o+ Q(foreach n lyrl
( }1 ]3 ~, I$ C- @: G$ Q9 a/ T3 P
8 V5 V2 V( F- U; q# v! i. F(if (setq ss (ssget "x" (list (cons 8 n) '(0 . "line,arc,circle"))))
2 ~; B7 c# z/ D: s# I
6 W% U$ D+ g' j( T(progn
5 l' ~4 E+ O9 D W- r9 r- k* H! X6 N0 I5 `. B& {
(prompt (strcat "\n處理" n "層中,稍後...")) ' y) I6 F" e: B. v8 I/ Q- X
) @, \, u1 R4 ^2 O3 L) K(setq num (xdrx_curve_remove_dup ss short_l 10 100))
/ N+ M$ k' z" N& l( f& c' f6 y: g9 n+ K# l
(setq len (sslength ss) - C: ]) r8 e. a( K: T
5 u1 J$ Y: Z0 ]$ ssline (cadar num) " O4 m# |$ b2 V6 A9 R& C
8 @0 D, W" i q- b% o f# Xrline (caar num) 9 o' h! }: p: U2 s4 g6 @# y1 s
2 ?0 b( m8 Z3 W( J: K# q# u, Q9 hrarc (caadr num)
& k ~* C. C1 p* d
$ p, y% i, p c1 `) rsarc (cadadr num)
" P" l3 P+ e0 g5 I" `) u# \% u4 b O% O! v$ u3 E+ C
rcir (car (last num))
2 i6 }* ?! \4 d6 I$ l3 \4 S' @) T/ q0 J9 R
) ; D7 }4 n( u. U1 U8 r
1 w% ?6 z, J- g+ |% [- L y(prompt (strcat "\n 搜索到 Line,Arc,Circle 共:" (itoa len)
5 K; m4 G# P: y9 O( }+ R6 i& K4 b
"\n 刪除超短線: " (itoa sline) " 刪除重線: "
1 W3 C. `9 j, I. [, m% a& f; ^0 N& d8 c, u/ T) x2 k$ R& {
(itoa rline) "\n 刪除超短弧: " (itoa sarc)
! E8 y* a% b4 \' h. k, J# Y3 R3 {/ K& \" y2 f J
" 刪除重弧: " (itoa rarc) "\n 刪除重圓: "
" M; E: o4 W/ ]7 |' d: m3 H" ~+ q0 F
(itoa rcir) "\n 還剩: " (itoa (- len sline rline * s P" [- H) c C$ B2 g: m y/ c4 Y
2 z5 v; m$ B! U v
sarc rarc rcir g- F7 }( y5 u' \8 ~! q9 T
- z1 @& C9 _/ ]. h/ n
) 2 n% @2 H: M2 K5 j9 \, a+ J% O
8 @: o+ J9 e4 B" {- W5 X) 9 G. C7 H6 [$ F7 H2 F9 l
! D% G& n6 `+ i6 m$ H, [" T
)
; _9 d3 t2 w- `
+ Y2 }2 p) E8 H6 _: n$ I4 b6 h6 G) . @9 [! | H8 y) _# q
% z6 X9 y C, @$ g# ~(princ "\n")
g6 i4 A7 {8 c8 b7 I- {0 K, ?' [0 y2 [0 `7 B& A
)
. ]( Q( R, n' H" {/ ^2 ~! @) C" P; G* \9 n
)
Y' o2 `4 _- P$ M
) \( v. a! l* A0 G% L+ a& b$ S)
7 D* r& t3 I4 D0 \7 O4 ^# B/ I" [4 ~5 i, s" U5 j
(princ)
2 D% v2 M% l8 C% A8 f. g! X9 r7 m7 S
) |
|