本帖最后由 437271963 于 2025-7-6 21:59 编辑
 - <div class="blockcode"><blockquote>(defun c:tes ( / cad5 ff1 ff5 strcaption tmp tmp5)
- (setq ff1 "D:\\feishi");添加飞诗路径
- (vl-load-com)
- (setq strCaption (strcase (vla-get-Caption (vlax-get-acad-object))))
- (cond
- ((vl-string-search "浩辰CAD" strCaption 0) (setq cad5 "GCAD"))
- ((vl-string-search "中望CAD" strCaption 0) (setq cad5 "GCAD"))
- ((vl-string-search "AUTODESK AUTOCAD" strCaption 0) (setq cad5 "ACAD"))
- (t (setq cad5 nil))
- )
- (if (and cad5
- (setq tmp (getenv cad5))
- (setq tmp5 (strcase tmp))
- (setq ff5 (strcase ff1))
- (= (vl-string-search ff5 tmp5 0) nil)
- (setq tmp (strcat ff1 ";" tmp))
- )
- (setenv cad5 tmp)
- )
- (if cad5 (feishi_220411 ff1));加载飞诗
- (princ)
- )
- ;加载飞诗
- (defun feishi_220411 (ff1 / ff1 s ss x)
- (if (not (vl-vlx-loaded-p "ListDCLediter"));检查是否已经加载
- (if (and ff1 (setq ss (mapcar 'strcase (zl-directory-GetFiles ff1 "*.vlx" t)));飞诗-对话框
- (setq s (vl-remove-if-not '(lambda(x) (= (strcat (vl-filename-base x) (vl-filename-extension x)) "LISTDCLEDITER.VLX")) ss))
- )
- (if (vl-catch-all-error-p (vl-catch-all-apply 'load s));飞诗第一次可以加载,第二次就不能加载,不提示
- (princ "\n未成功加载飞诗文件【ListDCLediter.vlx】")
- (if (> (length s) 1) (princ (strcat "\n加载的文件有多个" (vl-prin1-to-string s))) )
- )
- (princ "\n未找到飞诗【ListDCLediter.vlx】文件")
- )
- )
- )
- ;;;=================================================================*
- ;;; 通用函数
- ;;; 功能:获取目录内全部文件名
- ;;; 参数:path ----- 字符串。目录名称。
- ;;; str ----- 字符串。过滤条件。
- ;;; 例如:"*.dwg"
- ;;; pd_SF ----- T 或 nil。是否含子目录的标识。
- ;;; 返回:文件名列表
- ;;; 测试:(zl-directory-GetFiles "d:\" "*.txt" nil)
- ;;; 日期:zml84 于 2014-11-04
- (defun zl-directory-GetFiles (path str pd_SF / filelist n path str pd_SF tmp)
- (while (vl-string-search "/" path 0) (setq path (vl-string-subst "\" "/" path)) );;; 整理路径格式
- (setq path (vl-filename-directory (strcat path "\")) )
- (or (wcmatch path "*\") (setq path (strcat path "\")))
- (setq filelist '());; 1、获取符合条件的文件(不含文件夹)
- (setq tmp (vl-directory-files path str))
- (foreach n tmp
- (cond
- ((= n ".") () )
- ((= n "..") () )
- ((vl-file-directory-p (strcat path n)) () )
- (t (setq filelist (cons (strcat path n) filelist)))
- )
- )
- (setq filelist (reverse filelist))
- ;; 2、处理子文件夹
- (and pd_SF (setq tmp (vl-directory-files path "*.*"))
- (foreach n tmp
- (cond
- ((= n ".") () )
- ((= n "..") () )
- ((vl-file-directory-p (strcat path n)) (setq filelist (append filelist (zl-directory-GetFiles (strcat path n) str pd_SF))))
- (t ())
- )
- )
- );; 3、返回
- filelist
- )
|