设置文件?
我有许多lisp例程,其中一些可以从用户可以更改的一些设置中受益。如果我有一个在预定点画圆的基本程序。我可以让用户定义该点,直到用户更改它吗?可能像从包含点的lisp创建的文件中读取点和大小,以及其他例程的其他信息。 是的,这很简单。您可以使用getpoint函数完成示例。如果您想存储该点供以后使用(即使用该点,直到用户想要更改它),您可以通过以下方式实现:1)使用setenv函数
2) 将值写入例程读取的txt或csv文件。 因此,如果我用“标准设置”创建DCL,我可以将其保存到txt中,并让我的其他Lisp使用这些值(如果可用)。我应该使用什么方法/lidp函数?
或者,如果我使用setenv方法,值什么时候会丢失或重置? 您想使用一个DCL设置命令来更改多个例程?这将涉及一个csv或txt文件,每个例程都必须从其中的各行读取。我不推荐这种方法,因为我认为你要做的事情似乎过于复杂。为什么不编辑例程本身,使其在代码中都有一个设置部分?不需要处理dcl,而且它会使例程看起来更像标准命令。 我可以编辑例程以具有设置选项,但如何保存设置以在其他图形中使用?用户可能都想要不同的默认值。。 Setenv被写入注册表,然后它就不能“丢失”。它只为该个人用户而被记住。它可以通过让用户通过设置选项卡(提示使用initget)重置变量来重置。您也可以使用vl PROPAGE(传播到所有打开的图形),只需将变量设置为全局变量(我的首选选项是99%的时间,中断最少,但它仅为单个图形设置),也可以使用vl registry write。写入注册表时要小心,并谨慎使用。看看这个链接:http://www.cadtutor.net/forum/archive/index.php/t-34829.html “保存工作区”听起来像是一个更简单的答案,根据你想要的弹出和功能区菜单、快照、单元等设置。我们所有的用户8都按照他们想要的方式配置了东西。 我会调查的,谢谢。
Broncos我只使用initget强制用户选择,所以我不确定用它重置变量是什么意思。。。。 例如,可以使用initget使设置选项卡与代码关联(initget "Settings")
(setq sel (entsel "\nSelect the hatch you want to edit : "))然后可以使用条件语句,这样,如果用户点击“S”,它会为他们打开要更改的设置,就像AutoCAD命令的工作方式一样。 如果你想保存在一个特定的dwg中,你有两种使用“USERIx USERRx USERSx”的方法,你可以保存最多5个,User1-5整数,实数和字符串,这样一个中心点使用(setvar“USERS1”“0,0”),你也可以在一个更复杂但可以存储更多变量的dwg中拥有自己的扩展数据。
页:
[1]
2