Exemple #1
0
        // Получение списка плиток в определении блока
        private void IterateBtrEnt()
        {
            _tiles  = new List <Tile>();
            _paints = new List <Paint>();

            var btrMarkSb = _idBtr.GetObject(OpenMode.ForRead) as BlockTableRecord;

            foreach (ObjectId idEnt in btrMarkSb)
            {
                if (idEnt.IsValidEx() && idEnt.ObjectClass.Name == "AcDbBlockReference")
                {
                    var    blRef  = idEnt.GetObject(OpenMode.ForRead, false, true) as BlockReference;
                    string blName = blRef.GetEffectiveName();
                    // Плитка
                    if (blName.Equals(Settings.Default.BlockTileName, StringComparison.OrdinalIgnoreCase))
                    {
                        Tile tile = new Tile(blRef, blName);
                        //Определение покраски плитки
                        Paint paint = ColorArea.GetPaint(tile.CenterTile, _rtreeColorArea);
                        _tiles.Add(tile);
                        _paints.Add(paint);
                    }
                    // Окна
                    else if (BlockWindow.IsblockWindow(blName))
                    {
                        BlockWindow window = new BlockWindow(blRef, blName, this);
                        Windows.Add(window);
                    }
                }
            }
        }
Exemple #2
0
        /// <summary>
        /// Нормализация плиток - слой, поворот артикула и установка пустого артикула
        /// </summary>
        public static void TilesNormalize(ObjectId idBtrMarkSb)
        {
            // Перенос блоков плиток на слой
            var layerTile   = LayerExt.CheckLayerState(new LayerInfo(Settings.Default.LayerTile));    //"АР_Плитка"
            var layerWindow = LayerExt.CheckLayerState(new LayerInfo(Settings.Default.LayerWindows)); //"АР_Окна"
            var btrMarkSb   = idBtrMarkSb.GetObject(OpenMode.ForRead) as BlockTableRecord;

            var tilesDict = new Dictionary <Extents3d, BlockReference>(AcadLib.Comparers.Extents3dComparer.Default1);

            foreach (ObjectId idEnt in btrMarkSb)
            {
                if (!idEnt.IsValidEx())
                {
                    continue;
                }
                var blRef = idEnt.GetObject(OpenMode.ForRead, false, true) as BlockReference;
                if (blRef == null)
                {
                    continue;
                }
                if (string.Equals(blRef.GetEffectiveName(), Settings.Default.BlockTileName, StringComparison.CurrentCultureIgnoreCase))
                {
                    var tileExt = blRef.GeometricExtentsСlean();
                    if (tilesDict.ContainsKey(tileExt))
                    {
                        // Дублирование плитки - удаление
                        blRef.UpgradeOpen();
                        blRef.Erase();
                    }
                    else
                    {
                        tilesDict.Add(tileExt, blRef);
                        blRef.UpgradeOpen();
                        // Слой
                        blRef.LayerId = layerTile;
                        // Нормализация плитки (зеркальность, поворот)
                        //blRef.Normalize(); // Есть плитки с подрезкой - как ее нормализовать, пока непонтно!!!???
                        FillTileArticle(blRef, "");
                        blRef.DowngradeOpen();
                    }
                }
                else if (BlockWindow.IsblockWindow(blRef.GetEffectiveName()))
                {
                    if (!string.Equals(blRef.Layer, Settings.Default.LayerWindows))
                    {
                        blRef.UpgradeOpen();
                        blRef.LayerId = layerWindow;
                    }
                }
            }
        }
Exemple #3
0
        private void InitializeTorchAndFlashlight()
        {
            var torch = GetElement("Torch");

            if (torch != null)
            {
                torchWidget = new BlockWindow(torch, "Normal", "Highlight");
                torchWidget.Reset();
            }

            var flashLight = GetElement("Flashlight");

            if (flashLight != null)
            {
                flashLightWidget = new BlockWindow(flashLight, "Normal", "Highlight");
                flashLightWidget.Reset();
            }
        }
Exemple #4
0
        private BlockWindow InitializeBlockWindow(GameObject blockWindow, string normal, string highlight)
        {
            BlockWindow blockWindowWidget = new BlockWindow(blockWindow, normal, highlight);

            return(blockWindowWidget);
        }