打印样式添加路径问题
如何用程序为打印样式添加一个搜索路径(如D盘A文件夹),原来CAD默认的打印样式 路径不更改的前提下.;;;在原来的打印样式基层上添加新的打印样式路径。
;;;此方法将使得菜单->文件->打印样式管理器出错,提示无法找到路径.
;;;选择文件夹对话框采用秋枫函数
;;;cad2006cn测试通过
(defun c:tt(/ pspath old_path n_path bakps k)
(vl-load-com)
(initget "Y")
(if (and (setq bakps(vl-registry-read "HKEY_CURRENT_USER\\PrinterStylePath"));恢复初始路径
(= (if (setq k (getkword "\n是否恢复CAD打印样式表安装默认路径(Y):"))(strcase k)) "Y"))
(progn
(princ "\n开始恢复")
(setenv "PrinterStyleSheetDir" bakps)
(vl-registry-delete "HKEY_CURRENT_USER\\PrinterStylePath");删除备份注册表
)
(progn
(alert"此方法将使得菜单->文件->打印样式管理器出错,提示无法找到路径.")
(if(setq pspath(qf_getFolder "选择添加打印样式路径:"));秋枫文件夹对话框函数
(progn
(setq old_path(getenv "PrinterStyleSheetDir"))
(if (vl-registry-read "HKEY_CURRENT_USER\\PrinterStylePath")(princ)
(vl-registry-write "HKEY_CURRENT_USER\\PrinterStylePath" "" old_path));备份初始路径到注册表
(setq n_path (strcat old_path ";" pspath))
(setenv "PrinterStyleSheetDir" n_path)
)
(princ"\n未指定路径")
)
)
)
(princ "\n新的打印样式路径为:")
(getenv "PrinterStyleSheetDir")
)
;; 本代码仅提供作为应用上的参考, 而未声明或隐含任何保证; 对于任何特殊
;; 用途之适应性, 以及商业销售所隐含作出的保证, 在此一概予以否认.
;; ==================================================================
;; 作者:秋枫,参考了灯火的VBA程序
;; 用法:(qf_getFolder msg)
;; 例子:(qf_getFolder "选择文件夹:")
;; 返回值:字符串,文件夹路径,如果点了cancel, 返回nil
(defun qf_getFolder (msg / WinShell shFolder path catchit)
(vl-load-com)
(setq winshell (vlax-create-object "Shell.Application"))
(setq shFolder (vlax-invoke-method WinShell 'BrowseForFolder 0 msg 1))
(setq
catchit (vl-catch-all-apply
'(lambda ()
(setq shFolder (vlax-get-property shFolder 'self))
(setq path (vlax-get-property shFolder 'path))
)
)
)
(if (vl-catch-all-error-p catchit)
nil
path
)
)
鱼与熊掌,不可兼得。 cad2006通过测试。可以搜索到样式表,即为所求,但是通过菜单 文件->打印样式管理器,无法打开样式路径,因为路径非法。
页:
[1]