- UID
- 321157
- 积分
- 0
- 精华
- 贡献
-
- 威望
-
- 活跃度
-
- D豆
-
- 在线时间
- 小时
- 注册时间
- 2005-9-9
- 最后登录
- 1970-1-1
|
楼主 |
发表于 2007-3-9 15:18:19
|
显示全部楼层
2楼的兄弟,我按照你的方法试了一下,但没成功。原因是我对ObjectARX里几种数据类型还没有详细了解。
我现在的代码如下:
float xco1, yco1, xco2, yco2; //xco1,yco1是直线起点的x,y坐标;xco2,yco2是直线终点的x,y坐标
int LineNumCount=0;
ads_name entres;
ads_point ptres;
AcGePoint3d startPoint();
AcGePoint3d endPoint();
acedGetInt("Please input the line number:",&LineNumCount); //输入待选取的直线总数,目前先设为1
for(int i=0; i<LineNumCount; i++)
{
if(acedEntSel("\nPlease select a line:",entres,ptres)==RTNORM)
{
acutPrintf("\nPicking is OK!");
AcDbObjectId Id1;
acdbGetObjectId(Id1, entres); //获得对象的ID
acutPrintf("\nGetObjectId is OK!");
AcDbObject *pObj;
acdbOpenAcDbObject(pObj, Id1, AcDb::kForRead, false); //根据ID打开对象,pObj指向对象的地址
pObj->isKindOf(AcDbLine::desc()); //这句话对吗?
//后面怎么写??
}
}
else
{
acutPrintf("\nPicking failed!");
}
}
写到isKindOf函数,不敢确定是否正确。
因为我在objectARX2004的arxdoc.chm中搜索AcDbLine::desc(),没有搜到相关内容。
另外,之后的AcDbLine *pLine=什么呢?
pLine->ID, startPoint, endPoint的准确写法是什么?怎么把startPt的x,y坐标传递给xco1和yco1呢?
你能否发一段比较详细的代码到我1楼帖子里的邮箱里?希望能把你2楼帖子里的“...”都换成具体的变量。或者你能否给我个邮箱,我和你私下交流一下?
我现在就卡在这里了,请帮个忙,不胜感激
也请大家帮我看看,谢谢! |
|