- 积分
- 274
- 明经币
- 个
- 注册时间
- 2004-6-2
- 在线时间
- 小时
- 威望
-
- 金钱
- 个
- 贡献
-
- 激情
-
|
发表于 2004-7-25 22:19:00
|
显示全部楼层
//我所编写的一部分,AcDb2dPolyline转换重要的是BULG
//AcDbLine很简单,只是取两端点坐标,从略
if (pobj->isKindOf(AcDb2dPolyline::desc())) { AcDb2dPolyline *pLy2d; AcDbObjectIterator *pVertIter; pLy2d=AcDb2dPolyline::cast(pobj); pVertIter=pLy2d->vertexIterator(); AcDb2dVertex *pVertex; for(vertnum=0;!pVertIter->done();vertnum++,pVertIter->step()) { vertId=pVertIter->objectId(); acdbOpenObject(pVertex,vertId,AcDb::kForRead); pt=pVertex->position(); if (vertnum==0) { linewidth=pVertex->endWidth(); } mypt.append(pt); pVertex->close(); } pLy2d->upgradeOpen(); pLy2d->erase(Adesk::kTrue); pLy2d->close(); delete pVertIter; }
for(i=0;i<vertnum;i++) { curpt=mypt.at(i); pkpt.x=curpt.x; pkpt.y=curpt.y; bg=0; if (i>0 && i<vertnum-1) { //bgstart bgend--BULG求法从略
} pPoly->addVertexAt(i,pkpt,bg); } if (vertnum>2) { pkpt.x=startpt.x; pkpt.y=startpt.y; pPoly->addVertexAt(0,pkpt); pPoly->setBulgeAt(1,bgstart); }
|
评分
-
查看全部评分
|