符号表访问 
该函数按顺序扫描符号表条目,并检索特定条目。表名称由字符串指定。有效名称为“”、“”、”这两个函数都以结果缓冲区列表的形式返回条目,其中包含 DXF 组代码。acdbTblNext()acdbTblSearch()LAYERLTYPEVIEWSTYLEBLOCKUCSVPORTAPPID 第一次调用返回指定表中的第一个条目。指定同一表的后续调用将返回连续的条目,除非 () 的第二个参数为非零,在这种情况下,将再次返回第一个条目。acdbTblNext()acdbTblNext()rewindacdbTblNext() 在下面的示例中,该函数检索当前图形中的第一个块(如果有),并调用该函数以列表格式显示该块的内容。getblock()printdxf() void getblock() 
{ 
    struct resbuf *bl, *rb; 
    bl = acdbTblNext("BLOCK", 1); // First entry  
    acutPrintf("\nResults from getblock():\n"); 
// Print items in the list as "assoc" items.
    for (rb = bl; rb != NULL; rb = rb->rbnext) 
        printdxf(rb); 
    // Release the acdbTblNext list.
    acutRelRb(bl); 
} 
从 BLOCK 表中检索到的条目包含一个 -2 组,该组包含块定义中第一个实体的名称。在具有名为 BOX 的单个块的图形中,对 的调用将打印以下内容(名称值因会话而异):getblock() getblock() 的结果: (0 .“块”) (2 .“盒子”) (70 . 0) (10 9.0 2.0 0.0) (-2 . <实体名称:40000126>) 的第一个参数是命名表的字符串,但第二个参数是命名表中特定符号的字符串。如果找到该符号,则返回其数据。此函数具有第三个参数 ,可用于协调 的操作。如果为零,则调用对 没有影响,但如果为非零,则下一个调用返回 找到的条目后面的表条目。acdbTblSearch()acdbTblSearch()setnextacdbTblNext()setnextacdbTblSearch()acdbTblNext()setnextacdbTblNext()acdbTblSearch() 该选项在处理 VPORT 符号表时特别有用,因为特定视口配置中的所有视口都具有相同的名称(例如 *ACTIVE)。setnext 请记住,如果在 TILEMODE 关闭时访问 VPORT 符号表,则在重新打开 TILEMODE 之前,更改不会产生任何可见效果。(TILEMODE 可通过 SETVAR 命令或直接输入其名称来设置。不要将 VPORT 符号表与视口实体混淆。 若要在名为 4VIEW 的配置中查找和处理每个视口,可以使用以下代码: struct resbuf *v, *rb; 
v = acdbTblSearch("VPORT", "4VIEW", 1); 
while (v != NULL} { 
    for (rb = v; rb != NULL; rb = rb->rbnext) 
        if (rb->restype == 2) 
            if (strcmp(rb->resval.rstring, "4VIEW") == 0) { 
                .// Process the VPORT entry  
                . 
                . 
                acutRelRb(v); 
 		// Get the next table entry.
                v = acdbTblNext("VPORT", 0); 
            } else { 
                acutRelRb(v); 
                v = NULL; // Break out of the while loop.
                break; // Break out of the for loop.
            } 
} 
 父主题: | 
|Archiver|CAD开发者社区
( 苏ICP备2022047690号-1   苏公网安备32011402011833)
GMT+8, 2025-11-4 23:20
Powered by Discuz! X3.4
Copyright © 2001-2021, Tencent Cloud.