|
有一个lsp自己写的,因为是刚刚入门所以基本上都是错误的,希望有人能帮我纠正
* x( G& ~( R! Z, z f
4 s" k% M8 r- q/ E! x" S(defun C:jx(/ ss len p1 p2 o1 o2 o3 o4)% m0 B: B3 l/ x0 ~
(setq ss (ssget)) ;得到一批文字
( z* z7 U5 J( G5 A4 y& {3 | R (setq len (sslength ss)) ;得到一共选择文字的数目
& ?0 n# ?$ g5 |% ~; l. R/ R (setq a (entget ss) ;将ss的文字变成数组
# L7 R1 b# ^4 i8 y; l" ~3 W (setq o1 (+ (cdr (assoc 10 a))) ;将每个文字的x坐标赋值给o1
% j3 v; E% G, o# `& u3 m (setq o2 (* (o1 (car len)) 1.0));得到每个文字的x坐标的平均值赋值给o2% p" @& I' W' Q! S. [; k. O
(setq o3 (+ (cdr (assoc 20 a)));将每个文字的y坐标赋值给o3$ G5 y' b, t, O ?( j' I* k2 Z
(setq o4 (* (o3 (car len)) 1.0));得到每个文字的y坐标的平均值赋值给o4* I: ?( ~1 e E7 b9 ]7 Z7 H! T
& V9 _1 j S! e3 T5 ~6 Eif(progn+ k' x4 |0 K6 ]: [% S) o
(cond ((=o1 (cdr (assoc 10 ss)) (setq p1 o3)(setq p2 (o2+1)));如果每个文字x坐标的平均值与每个文字相同 那么就得到y值 p1 和 p2 * y8 ]: v% s0 W% e
(cond ((=o4 (cdr (assoc 20 ss)) (setq p1 (o1+1))(setq p2 o4)))));如果每个文字y坐标的平均值与每个文字相同 那么就得到x值 p1 和 p2 5 H$ l7 H4 O7 v$ y N h# \# J
(command "._mirror" ss "" p1 p2 "y")根据文字组中线镜像,并删除原有文字组( y: i {/ G1 ?6 P+ a
)
; \7 d5 e' e/ C- `; C3 t5 J )% Z; ~0 f' w, x+ _) O9 g. V
(princ)0 c) U! s( D- p0 a
)
5 g5 A+ X t2 U6 X$ m7 k o r我知道里面很多都不对
, |( k& E1 T$ z% L' Q希望有人能帮我一下,先谢谢大家了1 N1 v# r6 \& b) }1 E( |- _
目标是变成下图这样 6 x& j; f/ D! ?/ `
选择其中一组数,变成右边的那组* P* w. {2 R r# z. x. w
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
|