明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2001|回复: 6

[求助]关于atoms-family 函数的讨论

[复制链接]
发表于 2004-5-26 14:35:00 | 显示全部楼层 |阅读模式

关于所有的全局变量符号名可以用函数: atoms-family 获得
返回由当前已定义的符号组成的一个表
(atoms-family format [symlist])
参数
format
值为 0 或 1 的整数,它用于指定 atoms-family 函数返回符号名的格式:
0 以表的形式返回符号名
1 以字符串表的形式返回符号名
symlist
用于指定用户想搜索的符号名的字符串表。
返回值
符号表。如果指定了 symlist,atoms-family 返回当前定义的指定符号,对那些没有定义的符号返回 nil。
样例
命令:(atoms-family 0)
(BNS_PRE_SEL FITSTR2LEN C:AI_SPHERE ALERT DEFUN C:BEXTEND REM_GROUP
B_RESTORE_SYSVARS BNS_CMD_EXIT LISPED FNSPLITL...
下列代码检验符号 CAR、CDR 和 XYZ 是否已被定义并将其以字符串表形式返回:
命令:(atoms-family 1 '("CAR" "CDR" "XYZ"))
("CAR" "CDR" nil)
这个返回的字符串表表明符号 XYZ 没有被定义。
在论坛中,有位高手告诉我:
atoms-family 函数通过这个函数,在和 type 配合,可以得到所有的变量名,在用 eval 函数,可以得到变量的值。

但是我现在还是搞不懂如何实现,知道的变量名可以同感eval获得变量的值,但是如何获得全部变量呢?
是这个命令吗?
atoms-family 0)
我怎么每次返回的东西是一样,只是顺序有所改变,还是我操作有误。先谢谢了

发表于 2004-5-26 15:07:00 | 显示全部楼层
指令: (SETQ LUNG 5)
5 指令: (EVAL (CAR (MEMBER 'LUNG (ATOMS-FAMILY 0))))
5 指令: !LUNG
5
 楼主| 发表于 2004-5-26 15:23:00 | 显示全部楼层
不是求值,是想获得所有的全局变量名,该如何操作。
发表于 2004-5-26 15:54:00 | 显示全部楼层

传回目前已定义符号的串行

(atoms-family format [symlist])

全局变量名是符号的一种

(atoms-family 0) 传回目前已定义符号的串行中包含所有全局变量名

 楼主| 发表于 2004-5-26 16:09:00 | 显示全部楼层
(atoms-family 0) 在我这里传回的vla开头的变量,而我自己的函数的变量没有出现,这是怎么回事,在你的机子上试过吗?,我是先启动cad,用(atoms-family 0) 获得变量列表,然后运行chtxt,再运行(atoms-family 0) ,列出的变量是一样的,只是前几个变量换到了后面而已。
发表于 2004-5-26 16:31:00 | 显示全部楼层

注意atoms-family 0) 傳回目前已定義符號的串列中包含所有總體變數名

你有看懂2樓表示甚麼嗎?

指令: (defun c:123 () (princ 123))

C:123

指令: (CAR (MEMBER 'C:123 (ATOMS-FAMILY 0)))

C:123

 楼主| 发表于 2004-5-26 16:48:00 | 显示全部楼层
谢谢龙龙仔,我明白了,是不是有autocad的文本窗口显示有限,有些变量显示不出来了,设置选择方式,就可以显示出来了,是不是这样啊?


       


谢谢了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-28 06:27 , Processed in 0.232891 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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