天气与日历 切换到窄版

 找回密码
 立即注册
中国膜结构网
十大进口膜材评选 十大国产膜材评选 十大膜结构设计评选 十大膜结构公司评选
查看: 69|回复: 0

‎使用 ObjectARX 确定外部参照层次结构‎

[复制链接]

该用户从未签到

主题

0

回帖

2912

积分

管理员

积分
2912
发表于 2024-6-22 09:46:18 | 显示全部楼层 |阅读模式
[code]// - AdskXrefGraph._XRG command

// Command to print Xref graph as a table

static void AdskXrefGraph_XRG(void)

{

    Acad::ErrorStatus es = Acad::eOk;

    AcDbXrefGraph graph;

    AcDbXrefGraphNode *node;



    TCHAR status[32];

    TCHAR nested[12];



    es = acedGetCurDwgXrefGraph(graph);



    acutPrintf(_T("Number of nodes: %d\n\n"), graph.numNodes());

    acutPrintf

    (

        _T("%3s%10s%15s%10s%12s\n"),

        _T("#"),

        _T("Name"),

        _T("Status"),

        _T("BTR ID"),

        _T("Nested")

    );



    for (int i=0; i<graph.numNodes(); i++)

    {

        node = graph.xrefNode(i);



        if (node != NULL)

        {

            switch(node->xrefStatus())

            {

            case AcDb::kXrfResolved :

                _stprintf(status, _T("Resolved\0"));

                break;

            case AcDb::kXrfUnloaded :

                _stprintf(status, _T("Unloaded\0"));

                break;

            case AcDb::kXrfUnreferenced :

                _stprintf(status, _T("Unreferenced\0"));

                break;

            case AcDb::kXrfFileNotFound :

                _stprintf(status, _T("File not found\0"));

                break;

            case AcDb::kXrfUnresolved :

                _stprintf(status, _T("Unresolved\0"));

                break;

            default :

                _stprintf

                (

                    status,

                    _T("Unknown(%d)\0"),

                    node->xrefStatus()

                );

            }



            if (node->btrId() == 0)

                _stprintf(nested, _T("(root dwg)\0"));

            else

                _stprintf(   

                            nested,

                            node->isNested() ? _T("Yes\0"):_T("No\0"));



            acutPrintf(_T("%3d%10s%15s%10d%12s\n"), i, node->name(), status, node->btrId(), nested);

        }

    }

}



// - AdskXrefGraph._PXRG command (do not rename)

// Command that prints the Xref graph as a tree

static void AdskXrefGraph_PXRG(void)

{

    AcDbXrefGraph graph;



    acedGetCurDwgXrefGraph(graph);



    if (graph.numNodes() <= 1)

        return;



    acutPrintf(_T("\n"));

    printNode(graph.hostDwg(), graph.numNodes(), 0);

}



static void printNode(AcDbXrefGraphNode *node, int numNodes, int depth)

{

    for (int i=1; i<= depth; i++)

        acutPrintf(_T("   |"));

    acutPrintf(_T("-> %s\n"), node->name());

    if (node->numOut() > 0)

    {

        AcDbXrefGraphNode *nextNode;

        for (int i=0; i<node->numOut(); i++)

        {

            nextNode = (AcDbXrefGraphNode *) node->out(i);

            if (nextNode != NULL)

                printNode(nextNode, numNodes, depth+1);

        }

    }

}[/code]

 

 

 

 

‎使用 ObjectARX 确定外部参照层次结构‎
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|中国膜结构网|中国膜结构协会|进口膜材|国产膜材|ETFE|PVDF|PTFE|设计|施工|安装|车棚|看台|污水池|中国膜结构网_中国空间膜结构协会

GMT+8, 2024-11-1 10:34 , Processed in 0.161458 second(s), 25 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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