Пример #1
0
        /// <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);
        }
Пример #2
0
        /// <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);
                }
            }
        }
Пример #3
0
        /// <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);
        }
Пример #4
0
 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);
 }
Пример #5
0
        /// <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);
        }
Пример #6
0
 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));
     }
 }
Пример #7
0
        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
            {
            }
        }
Пример #8
0
        /// <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);
        }
Пример #9
0
 private HashSet <DBEntityObject> GetOtherDBEntity(G3EObject g3eObject, HashSet <DBEntityObject> copyDBEntity)
 {
     if (g3eObject.G3E_FNO == 148)
     {
         //台架
         copyDBEntity = GetTjDBEntity(g3eObject.G3E_FID, copyDBEntity);
     }
     return(copyDBEntity);
 }
Пример #10
0
        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);
        }
Пример #11
0
        /// <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));
            }
        }
Пример #12
0
        /// <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);
        }
Пример #13
0
        /// <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);
        }
Пример #14
0
        /// <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);
        }
Пример #15
0
        /// <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;
            }
        }
Пример #16
0
        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);
            }
        }
Пример #17
0
 /// <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);
 }
Пример #18
0
        /// <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);
            }
        }
Пример #19
0
        /// <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);
        }
Пример #20
0
        /// <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);
        }
Пример #21
0
        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);
                }
            }
        }
Пример #22
0
        /// <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);
                }
            }
        }
Пример #23
0
        /// <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);
        }
Пример #24
0
 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);
     }
 }
Пример #25
0
 /// <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);
 }
Пример #26
0
 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);
     }
 }
Пример #27
0
        /// <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);
        }
Пример #28
0
 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);
     }
 }
Пример #29
0
        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;
        }
Пример #30
0
        /// <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);
        }