明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1200|回复: 3

[提问] 打印样式添加路径问题

[复制链接]
发表于 2013-12-14 18:38 | 显示全部楼层 |阅读模式
1明经币
如何用程序为打印样式添加一个搜索路径(如D盘A文件夹),原来CAD默认的打印样式 路径不更改的前提下.


最佳答案

"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2013-12-14 18:38 | 显示全部楼层
  1. ;;;在原来的打印样式基层上添加新的打印样式路径。
  2. ;;;此方法将使得菜单->文件->打印样式管理器出错,提示无法找到路径.
  3. ;;;选择文件夹对话框采用秋枫函数
  4. ;;;cad2006cn测试通过
  5. (defun c:tt(/ pspath old_path n_path bakps k)
  6.   (vl-load-com)
  7.   (initget "Y")
  8.   (if (and (setq bakps(vl-registry-read "HKEY_CURRENT_USER\\PrinterStylePath"));恢复初始路径
  9.            (= (if (setq k (getkword "\n是否恢复CAD打印样式表安装默认路径(Y):"))(strcase k)) "Y"))
  10.     (progn
  11.       (princ "\n开始恢复")
  12.     (setenv "PrinterStyleSheetDir" bakps)
  13.     (vl-registry-delete "HKEY_CURRENT_USER\\PrinterStylePath");删除备份注册表
  14.     )
  15.     (progn
  16.       (alert"此方法将使得菜单->文件->打印样式管理器出错,提示无法找到路径.")
  17.       (if(setq pspath(qf_getFolder "选择添加打印样式路径:"));秋枫文件夹对话框函数
  18.   (progn   
  19.     (setq old_path(getenv "PrinterStyleSheetDir"))
  20.     (if (vl-registry-read "HKEY_CURRENT_USER\\PrinterStylePath")(princ)      
  21.     (vl-registry-write "HKEY_CURRENT_USER\\PrinterStylePath" "" old_path));备份初始路径到注册表
  22.     (setq n_path (strcat old_path ";" pspath))
  23.     (setenv "PrinterStyleSheetDir" n_path)
  24.     )
  25.   (princ"\n未指定路径")
  26.   )
  27.       )
  28.     )
  29.   (princ "\n新的打印样式路径为:")
  30.   (getenv "PrinterStyleSheetDir")
  31.   )

  32. ;; 本代码仅提供作为应用上的参考, 而未声明或隐含任何保证; 对于任何特殊
  33. ;; 用途之适应性, 以及商业销售所隐含作出的保证, 在此一概予以否认.
  34. ;; ==================================================================
  35. ;; 作者:秋枫,参考了灯火的VBA程序
  36. ;; 用法:(qf_getFolder msg)
  37. ;; 例子:(qf_getFolder "选择文件夹:")
  38. ;; 返回值:字符串,文件夹路径,如果点了cancel, 返回nil

  39. (defun qf_getFolder (msg / WinShell shFolder path catchit)
  40.   (vl-load-com)
  41.   (setq winshell (vlax-create-object "Shell.Application"))
  42.   (setq shFolder (vlax-invoke-method WinShell 'BrowseForFolder 0 msg 1))
  43.   (setq
  44.     catchit (vl-catch-all-apply
  45.               '(lambda ()
  46.                  (setq shFolder (vlax-get-property shFolder 'self))
  47.                  (setq path (vlax-get-property shFolder 'path))
  48.                )
  49.             )
  50.   )
  51.   (if (vl-catch-all-error-p catchit)
  52.     nil
  53.     path
  54.   )
  55. )

评分

参与人数 1明经币 +1 收起 理由
429014673 + 1 edata谢谢你的帮助。我谢谢了一下,能用 (.

查看全部评分

回复

使用道具 举报

发表于 2013-12-14 21:51 | 显示全部楼层
鱼与熊掌,不可兼得。
回复

使用道具 举报

发表于 2013-12-14 22:04 | 显示全部楼层
cad2006通过测试。可以搜索到样式表,即为所求,但是通过菜单 文件->打印样式管理器,无法打开样式路径,因为路径非法。

本帖子中包含更多资源

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

x

点评

能用LSP写一个吗  发表于 2013-12-15 08:06
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-10 10:54 , Processed in 0.186494 second(s), 31 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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