关于Curve对象使用GetOffsetCurves(double)生成一个DBObjectCollection 对象
很奇怪,为什么是一个集合的对象,今天试了一下,生成的确实只得到一个偏移对象的实体。只需要提取第一个索引值即可。
//获得偏移的实体using (Transaction trans = db.TransactionManager.StartTransaction()){//原始polylinePolyline poly1 = (Polyline)trans.GetObject(plId, OpenMode.ForWrite);//偏移曲线DBObjectCollection dbCollection = poly1.GetOffsetCurves(lineDiatance);Polyline poly2 = (Polyline)dbCollection[0];//没有加入到图形数据库里面去的//db.addEntityToModelSpace(poly2);//将这两个曲线闭合int numVertices = poly2.NumberOfVertices;for (int i = 0; i < numVertices; i++){poly1.AddVertexAt(i + numVertices, poly2.GetPoint2dAt(numVertices - i - 1), poly2.GetBulgeAt(numVertices - i - 1), 0, 0);}poly1.ConstantWidth = width;poly1.LayerId = layerId;poly1.Closed = true;trans.Commit();}