|
有一个lsp自己写的,因为是刚刚入门所以基本上都是错误的,希望有人能帮我纠正. v. Q1 ]2 [: n& Y8 s; A& P9 P
; l" H3 b% B+ X
(defun C:jx(/ ss len p1 p2 o1 o2 o3 o4)( o/ R9 v# s. j/ _/ B4 o, ^
(setq ss (ssget)) ;得到一批文字
; z8 P& l4 O4 N/ ^ (setq len (sslength ss)) ;得到一共选择文字的数目
0 h4 B/ s( {9 ?0 j: i+ f: Q (setq a (entget ss) ;将ss的文字变成数组
! C7 w5 u7 Z5 [/ | (setq o1 (+ (cdr (assoc 10 a))) ;将每个文字的x坐标赋值给o1; O* l% I2 \/ D' o0 S% o
(setq o2 (* (o1 (car len)) 1.0));得到每个文字的x坐标的平均值赋值给o2
4 K' K+ [. G- P2 b1 Q7 x, g1 { (setq o3 (+ (cdr (assoc 20 a)));将每个文字的y坐标赋值给o3 D! U2 Q2 v, S9 L
(setq o4 (* (o3 (car len)) 1.0));得到每个文字的y坐标的平均值赋值给o4
& \! g- g$ Q& w& A) K+ ^
7 z& Y5 c: O% O; V$ sif(progn
3 _: r7 T0 x- ~9 D$ X (cond ((=o1 (cdr (assoc 10 ss)) (setq p1 o3)(setq p2 (o2+1)));如果每个文字x坐标的平均值与每个文字相同 那么就得到y值 p1 和 p2 / h- ]. B& ^+ B& U' p
(cond ((=o4 (cdr (assoc 20 ss)) (setq p1 (o1+1))(setq p2 o4)))));如果每个文字y坐标的平均值与每个文字相同 那么就得到x值 p1 和 p2 - S' S3 } a6 u
(command "._mirror" ss "" p1 p2 "y")根据文字组中线镜像,并删除原有文字组
" W, t0 L! w t% w( u )! ]' i4 J4 E* S. g
)
" D6 V0 W8 v: Y3 f+ `8 C5 i C/ ` (princ)2 @8 c$ G' M" f# s# |5 H6 x0 K
)
) r3 v3 p$ v2 ?& y9 d, b% V% f, V1 o我知道里面很多都不对
6 V9 v, c6 z1 H) `) J希望有人能帮我一下,先谢谢大家了 F, H2 z- E5 y' ?/ q [) x o
目标是变成下图这样
# x' M p2 k" _$ V# g选择其中一组数,变成右边的那组
. q$ o# S, y3 s5 r+ L |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
|