- A+
所屬分類:cad
lisp 批量插入“DWF”底圖;
(defun c:ssDWF (/ dwf-folder dwfFiles insertionPoint dwfFile)
;; 選擇文件夾
(setq dwf-folder (vl-file-syst-get-folder))
(if dwf-folder
(progn
;; 獲取文件夾中所有DWF文件
(setq dwfFiles (get-dwf-files dwf-folder))
(if dwfFiles
(progn
;; 獲取插入點
(setq insertionPoint (getpoint "指定插入點: "))
;; 遍歷并插入每個DWF文件
(foreach dwfFile dwfFiles
(command "ATTACH" dwfFile insertionPoint "1" )
)
(princ (strcat "\n" (itoa (length dwfFiles)) " 個DWF文件已成功插入."))
)
(princ "\n文件夾中沒有DWF文件.") ;; 文件夾中沒有DWF文件
)
)
(princ "\n未選擇文件夾.") ;; 未選擇文件夾
)
(princ)
)
;;=================================
(defun vl-file-syst-get-folder ()
;; 選擇文件夾并返回路徑
(vl-load-com)
(setq objShell (vlax-create-object "Shell.Application"))
(setq objFolder (vlax-invoke-method objShell 'BrowseForFolder 0 "選擇文件夾" 0))
(if objFolder
(setq folderPath (vlax-get-property objFolder 'Self))
(setq folderPath nil)
)
(if folderPath
(setq folderPath (vlax-get-property folderPath 'Path))
)
folderPath
)
;;======================
(defun get-dwf-files (folderPath)
;; 獲取文件夾中所有DWF文件的路徑
(setq dwfFiles '()) ;; 初始化文件列表
(setq dwfFiles (vl-directory-files folderPath "*.dwf" 1)) ;; 獲取文件夾中的所有DWF文件
;; 遍歷文件列表并合并文件夾路徑
(setq dwfFilesWithPaths '()) ;; 用于存儲完整路徑的列表
(foreach dwf dwfFiles
(setq dwfFilesWithPaths (append dwfFilesWithPaths (list (strcat folderPath "\\" dwf))))) ;; 合并路徑和文件名
dwfFilesWithPaths ;; 返回完整路徑列表
)
歷史上的今天:
贊
0
賞

