예제 #1
0
        /// <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);
        }
예제 #2
0
        /// <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);
            }
        }