明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1610|回复: 3

Objectarx(求助)

[复制链接]
发表于 2009-9-12 14:54:00 | 显示全部楼层 |阅读模式

请教各位大虾:我是新手,在调试中出现以下错误,但是不知如何解决。所对应的程序是在教程上拷贝过来的!我用的是VC6.0和ObjectArx2002。

代码如下:

AcDbObjectId CCreateEnt::CreatePolygon(AcGePoint2d ptCenter, int number, double radius, double rotation, double width)
{
 AcGePoint2dArray points;
 double angle=*CCalculation::PI()/(double)number;
 for (int i = 0; i < number; i++)
 {
  AcGePoint2d pt;
  pt.x = ptCenter.x + radius * cos(i * angle);
  pt.y = ptCenter.y + radius * sin(i * angle);
  points.append(pt);
 }
 AcDbObjectId polyId = CCreateEnt::CreatePolyline(points, width);
 
 // 将其闭合
 AcDbEntity *pEnt;
 acdbOpenAcDbEntity(pEnt, polyId, AcDb::kForWrite);
 AcDbPolyline *pPoly=AcDbPolyline::cast(pEnt);
 if (pPoly!= NULL)
 {
  pPoly->setClosed(Adesk::kTrue);
 }
 pEnt->close();
 CModifyEnt::Rotate(polyId, ptCenter, rotation);
 return polyId;

}

错误如下:

D:\TEST\CreateEnts\CreateEnt.cpp(153) : error C2653: 'CCalculation' : is not a class or namespace name
D:\TEST\CreateEnts\CreateEnt.cpp(153) : error C2065: 'PI' : undeclared identifier
D:\TEST\CreateEnts\CreateEnt.cpp(153) : error C2100: illegal indirection
D:\TEST\CreateEnts\CreateEnt.cpp(166) : error C2065: 'AcDbPolyline' : undeclared identifier
D:\TEST\CreateEnts\CreateEnt.cpp(166) : error C2065: 'pPoly' : undeclared identifier
D:\TEST\CreateEnts\CreateEnt.cpp(166) : error C2653: 'AcDbPolyline' : is not a class or namespace name
D:\TEST\CreateEnts\CreateEnt.cpp(166) : error C2065: 'cast' : undeclared identifier
D:\TEST\CreateEnts\CreateEnt.cpp(166) : error C2106: '=' : left operand must be l-value
D:\TEST\CreateEnts\CreateEnt.cpp(169) : error C2227: left of '->setClosed' must point to class/struct/union
D:\TEST\CreateEnts\CreateEnt.cpp(172) : error C2653: 'CModifyEnt' : is not a class or namespace name
D:\TEST\CreateEnts\CreateEnt.cpp(172) : error C2065: 'Rotate' : undeclared identifier
执行 cl.exe 时出错.

发表于 2009-9-13 05:31:00 | 显示全部楼层
function XML() {
    [native code]
}
发表于 2009-9-13 12:35:00 | 显示全部楼层
1,注意把包含的目录加上
2,把实体关闭不必那么麻烦
  1. AcDbEntity *pEnt;
  2. if ( Acad::eOk != acdbOpenAcDbEntity(pEnt, polyId, AcDb::kForWrite) )
  3. return;
  4. pEnt->setClosed(TRUE)//我不记得具体的方法是什么,你自己去查查看
  5. pEnt->close();
  6. //之后的代码自己加!
复制代码
发表于 2009-9-15 16:45:00 | 显示全部楼层
头文件都没include进来,程序怎么识别啊?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-25 13:51 , Processed in 0.143442 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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