CAD 批量插入“dwf”底圖 lisp

  • 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
          ;; 獲取插入點(diǎn)
          (setq insertionPoint (getpoint "指定插入點(diǎn): "))
          ;; 遍歷并插入每個(gè)DWF文件
          (foreach dwfFile dwfFiles
            (command "ATTACH" dwfFile insertionPoint "1" )
          )
          (princ (strcat "\n" (itoa (length dwfFiles)) " 個(gè)DWF文件已成功插入."))
        )
        (princ "\n文件夾中沒(méi)有DWF文件.")  ;; 文件夾中沒(méi)有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 '())  ;; 用于存儲(chǔ)完整路徑的列表
  (foreach dwf dwfFiles
    (setq dwfFilesWithPaths (append dwfFilesWithPaths (list (strcat folderPath "\\" dwf)))))  ;; 合并路徑和文件名

  dwfFilesWithPaths  ;; 返回完整路徑列表
)

 

歷史上的今天:

推薦應(yīng)用

發(fā)表評(píng)論

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: