符号表用于将非图形信息存储在图形的数据库中。 图形数据库中存在的符号表包括:
可以使用以下函数操作符号表条目:
符号表限制以下规则适用于符号表:
访问符号表条目该函数按顺序扫描符号表条目,该函数检索特定条目。符号表名称由字符串指定。这两个函数都返回列表,其中包含与返回的实体数据类似的 DXF 组代码。tblnexttblsearchentget 第一次调用返回指定符号表中的第一个条目。指定同一表的后续调用将返回连续条目,除非第二个参数 to(rewind) 不为零,在这种情况下,将再次返回第一个条目。tblnexttblnexttblnext 在下面的示例代码中,该函数检索当前图形中第一个块(如果有)的符号表条目,然后以列表格式显示它。GETBLOCK (defun C:GETBLOCK (/ blk ct) (setq blk (tblnext "BLOCK" 1)) ; Gets the first BLOCK entry. (setq ct 0) ; Sets ct (a counter) to 0. (textpage) ; Switches to the text screen. (princ "\nResults from GETBLOCK: ") (repeat (length blk) ; Repeats for the number of ; members in the list. (print (nth ct blk)) ; Prints a new line, then each ; list member. (setq ct (1+ ct)) ; Increments the counter by 1. ) (princ) ; Exits quietly. ) 从 BLOCK 表中检索的条目包含一个 -2 组代码,该组代码包含块定义中第一个实体的名称。如果块为空,这是块的 Endblk 实体的名称,在占用的块上永远不会看到。在具有名为 BOX 的单个块的图形中,调用 将显示以下内容。(名称值因会话而异。GETBLOCK Results from GETBLOCK: (0 . "BLOCK") (2 . "BOX") (70 . 0) (10 9.0 2.0 0.0) (-2 . <Entity name: 40000126>) 与一样,第一个参数 to 是命名符号表的字符串,但第二个参数是命名表中特定符号表条目的字符串。如果找到符号表条目,则返回其数据。此函数具有第三个参数 setnext,可用于协调操作。如果setnext为 nil,则调用对 没有影响,但如果setnext为 non-,则下一次调用返回符号表条目后面的符号表条目。tblnexttblsearchtblsearchtblnexttblsearchtblnextniltblnexttblsearch setnext选项在处理 VPORT 符号表时很有用,因为特定视口配置中的所有视口都具有相同的名称(例如 *ACTIVE)。如果在关闭 AutoCAD TILEMODE 系统变量时访问 VPORT 符号表,则在打开“平铺模式”之前,任何更改都不会产生可见效果。不要将 VPORT 符号表描述的 VPORT 与图纸空间视口实体混淆。 以下处理 4VIEW 配置中的所有视口: (setq v (tblsearch "VPORT" "4VIEW" T)) ; Finds first VPORT entry. (while (and v (= (cdr (assoc 2 v)) "4VIEW")) .. ; ... Processes entry ... . (setq v (tblnext "VPORT")) ; Gets next VPORT entry. ) |
|Archiver|CAD开发者社区 ( 苏ICP备2022047690号-1 )
GMT+8, 2024-6-10 20:19
Powered by Discuz! X3.4
Copyright © 2001-2021, Tencent Cloud.