6
14
3
初来乍到
(vl-cmdf "_.undefine" ".insert");;只加载一次 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (vl-load-com) (defun c:insert (/) (vlr-add cmd-reactorfeiy-frame) (vla-SendCommand (vla-get-ActiveDocument (vlax-get-acad-object)) "_.insert " ) (princ) ) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;命令反应器 (vl-load-com) (setq cmd-reactorfeiy-frame (vlr-editor-reactor nil '((:vlr-commandEnded . cmdEndedfeiy-frame)) ) ) (vlr-remove cmd-reactorfeiy-frame) ;;;;;;;;;;;;;;;;;;;; ;;命令反应器回调函数 (defun cmdEndedfeiy-frame (reactor lst / feiyold_error feiyatt-obj feiybk-obj scale dz scale-str ratio ) ;;错误处理函数 (setq feiyold_error *error*) (defun *error* (msg) (setq feiybk-scale-obj '()) (setq feiybk-scale-att '()) (setq *error* feiyold_error) (vlr-remove cmd-reactorfeiy-frame) (princ) ) ;; ;;为块添加反应器 (cond ((equal '("DROPGEOM") lst) (feiybk-add-reactor (entlast)) ) ((or (equal '("PASTECLIP") lst) (and (equal '("COPY") lst) is-feiybk-copied) ) (setq is-feiybk-copied nil) (feiy-LAutoframe) ) ((equal '("INSERT") lst) (feiybk-add-reactor (entlast)) (vla-put-XEffectiveScaleFactor (vlax-ename->vla-object (entlast)) (vla-get-XEffectiveScaleFactor (vlax-ename->vla-object (entlast)) ) ) ) (t nil) ) ;;块引发更新动作 (if (and feiybk-scale-obj (not (equal '("ACDCATTEDIT") lst)) (not (equal '("EATTEDIT") lst)) (setq feiyatt-obj (car feiybk-scale-obj)) (setq feiybk-obj (cadr feiybk-scale-obj)) (setq scale (caddr feiybk-scale-obj)) (/= scale (atof (vla-get-TextString feiyatt-obj))) ) (progn (setq dz (getvar "dimzin")) (setvar "dimzin" 8) (setq scale-str (rtos scale 2 6)) (setvar "dimzin" dz) (vla-put-TextString feiyatt-obj scale-str) (feiyupdate-sacle scale) (setq feiybk-scale-obj '()) (setq feiybk-scale-att '()) ) ) ;;属性引发更新动作 (if (and feiybk-scale-att (setq feiyatt-obj (car feiybk-scale-att)) (setq feiybk-obj (cadr feiybk-scale-att)) (setq ratio (caddr feiybk-scale-att)) (or (/= ratio (vla-get-XEffectiveScaleFactor feiybk-obj)) (equal '("ACDCATTEDIT") lst) (equal '("EATTEDIT") lst) ) ) (progn (if (/= ratio (vla-get-XEffectiveScaleFactor feiybk-obj)) (vla-put-XEffectiveScaleFactor feiybk-obj ratio) ) (if (/= ratio (vla-get-YEffectiveScaleFactor feiybk-obj)) (vla-put-YEffectiveScaleFactor feiybk-obj ratio) ) (if (/= ratio (vla-get-ZEffectiveScaleFactor feiybk-obj)) (vla-put-ZEffectiveScaleFactor feiybk-obj ratio) ) (feiyupdate-sacle ratio) (setq feiybk-scale-att '()) (setq feiybk-scale-obj '()) ) ) ;;反应器失效 (vlr-remove cmd-reactorfeiy-frame) (setq *error* feiyold_error) ) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;块回调函数 (defun feiybk-calling (owner reactor lst / feiyold_error feiyatt-obj scale) (setq feiyold_error *error*) (defun *error* (msg) (setq feiybk-scale-obj '())