明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 778|回复: 5

[经验] 关于lsp中的符号(symbol)

[复制链接]
发表于 2021-10-27 10:33 | 显示全部楼层 |阅读模式
本帖最后由 baitang36 于 2021-10-27 11:04 编辑

符号(symbol)到底是个什么?
从底层进行了一点研究,发现它是一切变量和函数的基础,也就是载体。变量和函数都是通过符号来操作的。
举个简单的例子,系统函数princ
符号是 'princ  ,(type 'princ)返回SYM
符号的名字是“princ”这个字符串
符号的值,也就是函数pinc 的内存地址: #<SUBR @0ea0530c PRINC>

独立名称空间,就是把符号分别存放在不同地方。程序不能直接使用不是自己所属空间的符号。
别的空间的符号,可以通过export来访问。

通常情况下,用户程序只能使用autolisp空间的符号。
系统的保留函数(Undocument Function)是属于lpp空间,如果想要使用保留函数 ,需要解决一个跨空间的问题。


"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2021-10-27 11:27 | 显示全部楼层
(setq hh +)
(hh 1 2)  ==>  3


(if T 1 2)  ==> 1

(setq T NIL)
(if T 1 2)  ==> 2

(= 1 1)     ==> T
(= 1 2)     ==> NIL

(equal T (= 1 1))  ==> NIL

反正我是搞不明白这之间的关系了
发表于 2021-10-27 11:32 | 显示全部楼层
用现有的Alisp和Vlisp函数做不到的。
如果不用写出文件方式处理,只能借助其他语言。
 楼主| 发表于 2021-10-28 09:42 | 显示全部楼层
不死猫 发表于 2021-10-27 11:32
用现有的Alisp和Vlisp函数做不到的。
如果不用写出文件方式处理,只能借助其他语言。

没发现修改符号值的保留函数
发表于 2021-10-28 09:52 | 显示全部楼层
baitang36 发表于 2021-10-28 09:42
没发现修改符号值的保留函数

改符号值,用set啊
 楼主| 发表于 2021-10-28 10:50 | 显示全部楼层
nzl1116 发表于 2021-10-28 09:52
改符号值,用set啊

对啊,把保留函数的值set到一个正常的变量中
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-17 19:27 , Processed in 0.282843 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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