文本移位,相对于文本平行方向或者垂直方向移动(支持旋转的单行和多行文字)
本帖最后由 tianying307 于 2019-3-11 08:24 编辑文本移位,相对于文本平行方向或者垂直方向移动(支持旋转的单行和多行文字)
(defun C:ot(/ ss temp pt0 i ent elist pt1 ang_h1 ang_h2 ang_h3)
(if *ot-dist(princ)(setq *ot-dist 10))
(if (setq ss(ssget '((0 . "*TEXT"))))
(progn
(if (setq temp(getdist(strcat"\n请输入距离<"(rtos *ot-dist)">")))
(setq *ot-dist temp)
)
(if (setq pt0(getpoint"\n请拾取一点"))
(progn
(command "undo" "be")
(setq i 0)
(repeat(sslength ss)
(setq ent (ssname ss i))
(setq elist (entget ent))
(setq pt1 (cdr(assoc 10 elist)))
(setq ang_h2(angle pt1 pt0))
(setq ang_h1 (cdr(assoc 50 elist)))
(setq ang_h3 (- ang_h2 ang_h1))
(cond
((and(< 0 ang_h3)(< ang_h3 pi))
(command "move" (ssadd ent) "" pt1 (polar pt1 (+ ang_h1 (/ pi 2)) *ot-dist))
)
((and(< pi ang_h3)(< ang_h3 (* 2 pi)))
(command "move" (ssadd ent) "" pt1 (polar pt1 (+ ang_h1 (* pi 1.5)) *ot-dist))
)
((and(< (- 0 (* 2 pi)) ang_h3)(< ang_h3 (- 0 (* 1 pi))))
(command "move" (ssadd ent) "" pt1 (polar pt1 (- ang_h1 (* pi 1.5)) *ot-dist))
)
((and(< (- 0 pi) ang_h3)(< ang_h3 0))
(command "move" (ssadd ent) "" pt1 (polar pt1 (- ang_h1 (/ pi 2)) *ot-dist))
)
(T (princ))
)
(setq i (1+ i))
)
(command "undo" "e")
)
(princ"\n未选取点")
)
)
(princ"\n未选择单行或多行文字")
)
)
楼主能不能分享下程序 工具可以分享一下吗?
Trouble12138 发表于 2022-12-3 23:23
工具可以分享一下吗?
不好意思啊,几年过去了,插件去哪都不知道了,当时写了几个小程序,发了出来,本来是想赚几个币玩玩的同时,把插件分享,后来很多人嫌简单还收币,什么的,所以插件都删除了,这个都是初期写的,都不难,看你注册很久了啊,你自己写写呗 tianying307 发表于 2022-12-4 13:07
不好意思啊,几年过去了,插件去哪都不知道了,当时写了几个小程序,发了出来,本来是想赚几个币玩玩的同 ...
谢谢回复。我主要用sw的,用cad的少。cad二次开发没有学过。在这个论坛主要也是遇到问题的时候,找一些插件能用一下的。还是谢谢你的回复了
页:
[1]