明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1331|回复: 2

lilin,帮我解答一下这个问题,好吗?

[复制链接]
发表于 2003-10-25 22:06:00 | 显示全部楼层 |阅读模式
lilin,网上邮箱打不开!(arx2000)
通过检索“printdxf”得到一份帮助代码,但我在调试时报错:
An ObjectARX application could retrieve and print the definition data for an entity by using the following two functions. (The printdxf() function does not handle extended data.)

void getlast()
{
    struct resbuf *ebuf, *eb;
    ads_name ent1;

    acdbEntLast(ent1);
    ebuf = acdbEntGet(ent1);

    eb = ebuf;

    acutPrintf("\nResults of entgetting last entity\n");

// Print items in the list.
    for (eb = ebuf; eb != NULL; eb = eb->rbnext)
        printdxf(eb);          //printdxf此函数没有类型定义????报错一

// Release the acdbEntGet() list.
    acutRelRb(ebuf);
}

int printdxf(eb)
struct resbuf *eb;      //这句就更不清楚是怎么回事了?又是int,又是struct

                               //而且一个指针*eb没有赋值
   
{
    int rt;

    if (eb == NULL)
        return RTNONE;

    if ((eb->restype >= 0) && (eb->restype <= 9))
        rt = RTSTR ;
    else if ((eb->restype >= 10) && (eb->restype <= 19))
        rt = RT3DPOINT;
    else if ((eb->restype >= 38) && (eb->restype <= 59))
        rt = RTREAL ;
    else if ((eb->restype >= 60) && (eb->restype <= 79))
        rt = RTSHORT ;
    else if ((eb->restype >= 210) && (eb->restype <= 239))
        rt = RT3DPOINT ;
    else if (eb->restype < 0)
// Entity name (or other sentinel)
        rt = eb->restype;
    else
        rt = RTNONE;

    switch (rt) {

    case RTSHORT:
        acutPrintf("(%d . %d)\n", eb->restype,
            eb->resval.rint);
        break;

    case RTREAL:
        acutPrintf("(%d . %0.3f)\n", eb->restype,
            eb->resval.rreal);
        break;

    case RTSTR:
        acutPrintf("(%d . \"%s\")\n", eb->restype,
            eb->resval.rstring);
        break;

    case RT3DPOINT:
        acutPrintf("(%d . %0.3f %0.3f %0.3f)\n",
            eb->restype,
            eb->resval.rpoint[X], eb->resval.rpoint[Y],
            eb->resval.rpoint[Z]);
        break;

    case RTNONE:
        acutPrintf("(%d . Unknown type)\n", eb->restype);
        break;

    case -1:
    case -2:  
// First block entity
        acutPrintf("(%d . <Entity name: %8lx>)\n",
            eb->restype, eb->resval.rlname[0]);
    }

    return eb->restype;
}
我傻了,能帮我解答一下吗?我想提取形位公差的数据信息,还有其他样例吗?
形位公差的restype =1
发表于 2003-10-27 10:14:00 | 显示全部楼层
int printdxf(eb)
struct resbuf *eb

这是一种老式的C风格.
建议用以下, int printdxf(struct resbuf *eb) 代替
 楼主| 发表于 2003-10-27 21:12:00 | 显示全部楼层
谢谢斑竹,
我今天调试,结果出来了!将形位公差图元中所有的信息都提取出来了
不错不错!happy...........................
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-25 20:40 , Processed in 0.174416 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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