(defun c:test (/ nn pt1 hd pt2)
(setvar "cmdecho" 0)
(setq pt1 (getpoint "\n请输入文字的第一对齐点: "))
(setq nn (entmakex (list (cons 0 "TEXT") (cons 1 "文字") (cons 40 3.5)(cons 41 1) (cons 10 pt1) (cons 50 (setq hd (* 0.25 pi))) (cons 7 "standard") (cons 8 "0"))))
(repeat 100
(setq pt2 (polar pt1 hd 1.0));计算下个坐标点
(command "delay" 10);延时执行
(entmod (subst (cons 10 pt2) (cons 10 pt1) (entget nn)));修改文字坐标点
;(command "REGEN")
(setq pt1 pt2)
)
(setvar "cmdecho" 1)
(princ)
)
写成命令就要加(command "REGEN"),单独执行代码就不用,还没明白为什么。
而且如果加入(command "REGEN"), (command "delay" 10)都可以去掉不用。
本帖最后由 namezg 于 2018-8-9 11:59 编辑
;用move命令可实现
(defun c:test (/ nn pt1 hd pt2)
(setvar "cmdecho" 0)
(setq nn (entmakex (list (cons 0 "TEXT") (cons 1 "文字") (cons 40 3.5)(cons 41 1) (cons 10 (setq pt1 (getpoint "\n请输入文字的第一对齐点: "))) (cons 50 (setq hd (* 0.25 pi))) (cons 7 "standard") (cons 8 "0"))))
(repeat 100
(setq pt2 (polar pt1 hd 1.0));计算下个坐标点
(command "delay" 10);延时执行
(command "move" nn "" "non" pt1 "non" pt2)
(setq pt1 pt2)
)
(setvar "cmdecho" 1)
(princ)
) namezg 发表于 2018-8-9 11:36
;用move命令可实现
(defun c:test (/ nn pt1 hd pt2)
(setvar "cmdecho" 0)
谢谢,按你的方法已实现想要的效果。:handshake 感谢!!! “我的意思是已有一个文字和一个新坐标点,将文字挪到新坐标点,有一个可视化的挪动效果,而不是文字瞬间消失和生成,有个文字挪动的轨迹,纯粹就是想好看点”
没意义,浪费时间。。。
既然确定了最终坐标点,就移动过去,然后就能做下一步工作了。
页:
1
[2]