乐筑天下

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

[编程交流] 设置默认值

[复制链接]

1

主题

3

帖子

2

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 10:16:33 | 显示全部楼层 |阅读模式
我的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”))
后来在节目中我得到了
右侧默认值。
回复

使用道具 举报

55

主题

243

帖子

188

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
275
发表于 2022-7-6 10:33:02 | 显示全部楼层
在dcl函数中,使用此设置平铺。它使用vl函数,因此请记住在代码前面添加(vl load com)。在本例中,变量
Gb:在列表中,比例设置为默认值25。记住,0是第一项,1是第二项,等等。
不要声明变量,这样当您仍在acad会话中时,它就会记住该值。
在dcl示例代码中,只需使用以下所示内容,不显示任何默认值。
 
dcl:
  1. :popup_list {
  2.   label = "Scale of drawing  ";
  3.   key = "Gb:Scale" ;
  4.   }//popup list

 
在示例dcl函数中:
  1. (setq   Gb:Scale     (nth (read (get_tile "Gb:Scale"  ))Gb:ScaleList);add this line before "done dialog"
  2. ;add these lines after  (new_dialog etc....
  3. (setq Gb:ScaleList '(1 2 5 10 20 25 50 100 200 250 500 750 1000 1250 2000 2500 5000 ))
  4. (start_list "Gb:Scale")
  5. (mapcar 'add_list (mapcar 'itoa Gb:ScaleList))
  6. (end_list)
  7. (if (member Gb:Scale Gb:ScaleList);see if the global variable is an available option in the list
  8. (set_tile "Gb:Scale" (rtos (vl-position Gb:Scale Gb:ScaleList) 2 0));if it is, set it as default
  9. (set_tile "Gb:Scale" "5");if not, set the default to 25 (item 5 in list)
  10. );if
  11. ;add this line to your action tile area
  12. (action_tile "Gb:Scale" etc......(you will have to edit to suit)

 
希望这有帮助。。。。旧金山
 
编辑:看看你的代码,我真的不确定你是否有一个项目列表可供选择。也许你只有两样东西?
在这种情况下,为什么要使用弹出列表?单选按钮或勾选框更合适。
回复

使用道具 举报

1

主题

3

帖子

2

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 10:41:16 | 显示全部楼层
好吧,你失去了我。我从来没有使用过GB:scale,我看不懂它,也不知道它实际上在哪里设置默认值。该列表中有9个项目,用于6个不同的pupup_列表,然后我有另一个大约20个项目的列表。由于我需要在多个地方为不同的默认值使用此代码,所以我希望在编辑之前更好地理解它。
回复

使用道具 举报

55

主题

243

帖子

188

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
275
发表于 2022-7-6 10:43:41 | 显示全部楼层
 
 
这是示例代码-您将不得不做一些工作。如果你重读我写的内容,你会发现我使用了“Gb:scale”作为示例变量-给定的数字列表需要编辑以适应。
 
 
 
再次,如果重新阅读我的第一篇文章,这一行将设置默认值:
  1. (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个值。
当有三个或更多值可供选择时,使用弹出窗口。
回复

使用道具 举报

1

主题

3

帖子

2

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 10:55:37 | 显示全部楼层
哇!对于一个应该在这里有帮助的地方来说,这个回复中有很多态度。如果我不理解你的例子,重复这个例子并不能真正阐明多少,我很确定在大多数计数系统中,9大于3,所以当我说列表上有9个项目用于6个不同的弹出列表时,9个值通常大于3个值。我不知道你为什么一直假设我只有2个值可供选择,除非是因为我向你展示的那一部分默认了列表中的第二项。
回复

使用道具 举报

55

主题

243

帖子

188

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
275
发表于 2022-7-6 10:59:49 | 显示全部楼层
 
我试图帮助你,但是你没有清楚地解释你想要什么,这让你很难做到?只是在你的第二篇文章中,你告诉我你的列表中有9项。你的名单在哪里?
回复

使用道具 举报

32

主题

1166

帖子

1146

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
159
发表于 2022-7-6 11:11:24 | 显示全部楼层
 
 
附件是一个带有两个默认弹出列表的简单程序。他们会记得上次的选择。我对你关注的领域发表了评论。
 
运行程序并仔细研究。
祝你好运
BLKLIB。dcl
BLKLIB。lsp
回复

使用道具 举报

32

主题

1166

帖子

1146

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
159
发表于 2022-7-6 11:17:18 | 显示全部楼层
瓦尔哈兰,
 
请注意,本程序中使用了两个全局变量。它们是全球性的,因此在项目结束时不会失去价值。
 
他们是:
BLKLIB:SYM ~块库,符号全局变量

BLKLIB:BSF ~块库,块比例因子全局变量
 
它们以这种方式书写是独一无二的。由于变量是全局变量,因此可能会与可能使用同一变量的其他程序发生冲突。
我只需先添加程序名,然后添加冒号,最后添加本地化变量名。由于变量是全局变量,它将记住其最后一个值。
 
与全局变量一起使用的局部变量包括:
SYM表示符号,BSF表示块比例因子。
 
这些变量被声明,并在程序完成时失去其值。
 
我想我会给你解释一下,这样你可以用它来比较结果。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-6 20:51 , Processed in 0.648138 second(s), 68 queries .

© 2020-2025 乐筑天下

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