CAD开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

ObjectARX 开发指南

符号表访问

2023-1-1 01:53| 发布者: admin| 查看: 297| 评论: 0|来自: AutoCAD

该函数按顺序扫描符号表条目,该函数检索特定条目。表名由字符串指定。有效名称为“”、“”、“”、“”和“”。这两个函数都以带有 DXF 组代码的结果缓冲区列表的形式返回条目。acdbTblNext()acdbTblSearch()LAYERLTYPEVIEWSTYLEBLOCKUCSVPORTAPPID

第一次调用返回指定表中的第一个条目。指定同一表的后续调用将返回连续条目,除非第二个参数 to() 不为零,在这种情况下,将再次返回第一个条目。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>)

第一个参数 to 是命名表的字符串,但第二个参数是命名表中特定符号的字符串。如果找到该符号,则返回其数据。此函数具有第三个参数,可用于协调操作。如果 ifis 为零,则调用对 没有影响,但 ifis 非零,则下一次调用返回由找到的条目后面的表条目。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.
            } 
} 


路过

雷人

握手

鲜花

鸡蛋

最新评论

QQ|Archiver|CAD开发者社区 ( 苏ICP备2022047690号-1 )

GMT+8, 2024-5-19 15:57

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部