BlackBox 发表于 2022-7-5 23:04:41

老掉牙,不过是一句好话!

因此,我试图了解到底是如何创建自定义TypeLib的(由该线程提示),意外地发现了这个很棒(现在没有文档记录)的编译器函数,名为PRAGMA,它使您能够保护/取消保护LISP符号。
 
你们中的许多人可能早在2000年初就知道这一点,但我就像一个刚找到他们最喜欢的新玩具的孩子!在论坛中搜索没有结果,所以我想与大家分享。
 
例如,如果您有一些常用的子函数或自定义变量,PRAGMA将使您能够保护VLIDE中的符号(使其变为蓝色):
 

(setq acadApp (vlax-get-acad-object))
(setq activeDoc (vla-get-activedocument acadApp))
(defun FOO () "FOO")

(pragma '((protect-assign acadApp activeDoc FOO)))
。。。请注意,加载pragma语句后,符号“acadApp”、“activeDoc”和“FOO”变为蓝色。
 
要取消对符号的保护,只需加载以下pragma语句:
 
你可以将protect语句添加到你的ACADDOC中。lsp,甚至*。MNL文件。这对于定制应用程序来说甚至是件好事。
 
享受

MSasu 发表于 2022-7-5 23:08:07

这真的很棒!!!非常感谢您的分享!
 
很长一段时间以来,我一直在想为什么有些图书馆的符号在编辑器中被识别出来。。。
 
当做
米尔恰

ketxu 发表于 2022-7-5 23:12:11

非常感谢你。当我将其粘贴到命令行中时,我显示为零,因此它对CAD有效。但在vlide,什么都没有改变?

MSasu 发表于 2022-7-5 23:16:18

无论是在命令提示符下还是在VLisp编辑器中加载代码,它都适用于我。发现一个问题,如果包含它的文件已编译,则该问题似乎不起作用。
 
当做
米尔恰

BlackBox 发表于 2022-7-5 23:17:33

我很高兴这对你有帮助。。。不幸的是,这个函数虽然具有功能性,但不再有文档记录。显然,这个函数的最后一个已知文档来自我还没有找到的旧“Vital LISP”手册。
 
至于编译时无法工作的代码,这就是我建议使用ACADDOC的原因。lsp,或*。MNL,尽管我还没有测试两者。

troggarf 发表于 2022-7-5 23:22:49

冷端RenderMan
~格雷格

BlackBox 发表于 2022-7-5 23:26:02

 
谢谢,特洛加夫。

troggarf 发表于 2022-7-5 23:27:44

不得不爱上星期五(又名“啤酒日”)
~格雷格

BlackBox 发表于 2022-7-5 23:31:17

顺便说一句,troggarf-尼斯Wordpress博客;上个周末我刚开始安装。

troggarf 发表于 2022-7-5 23:35:13

谢谢
当链接准备好时,不要忘记发布链接。我会把它添加到我的资源列表中,(也称为闲逛的地方…)
我刚开始一份新工作,实际上有更多的时间在这里和沼泽地闲逛,这真的很有用。我最近没能接通Prager。。。
~格雷格
页: [1] 2
查看完整版本: 老掉牙,不过是一句好话!