我的源程序如下,请指正: ;;打开B图 (defun OpenFile (FilePath Activate / oFile) (vl-load-com) (if (findfile FilePath) (if (vl-file-systime FilePath) (if (vl-catch-all-error-p (setq oFile (vl-catch-all-apply 'vla-open (list (vla-get-Documents (vlax-get-acad-object) ) FilePath );end-->list );end-->vl-catch-all-apply );end-->setq oFile );end-->vl-catch-all-error-p (alert (strcat FilePath " :文件不能够打开!") ) (if Activate (vla-Activate oFile)) ); end if (alert;vl-file-systime,此时FilePath为nil (strcat FilePath " :已经打开,请关闭文件!\n" "如果文件未打开,则文件可能受保护或已损坏!") ) ); end if (alert;findfile = nil (strcat FilePath " :文件没有找到!") ) ); end if oFile ); end of OpenFile ;;删除B图中的所以文字 (defun Delete-Text (/ ENT I S SS Z) (if (setq ss (ssget "x" (list (cons 0 "TEXT")))) (progn (setq z (sslength ss)) (setq i 0) (repeat z (setq s (ssname ss i)) (entdel s) (setq i (1+ i)) ) ) ) (princ) );;defun Delete-Text end
;;获取B图的文件名 (defun B-Name(/ ss ent zh) (setq ss (ssget "w" '(35 228) '(72.5 264))) (setq ent (entget (ssname ss 0))) (setq z (cdr (assoc 1 ent)));;;;;;; z = B (setq B-name (getvar "dwgprefix")) (setq B-name (strcat zh-name z ".dwg"));;; B-name = D:\USER\B.dwg );;defun B-Name end ;;主函数 (defun c:oFile () (B-Name) (OpenFile B-name T) (if (findfile B-name) (progn (Delete-Text) ) ) (princ) );;主函数 end
|