|
有一个lsp自己写的,因为是刚刚入门所以基本上都是错误的,希望有人能帮我纠正
) }# s- d9 g! k+ ]
# r9 e% Z/ r% h6 n" \# a; m(defun C:jx(/ ss len p1 p2 o1 o2 o3 o4)
4 K! X l0 I# `) \, V- O9 @ (setq ss (ssget)) ;得到一批文字 2 ^1 h7 H; T6 ?, E
(setq len (sslength ss)) ;得到一共选择文字的数目% i- N6 k3 q" N& A6 B2 `% s, c
(setq a (entget ss) ;将ss的文字变成数组0 `2 l8 [! I! _. }' B9 |
(setq o1 (+ (cdr (assoc 10 a))) ;将每个文字的x坐标赋值给o1
" L: Z: {2 J! [& _9 I L! ?$ p (setq o2 (* (o1 (car len)) 1.0));得到每个文字的x坐标的平均值赋值给o2
* X3 p2 f+ ^! ~( W (setq o3 (+ (cdr (assoc 20 a)));将每个文字的y坐标赋值给o3) O! P2 |4 l1 J6 ~$ b
(setq o4 (* (o3 (car len)) 1.0));得到每个文字的y坐标的平均值赋值给o44 E( g7 Y" w/ {- v, U0 g5 w9 W9 O& ]7 q
+ A4 S; v( e5 w7 p( O5 p% h pif(progn
3 _. R4 {+ l1 m! p (cond ((=o1 (cdr (assoc 10 ss)) (setq p1 o3)(setq p2 (o2+1)));如果每个文字x坐标的平均值与每个文字相同 那么就得到y值 p1 和 p2
( `. j- j3 r. \1 Y(cond ((=o4 (cdr (assoc 20 ss)) (setq p1 (o1+1))(setq p2 o4)))));如果每个文字y坐标的平均值与每个文字相同 那么就得到x值 p1 和 p2
+ w q3 c! X# q2 [* w, ~ R [ (command "._mirror" ss "" p1 p2 "y")根据文字组中线镜像,并删除原有文字组& N/ ?5 r1 U$ W: R% ^* j
) W& l: v) L* _! i( Z% O
)
" ]" O' N! W% d! O" @ { (princ)
. X/ S: h4 ? l) H/ e0 {)
) N$ h4 o' B9 q# _7 ~5 E我知道里面很多都不对5 T K& N* @& i4 R l
希望有人能帮我一下,先谢谢大家了5 Z5 R* F" T& q7 ~' D) L& t
目标是变成下图这样 9 U: f/ T; M1 p! i- H- j
选择其中一组数,变成右边的那组+ A M8 g6 t; @/ n% M
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
|