一个非常菜的lsp菜鸟希望得到帮助,诚心感谢
有一个lsp自己写的,因为是刚刚入门所以基本上都是错误的,希望有人能帮我纠正(defun C:jx(/ ss len p1 p2 o1 o2 o3 o4)
(setq ss (ssget)) ;得到一批文字
(setq len (sslength ss)) ;得到一共选择文字的数目
(setq a (entget ss) ;将ss的文字变成数组
(setq o1 (+ (cdr (assoc 10 a))) ;将每个文字的x坐标赋值给o1
(setq o2 (* (o1 (car len)) 1.0));得到每个文字的x坐标的平均值赋值给o2
(setq o3 (+ (cdr (assoc 20 a)));将每个文字的y坐标赋值给o3
(setq o4 (* (o3 (car len)) 1.0));得到每个文字的y坐标的平均值赋值给o4
if(progn
(cond ((=o1 (cdr (assoc 10 ss))(setq p1 o3)(setq p2 (o2+1)));如果每个文字x坐标的平均值与每个文字相同 那么就得到y值 p1 和 p2
(cond ((=o4 (cdr (assoc 20 ss))(setq p1 (o1+1))(setq p2 o4)))));如果每个文字y坐标的平均值与每个文字相同 那么就得到x值 p1 和 p2
(command "._mirror" ss "" p1 p2 "y")根据文字组中线镜像,并删除原有文字组
)
)
(princ)
)
我知道里面很多都不对
希望有人能帮我一下,先谢谢大家了
目标是变成下图这样
选择其中一组数,变成右边的那组
自己修改了一下
defun C:jx(/ ss len a o1 o2 o3 o4 p1 p2);定义参数
(setq ss (ssget));选取文本
(setq ss (ssadd));选取文本
(setq len (sslength ss));读取文本长度
(setq a (entget ss));将文本变成一个合集
(setq o1 (+ (cadr (assoc 10 a))));得到文本插入点x坐标的和
(setq o2 (/ (o1 len)));求的x坐标的平均值
(setq o3 (+ (cadr (assoc 20 a))));得到文本插入点y标的和
(setq o4 (/ (o3 len))))));求的y标的平均值
if(=1 1)(progn
(cond ((=(assoc 10 ss) o2)((setq p1 polar(o1,o3)) (setq p2 polar(o1,(+(o3 1))))如果x坐标相同,则按照Y的平均值的那条线镜像
(cond ((=(assoc 2 ss) o4)((setq p1 polar((+(o2 1),o3)) (setq p2 polar(o2,o3)))如果y标相同,则按照x平均值的那条线镜像
(command "._mirror" ss "" p1 p2 "y")
(princ) 自己顶,来个人帮个忙啊 自己顶,来个人帮个忙啊 楼主是菜鸟,我是什么都不懂啊 我是菜鸟,不能自己发帖,来楼主处借个地方。
求助:怎样在多段线上找到距离起点指定距离的点,用lsp实现,即:输入多段线及指定距离,返回所求点的坐标。
望各位帮个忙,谢谢!
页:
[1]