- UID
- 341
- 积分
- 1337
- 精华
- 贡献
-
- 威望
-
- 活跃度
-
- D豆
-
- 在线时间
- 小时
- 注册时间
- 2002-1-11
- 最后登录
- 1970-1-1
|
楼主 |
发表于 2004-7-15 13:12:56
|
显示全部楼层
补充一个没有完成的函数
- /////////////////////////////////////////////////////////////////////////////////
- //# DOC.BEGIN
- //# 函数名称: oxaReversePolyline
- //# 函数编号: OXA
- //# 函数声明:
- //# 函数参数: ads_name entname
- //# 返回值: bool
- //# 函数分类:
- //# 函数功能:多义线点倒序,
- //# 注意事项: 没有完成
- //# 涉及的全局变量:
- //# 调用的OXARX函数:
- //# 函数算法:
- //# ACAD版本:R14 R15 R16
- //# 配合函数:
- //# 类似函数:
- //# 替换函数:
- //# 现存缺陷:没有完成 如果存在弧线会失败。2004.07.11修正!
- //# 示例程序:
- //# 测试要求:
- //# 历史记录: 2003年11月24日 , zjw ,完成
- //
- //# DOC.END
- bool oxaReversePolyline(ads_name entname)
- {
-
- char *strGet=new char[32];
- AcDbObjectId idPline;
- if (acdbGetObjectId(idPline, entname)!=Acad::eOk)
- {
- return false;
- }
- AcDbEntity* pEnt;
- if(Acad::eOk!=acdbOpenAcDbEntity(pEnt, idPline, AcDb::kForWrite))
- {
- return false;
- }
-
- //判断是不是曲线
- AcDbPolyline *cvPLine=AcDbPolyline::cast(pEnt);
- if (cvPLine==NULL)//acutPrintf("\n 选择的不是Polyline ");
- {
- pEnt->close();
- return false;
- }
- //
- unsigned int uiNumberTotal=cvPLine->numVerts();
- AcGePoint2d pt;//, ptBack;
- double dBulge;//, dBulgeBack;
- CArray<double ,double> daBulges;
- CArray<AcGePoint2d,AcGePoint2d> aptPts;
- daBulges.Add(0);
- for(unsigned int index=0;index<uiNumberTotal;index++)
- {
- cvPLine->getPointAt(index,pt );
- cvPLine->getBulgeAt(index,dBulge );
- daBulges.Add(0-dBulge);
- aptPts.Add(pt);
- }
-
- //oxaPrint(daBulges.GetSize(), "daBulges.GetSize()=");
- //oxaPrint(aptPts.GetSize(),"aptPts.GetSize()");
- for(unsigned int i=0;i<uiNumberTotal;i++)
- { //acutPrintf("==%d ->>%d " ,uiNumberTotal ,i);
- //acedGetInt("\nXX" ,&kk);
- cvPLine->setPointAt(i,aptPts.GetAt(uiNumberTotal-i-1));
- cvPLine->setBulgeAt(i, daBulges.GetAt(uiNumberTotal-i-1));
- }
- aptPts.RemoveAll();
- daBulges.RemoveAll();
- cvPLine->close();
- pEnt->close();
- return true;
- }
复制代码 |
|