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); } } }
private void AddZxbz() { var ssdw = ComBox_SSDW.Text; var bzlx = ComBox_BZLX.Text; var bzText = TXT_BZNR.Text.Trim(); if (string.IsNullOrEmpty(bzlx)) { MessageBox.Show("标注类型不能为空!", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } if (!string.IsNullOrEmpty(bzText)) { //if (!DBEntityFinder.Instance.HasZxbz(entityArgs.g3eObject.G3E_FID.ToString())) //{ isInsert = true; Btn_Add.Enabled = false; //杂项标注图层 var layerID = DCadApi.addLayer("杂项标注"); //标注大小 var lbHeight = 0.35 / MapConfig.Instance.earthscale; //标注颜色 var color = Autodesk.AutoCAD.Colors.Color.FromRgb(0, 0, 0); ViewHelper.zxLabelManagerPs.KeepFocus = false; Entity mText; if (bzText.Contains("\n")) { mText = SymbolLabel.Mtext(bzText, Point3d.Origin, 0, lbHeight, layerID); //if (!PublicMethod.Instance.MultTextStyleId.IsNull) // ((MText)mText).TextStyleId = PublicMethod.Instance.MultTextStyleId; } else { mText = SymbolLabel.AddText(bzText, Point3d.Origin, 0, lbHeight, layerID, color); } if (BlockJig.Jig(mText, true)) { isInsert = false; DCadApi.AddPinchPoint(mText); DCadApi.AddLabelPinchPoint(mText); //添加到当前模型中 var objId = PublicMethod.Instance.ToModelSpace(mText); //转换成空间坐标 var mpt = ConvertGeometry.Instance.GetMultipoint(objId); ElectronSymbol pt = null; //添加杂标数据 var result = InsertDBEntity.InsertZXBZ(entityArgs.g3eObject.G3E_FID, bzText, bzlx, ssdw, mpt, ref pt); if (pt != null) { //保存记录 DBSymbolFinder.Instance.Add(objId, pt); } var message = result ? "新增成功!" : "新增失败!"; ViewHelper.zxLabelManagerPs.KeepFocus = true; PublicMethod.Instance.ShowMessage(message); } Btn_Add.Enabled = true; //} //else // MessageBox.Show("杂项标注已添加!", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Stop); } else { TXT_BZNR.Focus(); MessageBox.Show("标注内容不能为空!", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Stop); } }