/// <summary> /// 添加连续导线 /// </summary> /// <param name="objectId"></param> private void AddPolyline(ObjectId objectId) { dxObjIdList = new Dictionary <ObjectId, LateralLineData>(); var lineString = ConvertGeometry.Instance.GetLineString(objectId); var lld = new LateralLineData { lineString = lineString, lineAngle = 0 }; dxObjIdList.Add(id, lld); }
/// <summary> /// 添加分段导线 /// </summary> /// <param name="objectId"></param> /// <param name="lineLayerID"></param> /// <param name="color"></param> /// <param name="lineWidth"></param> private void AddPolyline(ObjectId objectId, ObjectId lineLayerID, CADColor color, double lineWidth) { var ptcol = new Point2dCollection(); for (int i = 0; i < pline.NumberOfVertices; i++) { ptcol.Add(pline.GetPoint2dAt(i)); } PublicMethod.Instance.EraseObject(objectId); dxObjIdList = new Dictionary <ObjectId, LateralLineData>(); for (var i = 0; i < ptcol.Count - 1; i++) { var lineString = new LineString(); var pl = new Polyline(); pl.LayerId = lineLayerID; pl.Color = color; pl.Linetype = "Continuous"; var startPoint = ptcol[i]; var endPoint = ptcol[i + 1]; pl.AddVertexAt(pl.NumberOfVertices, new Point2d(startPoint.X, startPoint.Y), 0, lineWidth, lineWidth); lineString.Points.Add(new ElectronTransferModel.Geo.Point(new[] { startPoint.X, startPoint.Y, 0 })); pl.AddVertexAt(pl.NumberOfVertices, new Point2d(endPoint.X, endPoint.Y), 0, lineWidth, lineWidth); lineString.Points.Add(new ElectronTransferModel.Geo.Point(new[] { endPoint.X, endPoint.Y, 0 })); var id = PublicMethod.Instance.ToModelSpace(pl); var angle = PublicMethod.Instance.GetAngle(new Point2d(startPoint.X, startPoint.Y), new Point2d(endPoint.X, endPoint.Y)); var lld = new LateralLineData { lineString = lineString, lineAngle = angle }; if (i == 0) { lld.startObjID = id; } if (i == 1) { lld.endObjID = id; } dxObjIdList.Add(id, lld); } }