本帖最后由 作者 于 2009-4-11 9:40:55 编辑
以前下载了一个本论坛一位高手的原程序如下: 在学习这个程序编制方法的过程中遇到一个问题不知如何处理,就是怎样控制在击右键时能正常退出来,并取消文字? 麻烦大家指点一下!谢谢! ;例2 拖拽一个文字。在文字左对齐的前提下,更新文字的插入点坐标可以使文字移动。 (defun c:cs(/ ENTD MOUSE PT) (command "text" (cadr (setq mouse (grread T 5 0))) 300 0 "拖拽测试") ;在当前鼠标位置生;成一个文字,这里grread函数返回的是(5 鼠标坐标值),因此我们用cadr函数把鼠标坐标值提取出;来做为文字插入点坐标 (command "zoom" "c" (cadr mouse) "2000") (setq entd (entget (entlast))) ;取得文字的图元资料 (while (/= (car (setq mouse (grread mouse 5 0))) 3) ;点击左键退出循环,即退出拖拽状态 (setq pt (cadr mouse)) ;取得鼠标当前位置坐标 (setq entd (subst (cons 10 pt) (assoc 10 entd) entd)) ;替换文字插入点坐标 (entmod entd) ;更新文字数据 ) (princ) ;静默退出 ) |