找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1626|回复: 12

[求助] [求助]:全局变量取值并显示问题!

[复制链接]
发表于 2006-7-15 15:49:58 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
如果我在一个程序中定义了一个全局变量,那么在我首次使用这个程序的时候,该变量是存在还是不存在?如果存在,怎么把它值ptint出来?

在下次使用该命令时,该全局变量应该已经有了一个值,那么,如何把上一次赋的值print出来呢?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 40个

财富等级: 招财进宝

发表于 2013-8-25 16:50:37 | 显示全部楼层
本帖最后由 newer 于 2013-8-25 16:51 编辑
xtdwynij 发表于 2013-8-25 16:36
长老好,前二天我就找了晓东以前的贴子,发现不管是系统留下的五个全局变量还是字典都只能针对当前图档有 ...

你的变量只对你的图全局有效,就随图纸走,保存到扩展词典、扩展记录里面。

如果你想变量对所有图都有效,就保存到注册表,不过你图拿到别人的机器就没作用了。

所以,都需要你程序判断设置初值(如果不存在)。

评分

参与人数 1D豆 +3 收起 理由
xtdwynij + 3 热心帮忙奖!

查看全部评分

论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 1 反对 0

使用道具 举报

已领礼包: 6530个

财富等级: 富甲天下

发表于 2006-7-15 19:04:07 | 显示全部楼层
检查是否存在可以用IF函数,至于显示,可以直接使用变量名:

  1. (if aaa            ;aaa为变量名
  2.   (progn
  3.     (princ "\n变量aaa的值为:")     ;本人比较喜欢用princ
  4.     (princ aaa)
  5.   )
  6.   (setq aaa (get...
  7. )

点评

长老早上好!听说注册表也可以做这个的!只需输入一次,下一次重新打开图纸也一样不用输入就能调用值!不知道这一个要怎么搞啊?长老有时间指点下么?  详情 回复 发表于 2013-8-23 10:11
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-7-18 08:09:09 | 显示全部楼层
使用lisplink检查效果也很好。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 449个

财富等级: 日进斗金

发表于 2013-8-23 10:11:20 | 显示全部楼层
ll_j 发表于 2006-7-15 19:04
检查是否存在可以用IF函数,至于显示,可以直接使用变量名:

长老早上好!听说注册表也可以做这个的!只需输入一次,下一次重新打开图纸也一样不用输入就能调用值!不知道这一个要怎么搞啊?长老有时间指点下么?

点评

用词典保存数据  详情 回复 发表于 2013-8-23 11:11
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 6530个

财富等级: 富甲天下

发表于 2013-8-23 10:40:27 | 显示全部楼层
xtdwynij 发表于 2013-8-23 10:11
长老早上好!听说注册表也可以做这个的!只需输入一次,下一次重新打开图纸也一样不用输入就能调用值!不 ...

注册表的确可以存取全局变量,不过我不会,这是VLisp才能做的工作,我没有学,所以不能乱说。
保存全局变量有几种方法:
1.在程序里设置,适用于全局变量相对固定的情况,就类似设置一个常量,准确地说,这种方法都不能算保存全局变量。
2.根据图中信息计算全局变量,比如根据字高计算表格行距,准确地说,这有不能算保存全局变量。
3.利用文件,将设定的全局变量按一定格式写进文件,需要时读出,更新后视情况再写入更新,这种保存方法多一个文件,不太方便。
4.利用词典,ACAD的词典随图形文件保存,可以存取大量信息,是一个较好的保存全局变量的途径,但如果管理不完善,会积攒很多“垃圾”。
5.注册表,这是VLisp提供的方法,涉及系统注册表管理,肯定有优点有缺点,没用过,也不敢乱说。
6.随扩展数据保存,这种方法只能用于特殊用途的图形中,虽可以实现,但一般不采用。
7.利用系统变量USERI1~5、USERR1~5保存,随图形,使用方便,但容量太有限,并且冲突概率太高,所现在鲜有人用。

以上4、5、6条我没有用过,其它或多或少用过一些,不过现在基本不写程序了,也就不太研究了,如果你想研究,建议你研究一下“词典”。

点评

长老好,前二天我就找了晓东以前的贴子,发现不管是系统留下的五个全局变量还是字典都只能针对当前图档有郊,假如打开了一个新的图档。再查这个全局变量的值为nil ,我就想搞一个永久性的全局变量,比如:(setq aa  详情 回复 发表于 2013-8-25 16:36

评分

参与人数 1D豆 +5 收起 理由
xtdwynij + 5 热心帮忙奖!

查看全部评分

论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2013-8-23 11:11:11 | 显示全部楼层
xtdwynij 发表于 2013-8-23 10:11
长老早上好!听说注册表也可以做这个的!只需输入一次,下一次重新打开图纸也一样不用输入就能调用值!不 ...

用词典保存数据
  1. (if (vlax-ldata-list "mydata")
  2.    (setq key1 (vlax-ldata-get "mydata" "key1"))
  3.    (if (setq key1 (getreal "\nInput Data:"))
  4.      (vlax-ldata-put "mydata" "key1" key1)   
  5.    )
  6. )

点评

老朋友你好!词典好像只能对当前图档有郊吧?听说注册表可以搞一个永久性全局变量!正在学习当中…………  详情 回复 发表于 2013-8-25 16:18
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 604个

财富等级: 财运亨通

发表于 2013-8-23 11:51:33 | 显示全部楼层
本帖最后由 /db_自贡黄明儒_ 于 2013-8-23 12:01 编辑

安装ET后,命令lsp,显示变量
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2013-8-23 11:55:49 | 显示全部楼层
觉得还是用字典,扩展记录xrecord保存的比较好,随图纸走,保存注册表的限制是只能在你自己的机器上,另外还有一些安全软件捣乱的影响。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 449个

财富等级: 日进斗金

发表于 2013-8-25 16:18:57 | 显示全部楼层

老朋友你好!词典好像只能对当前图档有郊吧?听说注册表可以搞一个永久性全局变量!正在学习当中…………
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 449个

财富等级: 日进斗金

发表于 2013-8-25 16:36:41 | 显示全部楼层
ll_j 发表于 2013-8-23 10:40
注册表的确可以存取全局变量,不过我不会,这是VLisp才能做的工作,我没有学,所以不能乱说。
保存全局 ...

长老好,前二天我就找了晓东以前的贴子,发现不管是系统留下的五个全局变量还是字典都只能针对当前图档有郊,假如打开了一个新的图档。再查这个全局变量的值为nil  ,我就想搞一个永久性的全局变量,比如:(setq aa 5) 则aa的值不管打开多少图档查它的值都为5.听说注册表可以实现。正在学习当中…………。对于字典我刚学,只会读和取。还不会用一个表全部列出来呢。多谢Free-Lancer老朋友的指点!另外版主所说的用扩展数据,查了下以前的贴子,不会!汗!我对于扩展数据是一片黑啊。回去看看书再来!

点评

对打开的文档Autocad还有一个黑板空间,把变量放到这里,只要是打开的文档都可以访问 vl-bb-set  详情 回复 发表于 2013-8-25 17:00
你的变量只对你的图全局有效,就随图纸走,保存到扩展词典、扩展记录里面。 如果你想变量对所有图都有效,就保存到注册表,不过你图拿到别人的机器就没作用了。 所以,都需要你程序判断设置处值(如果不存在)  详情 回复 发表于 2013-8-25 16:50
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2013-8-25 17:00:41 | 显示全部楼层
xtdwynij 发表于 2013-8-25 16:36
长老好,前二天我就找了晓东以前的贴子,发现不管是系统留下的五个全局变量还是字典都只能针对当前图档有 ...

对打开的文档Autocad还有一个黑板空间,把变量放到这里,只要是打开的文档都可以访问 vl-bb-set

点评

多谢老朋友指点!我回去查查看!呵呵!  详情 回复 发表于 2013-8-25 21:36

评分

参与人数 1D豆 +5 收起 理由
xtdwynij + 5 热心帮忙奖!

查看全部评分

论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 449个

财富等级: 日进斗金

发表于 2013-8-25 21:36:47 | 显示全部楼层
Free-Lancer 发表于 2013-8-25 17:00
对打开的文档Autocad还有一个黑板空间,把变量放到这里,只要是打开的文档都可以访问 vl-bb-set

多谢老朋友指点!我回去查查看!呵呵!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-11-15 15:09 , Processed in 0.508907 second(s), 57 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表