本帖最后由 Gu_xl 于 2013-7-9 19:14 编辑
 - ;;命令反应器 (or *cmdvlr*
- (setq *cmdvlr* (vlr-command-reactor nil '((:vlr-commandWillStart . cmdstart) (:VLR-commandEnded . cmdEnd))))
- )
- ;;数据库反应器
- (or *acdbvlr*
- (setq *acdbvlr* (vlr-acdb-reactor nil
- '((:VLR-objectModified . acdbstart))))
- )
- ;;命令开始反应器回调函数
- (defun cmdstart (vlr lst)
- (if (= "MOVE" (car lst))
- (setq *Move_Start* t ;_ 设置Move命令标志
- *Move_Obj* nil ;_ 清空Move的对象图元名列表
- )
- )
- )
- ;;命令结束反应器回调函数
- (defun cmdEnd (vlr lst)
- (if (= "MOVE" (car lst))
- (progn
- (setq *Move_Start* nil) ;_ 清除启动Move命令标志
- ;;此处可自行添加对 *Move_Obj* 处理的代码,如将夹点拖拽物体颜色变红
- (mapcar
- '(lambda (x / o)
- (if
- (= "AcDbCircle"
- (vla-get-objectname (setq o (vlax-ename->vla-object x)))
- )
- (vla-put-color o 5)
- )
- )
- *Move_Obj*
- )
- )
- )
- )
- ;;数据库反应器回调函数
- (defun acdbstart (vlr obj)
- (if *Move_Start*
- (setq *Move_Obj*
- (append *Move_Obj* (cdr obj)) ;_ Move的对象图元名列表
- )
- )
- )
|