乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 28|回复: 19

[综合讨论] “打开文件的宏”对话框

[复制链接]

5

主题

17

帖子

12

银币

初来乍到

Rank: 1

铜币
25
发表于 2022-7-7 00:04:52 | 显示全部楼层 |阅读模式
我创建了一个新的菜单项,允许用户打开“打开文件”对话框窗口。但我需要请求它在每次运行时打开到特定的默认位置,而不是上次打开的文件夹。
 
现在,这个新命令的宏是^C^C\u open。
 
是否有一种方法允许我们指定要打开的文件夹位置?
回复

使用道具 举报

5

主题

17

帖子

12

银币

初来乍到

Rank: 1

铜币
25
发表于 2022-7-7 00:09:11 | 显示全部楼层
在这个问题上,另一位同事为我指明了正确的方向。她建议
 
她是对的。效果很好。尽管如此,我还是希望在autocad中获得真正的“打开”窗口,而不仅仅是普通的浏览器窗口。
回复

使用道具 举报

10

主题

8258

帖子

8335

银币

初来乍到

Rank: 1

铜币
31
发表于 2022-7-7 00:13:07 | 显示全部楼层
感谢您与我们分享该解决方案Brenda。现在,如果每个来这里的人都能像你一样高效(问和回答你自己的问题),我们都可以休息一天,去海滩喝一杯冰镇啤酒。英雄联盟
回复

使用道具 举报

35

主题

2471

帖子

2447

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
174
发表于 2022-7-7 00:15:54 | 显示全部楼层
那么,您希望访问映射为T的网络驱动器:?这相当于:
  1. ^C^C^C(startapp "explorer.exe” “T:\") ^P

 
您的第一篇帖子给我的印象是,您希望打开命令的图形选择对话框指向预定义的路径,而不是默认的当前文件夹。
回复

使用道具 举报

5

主题

17

帖子

12

银币

初来乍到

Rank: 1

铜币
25
发表于 2022-7-7 00:19:51 | 显示全部楼层
再次感谢大家。我希望OPEN命令指向预定义的路径。该宏使用Windows资源管理器,这是可以的,但它不会在Autocad中显示典型的“文件打开”窗口,而是显示Windows资源管理器的一个实例。如果可行的话。
 
我对这个宏仍然有一些问题,例如今天早上,我可以在命令行中键入:
 
它会在T:驱动器的这个文件夹位置打开Windows资源管理器。但是我为这个特定的菜单命令在CUI中复制并粘贴了相同的内容,什么都没有发生。
 
然而,这个宏可以从菜单项或命令行正常工作。
 
  1. ^C^C^P(startapp "explorer.exe "T:")
回复

使用道具 举报

5

主题

17

帖子

12

银币

初来乍到

Rank: 1

铜币
25
发表于 2022-7-7 00:21:35 | 显示全部楼层
MSasu,
 
再次感谢您的回复,但我尝试了您提供的语法,它所做的只是将该语法的内容转储到命令行上。这件事的难点在于我可以在命令行上完成:
 
  1. (startapp "explorer.exe" "T:\\Checker")
,工作正常。但是,CUI中用于此菜单项的宏如下所示:
 
  1. ^C^C^P(startapp "explorer.exe" "T:\\Checker")
不产生任何结果。。。根本没有消息或错误指示,而且大多数情况下没有打开Windows资源管理器以打开T:\Checker文件夹。这一点我真的很困惑。
回复

使用道具 举报

35

主题

2471

帖子

2447

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
174
发表于 2022-7-7 00:25:42 | 显示全部楼层
为工具栏按钮创建宏时,应注意以空格字符结尾-它的作用类似于运行语句。
回复

使用道具 举报

5

主题

17

帖子

12

银币

初来乍到

Rank: 1

铜币
25
发表于 2022-7-7 00:28:53 | 显示全部楼层
是的,你是对的。。。我应该说我已经意识到了这一点。我试过用一个空格,一个分号,两个分号。。。等等。只要能让它工作就行。我还可以说,如果我不使用文件夹名,只使用驱动器名“T:”,它在cui菜单宏中运行良好。除了添加文件夹名外,我还可以从命令行执行此操作。从命令行来看,这一切似乎都很好,但当它作为菜单宏的语法插入时,情况就不一样了。我不明白。
回复

使用道具 举报

35

主题

2471

帖子

2447

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
174
发表于 2022-7-7 00:30:55 | 显示全部楼层
布伦达,如果明天之前没有人愿意测试这个,我会在AutoCAD的菜单中为你做一些测试(现在没有访问权限)。
回复

使用道具 举报

44

主题

3166

帖子

2803

银币

中流砥柱

Rank: 25

铜币
557
发表于 2022-7-7 00:36:22 | 显示全部楼层
 
有多种方法可以实现这一点,例如使用GetField函数,但只是为了好玩:
 
以下是预定义位置的示例宏:
 
**注意-在宏中使用单正斜杠“/”作为双反斜杠“\\”将导致暂停用户输入。
 
  1. ^C^C^P(_OpenHere "T:/Checker");._open;^P
。。。以及支持的“_OpenHere”LISP子函数:
 
此子函数接受单个参数,将文件路径作为字符串,并在更新定义打开对话框起点的名称恰当的“InitialDirectory”注册表项之前验证文件路径是否为有效位置。该代码还解释了产品密钥的2013年之前和之后的LISP函数。
 
  1. (vl-load-com)
  2. (defun _OpenHere (filePath / key)
  3. (if vlax-user-product-key                                             ; If using 2013
  4.    (setq key (vlax-user-product-key))                                  ; Then, use new lisp function
  5.    (setq key (vlax-product-key))                                       ; Else, use legacy function
  6. )
  7. ;; More info here:
  8. ;; http://www.cadtutor.net/forum/showthread.php?70845-AutoLISP-API-Changes-for-AutoCAD-2013-Updated
  9. (if (setq
  10.        filePath (vl-string-translate
  11.                   "\"
  12.                   "/"
  13.                   (findfile (vl-string-right-trim
  14.                               "/"
  15.                               (vl-string-right-trim "\" filePath)
  16.                             )
  17.                   )
  18.                 )
  19.      )
  20.    (vl-registry-write
  21.      (strcat
  22.        "HKEY_CURRENT_USER\"
  23.        key
  24.        "\\Profiles\"
  25.        (vla-get-activeprofile
  26.          (vla-get-profiles
  27.            (vla-get-preferences (vlax-get-acad-object))
  28.          )
  29.        )
  30.        "\\Dialogs\\OpenSaveAnavDialogs"
  31.      )
  32.      "InitialDirectory"
  33.      filePath
  34.    )
  35. )
  36. (princ)
  37. )
HTH
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-7-4 17:46 , Processed in 0.711731 second(s), 72 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表