设置默认值
我的DCL/Lisp文件中有许多弹出列表,我想将其中一些设置为默认值。然而,当窗口第一次打开时,我看到了所需的值,但随后它立即变为popup_列表的“0”值。以下是DCL中我认为相关的部分:
:popup\u列表{
key=“zip_2”;
label=“位置2:”;
值=“1”;
宽度=35;
}
这是lisp文件的一部分(我认为也是相关的):
(action\u tile“zip\u 2”“(setq slot2$value)”)
(if(=zip“”)(progn(setq zip“”))
(setq-zip(strcase-zip))
(set\u tile“zip\u 2”zip)
(if(=slot2 nil)(progn(setq slot2“1”))
后来在节目中我得到了
右侧默认值。 在dcl函数中,使用此设置平铺。它使用vl函数,因此请记住在代码前面添加(vl load com)。在本例中,变量
Gb:在列表中,比例设置为默认值25。记住,0是第一项,1是第二项,等等。
不要声明变量,这样当您仍在acad会话中时,它就会记住该值。
在dcl示例代码中,只需使用以下所示内容,不显示任何默认值。
dcl:
:popup_list {
label = "Scale of drawing";
key = "Gb:Scale" ;
}//popup list
在示例dcl函数中:
(setq Gb:Scale (nth (read (get_tile "Gb:Scale"))Gb:ScaleList);add this line before "done dialog"
;add these lines after(new_dialog etc....
(setq Gb:ScaleList '(1 2 5 10 20 25 50 100 200 250 500 750 1000 1250 2000 2500 5000 ))
(start_list "Gb:Scale")
(mapcar 'add_list (mapcar 'itoa Gb:ScaleList))
(end_list)
(if (member Gb:Scale Gb:ScaleList);see if the global variable is an available option in the list
(set_tile "Gb:Scale" (rtos (vl-position Gb:Scale Gb:ScaleList) 2 0));if it is, set it as default
(set_tile "Gb:Scale" "5");if not, set the default to 25 (item 5 in list)
);if
;add this line to your action tile area
(action_tile "Gb:Scale" etc......(you will have to edit to suit)
希望这有帮助。。。。旧金山
编辑:看看你的代码,我真的不确定你是否有一个项目列表可供选择。也许你只有两样东西?
在这种情况下,为什么要使用弹出列表?单选按钮或勾选框更合适。 好吧,你失去了我。我从来没有使用过GB:scale,我看不懂它,也不知道它实际上在哪里设置默认值。该列表中有9个项目,用于6个不同的pupup_列表,然后我有另一个大约20个项目的列表。由于我需要在多个地方为不同的默认值使用此代码,所以我希望在编辑之前更好地理解它。
这是示例代码-您将不得不做一些工作。如果你重读我写的内容,你会发现我使用了“Gb:scale”作为示例变量-给定的数字列表需要编辑以适应。
再次,如果重新阅读我的第一篇文章,这一行将设置默认值:
(set_tile "Gb:Scale" "5");if not, set the default to 25 (item 5 in list)
在我的示例中,这个数字(5)设置了弹出列表中的默认值(set_tile“Gb:Scale”“5”)
在这种情况下,项目为“25”
什么列表?我猜你在说你的名单?
如果有9项,则列出这9项,如示例代码所示
你似乎没有回答我的问题,你的列表中有多少价值观-或者你没有在第一篇文章中给出列表。
如果没有价值清单,你想要实现什么是令人困惑的。
也许勾选框或单选按钮会更好,因为看起来只有2个值。
当有三个或更多值可供选择时,使用弹出窗口。 哇!对于一个应该在这里有帮助的地方来说,这个回复中有很多态度。如果我不理解你的例子,重复这个例子并不能真正阐明多少,我很确定在大多数计数系统中,9大于3,所以当我说列表上有9个项目用于6个不同的弹出列表时,9个值通常大于3个值。我不知道你为什么一直假设我只有2个值可供选择,除非是因为我向你展示的那一部分默认了列表中的第二项。
我试图帮助你,但是你没有清楚地解释你想要什么,这让你很难做到?只是在你的第二篇文章中,你告诉我你的列表中有9项。你的名单在哪里?
附件是一个带有两个默认弹出列表的简单程序。他们会记得上次的选择。我对你关注的领域发表了评论。
运行程序并仔细研究。
祝你好运
BLKLIB。dcl
BLKLIB。lsp 瓦尔哈兰,
请注意,本程序中使用了两个全局变量。它们是全球性的,因此在项目结束时不会失去价值。
他们是:
BLKLIB:SYM ~块库,符号全局变量
和
BLKLIB:BSF ~块库,块比例因子全局变量
它们以这种方式书写是独一无二的。由于变量是全局变量,因此可能会与可能使用同一变量的其他程序发生冲突。
我只需先添加程序名,然后添加冒号,最后添加本地化变量名。由于变量是全局变量,它将记住其最后一个值。
与全局变量一起使用的局部变量包括:
SYM表示符号,BSF表示块比例因子。
这些变量被声明,并在程序完成时失去其值。
我想我会给你解释一下,这样你可以用它来比较结果。
页:
[1]