autolisp 怎么让生成的图形或者文字随着鼠标移动 然后点击后才固定到屏幕上呢?

 我来答
朱06CAD
2014-08-02 · 知道合伙人软件行家
朱06CAD
知道合伙人软件行家
采纳数:4172 获赞数:18068
高中,熟悉AutoCAD。会autolisp及VBA程序。

向TA提问 私信TA
展开全部
;;;插入文字;;;;;;;;;;
(defun C:sx9 ( / #k %k i gr n pt)
 (setq #k "1";文字内容
       %k T  ;循环条件
       i nil ;初始设置
 )
 (while %k
  (setq  gr (grread t 4 0);;取得鼠标操作及坐标
         n (car gr)       ;;鼠标操作
         pt (cadr gr)     ;;鼠标坐标
  )
  (if (= n 5);;没有操作
   (progn
    (if (/= i nil) (entdel i) );;如果有文字就删除
    (entmake 
    (list 
    '(0 . "TEXT")      ;;文字
    (cons 1 #k)        ;;文字内容
    (cons 40 200)      ;;文字高度
    (cons 41 0.7)      ;;文字倾斜度
    (cons 10 pt)       ;;文字插入点
    (cons 7 "standard");; 文字样式
    (cons 8 "0")       ;;文字图层
    ));;重新生成文字
    (setq i (entlast));;得到文字图元名
   )
  )
  (if (= n 3) (setq %k nil) );;3表示左键;结束循环
  (if (or (= n 2) (= n 25));;2表示空格;25表示右键;结束循环并删除文字
   (progn
    (setq %k nil)
    (entdel i)
   )
  )
 )
 (prin1)
);复制到记事本以(SX9.lsp)命名,加载到AutoCAD就可以使用。
;;;;;;;;;;;;说明一下;;
 ;这个是一个插入文字内容为"1"的程序,如果你有文字内容,那么修改为下面的子程序:
(defun sx9 (#k / #k %k i gr n pt)
 (setq %k T  ;循环条件
       i nil ;初始设置
 )
 (while %k
  (setq  gr (grread t 4 0);;取得鼠标操作及坐标
         n (car gr)       ;;鼠标操作
         pt (cadr gr)     ;;鼠标坐标
  )
  (if (= n 5);;没有操作
   (progn
    (if (/= i nil) (entdel i) );;如果有文字就删除
    (entmake 
    (list 
    '(0 . "TEXT")      ;;文字
    (cons 1 #k)        ;;文字内容
    (cons 40 200)      ;;文字高度
    (cons 41 0.7)      ;;文字倾斜度
    (cons 10 pt)       ;;文字插入点
    (cons 7 "standard");; 文字样式
    (cons 8 "0")       ;;文字图层
    ));;重新生成文字
    (setq i (entlast));;得到文字图元名
   )
  )
  (if (= n 3) (setq %k nil) );;3表示左键;结束循环
  (if (or (= n 2) (= n 25));;2表示空格;25表示右键;结束循环并删除文字
   (progn
    (setq %k nil)
    (entdel i)
   )
  )
 )
);原理是写好了文字,由于鼠标移动,那么删除文字并重新写文字,这样就看上去文字在移动
追问
哇,,谢谢哦
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式