標籤:des style blog color width os
static void swtArxProject5plcopy(void) { // Add your code for command swtArxProject5.plcopy here //定義對象名和點 ads_name ename;ads_point pt; //如果沒有選擇到實體 if(acedEntSel(NULL,ename,pt)!=RTNORM) { return; } //定義並擷取ID AcDbObjectId id; acdbGetObjectId(id,ename); //定義並擷取實體 AcDbEntity *pEnt; acdbOpenObject(pEnt,id,AcDb::kForRead); //定義點集 AcGePoint2dArray pts; //判斷是否是多段線 if(pEnt->isKindOf(AcDbPolyline::desc())) { //如果是,定義多段線 AcDbPolyline *pPline=AcDbPolyline::cast(pEnt); //點數量 int num=pPline->numVerts(); //在點中迴圈 for (int i=0;i<num;i++) { AcGePoint2d pt; //取得每個點 pPline->getPointAt(i,pt); //將點加入到點集 pts.append(pt); } pPline->close(); } //關閉實體 pEnt->close(); //建立多段線 CreatePolyline(pts,1.0); }
AcDbObjectId CreatePolyline(AcGePoint2dArray pts,double width){int numVertex =pts.length();AcDbPolyline *pPoly=new AcDbPolyline(numVertex);for (int i=0;i<numVertex;i++){pPoly->addVertexAt(i,pts.at(i),0,width,width);}AcDbObjectId polyId;pPoly->setColorIndex(1);polyId=PostToModelSpace(pPoly);pPoly->close();return polyId;}