乐筑天下

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

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

[复制链接]

5

主题

17

帖子

12

银币

初来乍到

Rank: 1

铜币
25
发表于 2022-7-7 00:39:27 | 显示全部楼层
非常感谢RenderMan,这看起来是一个很好的开始,但由于某些原因,它没有使用filepath变量。“打开”对话框打开得很好,但它正在打开Windows内存中必须包含的内容。。。本地C:\驱动器上的文件夹。
 
我非常感谢你在这里的指导和建议。我们刚刚在这个问题上抛出了800磅的大猩猩,并映射了一个新的驱动器号到T:\Checker。。。这就是所谓的普通老Q:。这允许宏从菜单(CUI)中工作。IT人员告诉我,我们一定错过了什么。如果它在命令行中工作,那么它应该作为菜单项的宏。我倾向于同意他们。
回复

使用道具 举报

44

主题

3166

帖子

2803

银币

中流砥柱

Rank: 25

铜币
557
发表于 2022-7-7 00:42:39 | 显示全部楼层
 
不客气,布伦达。
 
我发布的子函数检查有效的文件路径(您在宏中指定的参数),并且仅当它(参数)是有效位置时,才更改打开对话框使用的注册表项值,否则在宏调用打开命令之前不会进行任何更改。
 
发布的示例宏使用的是您在先前发布中指定的文件路径。由于我的设置中没有映射该驱动器,我使用了不同的文件路径作为测试字符串,但成功地打开了多个网络位置。
 
请发布您试图使用的宏。
回复

使用道具 举报

5

主题

17

帖子

12

银币

初来乍到

Rank: 1

铜币
25
发表于 2022-7-7 00:44:38 | 显示全部楼层
  1. ^C^C^P(I:/ACAD/VLISP/OpenHere "T:/Checker");._open;^P
我已经在服务器上为此类事情保留的文件夹中找到了lisp文件。lisp文件运行正常,只是没有拾取filepath变量。可能是我在这台机器上的有限权限不允许对注册表进行编辑吗。我问过这件事,他们有点认为这可能是问题所在,但他们总是忙于扑灭其他火灾,没有时间和我在一起。。。也许以后他们可以提供帮助。
 
好啊我刚检查过,没有问题。我在其中做了一个新条目,添加了几个键,然后删除了它们。所有这些都很有效。我还将lisp文件的名称从_OpenHere更改为OpenHere。
回复

使用道具 举报

44

主题

3166

帖子

2803

银币

中流砥柱

Rank: 25

铜币
557
发表于 2022-7-7 00:47:54 | 显示全部楼层
停止您的宏不正确。
 
让我们备份一下,以确保我们已经涵盖了基本知识。。。。
 
如果您还没有,请将我在这里发布的LISP代码复制到一个空文本文件中,并用保存。LSP文件扩展名。你可以随意给这个文件命名,但对于这些说明,我将使用“OpenHere.lsp”作为文件名的给定值。
 
将“OpenHere.lsp”保存到支持文件搜索路径(SFSP)中的任何位置,并通过APPLOAD或AcadDoc加载此文件。lsp或你的名字。mnl使用负载函数。
 
_OpenHere是函数名,而不是文件名(用于“OpenHere.lsp”),因此宏中不需要文件路径。您的宏应该如下所示:
 
  1. ^C^C^P([b][color=red]LispFunctionName [/color][color=blue]Argument[/color][/b]);._Open;^P

 
... 或:
 
  1. 11

 
尝试一下,看看这是否能纠正不想要的行为。现在让我们看看这对你来说是怎么回事?
回复

使用道具 举报

5

主题

17

帖子

12

银币

初来乍到

Rank: 1

铜币
25
发表于 2022-7-7 00:51:27 | 显示全部楼层
伦德曼,
 
你说得对。这就解决了。现在说服IT人员自动加载此LISP文件。他们总是对这种部门范围内的政策变化持怀疑态度。。。事实上,他们讨厌任何形式的改变。不过,它们在这里很好地发挥了作用。
 
好啊只是避免了那个问题。在宏中添加了一些内容,使其能够动态加载LISP文件。它运作良好,永远不必为政策变化而烦恼。谢谢
回复

使用道具 举报

44

主题

3166

帖子

2803

银币

中流砥柱

Rank: 25

铜币
557
发表于 2022-7-7 00:54:56 | 显示全部楼层
别担心;很高兴你把它整理好了。
 
我们也有严格的指导方针,从我们的公司CAD组(独立于它),但阿卡多克。lsp属于我的权限范围(作为我所在地区小组的CAD负责人)。
 
FWIW-*如果*您的IT允许用户自定义(正如我们所做的那样),那么请他们只考虑将其合并到加载的代码中:
 
  1. 12

 
我们在SFSP中构建了多条路径,这些路径位于用户的个人网络空间中,用于在每个部署中进行自定义,例如主CUIx、LISP、脚本等。。所有这些都是在我们公司定制之前加载的。这既可以让用户具有创造性,也可以强制执行我们的标准。
 
HTH公司
回复

使用道具 举报

44

主题

3166

帖子

2803

银币

中流砥柱

Rank: 25

铜币
557
发表于 2022-7-7 00:57:52 | 显示全部楼层
 
提供的“OpenHere.lsp”驻留在SFSP中:
 
  1. 13

 
回复

使用道具 举报

5

主题

17

帖子

12

银币

初来乍到

Rank: 1

铜币
25
发表于 2022-7-7 00:58:53 | 显示全部楼层
非常感谢你的建议。但正如他们所说的最好的计划。。。
 
1.LISP和的使用方法_Open命令第一次运行良好。当然,用户想打开另一个文件,但这次他们不会使用我创建的菜单项,因为这是用于特殊文件夹中的不同文件集。当然,当他们选择的时候。同样的特殊位置打开了。。。。。重击。。。勾选了现在必须导航回其他典型文件夹的用户。
 
2.好的。。。这样一来,用户就会冷静下来。现在,他们再次选择新的自定义菜单,并再次从特殊位置打开文件。重击!宏现在不起作用。打开菜单出现,但注册表项显然已被写回用户刚刚打开的同一个典型文件夹。
 
3、最重要的是,我们发现将自定义菜单加载到其他用户的计算机中是一件不成功的事情。我不敢相信我所看到的,但我现在在两台不同的机器上看到了。我们加载了菜单文件,一切看起来都很好。用户从菜单中选择选项并执行宏。现在,我们对宏进行了轻微更改,并将菜单重新保存在CUI屏幕中。然后,用户尝试再次执行菜单选项,但仍在执行旧操作。重击!然后我们卸载菜单并重新加载。重击!同样的事情。我们关闭AutoCAD并重新启动它。重击菜单选项仍在执行旧的宏。我查看了CUI中的宏,它显示了我们所做的更改。然后,我们卸载了自定义菜单,冷启动计算机并重新加载菜单,它就工作了。菜单选项仍然有一个大问题,即在会话期间无法保持其状态。如果用户使用“打开”菜单并更改他们选择文件的位置,当我们再次运行宏时,它会打开这个新文件夹,而不是我们想要的目标文件夹。
 
老板终于对我大发雷霆,说回到你使用的驱动映射方法,让我们继续前进。因此,至少就目前而言,宏观方面:
 
我们必须坚持让所有用户将T:\驱动器映射到这个特殊位置。但现在它进入了下一个阶段。
回复

使用道具 举报

44

主题

3166

帖子

2803

银币

中流砥柱

Rank: 25

铜币
557
发表于 2022-7-7 01:04:37 | 显示全部楼层
不确定你这边有什么不同,但这很好用,re
回复

使用道具 举报

JGA

1

主题

69

帖子

69

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-7 01:07:34 | 显示全部楼层
LISP I picked up years ago from an unknown source - works for me on 2011.
  1. ;========= Explorer to Current Directory(Defun C:ECD ()  (Setvar "Cmdecho" 0)  (Command "Shell"     (Strcat        "Explorer /n,/e,"              ;Explorer, New Window, use Explorer View         (Chr 34)                       ;Quote marks        (Getvar "dwgprefix")           ;Current drive and folder        (Chr 34)                       ;Quote marks     )                                 ;Close Strcat  )                                    ;Close Command  (Princ))                                       ;Close Defun on C:ECD
  1. ;========= Explorer to AutoSave Directory(Defun C:EASD ()  (Setvar "Cmdecho" 0)  (Command "Shell"     (Strcat        "Explorer /n,/e,"              ;Explorer, New Window, use Explorer View         (Chr 34)                       ;Quote marks        (getvar "savefilepath")        ;Current drive and folder        (Chr 34)                       ;Quote marks     )                                 ;Close Strcat  )                                    ;Close Command  (Princ))                                       ;Close Defun on C:EASD
 
Another from Lee Ambrosius;-
  1. ;; Created by: Lee Ambrosius;;                HyperPics, [url]http://www.hyperpics.com[/url];;;; Last revised on: 06/15/03;; Program is used to search for a file with in the AutoCAD Support paths.;; It then will display the file in Explorer or folder view;; Opens Explorer w/ Treeview and highlights the file(defun c:BrowseToFileWithTree( / fileLoc fileName);  (setq fileName (getstring "\nEnter file name and extension to find: ")); Added to open current file in Explorer 18/08/2005 JGA (setq fileName (getvar "DWGname")) (if (setq fileLoc (findfile fileName))   (startapp "explorer" (strcat "/n, /e, /select," (substr fileLoc 1 (- (strlen fileLoc) (+ (strlen fileName) 1))) " \" filename)) ));; Opens Explorer w/o Treeview and highlights the file(defun c:BrowseToFileWithoutTree( / fileLoc fileName) (setq fileName (getstring "\nEnter file name and extension to find: ")) (if (setq fileLoc (findfile fileName))   (startapp "explorer" (strcat "/n, /select," (substr fileLoc 1 (- (strlen fileLoc) (+ (strlen fileName) 1))) " \" filename)) ))(defun c:B2FT()(c:BrowseToFileWithTree))(defun c:B2F()(c:BrowseToFileWithoutTree))(prompt "\nType B2FT or B2F to display a file in Windows Explorer.")(princ)
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-9 22:41 , Processed in 0.555694 second(s), 81 queries .

© 2020-2025 乐筑天下

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