|
有一个lsp自己写的,因为是刚刚入门所以基本上都是错误的,希望有人能帮我纠正
7 N# j6 h* r8 ~0 i" S5 x6 _( B
, n% B+ _& h! X. ?! ]: E' k(defun C:jx(/ ss len p1 p2 o1 o2 o3 o4)
' Y6 r+ F4 b4 [, b9 i0 k (setq ss (ssget)) ;得到一批文字
" f+ M+ `4 k2 l: K (setq len (sslength ss)) ;得到一共选择文字的数目
, S1 o( i K K* w8 T (setq a (entget ss) ;将ss的文字变成数组( O b1 W: N0 {1 }
(setq o1 (+ (cdr (assoc 10 a))) ;将每个文字的x坐标赋值给o1
: p) g6 z3 M z' [" u$ x$ N; _ (setq o2 (* (o1 (car len)) 1.0));得到每个文字的x坐标的平均值赋值给o2
: P& v4 d- D4 C* Y4 ?5 A (setq o3 (+ (cdr (assoc 20 a)));将每个文字的y坐标赋值给o3# ~2 S' O. ^5 c' |; `9 F
(setq o4 (* (o3 (car len)) 1.0));得到每个文字的y坐标的平均值赋值给o4
7 l( t, l2 O' W& l& \! W: H8 n) A; N9 n/ N& N: O
if(progn
1 V# z( X# M# D/ @ (cond ((=o1 (cdr (assoc 10 ss)) (setq p1 o3)(setq p2 (o2+1)));如果每个文字x坐标的平均值与每个文字相同 那么就得到y值 p1 和 p2
; L9 k4 B: Z" s }; z3 x r- {: b0 e8 K(cond ((=o4 (cdr (assoc 20 ss)) (setq p1 (o1+1))(setq p2 o4)))));如果每个文字y坐标的平均值与每个文字相同 那么就得到x值 p1 和 p2
1 R7 [( p q5 w1 X# ` (command "._mirror" ss "" p1 p2 "y")根据文字组中线镜像,并删除原有文字组( D$ Q8 m, M. E) ]8 v% v
)
* m/ R* L! B/ W( G0 n/ `, L+ ?" k )
/ q! d1 x" q; G* j$ I8 D8 q1 I (princ)1 N% } H' O1 Z- X6 @
)0 F8 p. F& w: _6 R2 i; @# W' Q
我知道里面很多都不对
% ^) L; n. k3 B' ]$ _希望有人能帮我一下,先谢谢大家了$ K, e3 l; g! h4 }
目标是变成下图这样 3 p7 {: f" T+ b" T
选择其中一组数,变成右边的那组
, e; v; H, q2 r9 ^$ g: U |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
|