Exemple #1
0
 public static void AddOverrule()
 {
     Overrule.AddOverrule(RXObject.GetClass(typeof(BlockReference)), UserDrawOverrule.TheOverrule, false);
     Overrule.AddOverrule(RXObject.GetClass(typeof(BlockReference)), DCadDrawEntityOverrule.TheOverrule, false);
     Overrule.AddOverrule(RXObject.GetClass(typeof(DBText)), DCadDrawEntityOverrule.TheOverrule, true);
     Overrule.AddOverrule(RXObject.GetClass(typeof(MText)), DCadDrawEntityOverrule.TheOverrule, true);
 }
Exemple #2
0
        public void ovcmd3()
        {
            var gripRule = new DonutGripRule();

            gripRule.SetXDataFilter(AppName);
            Overrule.AddOverrule(RXClass.GetClass(typeof(Circle)), gripRule, false);

            Overrule.Overruling = true;
        }
Exemple #3
0
        public void ovcmd4()
        {
            var transRule = new DonutTransformRule();

            transRule.SetXDataFilter(AppName);
            Overrule.AddOverrule(RXClass.GetClass(typeof(Circle)), transRule, false);

            Overrule.Overruling = true;
        }
Exemple #4
0
 public static void ImplementOverrule()
 {
     if (myOverrule == null)
     {
         myOverrule = new KeepStraightOverrule();
         Overrule.AddOverrule(RXClass.GetClass(typeof(AttributeReference)), myOverrule, false);
     }
     Overrule.Overruling = true;
 }
Exemple #5
0
        public void ovcmd2()
        {
            var drawRule = new DonutDrawRule();

            drawRule.SetXDataFilter(AppName);
            Overrule.AddOverrule(RXClass.GetClass(typeof(Circle)), drawRule, false);

            Overrule.Overruling = true;
        }
Exemple #6
0
 //开启夹点规则重定义
 public static void openGripRule()
 {
     if (UserGripOverrule.TheOverrule != null)
     {
         Overrule.AddOverrule(RXObject.GetClass(typeof(BlockReference)), UserGripOverrule.TheOverrule, false);
         Overrule.AddOverrule(RXObject.GetClass(typeof(DBText)), UserGripOverrule.TheOverrule, true);
         Overrule.AddOverrule(RXObject.GetClass(typeof(MText)), UserGripOverrule.TheOverrule, true);
     }
 }
 public static void ShowIcon()
 {
     if (ProductsDrawableOverrule.ProductsDrawableOverruleInstance == null)
     {
         UserConfigFile.SetValue("mpProductInsert", "ShowIcon", true.ToString(), true);
         Overrule.AddOverrule(RXObject.GetClass(typeof(Entity)), ProductsDrawableOverrule.Instance(), true);
         Overrule.Overruling = true;
         Application.DocumentManager.MdiActiveDocument.Editor.Regen();
     }
 }
Exemple #8
0
 void IExtensionApplication.Initialize()
 {
     try
     {
         //Запустить PolylineCaptionOverrule
         polylineCaptionOverrule = new PolylineCaptionOverrule();
         Overrule.AddOverrule(RXClass.GetClass(typeof(Polyline3d)), polylineCaptionOverrule, false);
     }
     catch (System.Exception ex)
     {
         CommonException(ex, "Ошибка при инициализации плагина для Civil 3d");
     }
 }
Exemple #9
0
 private static void IsolinesOn()
 {
     ContextMenuIsoline.Attach();
     if (_overruleIsolineDraw == null)
     {
         _overruleIsolineDraw = new IsolineDrawableOverrule();
         Overrule.AddOverrule(RXClass.GetClass(typeof(Curve)), _overruleIsolineDraw, false);
     }
     if (_overruleIsolineTrans == null)
     {
         _overruleIsolineTrans = new IsolineTransformOverrule();
         Overrule.AddOverrule(RXClass.GetClass(typeof(Curve)), _overruleIsolineTrans, false);
     }
 }
Exemple #10
0
        public void jscmd2()
        {
            var drawRule = new WallDrawRule();

            drawRule.SetXDataFilter(AppName);
            drawRule.SetCustomFilter();
            Overrule.AddOverrule(RXObject.GetClass(typeof(Line)), drawRule, false);

            var gripRule = new WallGripRule();

            gripRule.SetXDataFilter(AppName);
            gripRule.SetCustomFilter();
            Overrule.AddOverrule(RXObject.GetClass(typeof(Line)), gripRule, false);

            Overrule.Overruling = true;
        }
 public static void togglegaslabeloverrule()
 {
     if (_GasPolylineLabelOverrule == null)
     {
         _GasPolylineLabelOverrule = new GasPolylineLabel();
         Overrule.AddOverrule(RXObject.GetClass(typeof(Polyline)), _GasPolylineLabelOverrule, false);
         Overrule.Overruling = true;
     }
     else
     {
         Overrule.RemoveOverrule(RXObject.GetClass(typeof(Polyline)), _GasPolylineLabelOverrule);
         _GasPolylineLabelOverrule.Dispose();
         _GasPolylineLabelOverrule = null;
     }
     Application.DocumentManager.MdiActiveDocument.Editor.Regen();
 }
 public static void togglepolydiroverrule()
 {
     if (_polylineDirection == null)
     {
         _polylineDirection = new PolylineDirection();
         Overrule.AddOverrule(RXObject.GetClass(typeof(Polyline)), _polylineDirection, false);
         Overrule.Overruling = true;
     }
     else
     {
         Overrule.RemoveOverrule(RXObject.GetClass(typeof(Polyline)), _polylineDirection);
         _polylineDirection.Dispose();
         _polylineDirection = null;
     }
     Application.DocumentManager.MdiActiveDocument.Editor.Regen();
 }
Exemple #13
0
 public void Run()
 {
     if (_overrule == null)
     {
         _overrule = new PViewCOGOPointDO();
         Overrule.AddOverrule
             (RXClass.GetClass(typeof(CogoPoint)), _overrule, false);
     }
     else
     {
         Overrule.RemoveOverrule
             (RXClass.GetClass(typeof(CogoPoint)), _overrule);
         _overrule = null;
     }
     Application.DocumentManager.
     MdiActiveDocument.Editor.Regen();
 }
Exemple #14
0
 public static void ToggleOverrule()
 {
     // Initialize Overrule if first time run
     if (_drawOverrule == null)
     {
         _drawOverrule = new MyDrawOverrule();
         Overrule.AddOverrule(RXObject.GetClass(typeof(Line)), _drawOverrule, false);
         Overrule.Overruling = true;
     }
     else
     {
         // Toggle Overruling on/off
         Overrule.Overruling = !Overrule.Overruling;
     }
     // Regen is required to update changes on screen
     Application.DocumentManager.MdiActiveDocument.Editor.Regen();
 }
Exemple #15
0
 // 开启高亮规则重定义
 public static void openHightLightRule()
 {
     try
     {
         if (hightLightRule == null)
         {
             hightLightRule = new HightLightRule();
             //为实体添加亮显重定义
             Overrule.AddOverrule(RXObject.GetClass(typeof(Entity)), hightLightRule, false);
             Overrule.Overruling = true;//开启规则重定义
         }
         PublicMethod.Instance.RegenerateModel();
     }
     catch (System.Exception ex)
     {
         PublicMethod.Instance.Editor.WriteMessageWithReturn(ex);
     }
 }
Exemple #16
0
 public static void TestOverrideToDifferentPlane()
 {
     if (overrule == null)
     {
         overrule = new PlaneOverrule();
         Overrule.AddOverrule(RXObject.GetClass(typeof(Entity)), overrule, false);
     }
     else
     {
         foreach (DBObject obj in overrule.copyCollection)
         {
             obj.Dispose();
         }
         Overrule.RemoveOverrule(RXObject.GetClass(typeof(Entity)), overrule);
         overrule.Dispose();
         overrule = null;
     }
     Overrule.Overruling = !Overrule.Overruling;
     Application.DocumentManager.MdiActiveDocument.Editor.Regen();
 }
Exemple #17
0
        public void Test()
        {
            Document acDoc = Application.DocumentManager.MdiActiveDocument;

            Database acCurDb = acDoc.Database;

            Editor acEd = acDoc.Editor;

            using (Transaction acTrans = acCurDb.TransactionManager.StartTransaction())
            {
                var blkTbl = acTrans.GetObject(acCurDb.BlockTableId, OpenMode.ForRead) as BlockTable;

                var mdlSpc = acTrans.GetObject(blkTbl[BlockTableRecord.ModelSpace], OpenMode.ForWrite) as BlockTableRecord;


                var myWallRule = new MyWallDrawRule();

                myWallRule.SetExtensionDictionaryEntryFilter("MyWallType");

                Overrule.AddOverrule(RXObject.GetClass(typeof(Line)), myWallRule, false);
                Overrule.Overruling = true;


                var line = new Line(Point3d.Origin, Point3d.Origin + Vector3d.XAxis.RotateBy(Math.PI / 6, Vector3d.ZAxis) * 10);

                mdlSpc.AppendEntity(line);

                if (!line.ExtensionDictionary.IsValid)
                {
                    line.CreateExtensionDictionary();
                    var dict = acTrans.GetObject(line.ExtensionDictionary, OpenMode.ForWrite) as DBDictionary;
                    dict.SetAt("MyWallType", new DataTable());
                }

                acTrans.AddNewlyCreatedDBObject(line, true);

                acTrans.Commit();
            }
        }
Exemple #18
0
 /// <inheritdoc />
 public void Initialize()
 {
     Overrule.AddOverrule(RXObject.GetClass(typeof(BlockReference)), GroundLineGripPointOverrule.Instance(), true);
     Overrule.AddOverrule(RXObject.GetClass(typeof(BlockReference)), GroundLineOsnapOverrule.Instance(), true);
     Overrule.AddOverrule(RXObject.GetClass(typeof(BlockReference)), GroundLineObjectOverrule.Instance(), true);
 }
 //重定义生效
 //注意这里的实体类型和Overrule子类中必须严格对应
 public static void OverruleStart()
 {
     Overrule.AddOverrule(RXObject.GetClass(typeof(Line)), LArrowDrawOverrule3.TheOverrule, false);
     Overrule.AddOverrule(RXObject.GetClass(typeof(Line)), LArrowGripOverrule3.TheOverrule, false);
 }
 public void Initialize()
 {
     Overrule.AddOverrule(RXClass.GetClass(typeof(BlockReference)), this, true);
 }
Exemple #21
0
 /// <inheritdoc/>
 public void Initialize()
 {
     Overrule.AddOverrule(RXObject.GetClass(typeof(BlockReference)), NodalLeaderGripPointOverrule.Instance(), true);
     Overrule.AddOverrule(RXObject.GetClass(typeof(BlockReference)), NodalLeaderOsnapOverrule.Instance(), true);
     Overrule.AddOverrule(RXObject.GetClass(typeof(BlockReference)), NodalLeaderObjectOverrule.Instance(), true);
 }
Exemple #22
0
        static public void Start()
        {
            Document doc = Application.DocumentManager.MdiActiveDocument;
            Editor   ed  = doc.Editor;

            PromptEntityResult res = ed.GetEntity("Select a circle to overrule");

            if (res.Status != PromptStatus.OK)
            {
                return;
            }

            if (res.ObjectId.ObjectClass != RXObject.GetClass(typeof(Circle)))
            {
                ed.WriteMessage("Selected object is not a circle!\n");
                return;
            }

            if (m_overruledObjects.Count == 0)
            {
                Application.DocumentManager.DocumentToBeDestroyed += new DocumentCollectionEventHandler(DocumentManager_DocumentToBeDestroyed);
            }
            if (!m_overruledObjects.Contains(res.ObjectId))
            {
                Database db = res.ObjectId.Database;
                using (Transaction t = db.TransactionManager.StartTransaction())
                {
                    RegAppTable tbl = (RegAppTable)t.GetObject(db.RegAppTableId, OpenMode.ForRead, false);
                    if (!tbl.Has(RegAppName))
                    {
                        RegAppTableRecord app = new RegAppTableRecord();
                        app.Name = RegAppName;
                        tbl      = (RegAppTable)t.GetObject(db.RegAppTableId, OpenMode.ForWrite, false);
                        tbl.Add(app);
                        t.AddNewlyCreatedDBObject(app, true);
                    }
                    Circle c = (Circle)t.GetObject(res.ObjectId, OpenMode.ForRead);

                    if (c.GetXDataForApplication(RegAppName) == null)
                    {
                        c       = (Circle)t.GetObject(res.ObjectId, OpenMode.ForWrite);
                        c.XData = new ResultBuffer(
                            new TypedValue((int)DxfCode.ExtendedDataRegAppName, RegAppName),
                            new TypedValue((int)DxfCode.ExtendedDataReal, Math.PI / 6) //start with 30 degrees
                            );
                        m_overruledObjects.Add(res.ObjectId);
                    }
                    t.Commit();
                }
            }
            ObjectId[] ids = m_overruledObjects.ToArray();
            foreach (Overrule o in m_overrules)
            {
                o.SetIdFilter(ids);

                if (!m_overruleAdded)
                {
                    Overrule.AddOverrule(RXObject.GetClass(typeof(Circle)), o, false);
                }
            }

            m_overruleAdded = true;

            Application.DocumentManager.MdiActiveDocument.Editor.Regen();
        }
 /// <inheritdoc />
 public void Initialize()
 {
     Overrule.AddOverrule(RXObject.GetClass(typeof(BlockReference)), WaterProofingGripPointOverrule.Instance(), true);
     Overrule.AddOverrule(RXObject.GetClass(typeof(BlockReference)), WaterProofingOsnapOverrule.Instance(), true);
     Overrule.AddOverrule(RXObject.GetClass(typeof(BlockReference)), WaterProofingObjectOverrule.Instance(), true);
 }
 /// <inheritdoc/>
 public void Initialize()
 {
     Overrule.AddOverrule(RXObject.GetClass(typeof(BlockReference)), LevelMarkGripPointOverrule.Instance(), true);
     Overrule.AddOverrule(RXObject.GetClass(typeof(BlockReference)), LevelMarkOsnapOverrule.Instance(), true);
     Overrule.AddOverrule(RXObject.GetClass(typeof(BlockReference)), LevelMarkObjectOverrule.Instance(), true);
 }