|
有一个lsp自己写的,因为是刚刚入门所以基本上都是错误的,希望有人能帮我纠正1 q" b/ W: n. a+ [, X6 _
2 Y4 j; X @. O(defun C:jx(/ ss len p1 p2 o1 o2 o3 o4)
' J' E( \# o2 `( A: J (setq ss (ssget)) ;得到一批文字 2 V( B% p3 y3 C5 C, O7 r5 k5 G+ u
(setq len (sslength ss)) ;得到一共选择文字的数目
% {9 V ~& C) m; Z$ @3 E (setq a (entget ss) ;将ss的文字变成数组
2 v4 z# R; j$ @ (setq o1 (+ (cdr (assoc 10 a))) ;将每个文字的x坐标赋值给o17 `- h, k) \0 N! U( I
(setq o2 (* (o1 (car len)) 1.0));得到每个文字的x坐标的平均值赋值给o2
$ V% x W+ p' i& g# x3 g# t7 G9 `, [ (setq o3 (+ (cdr (assoc 20 a)));将每个文字的y坐标赋值给o3
; \ {, O4 P( p# Q" z6 J (setq o4 (* (o3 (car len)) 1.0));得到每个文字的y坐标的平均值赋值给o4% ]% O! W+ d' p8 x1 d4 ]5 v
4 Y( a: m, I3 [. K" N! H3 t! Eif(progn
# V( H/ b" a, B3 n (cond ((=o1 (cdr (assoc 10 ss)) (setq p1 o3)(setq p2 (o2+1)));如果每个文字x坐标的平均值与每个文字相同 那么就得到y值 p1 和 p2 2 @) d) l+ \( m& q' [3 p. @0 S8 N
(cond ((=o4 (cdr (assoc 20 ss)) (setq p1 (o1+1))(setq p2 o4)))));如果每个文字y坐标的平均值与每个文字相同 那么就得到x值 p1 和 p2
& d8 W, \2 t2 y1 w (command "._mirror" ss "" p1 p2 "y")根据文字组中线镜像,并删除原有文字组! f2 i& k1 X4 c
)+ z2 J- W& d4 t, _" _6 w
)
* w- \; F, m: e9 A+ e- s (princ)' \: r' z! z" o9 t& `% o$ `
), q) G3 j" p' y2 U# b
我知道里面很多都不对8 w7 |) q: Z F, Z ?! Q
希望有人能帮我一下,先谢谢大家了7 G5 E. Z$ _6 y2 A+ v$ z
目标是变成下图这样
) o& V7 S7 }! D/ P! n选择其中一组数,变成右边的那组
( V' d( S$ ?3 g! M, n |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
|