本文简述如何利用Autolisp语言读取并调用宗地相关属性信息。
1、 绘制一块宗地并标注其属性信息,所示。
2、 在命令行输入(setq a (entsel)),回车后选择宗地线,结果所示。
3、 在命令行输入(setq b (car a))并回车,执行结果所示。
4、 在命令行输入(setq d (entget b))并回车,结果显示,但未包含宗地的相关属性代码信息。
5、 输入(setq c (entget b (*)))并回车,即可获取属性代码,操作所示。
6、 从图中可见,选中部分为整体,可通过(setq e (assoc -3 c))方式提取。
7、 调用内部项如TUFU时,先执行(setq f (cdr e)),以去除前面的-3。
8、 继续执行(setq g (assoc TUFU f))操作,具体效果所示。
9、 输入(cdr (assoc 1000 (cdr g))),结果所示。
10、 该表达式为:通过选择实体获取其扩展数据,查找键名为TUFU的子列表,再从中寻找组码1000对应的值,并返回其后续元素组成的列表。整个过程逐层提取并定位特定数据内容。
11、 以更新变量g为例,输入(subst (cons 1000 1.00-5.00) (assoc 1000 (cdr g)) g),所示。需注意,此操作仅修改了变量g的值,并未对宗地属性进行任何更改,属性数据保持原样,实际影响范围仅限于当前变量的临时调整。