/// <summary> /// 复制符号数据 /// </summary> /// <param name="g3eObject"> </param> /// <param name="objectId"> </param> /// <returns></returns> private static CopySymbolObject GetBrotherDBEntity(G3EObject g3eObject, ObjectId objectId) { var cso = new CopySymbolObject(); var copyDBEntity = new HashSet <DBEntityObject>(); try { var entry = SimpleDBSymbolsConfig.Instance.DBSymbol.SingleOrDefault(o => o.G3E_FNO == g3eObject.G3E_FNO); if (entry != null) { if (!string.IsNullOrEmpty(entry.SymbolPtTable)) { //坐标表数据 var ptSymbolValue = PublicMethod.Instance.GetDBSymbolFinder(objectId) as ElectronSymbol; if (ptSymbolValue != null) { cso.pointDBEntity = ptSymbolValue; } //属性 copyDBEntity = GetDBEntityObjects(g3eObject, entry, copyDBEntity); cso.g3eObject = g3eObject; cso.objectID = objectId; cso.hsDBEntity = copyDBEntity; } } } catch (Exception ex) { LogManager.Instance.Error(ex); } return(cso); }
/// <summary> /// 开关柜管理 /// </summary> /// <param name="Sender"></param> /// <param name="e"></param> static void MI6_OnClick(object Sender, EventArgs e) { var ent = PublicMethod.Instance.GetObject(objectId, OpenMode.ForRead) as Entity; //如果是标注就跳过 if (ent is DBText || ent is MText) { return; } if (ent != null) { var g3eObject = new G3EObject(); if (false == DBEntityFinder.Instance.GetG3EIds(ent.ObjectId, ref g3eObject)) { return; } var ee = new selectEntityArgs { g3eObject = g3eObject, objId = ent.ObjectId }; if (KGGManager != null) { KGGManager(new object(), ee); } } }
/// <summary> /// 创建标注对象 /// </summary> /// <param name="g3eObject"></param> /// <param name="multipoint"></param> /// <param name="className"></param> /// <param name="G3E_CNO"></param> /// <param name="labelFlagFno"></param> /// <returns></returns> private static ElectronSymbol CreateLabel(G3EObject g3eObject, Multipoint multipoint, string className, int G3E_CNO, int labelFlagFno) { long? g3e_cid = 1; ElectronSymbol pt = null; try { var type = TypeCache.Instance.GetTypeFromCache(typeof(DBEntity), className); var instance = ReflectionUtils.CreateObject( new { G3E_CID = g3e_cid, G3E_ID = g3eObject.G3E_ID, G3E_FID = g3eObject.G3E_FID, G3E_FNO = g3eObject.G3E_FNO, G3E_CNO = G3E_CNO, G3E_GEOMETRY = multipoint, LTT_ID = Convert.ToDecimal(MapConfig.Instance.LTTID), EntityState = EntityState.Insert }, type) as ElectronSymbol; DBManager.Instance.Insert(instance); pt = instance; pt.EntityType = EntityType.Label; pt.FinderFuncNumber = labelFlagFno; //新增标注LB表数据 AddBortherDBEntity(className, pt, G3E_CNO); } catch (Exception ex) { LogManager.Instance.Error(ex); } return(pt); }
private static HashSet <DBEntityObject> GetDBEntityObjects(G3EObject g3eObject, DBSymbolEntry entry, HashSet <DBEntityObject> copyDBEntity) { //自身属性 if (!string.IsNullOrEmpty(entry.ComponentTable.SelfAttribute)) { copyDBEntity = GetBrotherDBEntity(entry.ComponentTable.SelfAttribute.Trim(), copyDBEntity, g3eObject.G3E_FID); } //公共属性 if (!string.IsNullOrEmpty(entry.ComponentTable.Common)) { copyDBEntity = GetBrotherDBEntity(entry.ComponentTable.Common.Trim(), copyDBEntity, g3eObject.G3E_FID); } //连接关系 if (!string.IsNullOrEmpty(entry.ComponentTable.Connectivity)) { copyDBEntity = GetBrotherDBEntity(entry.ComponentTable.Connectivity.Trim(), copyDBEntity, g3eObject.G3E_FID); } //功能位置 if (!string.IsNullOrEmpty(entry.ComponentTable.Gnwz)) { copyDBEntity = GetBrotherDBEntity(entry.ComponentTable.Gnwz.Trim(), copyDBEntity, g3eObject.G3E_FID); } return(copyDBEntity); }
/// <summary> /// 复制符号数据 /// </summary> /// <param name="g3eObject">G3E系列ID</param> /// <param name="objectId">CAD实体对象ID</param> /// <param name="objectType">对象类型,true为设备,false为标注</param> /// <param name="isLabel">是否是标注,true为标注,反之</param> /// <returns></returns> private CopySymbolObject GetBrotherDBEntity(G3EObject g3eObject, ObjectId objectId, bool objectType, bool isLabel) { var cso = new CopySymbolObject(); var copyDBEntity = new HashSet <DBEntityObject>(); try { var entry = SimpleDBSymbolsConfig.Instance.DBSymbol.SingleOrDefault(o => o.G3E_FNO == g3eObject.G3E_FNO); if (entry != null) { if (!string.IsNullOrEmpty(entry.SymbolPtTable)) { //坐标表数据 var ptSymbolValue = PublicMethod.Instance.GetDBSymbolFinder(objectId) as ElectronSymbol; if (ptSymbolValue != null) { cso.pointDBEntity = ptSymbolValue; //保存电杆数据 if (ptSymbolValue.G3E_FNO == 201) { if (!dgList.Contains(ptSymbolValue.G3E_FID)) { dgList.Add(ptSymbolValue.G3E_FID); } } //标注的LB数据 if (isLabel) { copyDBEntity = GetLabelDBEntityObjects(ptSymbolValue.GetType().Name, g3eObject, copyDBEntity); } //杂项标注 if (g3eObject.G3E_FNO == 250) { copyDBEntity = GetZxbzDBEntity(g3eObject.G3E_FID, copyDBEntity); } } //属性数据 if (objectType) { copyDBEntity = GetDBEntityObjects(g3eObject, entry, copyDBEntity); } cso.g3eObject = g3eObject; cso.objectID = objectId; cso.hsDBEntity = copyDBEntity; } } } catch (NotExistException ex) { LogManager.Instance.Error(ex); } catch (Exception ex) { LogManager.Instance.Error(ex); } return(cso); }
static void micx_Click(object sender, EventArgs e) { foreach (ObjectId id in objectIds) { var g3eObject = new G3EObject(); DBEntityFinder.Instance.GetG3EIds(id, ref g3eObject); PublicMethod.Instance.ShowMessage(string.Format("\nid={0} fid={1} fno={2}\n", g3eObject.G3E_ID, g3eObject.G3E_FID, g3eObject.G3E_FNO)); } }
private static void SelectBulkChangeFeature() { var ee = new BlukSelectArgs(); try { isBulkChange = true; var selops = new PromptSelectionOptions(); //建立选择的过滤器 var filList = new TypedValue[4]; //里面放的是过滤条件的个数 filList[0] = new TypedValue((int)DxfCode.Operator, "<or"); filList[1] = new TypedValue((int)DxfCode.Start, "LWPOLYLINE"); filList[2] = new TypedValue((int)DxfCode.Start, "INSERT"); filList[3] = new TypedValue((int)DxfCode.Operator, "or>"); //建立过滤器 var filter = new SelectionFilter(filList); //按照过滤器进行选择 var ents = PublicMethod.Instance.Editor.GetSelection(selops, filter); if (ents.Status == PromptStatus.OK) { var ss = ents.Value; ee.ObjIdList.Clear(); ee.BulkIds.Clear(); foreach (ObjectId objId in ss.GetObjectIds()) { var ent = PublicMethod.Instance.GetObject(objId, OpenMode.ForRead); if (ent == null) { continue; } Entity entity = ent as Entity; if (entity.Layer.Contains("工单锁定框")) { continue; } G3EObject goEObject = new G3EObject(); if (DBEntityFinder.Instance.GetG3EIds(objId, ref goEObject)) { ee.BulkIds.Add(goEObject); } ee.ObjIdList.Add(entity.ObjectId); } if (EntitySelectionHandler != null) { if (ee.BulkIds.Count <= 0 && ee.ObjIdList.Count <= 0) { PublicMethod.Instance.AlertDialog("请您选择要批量修改的设备集!!!"); return; } EntitySelectionHandler(new object(), ee); } } } catch { } }
/// <summary> /// 获取标注值 /// </summary> /// <param name="g3e_cno"></param> /// <param name="g3eObject"> </param> /// <returns></returns> public static LabelEventArgs GetLabelText(string g3e_cno, G3EObject g3eObject) { var labelEventArgs = new LabelEventArgs { xmlDB = DBManager.Instance as XmlDBManager, color = CADColor.FromRgb(0, 0, 0) }; labelEventArgs = GetLabelTextStyle(g3e_cno, g3eObject.G3E_FID, g3eObject.G3E_FNO, labelEventArgs); return(labelEventArgs); }
private HashSet <DBEntityObject> GetOtherDBEntity(G3EObject g3eObject, HashSet <DBEntityObject> copyDBEntity) { if (g3eObject.G3E_FNO == 148) { //台架 copyDBEntity = GetTjDBEntity(g3eObject.G3E_FID, copyDBEntity); } return(copyDBEntity); }
private List <DBEntity> ErasedLabelLB(ObjectId objectId, G3EObject g3eObject, List <DBEntity> backupEntity) { //获取缓存里的坐标表 var symbolValue = PublicMethod.Instance.GetDBSymbolFinder(objectId) as ElectronSymbol; var className = symbolValue.GetType().Name.Replace("_sdogeom", ""); backupEntity = ErasedBrotherTable(className, g3eObject.G3E_FID, backupEntity); return(backupEntity); }
/// <summary> /// 复制符号数据 /// </summary> /// <param name="dbEntityObject"></param> /// <param name="g3eObject"></param> /// <returns></returns> private static void SetBrotherDBEntity(DBEntityObject dbEntityObject, G3EObject g3eObject) { try { var className = dbEntityObject.className; var type = TypeCache.Instance.GetTypeFromCache(typeof(DBEntity), className); var targetDBEntity = DBManager.Instance.GetEntity(type, g3eObject.G3E_FID); if (targetDBEntity != null) { //原数据 var sourceDBEntity = dbEntityObject.dbEntity; var properties = targetDBEntity.GetType().GetProperties(); foreach (var property in properties) { var hasSetter = HasSetter(property); //条件过滤 var filter = Filter(property); if (!hasSetter || !filter) { continue; } object sourceValue = null; sourceValue = property.GetValue(sourceDBEntity, null); //源数据为空不修改 if (sourceValue == null) { continue; } //目标值 var targetValue = targetDBEntity.GetValue(property.Name); //值不同才修改 if (sourceValue.Equals(targetValue)) { continue; } if (property.Name.Equals("EntityState")) { if (targetDBEntity.EntityState == EntityState.None) { sourceValue = targetDBEntity.GetType().Name.Equals("Connectivity_n") ? EntityState.Old_Nal_Nal : EntityState.Update; } else { continue; } } property.SetValue(targetDBEntity, sourceValue, null); } } } catch (Exception ex) { LogManager.Instance.Error(ex + string.Format("属性复制错误:{0} {1}", dbEntityObject.className, g3eObject.G3E_FID)); } }
/// <summary> /// 属性复制 /// </summary> /// <param name="objectId">实体对象Id</param> public static CopySymbolObject GetAttribute(ObjectId objectId) { G3EObject g3eObject = null; CopySymbolObject copySymbolObject = null; if (DBEntityFinder.Instance.GetG3EIds(objectId, ref g3eObject)) { copySymbolObject = GetBrotherDBEntity(g3eObject, objectId); } return(copySymbolObject); }
/// <summary> /// 获取杂项标注符号表 /// </summary> /// <param name="ptClassName">组件名称</param> /// <param name="g3eObject">G3E系列ID</param> /// <param name="copyDBEntity">组件表集合</param> /// <returns></returns> private HashSet <DBEntityObject> GetLabelDBEntityObjects(string ptClassName, G3EObject g3eObject, HashSet <DBEntityObject> copyDBEntity) { var labelTable = ptClassName.Replace("_sdogeom", ""); //标注符号表 if (!string.IsNullOrEmpty(labelTable)) { copyDBEntity = GetBrotherDBEntity(labelTable.Trim(), copyDBEntity, g3eObject.G3E_FID, false); } return(copyDBEntity); }
/// <summary> /// 添加标注 /// </summary> /// <param name="g3eObject"></param> /// <param name="labelFlagFno"></param> /// <param name="labelClassName"></param> /// <param name="G3E_CNO"></param> /// <param name="lea"></param> /// <returns></returns> public static bool AddLabel(G3EObject g3eObject, int labelFlagFno, string labelClassName, int G3E_CNO, LabelEventArgs lea) { var result = false; try { var values = SimpleDBSymbolsConfig.Instance.DBSymbol.SingleOrDefault(o => o.G3E_FNO == g3eObject.G3E_FNO); var layerID = DCadApi.addLayer(string.Format("{0}标注", values.OtherProperty.LayerName)); var lbHeight = lea.lbHeight / MapConfig.Instance.earthscale; var mText = AddText(lea.lbText, Point3d.Origin, 0, lbHeight, layerID, lea.color); if (BlockJig.Jig(mText, true)) { DCadApi.AddPinchPoint(mText); DCadApi.AddLabelPinchPoint(mText); var objId = PublicMethod.Instance.ToModelSpace(mText); var mpt = ConvertGeometry.Instance.GetMultipoint(objId); //查询原设备删除的标注 var labelPt = DBEntityFinder.Instance.GetDBEntityByG3efidOrClassName(g3eObject.G3E_FID, labelClassName, EntityState.Delete); //原设备删除 if (labelPt != null) { var labelObject = DBEntityFinder.Instance.GetEraseStateLabel(g3eObject.G3E_FID, labelFlagFno); if (!labelObject.Key.IsNull) { //删除缓存 DBSymbolFinder.Instance.Remove(labelObject.Key); } var pt = labelPt.Clone() as ElectronSymbol; pt.G3E_GEOMETRY = mpt; pt.IsErased = false; pt.EntityState = EntityState.Update; DBManager.Instance.Update(pt); UpdateLabelLB(pt); //新增 PublicMethod.Instance.AddDBSymbolFinder(objId, pt); } else { ErasedCacheLabel(labelClassName, g3eObject.G3E_FID); var pt = CreateLabel(g3eObject, mpt, labelClassName, G3E_CNO, labelFlagFno); PublicMethod.Instance.AddDBSymbolFinder(objId, pt); } result = true; } } catch (Exception ex) { LogManager.Instance.Error(ex); } return(result); }
/// <summary> /// 点击添加按钮 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void button1_Click(object sender, EventArgs e) { try { NullityButtons(); if (treeView1.SelectedNode == null || !(GetTreeNodeLev(treeView1.SelectedNode) == 4 || GetTreeNodeLev(treeView1.SelectedNode) == 3)) { return; } Visible = false; var objectId = PublicMethod.Instance.GetEntity("选择导线或者电缆\n"); var g3eObject = new G3EObject(); if (DBEntityFinder.Instance.GetG3EIds(objectId, ref g3eObject)) { if (!(g3eObject.G3E_FNO == 141 || g3eObject.G3E_FNO == 140)) { PublicMethod.Instance.ShowMessage("只允许选择导线或者电缆\n"); return; } //检查是否属于馈线 var kxNode = GetSeleteKX(); if (kxNode == null) { PublicMethod.Instance.ShowMessage("没有选择馈线,请再重试一遍\n"); return; } var zx = DBManager.Instance.GetEntity <Common_n>(o => o.G3E_FID == g3eObject.G3E_FID); if (zx == null) { PublicMethod.Instance.ShowMessage("请重新选择要添加的支线\n"); return; } if (zx.CD_SSXL != kxNode.Text) { PublicMethod.Instance.ShowMessage("您选择的支线不属于当前馈线,请重新选择\n"); return; } var sbmc = zx.SBMC; var re = new RegionalEditor(formType.regionAdd, g3eObject.G3E_FID.ToString(), sbmc); Autodesk.AutoCAD.ApplicationServices.Application.ShowModalDialog(re); } }catch (Exception exception) { LogManager.Instance.Error(exception); }finally { Visible = true; } }
public void ObjectErased(ObjectErasedEventArgs e) { try { var objectId = e.DBObject.Id; var isErased = e.Erased; G3EObject g3eObject = null; if (DBEntityFinder.Instance.GetG3EIds(objectId, ref g3eObject)) { var dbSymbolEntry = SimpleDBSymbolsConfig.Instance.DBSymbol.SingleOrDefault(o => o.G3E_FNO == g3eObject.G3E_FNO); if (dbSymbolEntry != null) { if (isErased) { //存储备份实体 var backupEntity = new List <DBEntity>(); if (e.DBObject is DBText || e.DBObject is MText) { //删除标注坐标数据 backupEntity = ErasedPointSymbolTable(objectId, backupEntity); //杂项标注属性删除 if (g3eObject.G3E_FNO == 250) { backupEntity = EraseZxbzDBEntity(g3eObject.G3E_FID, backupEntity); } //删除标注lb backupEntity = ErasedLabelLB(objectId, g3eObject, backupEntity); ObjectHistoryManagerAdd(objectId, backupEntity); } else { //删除设备数据 backupEntity = ObjectErased(dbSymbolEntry, objectId, g3eObject, backupEntity); ObjectHistoryManagerAdd(objectId, backupEntity); //删除标注 DeleteLinkageLabel(g3eObject.G3E_FID); } } else { Redo(objectId); } } } } catch (Exception ex) { LogManager.Instance.Error("删除设备错误!\n" + ex); } }
/// <summary> /// 删除其他数据(开关柜、台架) /// </summary> /// <param name="g3eObject"> </param> /// <param name="backupEntity"></param> /// <returns></returns> private List <DBEntity> ErasedOtherDBEntity(G3EObject g3eObject, List <DBEntity> backupEntity) { if (g3eObject.G3E_FNO == 142 || g3eObject.G3E_FNO == 149 || g3eObject.G3E_FNO == 163) { //删除开关柜 backupEntity = ErasedKggDBEntity(g3eObject.G3E_FID, backupEntity); } if (g3eObject.G3E_FNO == 148) { //删除台架数据 backupEntity = ErasedTjDBEntity(g3eObject.G3E_FID, backupEntity); } return(backupEntity); }
/// <summary> /// 粘贴选择 /// </summary> /// <param name="oldId">旧对象ID</param> /// <param name="newId">新对象ID</param> public void ObjectPaste(ObjectId oldId, ObjectId newId) { G3EObject oldG3eObject = null; try { if (DBEntityFinder.Instance.GetG3EIds(oldId, ref oldG3eObject)) { ObjectPaste(oldG3eObject, oldId, newId); } } catch (Exception ex) { LogManager.Instance.Error(ex); } }
/// <summary> /// 显示一个fid 为0 的连接面板 /// </summary> public static void showConnectManager() { var ee = new selectEntityArgs(); var g3eObject = new G3EObject(); var objid = ObjectId.Null; var psr = PublicMethod.Instance.Editor.SelectImplied(); if (psr.Status == PromptStatus.OK) { objid = psr.Value.GetObjectIds()[0]; DBEntityFinder.Instance.GetG3EIds(objid, ref g3eObject); } ee.g3eObject = g3eObject; ee.objId = objid; ee.badd = true; //新建or更新面板 ViewHelper.AddOrUpdateConnectPanel(ee); }
/// <summary> /// 复制数据 /// </summary> /// <param name="objectIds">CAD实体对象集合</param> /// <returns></returns> public Dictionary <ObjectId, CopySymbolObject> ObjectCopy(ObjectId[] objectIds) { isAccord = true; var point = new Point3d(); G3EObject g3eObject = null; _copyErrorInfo = new Dictionary <long, string>(); var copySymbolObject = new Dictionary <ObjectId, CopySymbolObject>(); try { if (PublicMethod.Instance.IsExistPointSymbol(objectIds, ref point)) { dgList = new HashSet <long>(); foreach (var objectId in objectIds) { var entity = PublicMethod.Instance.GetObject(objectId, OpenMode.ForRead) as Entity; if (!DBEntityFinder.Instance.GetG3EIds(objectId, ref g3eObject)) { continue; } //杂项标注不复制 if (g3eObject.G3E_FNO == 250) { continue; } var objectType = entity is BlockReference || entity is Polyline; var isLabel = entity is DBText || entity is MText; var csd = GetBrotherDBEntity(g3eObject, objectId, objectType, isLabel); if (!copySymbolObject.ContainsKey(objectId)) { copySymbolObject.Add(objectId, csd); } } } else { PublicMethod.Instance.ShowMessage("不能单独复制标注!"); } } catch (Exception ex) { LogManager.Instance.Error(ex); } return(copySymbolObject); }
static void MI8_OnClick(object sender, EventArgs e) { var g3eObject = new G3EObject(); if (DBEntityFinder.Instance.GetG3EIds(objectId, ref g3eObject)) { var ee = new selectEntityArgs { g3eObject = g3eObject, objId = objectId }; if (JLBManager != null) { JLBManager(new object(), ee); } } }
/// <summary> /// 添加标注 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> static void mi8_OnClick(object sender, EventArgs e) { var g3eObject = new G3EObject(); if (DBEntityFinder.Instance.GetG3EIds(objectId, ref g3eObject)) { var ee = new FixEntityArgs { g3eObject = g3eObject, ObjId = objectId }; if (AddLabelHandler != null) { AddLabelHandler(new object(), ee); } } }
/// <summary> /// 粘贴 /// </summary> /// <param name="oldG3eObject"></param> /// <param name="oldId"></param> /// <param name="newId"></param> private void ObjectPaste(G3EObject oldG3eObject, ObjectId oldId, ObjectId newId) { //生成新的G3E系列ID CreateG3EFID(oldG3eObject.G3E_FID, oldG3eObject.G3E_ID, newId); if (_copyObjects.Count <= 0) { return; } var cso = _copyObjects.SingleOrDefault(o => o.Key == oldId); if (cso.Value == null) { return; } var newIds = _G3EIdMapping.SingleOrDefault(o => o.Key == oldG3eObject.G3E_FID); AddDBEntity(newIds.Value.newG3e_id, newIds.Value.newG3e_fid, newId, cso); }
private void TJXG_Load(object sender, EventArgs e) { try { var objectId = mouse.selectedEntityId; if (!objectId.IsNull) { var isLTTID = DBEntityFinder.Instance.VerifyLTTID(objectId); if (isLTTID) { var pt = DBSymbolFinder.Instance[objectId]; if (pt.G3E_FNO == 148) { g3eObject = new G3EObject(); bt_Modify.Enabled = true; g3eObject.G3E_FID = pt.G3E_FID; g3eObject.G3E_FNO = pt.G3E_FNO; g3eObject.G3E_ID = pt.G3E_ID; //var com = DBEntityFinder.Instance.GetCommonByG3e_FID(pt.G3E_FID); var b = GetDevsByBYQFid(g3eObject.G3E_FID); if (b && tj_comm != null) { InitComBo(); SetText(tj_comm); //bt_Modify.Enabled = false; } //else // bt_Modify.Enabled = false; } //else //bt_Modify.Enabled = false; } } bt_Modify.Enabled = false; } catch (NotExistException ex) { PublicMethod.Instance.NotExistTable(ex); } catch (Exception exception) { LogManager.Instance.Error(exception); } }
/// <summary> /// 复制当前设备所需数据 /// </summary> /// <param name="g3eObject">G3E系列ID</param> /// <param name="entry">当前设备的配置数据</param> /// <param name="copyDBEntity">组件表集合</param> /// <returns>返回当前设备所有组件表集合</returns> private HashSet <DBEntityObject> GetDBEntityObjects(G3EObject g3eObject, DBSymbolEntry entry, HashSet <DBEntityObject> copyDBEntity) { //自身属性 if (!string.IsNullOrEmpty(entry.ComponentTable.SelfAttribute)) { copyDBEntity = GetBrotherDBEntity(entry.ComponentTable.SelfAttribute.Trim(), copyDBEntity, g3eObject.G3E_FID, true); } //公共属性 if (!string.IsNullOrEmpty(entry.ComponentTable.Common)) { copyDBEntity = GetBrotherDBEntity(entry.ComponentTable.Common.Trim(), copyDBEntity, g3eObject.G3E_FID, true); } //连接关系 if (!string.IsNullOrEmpty(entry.ComponentTable.Connectivity)) { copyDBEntity = GetBrotherDBEntity(entry.ComponentTable.Connectivity.Trim(), copyDBEntity, g3eObject.G3E_FID, true); } //功能位置 if (!string.IsNullOrEmpty(entry.ComponentTable.Gnwz)) { copyDBEntity = GetBrotherDBEntity(entry.ComponentTable.Gnwz.Trim(), copyDBEntity, g3eObject.G3E_FID, true); } //包含表 if (!string.IsNullOrEmpty(entry.ComponentTable.Contain)) { bool isNeed = g3eObject.G3E_FNO == 201; //电杆必须有包含关系(导线不是必须) copyDBEntity = GetContainDBEntity(entry.ComponentTable.Contain.Trim(), copyDBEntity, g3eObject.G3E_FID, isNeed); } //详表 if (!string.IsNullOrEmpty(entry.ComponentTable.Detailreference)) { copyDBEntity = GetBrotherDBEntity(entry.ComponentTable.Detailreference.Trim(), copyDBEntity, g3eObject.G3E_FID, false); } //受电馈线 if (!string.IsNullOrEmpty(entry.ComponentTable.Gg_Pd_Sdkx_Ac)) { copyDBEntity = GetSdkxDBEntity(entry.ComponentTable.Gg_Pd_Sdkx_Ac.Trim(), copyDBEntity, g3eObject.G3E_FID); } //其他数据(台架、开关柜) copyDBEntity = GetOtherDBEntity(g3eObject, copyDBEntity); return(copyDBEntity); }
public void zmcc() { if (!IsLoadDataSource()) { return; } if (!PublicMethod.Instance.IsExecuteSystemCMD("zmc1")) { var g = new G3EObject(); //id=630802963 fid=630802964 fno=148 var ee = new selectEntityArgs { g3eObject = g }; g.G3E_FID = 630802964; g.G3E_ID = 630802963; g.G3E_FNO = 148; var tt = new JLBMap(ee); Application.ShowModelessDialog(tt); } }
/// <summary> /// 获取源符号的块定义名称 /// </summary> /// <param name="objectId"></param> /// <param name="g3eObject"></param> /// <param name="xmlDbManager"> </param> /// <returns></returns> public static SymbolEventArgs GetSymbolExecution(ObjectId objectId, G3EObject g3eObject, XmlDBManager xmlDbManager) { SymbolEventArgs value = null; try { var pt = DBSymbolFinder.Instance[objectId]; value = new SymbolEventArgs { DBManager = xmlDbManager, electronSymbol = pt }; //匹配符号 ExecutionManager.Instance.GetFactory(typeof(SymbolExecutionFactory)).GetExecution(g3eObject.G3E_FNO). Execute(pt, value); } catch (Exception ex) { LogManager.Instance.Error("获取符号样式失败!\n" + ex); } //获取块定义名称 return(value); }
public static void showConnectManager(long g3eFid) { try { var ee = new selectEntityArgs(); var objID = DBEntityFinder.Instance.GetObjectIdByFid(g3eFid); if (!objID.IsNull) { var g3eObject = new G3EObject(); DBEntityFinder.Instance.GetG3EIds(objID, ref g3eObject); ee.g3eObject = g3eObject; ee.objId = objID; ee.badd = true; ViewHelper.AddOrUpdateConnectPanel(ee); } } catch (Exception ex) { LogManager.Instance.Error(ex); } }
private void Btn_Select_Click(object sender, EventArgs e) { ViewHelper.zxLabelManagerPs.Visible = false; var objectId = PublicMethod.Instance.GetEntity("请选择父设备\n"); //if (DBEntityFinder.Instance.VerifyLTTID(objectId)) //{ Btn_Add.Enabled = true; G3EObject g3eObject = null; if (DBEntityFinder.Instance.GetG3EIds(objectId, ref g3eObject)) { SetZxbzValue(g3eObject.G3E_FID); } //} //else //{ // MessageBox.Show("请选择已锁定的设备!", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Information); //} ViewHelper.zxLabelManagerPs.Visible = true; }
/// <summary> /// 复制属性 /// </summary> /// <param name="objectIds"></param> /// <param name="copySymbolObject"> </param> public static int CopyAttribute(ObjectId[] objectIds, CopySymbolObject copySymbolObject) { var copyCount = 0; //获取原设备的样式 var eventArgs = CABLEManager.GetSymbolExecution(copySymbolObject.objectID, copySymbolObject.g3eObject, DBManager.Instance as XmlDBManager); if (eventArgs != null) { //获取原设备的块定义名称 var blockName = DCadApi.GetBlockDefinitionName(eventArgs, copySymbolObject.g3eObject.G3E_FNO.ToString()); foreach (var objectId in objectIds) { G3EObject g3eObject = null; var dbObject = PublicMethod.Instance.GetObject(objectId, OpenMode.ForRead); //排除标注 if (dbObject is BlockReference || dbObject is Polyline) { if (DBEntityFinder.Instance.GetG3EIds(objectId, ref g3eObject)) { //校验工单 if (DBEntityFinder.Instance.VerifyLTTID(objectId)) { //判断类型 if (copySymbolObject.g3eObject.G3E_FNO == g3eObject.G3E_FNO) { foreach (var dbEntity in copySymbolObject.hsDBEntity) { SetBrotherDBEntity(dbEntity, g3eObject); } //更新符号 UpdateSymbol(blockName, objectId, eventArgs); copyCount++; } } } } } } return(copyCount); }