|
有一个lsp自己写的,因为是刚刚入门所以基本上都是错误的,希望有人能帮我纠正& T8 E& p7 T9 s2 t& S- j: P
- i, D; G5 G# k# g0 g
(defun C:jx(/ ss len p1 p2 o1 o2 o3 o4), C, d8 r) w- s7 }# X4 \
(setq ss (ssget)) ;得到一批文字 5 F% A: Y% p, h+ ~
(setq len (sslength ss)) ;得到一共选择文字的数目1 I' a+ l1 ~& k% J: o7 S2 _
(setq a (entget ss) ;将ss的文字变成数组
' q6 C6 D& a+ f) o2 r ], ?, ^ n$ Z (setq o1 (+ (cdr (assoc 10 a))) ;将每个文字的x坐标赋值给o1
" Z7 l7 x4 G$ p `& K (setq o2 (* (o1 (car len)) 1.0));得到每个文字的x坐标的平均值赋值给o2
2 N% h* q6 U* o) H. \# q (setq o3 (+ (cdr (assoc 20 a)));将每个文字的y坐标赋值给o3" `7 g( {- y% d# u& }
(setq o4 (* (o3 (car len)) 1.0));得到每个文字的y坐标的平均值赋值给o4
/ F' H) O, R2 b$ D7 e! J; P! j2 ~- ^% T G& v* Z
if(progn
5 `4 J9 p# r8 U' K6 G* Q* ~ (cond ((=o1 (cdr (assoc 10 ss)) (setq p1 o3)(setq p2 (o2+1)));如果每个文字x坐标的平均值与每个文字相同 那么就得到y值 p1 和 p2
$ ?* }0 d$ o7 N, L(cond ((=o4 (cdr (assoc 20 ss)) (setq p1 (o1+1))(setq p2 o4)))));如果每个文字y坐标的平均值与每个文字相同 那么就得到x值 p1 和 p2
6 X5 _% P6 q. i% q& t# e# u" d (command "._mirror" ss "" p1 p2 "y")根据文字组中线镜像,并删除原有文字组
9 ?3 H9 o7 L% M8 u/ \' P4 A6 [: X )& I, R( `$ [5 }3 X/ U7 y3 f) J; }
), O4 v( ~ ]9 z" M) S/ T. w: C
(princ)* A/ x1 L8 m' b: P% e
)
6 N& u6 m( O$ J7 a$ F' s' R) A我知道里面很多都不对7 W* g) {3 h N9 ^1 t- d8 J
希望有人能帮我一下,先谢谢大家了
* e; B: y6 ^. Z; ?2 K! n目标是变成下图这样
" A B: j) G2 `2 {; L2 o选择其中一组数,变成右边的那组
3 H- |7 {3 M1 Z; G7 B |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
|