大侠再出精品,必须赞,非常给力!				
			
		caoyin 发表于 2021-8-20 13:59
很久没来,一打开网页就看见大神的帖子,膜拜
以前一直用老毛子的ARX程序——DynDraw,跟楼主的功能 ...
大佬 DynDraw 在哪下呢				
			
		命令: aj
开始按键测试:<按ESC键卸载退出>无函数定义: GL:KEYMONITOR
缺少函数呢				
			
		好东西,赶紧mark一下				
			
		言戲無軍 发表于 2021-8-22 19:40
大佬 DynDraw 在哪下呢
http://www.maestrogroup.com.ua/support/dyndraw.zip				
			
		caoyin 发表于 2021-8-24 01:08
http://www.maestrogroup.com.ua/support/dyndraw.zip
感谢版主,测试了下,如果dyn_call_back 函数里面 更新实体对象 比如块的话比较容易崩溃,按照样例用grdraw,绘制临时的线什么图像还是可以,用高飞鸟大师的函数感觉稍微好点。				
			
		厉害啊............				
			
		 本帖最后由 brainstorm 于 2021-8-30 13:22 编辑 
我的动态拖动函数 2012以上可用
(defun c:t1(/ txtobj p loop rtnjig)
;;选择文字
(setq txtobj
    (vlax-ename->vla-object
      (car(entsel"\n选择文字"))
    )
)
;;创建选择集
(setq ss (ssadd))
(setq ss
    (ssadd
      (vlax-vla-object->ename txtobj)ss)
)
;;回调函数
(defun callback1(p)
    (vla-put-TextString txtobj 
      (rtos (car p)2 3)
    )
    ;;方法1 更新图元
    ;(vla-Update txtobj)
    ;t
    ;;方法2:更新,需要返回选择集ss
    ss
)
;;定义一个lisp函数
(vl-acad-defun "callback1")
;;基点取上一点
(setq p (getvar "LASTPOINT"))
;;循环打开
(setq loop t)
;;开始循环
(while loop
    (setq rtnjig 
      (gx:drawjig    ;gx:drawjig
      ;; 回调函数
      "callback1"
      ;; 提示字符串
      "\n拖动鼠标测试: "
      ;; Keyword string
      ;;"A_A测试关键字;S_S测试关键字S"
      "S _ S;A _ A"
      ;; 接受3dpoint
      (+ 2 128 2048)                   
      ;; 光标类型
      2
      ;; 基点
      p
      )
    )
 
    (cond
      ;;用户选择了点
      ((eq (type rtnjig) 'list)
      (progn
          (setq loop nil)
          (vla-Update txtobj)
          (princ "\n程序结束")
          (princ)
          (setq p rtnjig)
      )
      )
      
      ;;用户键入关键字
      ((eq rtnjig "A")
      (progn
          (princ "\n关键字A")
          (princ)
          (setq loop t)
      )
      )
      
      ;;用户键入关键字
      ((eq rtnjig "S")
      (progn
          (princ "\n关键字S")
          (princ)
          (setq loop t)
      )
      )
      
      ;;用户按右键,空字符
      ((eq rtnjig "")
      (progn
          ((vla-Update txtobj)
            (setq loop nil)
          )
      )
      )
      
      ;;用户取消,esc键
      ((not rtnjig)
      (progn
          ((vla-Update txtobj)
            (setq loop nil)
          )
      )
      )
    );end of cond
);end of while loop
)
;;测试dragmove,作用同acet函数dragmove
(defun c:t2(/ ss ss_erase pt)
;;删除选择集
(defun ss_erase (ss / i) 
    (setq i -1)
    (repeat (sslength ss) 
      (entdel (ssname ss (setq i (1+ i))))
    )
)
;;选择移动的图元
(setq ss (ssget))
(setq pt (getpoint"\选择基点:"))
(if 
    (not 
      (gx:ss:dragmove 
      ss
      pt
      "\n标注位置:"
      )
    )
    (ss_erase ss)
)
)
				
			
		就拖动的功能而言,与前的大作动态复制相比,效果真的不错,拖动时显示完整,速度也很快,还能一键关键字,就是输入数字时经常丢数,如果用这个做一个动态复制,应该比之前的好用。动态复制4.0的问题一是不能一键关键字,二是拖动时有时显示不全。				
			
		运行动态多功能移动时,按esc键或右键取消时很容易崩溃