CAD 批量插入“dwf”底圖 lisp

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  ;; 返回完整路徑列表
)

 文章源自四五設計網-http://www.133122.cn/52671.html 文章源自四五設計網-http://www.133122.cn/52671.html

繼續閱讀
我的微信
微信掃一掃
weinxin
我的微信
惠生活福利社
微信掃一掃
weinxin
我的公眾號
 
  • 本文由 四五設計網小助手 發表于 2025年8月27日11:51:38
  • 轉載請務必保留本文鏈接:http://www.133122.cn/52671.html

發表評論

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

拖動滑塊以完成驗證