Exemplo n.º 1
0
        /// <summary>
        ///     TODO
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void Button_Click(object sender, EventArgs e)
        {
            try
            {
                var item = (Button)sender;
                if (item == null)
                {
                    return;
                }

                if (!(item.Parent is TableLayoutPanel tLayout))
                {
                    return;
                }
                var bPos   = tLayout.GetCellPosition(item);
                var picBox = tLayout.GetControlFromPosition(bPos.Column - 1, bPos.Row);

                if (picBox == null)
                {
                    return;
                }

                var b = new Bitmap(picBox.ClientSize.Width, picBox.Height);
                picBox.DrawToBitmap(b, picBox.ClientRectangle);
                var layColor = b.GetPixel(_squareSize.Width / 2, _squareSize.Height / 2);
                b.Dispose();

                SetLayer(item.Text, Color.FromRgb(layColor.R, layColor.G, layColor.B));
            }
            catch (Exception exception)
            {
                Console.WriteLine(exception);
            }
        }
Exemplo n.º 2
0
 /// <summary>
 /// 在cad指定图层上添加多个电力符号
 /// </summary>
 /// <param name="_layerName">图层名称</param>
 /// <param name="_esymbs">多个电力符号对象</param>
 /// <param name="color"> </param>
 /// <param name="strLineType"> </param>
 /// <param name="lineWidth"> </param>
 /// <param name="xmlDbManager"> </param>
 /// <returns></returns>
 private static void AddElectronSymbol(string _layerName, IEnumerable <ElectronSymbol> _esymbs, CADColor color, string strLineType, double lineWidth, XmlDBManager xmlDbManager)
 {
     try
     {
         if (!_esymbs.Any())
         {
             return;
         }
         //添加图层
         var LayerId = DCadApi.addLayer(_layerName, CADColor.FromRgb(255, 255, 255));
         if (LayerId != ObjectId.Null)
         {
             foreach (var _ee in _esymbs)
             {
                 //保存原始的FID
                 _ee.OriginalG3e_Fid = _ee.G3E_FID;
                 if (_ee.KxType)
                 {
                     //其他馈线统一在 lock 图层上
                     var lockcolor = CADColor.FromRgb(51, 51, 51);
                     var lockId    = DCadApi.addLayer("lock", lockcolor);
                     AddElectronSymbol(lockId, _ee, lockcolor, strLineType, lineWidth, xmlDbManager);
                     continue;
                 }
                 //加载符号
                 AddElectronSymbol(LayerId, _ee, color, strLineType, lineWidth, xmlDbManager);
             }
         }
     }
     catch (Exception exx)
     {
         LogManager.Instance.Error(exx);
     }
 }
Exemplo n.º 3
0
        /// <summary>
        ///     TODO
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void ContextItem_Click(object sender, EventArgs e)
        {
            try
            {
                var item = (ToolStripItem)sender;
                if (item == null)
                {
                    return;
                }

                if (!(item.Owner is ContextMenuStrip owner))
                {
                    return;
                }
                if (!(owner.SourceControl is Button spButton))
                {
                    return;
                }
                if (!(spButton.Parent is TableLayoutPanel tLayout))
                {
                    return;
                }

                spButton.Text = item.Text;

                var bPos  = tLayout.GetCellPosition(spButton);
                var image = item.Image;

                var b        = new Bitmap(image);
                var layColor = b.GetPixel(image.Width / 2, image.Height / 2);
                b.Dispose();

                var newPicBox = new PictureBox
                {
                    Height = image.Height,
                    Image  = GetLayerImage(layColor),
                    Dock   = DockStyle.Fill
                };

                var curPicBox = tLayout.GetControlFromPosition(bPos.Column - 1, bPos.Row);
                tLayout.Controls.Remove(curPicBox);
                tLayout.Controls.Add(newPicBox, bPos.Column - 1, bPos.Row);
                tLayout.Refresh();

                SetLayer(spButton.Text, Color.FromRgb(layColor.R, layColor.G, layColor.B));
            }
            catch (Exception exception)
            {
                Console.WriteLine(exception);
            }
        }
Exemplo n.º 4
0
        private static void AddZxbzSymbol(XmlDBManager xmlDBManager, ElectronTransferModel.V9_4.Gg_gl_zxbz_n zxbzn)
        {
            var zxbzGeom = DBEntityFinder.Instance.GetZxbzGeomByG3e_fid(xmlDBManager, zxbzn.G3E_FID);

            if (zxbzGeom != null)
            {
                //获取坐标
                var point = new Point3d((zxbzGeom.G3E_GEOMETRY as Multipoint).Points[0].X,
                                        (zxbzGeom.G3E_GEOMETRY as Multipoint).Points[0].Y, 0);
                //获取角度
                var rotateAngle = Math.Atan2((zxbzGeom.G3E_GEOMETRY as Multipoint).Points[1].Y,
                                             (zxbzGeom.G3E_GEOMETRY as Multipoint).Points[1].X);

                //杂项标注图层
                var layerID = DCadApi.addLayer("杂项标注");
                //标注大小
                var lbHeight = 0.35 / MapConfig.Instance.earthscale;
                //标注颜色
                var color = CADColor.FromRgb(0, 0, 0);

                if (!string.IsNullOrEmpty(zxbzn.MIF_TEXT))
                {
                    Entity tEntity;
                    var    lb        = DBEntityFinder.Instance.GetLabel_LB(zxbzGeom);
                    var    alignment = DBEntityFinder.Instance.GetG3eAlignment(lb);
                    if (zxbzn.MIF_TEXT.Contains("\n"))
                    {
                        tEntity = SymbolLabel.Mtext(zxbzn.MIF_TEXT, point, rotateAngle, lbHeight, layerID);
                    }
                    else
                    {
                        tEntity = SymbolLabel.AddText(zxbzn.MIF_TEXT, point, rotateAngle, lbHeight, layerID, color,
                                                      alignment);
                    }
                    DCadApi.AddPinchPoint(tEntity);
                    DCadApi.AddLabelPinchPoint(tEntity);
                    //添加到当前模型中
                    var objectId = PublicMethod.Instance.ToModelSpace(tEntity);
                    zxbzGeom.IsErased   = false;
                    zxbzGeom.EntityType = EntityType.ZxLabel;
                    PublicMethod.Instance.AddDBSymbolFinder(objectId, zxbzGeom);
                }
            }
        }