明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2960|回复: 21

[讨论] 有没有动态移动文字的办法?

[复制链接]
发表于 2013-12-29 14:14 | 显示全部楼层 |阅读模式
RT,求动态移动文字,不像m命令那样,不要选基点,文字处于正常状态(不是选中的虚化状态),随光标移动,支持正交等限制。
发表于 2013-12-29 15:48 | 显示全部楼层
这个想法高级,图上有许多文字时,如果不选择,怎么知道要移动哪个文字?
发表于 2013-12-29 17:58 | 显示全部楼层
楼上所说极是啊~~~~
发表于 2013-12-29 21:10 | 显示全部楼层
楼主说的或许是这个意思,移动不要手动选基点,直接取其插入点作为基点。然后支持左键确定位置,右击取消移动。
 楼主| 发表于 2013-12-30 09:47 | 显示全部楼层
林霄云 发表于 2013-12-29 21:10
楼主说的或许是这个意思,移动不要手动选基点,直接取其插入点作为基点。然后支持左键确定位置,右击取消移 ...

正是这个意思,不过esc取消移动就好了,右键也可以
发表于 2013-12-30 11:25 | 显示全部楼层
在这个论坛,首先要先学会搜索功能
发表于 2013-12-30 11:42 | 显示全部楼层
  1. (defun C:lxyd ( )
  2.   (while
  3.     (setq en (entsel "选择对象:"));选择一个对象、空选退出
  4.     (setq en_data (entget (car en)))
  5.     (setq ptz (cdr (assoc 10 en_data)))
  6.     (setq x (car ptz) y (cadr ptz))
  7.     (setq pt (list x y))
  8.     (command "move" en "" pt pause)
  9.   )
  10. )
发表于 2013-12-30 15:38 | 显示全部楼层
  1. (defun C:dv ();dynamic move
  2.   (while
  3.     (setq en (entsel "\n选择对象:"));选择一个对象、空选退出。
  4.     (setq ent (car en))
  5.     (setq en_data (entget ent))
  6.     (setq pt0 (cadr en))
  7.     (setq pt (list (car pt0)(cadr  pt0)));二维点。
  8.     (setq enttype (cdr (assoc 0 en_data)));取type进行判断
  9.     (if (or (= enttype "TEXT")
  10.       (= enttype "LINE");对线对象也可以
  11.       )
  12.         (command "move" en "" pt pause)
  13.       )
  14. );while
  15.   (princ)
  16. );defun
给一个完善一点的免基点输入的所谓,动态移动
发表于 2013-12-30 22:53 | 显示全部楼层
我来个简单的。command法。
  1. (defun c:mm (/ ss *error*_New)
  2.   (defun *error*_New (msg)
  3.     (if        *error*_Old
  4.       (setq *error* *error*_Old)
  5.     )
  6.     (if        cmd_old
  7.       (setvar "cmdecho" cmd_old)
  8.     )
  9.     (if        (wcmatch (strcase msg t) "*break,*cancel*,*exit*,*取消*")
  10.       (princ)
  11.     )
  12.     (setq cmd_old (getvar "cmdecho"))
  13.     (setvar "cmdecho" 0)
  14.     (command "undo" "e")
  15.     (if        cmd_old
  16.       (setvar "cmdecho" cmd_old)
  17.     )
  18.     (princ)
  19.   )
  20.   (setq *error*_Old *error*)
  21.   (setq *error* *error*_New)
  22.   (if (setq ss (ssget ":E:S"))
  23.     (progn
  24.       (setq cmd_old (getvar "cmdecho"))
  25.       (setvar "cmdecho" 0)
  26.       (command "undo" "be")
  27.       ;(command "_cutclip" ss "")
  28.       (command "_copyclip" ss "")
  29.       (princ "\n指定位置:")
  30.       (command "_pasteclip" pause)
  31.       (command "erase" ss "")
  32.       (command "undo" "e")
  33.       (if cmd_old
  34.         (setvar "cmdecho" cmd_old)
  35.       )
  36.       (if *error*_Old
  37.         (setq *error* *error*_Old)
  38.       )
  39.     )
  40.     (princ "\n未选中对象!")
  41.   )
  42.   (princ)
  43. )
发表于 2013-12-31 07:20 | 显示全部楼层
l楼上3个程序都是左键移动右键删除
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-5-19 22:26 , Processed in 0.275941 second(s), 31 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表