/// <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); } }
/// <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); } }
/// <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); } }
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); } } }