Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

In the Designer tab > Display panel > Blast section > Shading dropdown > there is a preloaded list of automatic shadings for the level hierarchy and reserves fields. We can add to this list by configuring custom shading sets.

Create a simple custom shading:

...

Select the gear icon next to the Shading dropdown. This opens the configuration dialog.

...

Press the blue plus icon to add a new shading set.

...

Rename the shading to "Grade".

...

Drop down the Shading Field and select 'Reserves: DryTonnes.FE'.

...

Во вкладке Designer в панели Display найдите раздел Blast и нажмите на раскрывающийся список Shading (Заливка). В нем находится предварительно загруженный список автоматических заливой для иерархии уровня и полей запасов. Вы можете расширить этот список, добавив в него пользовательские наборы заливки.

Создание простой пользовательской заливка:

  1. Нажмите на значок шестеренки, находящийся справа от раскрывающегося списка Shading. Откроется диалоговое окно пользовательской настройки.

  2. Нажмите синюю иконку со знаком плюса, чтобы добавить новую заливку.

  3. Измените имя заливки на «Grade» (Сорт).

  4. Нажмите на раскрывающийся список Shading Field и выберите «Reserves: DryTonnes.FE» (Запасы: тонны в сухом состоянии.FE).

  5. В таблице Values (Значения) введите бортовые содержания (низший сорт) (например, 52,54,56,58,60) and assign a colour to each interval.

  6. Press OK to accept.

...

Simple shading set on Fe grade.

...

Blasts shaded by average Fe grade (all materials)

Create a complex blast shading:

  1. Select the gear icon next to the Shading dropdown. This opens the configuration dialog.

  2. Press the blue plus icon to add a new shading set.

  3. Rename the shading to "Data Source".

  4. Click the "Complex" tab to open the code editor.

  5. Paste in the sample code below.

  6. Press OK to accept.

...

Custom shading for Excluded, Grade Control, and Block Model blasts.

...

Blasts shaded by data source.

Data Source Shading Sample
  1. и назначьте цвет для каждого интервала.

  2. Нажмите ОК для подтверждения.

...

Создание сложной пользовательской заливки:

  1. Нажмите на значок шестеренки, находящийся справа от раскрывающегося списка Shading. Откроется диалоговое окно пользовательской настройки.

  2. Нажмите синюю иконку со знаком плюса, чтобы добавить новую заливку.

  3. Измените имя заливки на «Data Source» (Источник данных).

  4. Перейдите во вкладку Complex, чтобы открыть редактор кода.

  5. Вставьте в него фрагмент кода, приведенный ниже.

  6. Нажмите ОК для подтверждения.

...

Пример заливки по источнику данных
Code Block
languagec#
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Text;
using System.Linq;
using Alastri.RR.Ui;
using Alastri.RR.Service;

public class CustomBlastShading : IBlastShading
{
       public Color GetColor(ShadingContext context) 
		{
        	string dataSource = context.ReservesDataSource.ToString();
            bool excluded = context.IsExcluded;
             
            if(excluded) return Color.DarkOrchid;
        	else if(dataSource == "GradeControl") return Color.BurlyWood;
            else if(dataSource == "BlockModel")   return Color.BlanchedAlmond;
            else return Color.Red;
    	}
}

...

Проверка тонн
Code Block
languagec#
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Text;
using System.Linq;
using Alastri.RR.Ui;
using Alastri.RR.Service;

public class CustomBlastShading : IBlastShading
{
       public Color GetColor(ShadingContext context) 
		{
        	double tonnes = context.N("DryTonnes");
             
            if(tonnes > 0) return Color.BlanchedAlmond;
            else return Color.Red;
    	}
}

...

Заливка руды/

...

вскрыши
Code Block
languagec#
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Text;
using System.Linq;
using Alastri.RR.Ui;
using Alastri.RR.Service;

public class CustomBlastShading : IBlastShading
{
       static List<string> oreParcels = new List<string> { "hg", "mg", "lg" };
	
		public Color GetColor(ShadingContext context)
        {
            
			bool containsOre = false;
			bool containsWaste = false;
			
			foreach(string parcel in context.GetParcels())
			{
				if(oreParcels.Contains(parcel))
				{
					containsOre = true;
				}
				else 
				{
					containsWaste = true;
				}
			}
			
			if(containsOre && containsWaste) return Color.Yellow;
			else if(containsOre) return Color.Red;
			else return Color.Gray;
        }
}

...

Цветовой градиент контура
Code Block
languagec#
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Text;
using System.Linq;
using Alastri.RR.Ui;
using Alastri.RR.Service;

public class CustomBlastShading : IBlastShading
{
  public Color GetColor(ShadingContext context)
  {
    double contPct = context.GetReserveValue("volume.contour_pct"); //block model value
    double overrideContPct = context.GetSolidPropertyValue("ContPctFix"); //user manual override

    if(overrideContPct >=0) contPct = overrideContPct;
    contPct = Math.Max(0, Math.Min(1, contPct));

    Color high = Color.Magenta;
    Color low = Color.DeepSkyBlue;

    return Lerp(low, high, contPct);
  }

  public Color Lerp(Color one, Color two, double pct)
  {
    return Color.FromArgb( (int)(one.R + pct * (two.R-one.R)) ,
    (int)(one.G + pct * (two.G-one.G)) ,
    (int)(one.B + pct * (two.B-one.B)) );
  }
}