Beispiel #1
0
 /// <summary>
 ///     Конструктор.
 /// </summary>
 /// <param name="value">Тип шаблона.</param>
 public InitialTemplateCircuitTypeComboBoxItem(InitialTemplateCircuitType value)
 {
     Value = value;
 }
Beispiel #2
0
        /// <summary>
        ///     Инициализировать цепь.
        /// </summary>
        /// <param name="circuit">Цепь.</param>
        /// <param name="initialTemplateCircuitType">Тип шаблона.</param>
        public static void Initialize(Circuit circuit, InitialTemplateCircuitType initialTemplateCircuitType)
        {
            if (circuit == null)
            {
                circuit = new Circuit();
            }

            circuit.Clear();

            switch (initialTemplateCircuitType)
            {
            case InitialTemplateCircuitType.A:
            {
                Inductor inductor1 = new Inductor("L1", 20);
                Resistor resistor2 = new Resistor("R2", 20);
                Resistor resistor3 = new Resistor("R3", 20);
                Inductor inductor4 = new Inductor("L4", 20);

                SeriesSubcircuit seriesSubcircuit1 = new SeriesSubcircuit();
                seriesSubcircuit1.Nodes.Add(inductor1);
                inductor1.Parent = seriesSubcircuit1;
                seriesSubcircuit1.Nodes.Add(resistor2);
                resistor2.Parent = seriesSubcircuit1;

                ParallelSubcircuit parallelSubcircuit1 = new ParallelSubcircuit();
                seriesSubcircuit1.Nodes.Add(parallelSubcircuit1);
                parallelSubcircuit1.Parent = seriesSubcircuit1;
                parallelSubcircuit1.Nodes.Add(resistor3);
                resistor3.Parent = parallelSubcircuit1;
                parallelSubcircuit1.Nodes.Add(inductor4);
                inductor4.Parent = parallelSubcircuit1;

                circuit.AddAfter(null, seriesSubcircuit1);
                break;
            }

            case InitialTemplateCircuitType.B:
            {
                Capacitor capacitor1 = new Capacitor("C1", 20);
                Inductor  inductor2  = new Inductor("L2", 20);
                Resistor  resistor3  = new Resistor("R3", 20);
                Inductor  inductor4  = new Inductor("L4", 20);

                ParallelSubcircuit parallelSubcircuit1 = new ParallelSubcircuit();
                parallelSubcircuit1.Nodes.Add(capacitor1);
                capacitor1.Parent = parallelSubcircuit1;

                SeriesSubcircuit seriesSubcircuit1 = new SeriesSubcircuit();
                parallelSubcircuit1.Nodes.Add(seriesSubcircuit1);
                seriesSubcircuit1.Parent = parallelSubcircuit1;

                seriesSubcircuit1.Nodes.Add(inductor2);
                inductor2.Parent = seriesSubcircuit1;

                ParallelSubcircuit parallelSubcircuit2 = new ParallelSubcircuit();
                parallelSubcircuit2.Nodes.Add(resistor3);
                resistor3.Parent = parallelSubcircuit2;
                parallelSubcircuit2.Nodes.Add(inductor4);
                inductor4.Parent = parallelSubcircuit2;

                seriesSubcircuit1.Nodes.Add(parallelSubcircuit2);
                parallelSubcircuit2.Parent = seriesSubcircuit1;
                circuit.AddAfter(null, parallelSubcircuit1);

                break;
            }


            case InitialTemplateCircuitType.C:
            {
                Resistor resistor1 = new Resistor("R1", 20);
                Inductor inductor2 = new Inductor("L2", 20);
                Inductor inductor3 = new Inductor("L3", 20);
                Inductor inductor4 = new Inductor("L4", 20);
                Resistor resistor5 = new Resistor("R5", 20);
                Resistor resistor6 = new Resistor("R6", 20);
                Inductor inductor7 = new Inductor("L7", 20);

                ParallelSubcircuit parallelSubcircuit1 = new ParallelSubcircuit();

                SeriesSubcircuit seriesSubcircuit1 = new SeriesSubcircuit();
                SeriesSubcircuit seriesSubcircuit2 = new SeriesSubcircuit();

                parallelSubcircuit1.Nodes.Add(seriesSubcircuit1);
                seriesSubcircuit1.Parent = parallelSubcircuit1;
                parallelSubcircuit1.Nodes.Add(seriesSubcircuit2);
                seriesSubcircuit2.Parent = parallelSubcircuit1;

                ParallelSubcircuit parallelSubcircuit2 = new ParallelSubcircuit();
                ParallelSubcircuit parallelSubcircuit3 = new ParallelSubcircuit();

                seriesSubcircuit1.Nodes.Add(inductor3);
                inductor3.Parent = seriesSubcircuit1;
                seriesSubcircuit1.Nodes.Add(parallelSubcircuit2);
                parallelSubcircuit2.Parent = seriesSubcircuit1;
                parallelSubcircuit2.Nodes.Add(resistor1);
                resistor1.Parent = parallelSubcircuit2;
                parallelSubcircuit2.Nodes.Add(inductor4);
                inductor4.Parent = parallelSubcircuit2;

                seriesSubcircuit2.Nodes.Add(inductor2);
                inductor2.Parent = seriesSubcircuit2;
                seriesSubcircuit2.Nodes.Add(resistor5);
                resistor5.Parent = seriesSubcircuit2;
                seriesSubcircuit2.Nodes.Add(parallelSubcircuit3);
                parallelSubcircuit3.Parent = seriesSubcircuit2;
                parallelSubcircuit3.Nodes.Add(resistor6);
                resistor6.Parent = parallelSubcircuit3;
                parallelSubcircuit3.Nodes.Add(inductor7);
                inductor7.Parent = parallelSubcircuit3;
                circuit.AddAfter(null, parallelSubcircuit1);
                break;
            }


            case InitialTemplateCircuitType.D:
            {
                Resistor  resistor1  = new Resistor("R1", 1);
                Capacitor capacitor2 = new Capacitor("C2", 20);
                Resistor  resistor3  = new Resistor("R3", 20);
                Inductor  inductor4  = new Inductor("L4", 20);
                Resistor  resistor5  = new Resistor("R5", 20);
                Inductor  inductor6  = new Inductor("L6", 20);

                SeriesSubcircuit   seriesSubcircuit1   = new SeriesSubcircuit();
                ParallelSubcircuit parallelSubcircuit1 = new ParallelSubcircuit();
                ParallelSubcircuit parallelSubcircuit2 = new ParallelSubcircuit();

                seriesSubcircuit1.Nodes.Add(parallelSubcircuit1);
                parallelSubcircuit1.Parent = seriesSubcircuit1;
                seriesSubcircuit1.Nodes.Add(parallelSubcircuit2);
                parallelSubcircuit2.Parent = seriesSubcircuit1;
                seriesSubcircuit1.Nodes.Add(resistor3);
                resistor3.Parent = seriesSubcircuit1;
                parallelSubcircuit1.Nodes.Add(resistor1);
                resistor1.Parent = parallelSubcircuit1;
                parallelSubcircuit1.Nodes.Add(inductor4);
                inductor4.Parent = parallelSubcircuit1;
                parallelSubcircuit2.Nodes.Add(capacitor2);
                capacitor2.Parent = parallelSubcircuit2;
                parallelSubcircuit2.Nodes.Add(resistor5);
                resistor5.Parent = parallelSubcircuit2;
                parallelSubcircuit2.Nodes.Add(inductor6);
                inductor6.Parent = parallelSubcircuit2;
                circuit.AddAfter(null, seriesSubcircuit1);

                break;
            }


            case InitialTemplateCircuitType.E:
            {
                Resistor  resistor1  = new Resistor("R1", 20);
                Capacitor capacitor2 = new Capacitor("C2", 20);
                Resistor  resistor3  = new Resistor("R3", 20);
                Inductor  inductor4  = new Inductor("L4", 20);
                Resistor  resistor5  = new Resistor("R5", 20);
                Inductor  inductor6  = new Inductor("L6", 20);
                Resistor  resistor7  = new Resistor("R7", 20);
                Inductor  inductor8  = new Inductor("L8", 20);

                SeriesSubcircuit   seriesSubcircuit1   = new SeriesSubcircuit();
                SeriesSubcircuit   seriesSubcircuit2   = new SeriesSubcircuit();
                ParallelSubcircuit parallelSubcircuit1 = new ParallelSubcircuit();
                ParallelSubcircuit parallelSubcircuit2 = new ParallelSubcircuit();
                ParallelSubcircuit parallelSubcircuit3 = new ParallelSubcircuit();
                seriesSubcircuit1.Nodes.Add(parallelSubcircuit1);
                parallelSubcircuit1.Parent = seriesSubcircuit1;
                parallelSubcircuit1.Nodes.Add(resistor1);
                resistor1.Parent = parallelSubcircuit1;
                parallelSubcircuit1.Nodes.Add(inductor4);
                inductor4.Parent = parallelSubcircuit1;

                seriesSubcircuit1.Nodes.Add(parallelSubcircuit2);
                parallelSubcircuit2.Parent = seriesSubcircuit1;
                parallelSubcircuit2.Nodes.Add(capacitor2);
                capacitor2.Parent = parallelSubcircuit2;
                parallelSubcircuit2.Nodes.Add(seriesSubcircuit2);
                seriesSubcircuit2.Parent = parallelSubcircuit2;
                seriesSubcircuit2.Nodes.Add(parallelSubcircuit3);
                parallelSubcircuit3.Parent = seriesSubcircuit2;
                seriesSubcircuit2.Nodes.Add(resistor7);
                resistor7.Parent = seriesSubcircuit2;
                parallelSubcircuit3.Nodes.Add(resistor5);
                resistor5.Parent = parallelSubcircuit3;
                parallelSubcircuit3.Nodes.Add(inductor8);
                inductor8.Parent = parallelSubcircuit3;
                parallelSubcircuit2.Nodes.Add(inductor6);
                inductor6.Parent = parallelSubcircuit2;
                seriesSubcircuit1.Nodes.Add(resistor3);
                resistor3.Parent = seriesSubcircuit1;

                circuit.AddAfter(null, seriesSubcircuit1);
                break;
            }
            }
        }