|
|
有一个lsp自己写的,因为是刚刚入门所以基本上都是错误的,希望有人能帮我纠正
' ~3 R* Z& m$ u' f8 W, ]0 T/ N' t( Z( b6 b
(defun C:jx(/ ss len p1 p2 o1 o2 o3 o4)
5 C; T2 F/ H, _- Y$ j (setq ss (ssget)) ;得到一批文字 % V0 }9 b o @/ ^( I0 _- {5 @% M2 P$ \
(setq len (sslength ss)) ;得到一共选择文字的数目
! w+ G* q! ]* u2 }4 ?7 W# @! c (setq a (entget ss) ;将ss的文字变成数组
. C5 i% X4 M9 K) y/ l4 N+ H m* f (setq o1 (+ (cdr (assoc 10 a))) ;将每个文字的x坐标赋值给o1
" w1 R/ m* v. Y: [" T- a (setq o2 (* (o1 (car len)) 1.0));得到每个文字的x坐标的平均值赋值给o2* Z+ {+ z- `* W! k9 R7 z
(setq o3 (+ (cdr (assoc 20 a)));将每个文字的y坐标赋值给o3
. g) P4 k5 T6 [+ D& \ (setq o4 (* (o3 (car len)) 1.0));得到每个文字的y坐标的平均值赋值给o4: y5 {+ Y' S$ G/ W" |* @. ` Q/ Q+ m
~2 c. l1 a9 H2 T4 ?+ X- Lif(progn
2 I: I8 z/ [+ J! z# {3 t# v (cond ((=o1 (cdr (assoc 10 ss)) (setq p1 o3)(setq p2 (o2+1)));如果每个文字x坐标的平均值与每个文字相同 那么就得到y值 p1 和 p2
4 g, c7 k3 x9 }0 a3 s(cond ((=o4 (cdr (assoc 20 ss)) (setq p1 (o1+1))(setq p2 o4)))));如果每个文字y坐标的平均值与每个文字相同 那么就得到x值 p1 和 p2 ) z7 t! j. z/ @% T7 j3 ]/ u
(command "._mirror" ss "" p1 p2 "y")根据文字组中线镜像,并删除原有文字组
/ b# B# \# T1 D& x6 c5 U )
" r% r) H r+ N )) y9 S" W, h! O% L2 {- V
(princ)" s; X5 T) X+ F$ Y& S1 K6 G+ z1 k
)9 d M# Q8 ^' i; F ~
我知道里面很多都不对
: ?, r5 G7 c' n4 g0 A% p, P2 [8 e希望有人能帮我一下,先谢谢大家了
* N$ U* [% p/ k. Q目标是变成下图这样
( H# E |& G0 L* n0 e! j, c, n选择其中一组数,变成右边的那组
J; E$ z% m: }2 K, J7 ^ |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
|