- (defun c:dwgins(/ folder dwglist n )
- (command "._undo" "_be")
- (setq folder (GetFolder "选择文件夹"))
- (setq dwglist (VL-DIRECTORY-FILES folder "*.dwg" 1))
- (while (= (length dwglist) 0)
- (setq folder (GetFolder "你选中的文件夹里没有DWG文件,重选!"))
- (setq dwglist (VL-DIRECTORY-FILES folder "*.dwg" 1))
- )
- (setq n 0)
- (repeat (length dwglist)
- (command "insert" (strcat folder "\\" (nth n dwglist)) "0,0" "1" "1" "0" )
- (setq n (1+ n))
- )
- (command "._zoom" "e")
- (command "._undo" "_e")
- (princ "\n搞定!")
- (princ "\n共插入")(princ (length dwglist))(princ "个DWG文件。")
- (princ)
- )
- ;; 子函数:(GetFolder "选择文件夹:") 返回值:字符串,文件夹路径,如果点了cancel, 返回nil
- (defun GetFolder (msg / WinShell shFolder path catchit)
- (setq winshell (vlax-create-object "Shell.Application"))
- (setq shFolder (vlax-invoke-method WinShell 'BrowseForFolder 0 msg 1))
- (setq
- catchit (vl-catch-all-apply
- '(lambda ()
- (setq shFolder (vlax-get-property shFolder 'self))
- (setq path (vlax-get-property shFolder 'path))
- )
- )
- )
- (if (vl-catch-all-error-p catchit)
- nil
- path
- )
- )
|