明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 716|回复: 13

[源码] [分享]deepseek源码,多文件选择.

[复制链接]
发表于 5 天前 | 显示全部楼层 |阅读模式
;操作方法,默认是当前图形的目录,可以点击浏览,选择其他目录.方法是先选中其他目录下的一个文件,单击打开,就定位到新的目录,再在对话框那儿选文件.
点击浏览后,可以在对话框的输入框那黏贴地址,还是比较方便的.
(defun MULTI_FILE_SELECT (/ dcl_id file_list selected_files current_path)
(setq dcl_code
    "multi_file_select : dialog {
      label = \"选择多个文件\";
      : row {
        : edit_box {
          key = \"path\";
          label = \"路径:\";
          width = 40;
        }
        : button {
          key = \"browse\";
          label = \"浏览...\";
        }
      }
      : list_box {
        key = \"filelist\";
        label = \"可用文件:\";
        height = 15;
        width = 50;
        multiple_select = true;
      }
      : row {
        : button {
          key = \"accept\";
          label = \"确定\";
          is_default = true;
        }
        : button {
          key = \"cancel\";
          label = \"取消\";
          is_cancel = true;
        }
      }
    }")

  ; 将DCL写入临时文件
  (setq dcl_file (strcat (getvar "TEMPPREFIX") "multi_file_select.dcl"))
  (setq fp (open dcl_file "w"))
  (write-line dcl_code fp)
  (close fp)

  ; 设置初始路径
  (setq current_path
    (if (wcmatch (getvar "DWGPREFIX") "*\\")
      (getvar "DWGPREFIX")
      (strcat (getvar "DWGPREFIX") "\\")
    )
  )

  ; 获取文件列表函数
  (defun update_file_list (path)
    (setq file_list (vl-directory-files path "*.dwg" 1))
    (if (not file_list)
      (setq file_list '("没有找到文件")))
    (start_list "filelist")
    (mapcar 'add_list file_list)
    (end_list)
  )

  ; 加载并显示对话框
  (setq dcl_id (load_dialog dcl_file))
  (if (not (new_dialog "multi_file_select" dcl_id))
    (exit)
  )

  ; 设置初始路径和文件列表
  (set_tile "path" current_path)
  (update_file_list current_path)

  ; 设置按钮动作
  (action_tile "browse"
    "(progn
       (setq new_path (getfiled \"选择文件夹\" current_path \"\" 16))
       (if new_path
         (progn
           (setq temp_path (vl-filename-directory new_path))
           (setq current_path
             (if (wcmatch temp_path \"*\\\\\")
               temp_path
               (strcat temp_path \"\\\\\")
             )
           )
           (set_tile \"path\" current_path)
           (update_file_list current_path)
         )
       )
     )"
  )

  (action_tile "accept" "(setq selected_files (get_tile \"filelist\")) (done_dialog 1)")
  (action_tile "cancel" "(done_dialog 0)")

  ; 启动对话框
  (setq dialog_result (start_dialog))
  (unload_dialog dcl_id)

  ; 删除临时DCL文件
  (vl-file-delete dcl_file)

  ; 处理选择结果
  (if (= dialog_result 1)
    (progn
      (setq selected_files (read (strcat "(" selected_files ")")))
      (if selected_files
        (progn
          (princ "\n选择的文件:")
          (mapcar '(lambda (x)
                    (princ (strcat "\n" (nth x file_list))))
                  selected_files)
          (mapcar '(lambda (x)
                    (strcat current_path (nth x file_list)))
                  selected_files)
        )
        (princ "\n未选择任何文件")
      )
    )
    (princ "\n操作已取消")
  )  
)

(defun C:TEST ()
  (princ "\n1")
  (setq result (MULTI_FILE_SELECT))
  (if result
    (progn
      (princ "\n返回的文件路径:")
      (mapcar (function (lambda (x) (princ (strcat "\n" x)))) result)
    )
  )
  (princ)
)


评分

参与人数 2明经币 +2 收起 理由
zhoupeng220 + 1 很给力!
hubeiwdlue + 1 很给力!

查看全部评分

"觉得好,就打赏"
还没有人打赏,支持一下
回复

使用道具 举报

发表于 4 天前 | 显示全部楼层

评分

参与人数 1明经币 +1 金钱 +10 收起 理由
tigcat + 1 + 10 有现成的太好了。不用重复造轮子

查看全部评分

回复 支持 2 反对 0

使用道具 举报

 楼主| 发表于 4 天前 | 显示全部楼层

lisp处理文件时需要返回文件名,这个就是返回文件名的,是个函数,要配合程序处理使用。
回复 支持 反对

使用道具 举报

发表于 4 天前 | 显示全部楼层
感觉这个程序没什么用处啊

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
回复 支持 反对

使用道具 举报

发表于 4 天前 | 显示全部楼层
可以改改用
回复 支持 反对

使用道具 举报

发表于 4 天前 | 显示全部楼层
多文件选择器


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x

评分

参与人数 1明经币 +1 收起 理由
tigcat + 1 很给力!

查看全部评分

回复 支持 反对

使用道具 举报

发表于 4 天前 | 显示全部楼层
说清楚作用
回复 支持 反对

使用道具 举报

 楼主| 发表于 4 天前 | 显示全部楼层
果然抛砖引玉了,谢谢各位大佬分享自己或其他大神的成果。
回复 支持 反对

使用道具 举报

发表于 4 天前 | 显示全部楼层
自己搞了2天的

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x

点评

太强了,大佬。  发表于 4 天前

评分

参与人数 1明经币 +1 收起 理由
VBALISPER + 1

查看全部评分

回复 支持 反对

使用道具 举报

发表于 4 天前 | 显示全部楼层
受LeeMac启发扩展的

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x

点评

这个好  发表于 4 天前

评分

参与人数 1明经币 +1 收起 理由
VBALISPER + 1

查看全部评分

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2025-3-10 15:34 , Processed in 0.211636 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表