|
|
马上注册,结识高手,享用更多资源,轻松玩转三维网社区。
您需要 登录 才可以下载或查看,没有帐号?注册
x
lisp 可是使用後確有問題,會出現 "; 錯誤: no function definition: XDRX_ENTSEL"
9 a6 ~) @. G$ b2 G% j) T' g0 D(defun c:123 (/ get_all_lyr pick_lyr xdrx_redraw n lyrl sline rline % w+ a7 z. a4 C% T4 Z! r" L
# j& X6 C* Y: ?. n7 Tsarc rarc rcir ; y3 @+ U2 K9 R
/ V. }6 V+ Y+ L7 x9 r
)
- J" l0 j0 e, {1 W- R$ g W% C% F' Y
(defun get_all_lyr (/ lyr lyrl) ; 獲取所有層名 0 T" \6 s9 H0 }9 a/ Z F
9 M2 [ D, A" Y4 b
(xdrx_object_get "layer") / d' S2 |9 \0 D& }+ ?
" p& j* L" E/ t- |3 N
(while (setq lyr (xdrx_object_next))
2 @- H! T2 Z9 |! _1 Q, @6 U( g" ~) O) }+ M3 q* j$ i% s. }
(setq lyrl (cons lyr lyrl))
7 K. q5 m- V: z. f
, j6 C7 _: a! F L8 {& e) . E5 L6 W0 o: T) t# P9 ~$ [
/ V7 V5 o6 A& A(mapcar 6 z2 v& u/ v4 ^% z0 k) c
3 U7 d6 a6 k: C8 k% F
'car ~7 R9 i3 L, |
! t' \" z! z- Q4 }' e3 H: n, A
(reverse lyrl)
* X2 D l/ T. ?' l
4 ]) V# w8 ~7 |* z5 w- I4 J)
; N1 K \9 b% `; {
/ n: P* R8 l. Z0 {! a [3 V) 7 u8 f: f* \9 j% i, s
- e! E p q8 v( h V: n3 T5 M(defun xdrx_redraw (ss mode / e)
9 T) u! F1 l% C4 x' a3 K1 e$ z
- z2 P/ Y/ A O$ |; ~! \(xdrx_setsstodb ss 0) 2 q7 @# p8 H" l- O
4 S. g; z$ o- F( C(while (setq e (xdrx_getentdata 0)) 5 G& k6 C1 e) A1 w! }
9 b& t4 \7 |: ?% e(redraw e mode) ) x7 r7 f6 K" s& x& n. G) ~& e& G
- F3 U4 Q# G" G)
, V& k+ f/ Z0 p' R' k: D7 y( \
$ r% \9 r) J7 Y7 d! |, H ~)
7 n2 P, o7 H1 a2 d( n7 d% a z1 D% L+ @7 I$ H
(defun pick_lyr (msg / lyrl lyr e)
5 [* F/ }4 }4 G" L( f8 x" O
3 K+ z7 {- ?! J4 B) ?+ z(while (setq e (car (xdrx_entsel msg))) 0 `3 P% v% Y0 K$ y
- l' ~% R( z- D1 X+ q5 F2 ^; o9 W: E(xdrx_setenttodb e)
* t* E( \6 Y& L& @ F4 b# @; k# a2 e1 e$ a3 o! o( G
(setq lyr (xdrx_getentdxf 8)) 3 B7 O$ ^8 e( j) T8 e
: e2 O9 z/ f; Z+ w(if (not (member lyr lyrl)) & r! D6 p8 ?; Z4 F
6 e `* u4 | [8 D
(progn
2 K# ^- [, J# ~5 m$ S7 A/ k* g+ ~4 I4 P4 v2 P' y7 z0 k
(setq lxd lyr)
. p- \5 ~1 U: P V
: @2 k; x+ ~: Y; B, Z(setq lyrl (cons lyr lyrl)) ; (xdrx_redraw (ssget "x" (list & J3 l: s+ c3 F
7 ^/ o3 w- K, d0 q; (cons 8 lyr))) 3)
( o1 H" z* _" \5 W% ?) h2 R& k. \* @/ O, j6 I* A) f- l
)
; L* D* |) `- O Q$ o7 ^6 h8 l( D6 g" G- [9 H$ i* |
(progn 8 S* n, f4 N7 k
z' t& f3 ]- ]2 ~2 g' \4 D
(xdrx_system_beep 1000 1000)
% ^) E( A7 N6 V6 z0 N3 ?% G9 t" D; h6 z9 L5 L7 {# l \
(prompt (strcat "\n 層" lyr "已經選中,再選!")) 3 M$ H% X# m+ J+ e6 y$ J$ q6 O
" ?6 i" B6 v3 M) o4 ]% C4 z! D5 l
)
& d- H% Z0 f% f! I7 Y- ^% t
5 B. y! l+ W3 V, K# |5 S) - N( S: s2 I0 c8 v- a6 p$ W; `5 K
! `% O) l* W4 ?* [1 t9 f)
) m3 I, `, C) ]- e9 [2 R
4 j: @; m, x8 w% y, j R(reverse lyrl)
, O" D8 P7 G7 C
7 R& z" W, q* n7 u) i) a w)
4 f( [7 T" E% s$ `; [" c5 O8 i" B" Q, {$ N
(if (not (setq lyrl (pick_lyr "\n請點取要消重曲線(line,arc,circle)所在層的實體<所有層>")))
5 Q6 ?* {% T) X2 Y. O- r. y. A7 U2 O) [$ F5 v, I$ G
(setq lyrl (get_all_lyr))
! u# c) p% `$ J, }7 M( i" K& t- v, w O5 K8 h
)
% c2 ]5 Z6 L3 u% N2 k2 C. J2 H$ h: {* m: o, u+ C
(setq short_l 100) ; 超短線長度,可以修改該值 # L E; k, V1 v
# F" l5 @$ r/ n8 d
(foreach n lyrl * n) t E8 V V, w% d
: K2 A# o4 X- t' ]/ x8 r(if (setq ss (ssget "x" (list (cons 8 n) '(0 . "line,arc,circle")))) ; z' k: T. C* l4 ~
2 [0 g( l2 T3 H8 S4 n) x% r8 l: m
(progn
8 { |7 n+ ^9 G$ z$ ~+ I
/ b4 i) u; N( v3 J! }(prompt (strcat "\n處理" n "層中,稍後..."))
* i5 g/ w {; \# m0 \0 F o; o- g% l% g; [ m
(setq num (xdrx_curve_remove_dup ss short_l 10 100))
: Y. Z( G1 Q' R7 I; {+ p \- \$ @$ e6 {% n
(setq len (sslength ss)
. |: ?2 O4 a$ H ?3 F( D' ]0 Z
2 q, {* {& L. X8 O6 H5 r% K# Esline (cadar num) 7 ]+ E1 }$ X3 U% {' d# g
5 u3 p, a9 h" [1 k- X6 Q9 j3 x
rline (caar num) 2 \( o& s, ~7 U/ k* I6 b H3 }0 M
- Q9 Q/ K9 @) A+ U2 Q6 P* G& x
rarc (caadr num) ( {( N% d1 h! l/ h
' j* m3 ]! ]* C
sarc (cadadr num) / @6 q9 N9 G* x0 D
9 k! j. ]/ x% h! L
rcir (car (last num))
( F1 H0 e- M1 N0 k" r) D" q% b4 S) S1 K6 j2 d0 E) V
)
) `0 U; i; M9 F# v0 Q# m% { b& T: i3 e! f: j
(prompt (strcat "\n 搜索到 Line,Arc,Circle 共:" (itoa len)
V2 W/ w# O; x; P; h2 b5 u9 _5 ^) S6 F7 Q: l! i$ p1 D
"\n 刪除超短線: " (itoa sline) " 刪除重線: " . f" ^3 Q. J( g$ z
) n+ ^% M8 X% I z! L3 c" p! @(itoa rline) "\n 刪除超短弧: " (itoa sarc) $ V; X( B& M8 Q8 T. @
& S5 g# h+ s# s* \ L! }, }1 ~" 刪除重弧: " (itoa rarc) "\n 刪除重圓: "
. |* W; ?" ]+ }' K- }
' }: `0 `6 C% y8 E# {8 {: w5 D; L(itoa rcir) "\n 還剩: " (itoa (- len sline rline * }; m, Q& ]" o% S" L2 ^: b: B+ P
) T/ G9 d; d: Q) R% n, W. W- A
sarc rarc rcir 0 r0 D2 W/ K: N4 S, K ?
5 g! h; u$ E9 U0 c7 U7 X)
3 b$ M k$ d9 C6 [
, S6 }9 f5 ]$ R# J) $ q9 W( _+ M7 `7 s k4 D
5 H+ t# w' J% S/ a: N! O
) $ s$ l$ t! J# _7 C* ]
. T& G, f& h$ K H)
" `% P+ |, {- R8 J) R8 w- `8 ~& `/ p" `3 r+ `- z
(princ "\n") . f8 ~, Z. c) } Q) u
. b g3 Q9 T) P* U% B
) ) U' `0 c& W) F5 R
% p7 \1 H2 i9 k5 I) # E8 E. b [ a( ~7 h3 Z
9 O$ H1 `8 c" e. X" p+ ?) ( {# h+ p# ^, N7 p6 _1 C* ]2 T
, R* y: r7 |: t* K(princ)
3 `8 R1 z: y7 E* [. F. ?6 e! m0 o. R& ?
) |
|