/* -*- tab-width: 4 -*-
*
* Electric(tm) VLSI Design System
*
* File: PCB.java
* Printed-Circuit Board technology description
* Generated automatically from C Electric
*
* Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
*
* Electric(tm) is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3 of the License, or
* (at your option) any later version.
*
* Electric(tm) is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with Electric(tm); see the file COPYING. If not, write to
* the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
* Boston, Mass 02111-1307, USA.
*/
package com.sun.electric.technology.technologies;
import com.sun.electric.database.geometry.EGraphics;
import com.sun.electric.database.geometry.Poly;
import com.sun.electric.database.prototype.PortCharacteristic;
import com.sun.electric.technology.ArcProto;
import com.sun.electric.technology.EdgeH;
import com.sun.electric.technology.EdgeV;
import com.sun.electric.technology.Foundry;
import com.sun.electric.technology.Layer;
import com.sun.electric.technology.PrimitiveNode;
import com.sun.electric.technology.PrimitivePort;
import com.sun.electric.technology.TechFactory;
import com.sun.electric.technology.Technology;
import java.awt.Color;
/**
* This is the Printed Circuit Board (eight-layer) Technology.
*/
public class PCB extends Technology
{
// -------------------- private and protected methods ------------------------
public PCB(Generic generic, TechFactory techFactory)
{
super(generic, techFactory, Foundry.Type.NONE, 8);
setTechDesc("Printed Circuit Board (eight-layer)");
setFactoryScale(1270000, true); // in nanometers: really 1270 microns
setNoNegatedArcs();
setStaticTechnology();
setFactoryTransparentLayers(new Color []
{
new Color( 0, 0, 0), // layer 1
new Color(255, 0, 0), // layer 2
new Color( 0,255, 0), // layer 3
new Color( 0, 0,255), // layer 4
new Color(255,255, 0), // layer 5
});
//**************************************** LAYERS ****************************************
/** S layer */
Layer S_lay = Layer.newInstance(this, "Signal1",
new EGraphics(false, false, null, EGraphics.TRANSPARENT_1, 0, 0, 0,/*0,255,0,*/ 0.8,true,
new int[] {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}));
/** S0 layer */
Layer S0_lay = Layer.newInstance(this, "Signal2",
new EGraphics(false, false, null, EGraphics.TRANSPARENT_2, 255, 0, 0,/*0,0,255,*/ 0.8,true,
new int[] {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}));
/** S1 layer */
Layer S1_lay = Layer.newInstance(this, "Signal3",
new EGraphics(false, false, null, EGraphics.TRANSPARENT_3, 0,255, 0,/*255,255,0,*/ 0.8,true,
new int[] {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}));
/** S2 layer */
Layer S2_lay = Layer.newInstance(this, "Signal4",
new EGraphics(false, false, null, EGraphics.TRANSPARENT_4, 0, 0,255,/*116,0,0,*/ 0.8,true,
new int[] {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}));
/** S3 layer */
Layer S3_lay = Layer.newInstance(this, "Signal5",
new EGraphics(false, false, null, EGraphics.TRANSPARENT_5, 255,255, 0,/*0,0,0,*/ 0.8,true,
new int[] {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}));
/** S4 layer */
Layer S4_lay = Layer.newInstance(this, "Signal6",
new EGraphics(false, false, null, 0, 255,255,0, 0.8,true,
new int[] {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}));
/** S5 layer */
Layer S5_lay = Layer.newInstance(this, "Signal7",
new EGraphics(false, false, null, 0, 255,190,6, 0.8,true,
new int[] {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}));
/** S6 layer */
Layer S6_lay = Layer.newInstance(this, "Signal8",
new EGraphics(false, false, null, 0, 0,255,255, 0.8,true,
new int[] {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}));
/** P layer */
Layer P_lay = Layer.newInstance(this, "Power1",
new EGraphics(false, false, null, EGraphics.TRANSPARENT_1, 0, 0, 0,/*0,255,0,*/ 0.8,true,
new int[] {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}));
/** P0 layer */
Layer P0_lay = Layer.newInstance(this, "Power2",
new EGraphics(false, false, null, EGraphics.TRANSPARENT_2, 255, 0, 0,/*0,0,255,*/ 0.8,true,
new int[] {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}));
/** P1 layer */
Layer P1_lay = Layer.newInstance(this, "Power3",
new EGraphics(false, false, null, EGraphics.TRANSPARENT_3, 0,255, 0,/*255,255,0,*/ 0.8,true,
new int[] {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}));
/** P2 layer */
Layer P2_lay = Layer.newInstance(this, "Power4",
new EGraphics(false, false, null, EGraphics.TRANSPARENT_4, 0, 0,255,/*116,0,0,*/ 0.8,true,
new int[] {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}));
/** P3 layer */
Layer P3_lay = Layer.newInstance(this, "Power5",
new EGraphics(false, false, null, EGraphics.TRANSPARENT_5, 255,255, 0,/*0,0,0,*/ 0.8,true,
new int[] {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}));
/** P4 layer */
Layer P4_lay = Layer.newInstance(this, "Power6",
new EGraphics(false, false, null, 0, 255,255,0, 0.8,true,
new int[] {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}));
/** P5 layer */
Layer P5_lay = Layer.newInstance(this, "Power7",
new EGraphics(false, false, null, 0, 255,190,6, 0.8,true,
new int[] {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}));
/** P6 layer */
Layer P6_lay = Layer.newInstance(this, "Power8",
new EGraphics(false, false, null, 0, 0,255,255, 0.8,true,
new int[] {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}));
/** T layer */
Layer T_lay = Layer.newInstance(this, "TopSilk",
new EGraphics(false, false, null, 0, 230,230,230, 0.8,true,
new int[] {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}));
/** B layer */
Layer B_lay = Layer.newInstance(this, "BottomSilk",
new EGraphics(false, false, null, 0, 100,100,100, 0.8,true,
new int[] {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}));
/** T0 layer */
Layer T0_lay = Layer.newInstance(this, "TopSolder",
new EGraphics(false, false, null, 0, 175,255,175, 0.8,true,
new int[] {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}));
/** B0 layer */
Layer B0_lay = Layer.newInstance(this, "BottomSolder",
new EGraphics(false, false, null, 0, 89,159,85, 0.8,true,
new int[] {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}));
/** D layer */
Layer D_lay = Layer.newInstance(this, "Drill",
new EGraphics(false, false, null, 0, 2,15,159, 0.8,true,
new int[] {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}));
/** D0 layer */
Layer D0_lay = Layer.newInstance(this, "DrillNonPlated",
new EGraphics(false, false, null, 0, 150,150,255, 0.8,true,
new int[] {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}));
/** D1 layer */
Layer D1_lay = Layer.newInstance(this, "Drawing",
new EGraphics(false, false, null, 0, 255,150,150, 0.8,true,
new int[] {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}));
// The layer functions
S_lay.setFunction(Layer.Function.METAL1); // Signal1
S0_lay.setFunction(Layer.Function.METAL2); // Signal2
S1_lay.setFunction(Layer.Function.METAL3); // Signal3
S2_lay.setFunction(Layer.Function.METAL4); // Signal4
S3_lay.setFunction(Layer.Function.METAL5); // Signal5
S4_lay.setFunction(Layer.Function.METAL6); // Signal6
S5_lay.setFunction(Layer.Function.METAL7); // Signal7
S6_lay.setFunction(Layer.Function.METAL8); // Signal8
P_lay.setFunction(Layer.Function.METAL1); // Power1
P0_lay.setFunction(Layer.Function.METAL2); // Power2
P1_lay.setFunction(Layer.Function.METAL3); // Power3
P2_lay.setFunction(Layer.Function.METAL4); // Power4
P3_lay.setFunction(Layer.Function.METAL5); // Power5
P4_lay.setFunction(Layer.Function.METAL6); // Power6
P5_lay.setFunction(Layer.Function.METAL7); // Power7
P6_lay.setFunction(Layer.Function.METAL8); // Power8
T_lay.setFunction(Layer.Function.ART); // TopSilk
B_lay.setFunction(Layer.Function.ART); // BottomSilk
T0_lay.setFunction(Layer.Function.METAL1); // TopSolder
B0_lay.setFunction(Layer.Function.METAL8); // BottomSolder
D_lay.setFunction(Layer.Function.CONTACT1, Layer.Function.CONMETAL); // Drill
D0_lay.setFunction(Layer.Function.ART); // DrillNonPlated
D1_lay.setFunction(Layer.Function.ART); // Drawing
// The CIF names
S_lay.setFactoryCIFLayer("PC1"); // Signal1
S0_lay.setFactoryCIFLayer("PC2"); // Signal2
S1_lay.setFactoryCIFLayer("PC3"); // Signal3
S2_lay.setFactoryCIFLayer("PC4"); // Signal4
S3_lay.setFactoryCIFLayer("PC5"); // Signal5
S4_lay.setFactoryCIFLayer("PC6"); // Signal6
S5_lay.setFactoryCIFLayer("PC7"); // Signal7
S6_lay.setFactoryCIFLayer("PC8"); // Signal8
P_lay.setFactoryCIFLayer("PN1"); // Power1
P0_lay.setFactoryCIFLayer("PN2"); // Power2
P1_lay.setFactoryCIFLayer("PN3"); // Power3
P2_lay.setFactoryCIFLayer("PN4"); // Power4
P3_lay.setFactoryCIFLayer("PN5"); // Power5
P4_lay.setFactoryCIFLayer("PN6"); // Power6
P5_lay.setFactoryCIFLayer("PN7"); // Power7
P6_lay.setFactoryCIFLayer("PN8"); // Power8
T_lay.setFactoryCIFLayer("PSSC"); // TopSilk
B_lay.setFactoryCIFLayer("PSSS"); // BottomSilk
T0_lay.setFactoryCIFLayer("PSMC"); // TopSolder
B0_lay.setFactoryCIFLayer("PSMS"); // BottomSolder
D_lay.setFactoryCIFLayer("PD"); // Drill
D0_lay.setFactoryCIFLayer("PDNP"); // DrillNonPlated
D1_lay.setFactoryCIFLayer("PF"); // Drawing
// The DXF names
S_lay.setFactoryDXFLayer(""); // Signal1
S0_lay.setFactoryDXFLayer(""); // Signal2
S1_lay.setFactoryDXFLayer(""); // Signal3
S2_lay.setFactoryDXFLayer(""); // Signal4
S3_lay.setFactoryDXFLayer(""); // Signal5
S4_lay.setFactoryDXFLayer(""); // Signal6
S5_lay.setFactoryDXFLayer(""); // Signal7
S6_lay.setFactoryDXFLayer(""); // Signal8
P_lay.setFactoryDXFLayer(""); // Power1
P0_lay.setFactoryDXFLayer(""); // Power2
P1_lay.setFactoryDXFLayer(""); // Power3
P2_lay.setFactoryDXFLayer(""); // Power4
P3_lay.setFactoryDXFLayer(""); // Power5
P4_lay.setFactoryDXFLayer(""); // Power6
P5_lay.setFactoryDXFLayer(""); // Power7
P6_lay.setFactoryDXFLayer(""); // Power8
T_lay.setFactoryDXFLayer(""); // TopSilk
B_lay.setFactoryDXFLayer(""); // BottomSilk
T0_lay.setFactoryDXFLayer(""); // TopSolder
B0_lay.setFactoryDXFLayer(""); // BottomSolder
D_lay.setFactoryDXFLayer(""); // Drill
D0_lay.setFactoryDXFLayer(""); // DrillNonPlated
D1_lay.setFactoryDXFLayer(""); // Drawing
//******************** ARCS ********************
ArcProto[] SignalArcs = new ArcProto[8];
/** Signal-1 arc */
SignalArcs[0] = newArcProto("Signal-1", 0, 0, ArcProto.Function.METAL1,
new Technology.ArcLayer(S_lay, 0, Poly.Type.FILLED)
);
SignalArcs[0].setWipable();
SignalArcs[0].setFactoryAngleIncrement(45);
/** Signal-2 arc */
SignalArcs[1] = newArcProto("Signal-2", 0, 0, ArcProto.Function.METAL2,
new Technology.ArcLayer(S0_lay, 0, Poly.Type.FILLED)
);
SignalArcs[1].setWipable();
SignalArcs[1].setFactoryAngleIncrement(45);
/** Signal-3 arc */
SignalArcs[2] = newArcProto("Signal-3", 0, 0, ArcProto.Function.METAL3,
new Technology.ArcLayer(S1_lay, 0, Poly.Type.FILLED)
);
SignalArcs[2].setWipable();
SignalArcs[2].setFactoryAngleIncrement(45);
/** Signal-4 arc */
SignalArcs[3] = newArcProto("Signal-4", 0, 0, ArcProto.Function.METAL4,
new Technology.ArcLayer(S2_lay, 0, Poly.Type.FILLED)
);
SignalArcs[3].setWipable();
SignalArcs[3].setFactoryAngleIncrement(45);
/** Signal-5 arc */
SignalArcs[4] = newArcProto("Signal-5", 0, 0, ArcProto.Function.METAL5,
new Technology.ArcLayer(S3_lay, 0, Poly.Type.FILLED)
);
SignalArcs[4].setWipable();
SignalArcs[4].setFactoryAngleIncrement(45);
/** Signal-6 arc */
SignalArcs[5] = newArcProto("Signal-6", 0, 0, ArcProto.Function.METAL6,
new Technology.ArcLayer(S4_lay, 0, Poly.Type.FILLED)
);
SignalArcs[5].setWipable();
SignalArcs[5].setFactoryAngleIncrement(45);
/** Signal-7 arc */
SignalArcs[6] = newArcProto("Signal-7", 0, 0, ArcProto.Function.METAL7,
new Technology.ArcLayer(S5_lay, 0, Poly.Type.FILLED)
);
SignalArcs[6].setWipable();
SignalArcs[6].setFactoryAngleIncrement(45);
/** Signal-8 arc */
SignalArcs[7] = newArcProto("Signal-8", 0, 0, ArcProto.Function.METAL8,
new Technology.ArcLayer(S6_lay, 0, Poly.Type.FILLED)
);
SignalArcs[7].setWipable();
SignalArcs[7].setFactoryAngleIncrement(45);
ArcProto[] PowerArcs = new ArcProto[8];
/** Power-1 arc */
PowerArcs[0] = newArcProto("Power-1", 0, 0, ArcProto.Function.METAL1,
new Technology.ArcLayer(P_lay, 0, Poly.Type.FILLED)
);
PowerArcs[0].setWipable();
PowerArcs[0].setFactoryAngleIncrement(45);
/** Power-2 arc */
PowerArcs[1] = newArcProto("Power-2", 0, 0, ArcProto.Function.METAL2,
new Technology.ArcLayer(P0_lay, 0, Poly.Type.FILLED)
);
PowerArcs[1].setWipable();
PowerArcs[1].setFactoryAngleIncrement(45);
/** Power-3 arc */
PowerArcs[2] = newArcProto("Power-3", 0, 0, ArcProto.Function.METAL3,
new Technology.ArcLayer(P1_lay, 0, Poly.Type.FILLED)
);
PowerArcs[2].setWipable();
PowerArcs[2].setFactoryAngleIncrement(45);
/** Power-4 arc */
PowerArcs[3] = newArcProto("Power-4", 0, 0, ArcProto.Function.METAL4,
new Technology.ArcLayer(P2_lay, 0, Poly.Type.FILLED)
);
PowerArcs[3].setWipable();
PowerArcs[3].setFactoryAngleIncrement(45);
/** Power-5 arc */
PowerArcs[4] = newArcProto("Power-5", 0, 0, ArcProto.Function.METAL5,
new Technology.ArcLayer(P3_lay, 0, Poly.Type.FILLED)
);
PowerArcs[4].setWipable();
PowerArcs[4].setFactoryAngleIncrement(45);
/** Power-6 arc */
PowerArcs[5] = newArcProto("Power-6", 0, 0, ArcProto.Function.METAL6,
new Technology.ArcLayer(P4_lay, 0, Poly.Type.FILLED)
);
PowerArcs[5].setWipable();
PowerArcs[5].setFactoryAngleIncrement(45);
/** Power-7 arc */
PowerArcs[6] = newArcProto("Power-7", 0, 0, ArcProto.Function.METAL7,
new Technology.ArcLayer(P5_lay, 0, Poly.Type.FILLED)
);
PowerArcs[6].setWipable();
PowerArcs[6].setFactoryAngleIncrement(45);
/** Power-8 arc */
PowerArcs[7] = newArcProto("Power-8", 0, 0, ArcProto.Function.METAL8,
new Technology.ArcLayer(P6_lay, 0, Poly.Type.FILLED)
);
PowerArcs[7].setWipable();
PowerArcs[7].setFactoryAngleIncrement(45);
/** Top-Silk arc */
ArcProto Top_Silk_arc = newArcProto("Top-Silk", 0, 0, ArcProto.Function.NONELEC,
new Technology.ArcLayer(T_lay, 0, Poly.Type.FILLED)
);
Top_Silk_arc.setWipable();
Top_Silk_arc.setFactoryAngleIncrement(45);
/** Bottom-Silk arc */
ArcProto Bottom_Silk_arc = newArcProto("Bottom-Silk", 0, 0, ArcProto.Function.NONELEC,
new Technology.ArcLayer(B_lay, 0, Poly.Type.FILLED)
);
Bottom_Silk_arc.setWipable();
Bottom_Silk_arc.setFactoryAngleIncrement(45);
/** Top-Solder arc */
ArcProto Top_Solder_arc = newArcProto("Top-Solder", 0, 0, ArcProto.Function.NONELEC,
new Technology.ArcLayer(T0_lay, 0, Poly.Type.FILLED)
);
Top_Solder_arc.setWipable();
Top_Solder_arc.setFactoryAngleIncrement(45);
/** Bottom-Solder arc */
ArcProto Bottom_Solder_arc = newArcProto("Bottom-Solder", 0, 0, ArcProto.Function.NONELEC,
new Technology.ArcLayer(B0_lay, 0, Poly.Type.FILLED)
);
Bottom_Solder_arc.setWipable();
Bottom_Solder_arc.setFactoryAngleIncrement(45);
/** Drawing arc */
ArcProto Drawing_arc = newArcProto("Drawing", 0, 0, ArcProto.Function.NONELEC,
new Technology.ArcLayer(D1_lay, 0, Poly.Type.FILLED)
);
Drawing_arc.setWipable();
Drawing_arc.setFactoryAngleIncrement(45);
//******************** RECTANGLE DESCRIPTIONS ********************
Technology.TechPoint [] box_1 = new Technology.TechPoint[] {
new Technology.TechPoint(EdgeH.makeCenter(), EdgeV.makeCenter()),
new Technology.TechPoint(EdgeH.makeRightEdge(), EdgeV.makeCenter()),
};
// Technology.TechPoint [] box_2 = new Technology.TechPoint[] {
// new Technology.TechPoint(EdgeH.makeLeftEdge(), EdgeV.makeBottomEdge()),
// new Technology.TechPoint(EdgeH.makeRightEdge(), EdgeV.makeTopEdge()),
// };
//******************** NODES ********************
PrimitiveNode[] spinNodes = new PrimitiveNode[8];
/** Signal-1-Pin */
spinNodes[0] = PrimitiveNode.newInstance0("Signal-1-Pin", this, 1.25, 1.25,
new Technology.NodeLayer []
{
new Technology.NodeLayer(S_lay, 0, Poly.Type.DISC, Technology.NodeLayer.POINTS, box_1)
});
spinNodes[0].addPrimitivePortsFixed(new PrimitivePort[]
{
PrimitivePort.newInstance(this, spinNodes[0], new ArcProto [] {SignalArcs[0], PowerArcs[0]}, "signal-1", 0,180, 0, PortCharacteristic.UNKNOWN,
EdgeH.makeCenter(), EdgeV.makeCenter(), EdgeH.makeCenter(), EdgeV.makeCenter())
});
spinNodes[0].setFunction(PrimitiveNode.Function.PIN);
spinNodes[0].setWipeOn1or2();
spinNodes[0].setSquare();
/** Signal-2-Pin */
spinNodes[1] = PrimitiveNode.newInstance0("Signal-2-Pin", this, 1.25, 1.25,
new Technology.NodeLayer []
{
new Technology.NodeLayer(S0_lay, 0, Poly.Type.DISC, Technology.NodeLayer.POINTS, box_1)
});
spinNodes[1].addPrimitivePortsFixed(new PrimitivePort[]
{
PrimitivePort.newInstance(this, spinNodes[1], new ArcProto [] {SignalArcs[1], PowerArcs[1]}, "signal-2", 0,180, 0, PortCharacteristic.UNKNOWN,
EdgeH.makeCenter(), EdgeV.makeCenter(), EdgeH.makeCenter(), EdgeV.makeCenter())
});
spinNodes[1].setFunction(PrimitiveNode.Function.PIN);
spinNodes[1].setWipeOn1or2();
spinNodes[1].setSquare();
/** Signal-3-Pin */
spinNodes[2] = PrimitiveNode.newInstance0("Signal-3-Pin", this, 1.25, 1.25,
new Technology.NodeLayer []
{
new Technology.NodeLayer(S1_lay, 0, Poly.Type.DISC, Technology.NodeLayer.POINTS, box_1)
});
spinNodes[2].addPrimitivePortsFixed(new PrimitivePort[]
{
PrimitivePort.newInstance(this, spinNodes[2], new ArcProto [] {SignalArcs[2], PowerArcs[2]}, "signal-3", 0,180, 0, PortCharacteristic.UNKNOWN,
EdgeH.makeCenter(), EdgeV.makeCenter(), EdgeH.makeCenter(), EdgeV.makeCenter())
});
spinNodes[2].setFunction(PrimitiveNode.Function.PIN);
spinNodes[2].setWipeOn1or2();
spinNodes[2].setSquare();
/** Signal-4-Pin */
spinNodes[3] = PrimitiveNode.newInstance0("Signal-4-Pin", this, 1.25, 1.25,
new Technology.NodeLayer []
{
new Technology.NodeLayer(S2_lay, 0, Poly.Type.DISC, Technology.NodeLayer.POINTS, box_1)
});
spinNodes[3].addPrimitivePortsFixed(new PrimitivePort[]
{
PrimitivePort.newInstance(this, spinNodes[3], new ArcProto [] {SignalArcs[3], PowerArcs[3]}, "signal-4", 0,180, 0, PortCharacteristic.UNKNOWN,
EdgeH.makeCenter(), EdgeV.makeCenter(), EdgeH.makeCenter(), EdgeV.makeCenter())
});
spinNodes[3].setFunction(PrimitiveNode.Function.PIN);
spinNodes[3].setWipeOn1or2();
spinNodes[3].setSquare();
/** Signal-5-Pin */
spinNodes[4] = PrimitiveNode.newInstance0("Signal-5-Pin", this, 1.25, 1.25,
new Technology.NodeLayer []
{
new Technology.NodeLayer(S3_lay, 0, Poly.Type.DISC, Technology.NodeLayer.POINTS, box_1)
});
spinNodes[4].addPrimitivePortsFixed(new PrimitivePort[]
{
PrimitivePort.newInstance(this, spinNodes[4], new ArcProto [] {SignalArcs[4], PowerArcs[4]}, "signal-5", 0,180, 0, PortCharacteristic.UNKNOWN,
EdgeH.makeCenter(), EdgeV.makeCenter(), EdgeH.makeCenter(), EdgeV.makeCenter())
});
spinNodes[4].setFunction(PrimitiveNode.Function.PIN);
spinNodes[4].setWipeOn1or2();
spinNodes[4].setSquare();
/** Signal-6-Pin */
spinNodes[5] = PrimitiveNode.newInstance0("Signal-6-Pin", this, 1.25, 1.25,
new Technology.NodeLayer []
{
new Technology.NodeLayer(S4_lay, 0, Poly.Type.DISC, Technology.NodeLayer.POINTS, box_1)
});
spinNodes[5].addPrimitivePortsFixed(new PrimitivePort[]
{
PrimitivePort.newInstance(this, spinNodes[5], new ArcProto [] {SignalArcs[5], PowerArcs[5]}, "signal-6", 0,180, 0, PortCharacteristic.UNKNOWN,
EdgeH.makeCenter(), EdgeV.makeCenter(), EdgeH.makeCenter(), EdgeV.makeCenter())
});
spinNodes[5].setFunction(PrimitiveNode.Function.PIN);
spinNodes[5].setWipeOn1or2();
spinNodes[5].setSquare();
/** Signal-7-Pin */
spinNodes[6] = PrimitiveNode.newInstance0("Signal-7-Pin", this, 1.25, 1.25,
new Technology.NodeLayer []
{
new Technology.NodeLayer(S5_lay, 0, Poly.Type.DISC, Technology.NodeLayer.POINTS, box_1)
});
spinNodes[6].addPrimitivePortsFixed(new PrimitivePort[]
{
PrimitivePort.newInstance(this, spinNodes[6], new ArcProto [] {SignalArcs[6], PowerArcs[6]}, "signal-7", 0,180, 0, PortCharacteristic.UNKNOWN,
EdgeH.makeCenter(), EdgeV.makeCenter(), EdgeH.makeCenter(), EdgeV.makeCenter())
});
spinNodes[6].setFunction(PrimitiveNode.Function.PIN);
spinNodes[6].setWipeOn1or2();
spinNodes[6].setSquare();
/** Signal-8-Pin */
spinNodes[7] = PrimitiveNode.newInstance0("Signal-8-Pin", this, 1.25, 1.25,
new Technology.NodeLayer []
{
new Technology.NodeLayer(S6_lay, 0, Poly.Type.DISC, Technology.NodeLayer.POINTS, box_1)
});
spinNodes[7].addPrimitivePortsFixed(new PrimitivePort[]
{
PrimitivePort.newInstance(this, spinNodes[7], new ArcProto [] {SignalArcs[7], PowerArcs[7]}, "signal-8", 0,180, 0, PortCharacteristic.UNKNOWN,
EdgeH.makeCenter(), EdgeV.makeCenter(), EdgeH.makeCenter(), EdgeV.makeCenter())
});
spinNodes[7].setFunction(PrimitiveNode.Function.PIN);
spinNodes[7].setWipeOn1or2();
spinNodes[7].setSquare();
PrimitiveNode[] ppinNodes = new PrimitiveNode[8];
/** Power-1-Pin */
ppinNodes[0] = PrimitiveNode.newInstance0("Power-1-Pin", this, 1.25, 1.25,
new Technology.NodeLayer []
{
new Technology.NodeLayer(P_lay, 0, Poly.Type.DISC, Technology.NodeLayer.POINTS, box_1)
});
ppinNodes[0].addPrimitivePortsFixed(new PrimitivePort[]
{
PrimitivePort.newInstance(this, ppinNodes[0], new ArcProto [] {SignalArcs[0], PowerArcs[0]}, "power-1", 0,180, 0, PortCharacteristic.UNKNOWN,
EdgeH.makeCenter(), EdgeV.makeCenter(), EdgeH.makeCenter(), EdgeV.makeCenter())
});
ppinNodes[0].setFunction(PrimitiveNode.Function.PIN);
ppinNodes[0].setWipeOn1or2();
ppinNodes[0].setSquare();
/** Power-2-Pin */
ppinNodes[1] = PrimitiveNode.newInstance0("Power-2-Pin", this, 1.25, 1.25,
new Technology.NodeLayer []
{
new Technology.NodeLayer(P0_lay, 0, Poly.Type.DISC, Technology.NodeLayer.POINTS, box_1)
});
ppinNodes[1].addPrimitivePortsFixed(new PrimitivePort[]
{
PrimitivePort.newInstance(this, ppinNodes[1], new ArcProto [] {SignalArcs[1], PowerArcs[1]}, "power-2", 0,180, 0, PortCharacteristic.UNKNOWN,
EdgeH.makeCenter(), EdgeV.makeCenter(), EdgeH.makeCenter(), EdgeV.makeCenter())
});
ppinNodes[1].setFunction(PrimitiveNode.Function.PIN);
ppinNodes[1].setWipeOn1or2();
ppinNodes[1].setSquare();
/** Power-3-Pin */
ppinNodes[2] = PrimitiveNode.newInstance0("Power-3-Pin", this, 1.25, 1.25,
new Technology.NodeLayer []
{
new Technology.NodeLayer(P1_lay, 0, Poly.Type.DISC, Technology.NodeLayer.POINTS, box_1)
});
ppinNodes[2].addPrimitivePortsFixed(new PrimitivePort[]
{
PrimitivePort.newInstance(this, ppinNodes[2], new ArcProto [] {SignalArcs[2], PowerArcs[2]}, "power-3", 0,180, 0, PortCharacteristic.UNKNOWN,
EdgeH.makeCenter(), EdgeV.makeCenter(), EdgeH.makeCenter(), EdgeV.makeCenter())
});
ppinNodes[2].setFunction(PrimitiveNode.Function.PIN);
ppinNodes[2].setWipeOn1or2();
ppinNodes[2].setSquare();
/** Power-4-Pin */
ppinNodes[3] = PrimitiveNode.newInstance0("Power-4-Pin", this, 1.25, 1.25,
new Technology.NodeLayer []
{
new Technology.NodeLayer(P2_lay, 0, Poly.Type.DISC, Technology.NodeLayer.POINTS, box_1)
});
ppinNodes[3].addPrimitivePortsFixed(new PrimitivePort[]
{
PrimitivePort.newInstance(this, ppinNodes[3], new ArcProto [] {SignalArcs[3], PowerArcs[3]}, "power-4", 0,180, 0, PortCharacteristic.UNKNOWN,
EdgeH.makeCenter(), EdgeV.makeCenter(), EdgeH.makeCenter(), EdgeV.makeCenter())
});
ppinNodes[3].setFunction(PrimitiveNode.Function.PIN);
ppinNodes[3].setWipeOn1or2();
ppinNodes[3].setSquare();
/** Power-5-Pin */
ppinNodes[4] = PrimitiveNode.newInstance0("Power-5-Pin", this, 1.25, 1.25,
new Technology.NodeLayer []
{
new Technology.NodeLayer(P3_lay, 0, Poly.Type.DISC, Technology.NodeLayer.POINTS, box_1)
});
ppinNodes[4].addPrimitivePortsFixed(new PrimitivePort[]
{
PrimitivePort.newInstance(this, ppinNodes[4], new ArcProto [] {SignalArcs[4], PowerArcs[4]}, "power-5", 0,180, 0, PortCharacteristic.UNKNOWN,
EdgeH.makeCenter(), EdgeV.makeCenter(), EdgeH.makeCenter(), EdgeV.makeCenter())
});
ppinNodes[4].setFunction(PrimitiveNode.Function.PIN);
ppinNodes[4].setWipeOn1or2();
ppinNodes[4].setSquare();
/** Power-6-Pin */
ppinNodes[5] = PrimitiveNode.newInstance0("Power-6-Pin", this, 1.25, 1.25,
new Technology.NodeLayer []
{
new Technology.NodeLayer(P4_lay, 0, Poly.Type.DISC, Technology.NodeLayer.POINTS, box_1)
});
ppinNodes[5].addPrimitivePortsFixed(new PrimitivePort[]
{
PrimitivePort.newInstance(this, ppinNodes[5], new ArcProto [] {SignalArcs[5], PowerArcs[5]}, "power-6", 0,180, 0, PortCharacteristic.UNKNOWN,
EdgeH.makeCenter(), EdgeV.makeCenter(), EdgeH.makeCenter(), EdgeV.makeCenter())
});
ppinNodes[5].setFunction(PrimitiveNode.Function.PIN);
ppinNodes[5].setWipeOn1or2();
ppinNodes[5].setSquare();
/** Power-7-Pin */
ppinNodes[6] = PrimitiveNode.newInstance0("Power-7-Pin", this, 1.25, 1.25,
new Technology.NodeLayer []
{
new Technology.NodeLayer(P5_lay, 0, Poly.Type.DISC, Technology.NodeLayer.POINTS, box_1)
});
ppinNodes[6].addPrimitivePortsFixed(new PrimitivePort[]
{
PrimitivePort.newInstance(this, ppinNodes[6], new ArcProto [] {SignalArcs[6], PowerArcs[6]}, "power-7", 0,180, 0, PortCharacteristic.UNKNOWN,
EdgeH.makeCenter(), EdgeV.makeCenter(), EdgeH.makeCenter(), EdgeV.makeCenter())
});
ppinNodes[6].setFunction(PrimitiveNode.Function.PIN);
ppinNodes[6].setWipeOn1or2();
ppinNodes[6].setSquare();
/** Power-8-Pin */
ppinNodes[7] = PrimitiveNode.newInstance0("Power-8-Pin", this, 1.25, 1.25,
new Technology.NodeLayer []
{
new Technology.NodeLayer(P6_lay, 0, Poly.Type.DISC, Technology.NodeLayer.POINTS, box_1)
});
ppinNodes[7].addPrimitivePortsFixed(new PrimitivePort[]
{
PrimitivePort.newInstance(this, ppinNodes[7], new ArcProto [] {SignalArcs[7], PowerArcs[7]}, "power-8", 0,180, 0, PortCharacteristic.UNKNOWN,
EdgeH.makeCenter(), EdgeV.makeCenter(), EdgeH.makeCenter(), EdgeV.makeCenter())
});
ppinNodes[7].setFunction(PrimitiveNode.Function.PIN);
ppinNodes[7].setWipeOn1or2();
ppinNodes[7].setSquare();
PrimitiveNode[] tspinNodes = new PrimitiveNode[2];
PrimitiveNode[] bspinNodes = new PrimitiveNode[2];
/** Top-Silk-Pin */
tspinNodes[0] = PrimitiveNode.newInstance0("Top-Silk-Pin", this, 1.25, 1.25,
new Technology.NodeLayer []
{
new Technology.NodeLayer(T_lay, 0, Poly.Type.DISC, Technology.NodeLayer.POINTS, box_1)
});
tspinNodes[0].addPrimitivePortsFixed(new PrimitivePort[]
{
PrimitivePort.newInstance(this, tspinNodes[0], new ArcProto [] {Top_Silk_arc}, "top-silk", 0,180, 0, PortCharacteristic.UNKNOWN,
EdgeH.makeCenter(), EdgeV.makeCenter(), EdgeH.makeCenter(), EdgeV.makeCenter())
});
tspinNodes[0].setFunction(PrimitiveNode.Function.PIN);
tspinNodes[0].setWipeOn1or2();
tspinNodes[0].setSquare();
/** Bottom-Silk-Pin */
bspinNodes[0] = PrimitiveNode.newInstance0("Bottom-Silk-Pin", this, 1.25, 1.25,
new Technology.NodeLayer []
{
new Technology.NodeLayer(B_lay, 0, Poly.Type.DISC, Technology.NodeLayer.POINTS, box_1)
});
bspinNodes[0].addPrimitivePortsFixed(new PrimitivePort[]
{
PrimitivePort.newInstance(this, bspinNodes[0], new ArcProto [] {Bottom_Silk_arc}, "bottom-silk", 0,180, 0, PortCharacteristic.UNKNOWN,
EdgeH.makeCenter(), EdgeV.makeCenter(), EdgeH.makeCenter(), EdgeV.makeCenter())
});
bspinNodes[0].setFunction(PrimitiveNode.Function.PIN);
bspinNodes[0].setWipeOn1or2();
bspinNodes[0].setSquare();
/** Top-Solder-Pin */
tspinNodes[1] = PrimitiveNode.newInstance0("Top-Solder-Pin", this, 1.25, 1.25,
new Technology.NodeLayer []
{
new Technology.NodeLayer(T0_lay, 0, Poly.Type.DISC, Technology.NodeLayer.POINTS, box_1)
});
tspinNodes[1].addPrimitivePortsFixed(new PrimitivePort[]
{
PrimitivePort.newInstance(this, tspinNodes[1], new ArcProto [] {Top_Solder_arc}, "top-solder", 0,180, 0, PortCharacteristic.UNKNOWN,
EdgeH.makeCenter(), EdgeV.makeCenter(), EdgeH.makeCenter(), EdgeV.makeCenter())
});
tspinNodes[1].setFunction(PrimitiveNode.Function.PIN);
tspinNodes[1].setWipeOn1or2();
tspinNodes[1].setSquare();
/** Bottom-Solder-Pin */
bspinNodes[1] = PrimitiveNode.newInstance0("Bottom-Solder-Pin", this, 1.25, 1.25,
new Technology.NodeLayer []
{
new Technology.NodeLayer(B0_lay, 0, Poly.Type.DISC, Technology.NodeLayer.POINTS, box_1)
});
bspinNodes[1].addPrimitivePortsFixed(new PrimitivePort[]
{
PrimitivePort.newInstance(this, bspinNodes[1], new ArcProto [] {Bottom_Solder_arc}, "bottom-solder", 0,180, 0, PortCharacteristic.UNKNOWN,
EdgeH.makeCenter(), EdgeV.makeCenter(), EdgeH.makeCenter(), EdgeV.makeCenter())
});
bspinNodes[1].setFunction(PrimitiveNode.Function.PIN);
bspinNodes[1].setWipeOn1or2();
bspinNodes[1].setSquare();
/** Drill-Pin */
PrimitiveNode dp_node = PrimitiveNode.newInstance0("Drill-Pin", this, 1.25, 1.25,
new Technology.NodeLayer []
{
new Technology.NodeLayer(D_lay, 0, Poly.Type.DISC, Technology.NodeLayer.POINTS, box_1)
});
dp_node.addPrimitivePortsFixed(new PrimitivePort[]
{
PrimitivePort.newInstance(this, dp_node, new ArcProto [] {SignalArcs[0], SignalArcs[1], SignalArcs[2], SignalArcs[3], SignalArcs[4], SignalArcs[5], SignalArcs[6], SignalArcs[7]}, "drill", 0,180, 0, PortCharacteristic.UNKNOWN,
EdgeH.makeCenter(), EdgeV.makeCenter(), EdgeH.makeCenter(), EdgeV.makeCenter())
});
dp_node.setFunction(PrimitiveNode.Function.PIN);
dp_node.setWipeOn1or2();
dp_node.setSquare();
/** NonPlated-Drill-Pin */
PrimitiveNode ndp_node = PrimitiveNode.newInstance0("NonPlated-Drill-Pin", this, 1.25, 1.25,
new Technology.NodeLayer []
{
new Technology.NodeLayer(D0_lay, 0, Poly.Type.DISC, Technology.NodeLayer.POINTS, box_1)
});
ndp_node.addPrimitivePortsFixed(new PrimitivePort[]
{
PrimitivePort.newInstance(this, ndp_node, new ArcProto [] {}, "nondrill", 0,180, 0, PortCharacteristic.UNKNOWN,
EdgeH.makeCenter(), EdgeV.makeCenter(), EdgeH.makeCenter(), EdgeV.makeCenter())
});
ndp_node.setFunction(PrimitiveNode.Function.PIN);
ndp_node.setWipeOn1or2();
ndp_node.setSquare();
/** Engineering-Drawing-Pin */
PrimitiveNode edp_node = PrimitiveNode.newInstance0("Engineering-Drawing-Pin", this, 1.25, 1.25,
new Technology.NodeLayer []
{
new Technology.NodeLayer(D1_lay, 0, Poly.Type.DISC, Technology.NodeLayer.POINTS, box_1)
});
edp_node.addPrimitivePortsFixed(new PrimitivePort[]
{
PrimitivePort.newInstance(this, edp_node, new ArcProto [] {Drawing_arc}, "engineering", 0,180, 0, PortCharacteristic.UNKNOWN,
EdgeH.makeCenter(), EdgeV.makeCenter(), EdgeH.makeCenter(), EdgeV.makeCenter())
});
edp_node.setFunction(PrimitiveNode.Function.PIN);
edp_node.setWipeOn1or2();
edp_node.setSquare();
PrimitiveNode[] snNodes = new PrimitiveNode[8];
// /** Signal-1-Node */
// snNodes[0] = PrimitiveNode.newInstance("Signal-1-Node", this, 1.25, 1.25, null,
// new Technology.NodeLayer []
// {
// new Technology.NodeLayer(S_lay, 0, Poly.Type.FILLED, Technology.NodeLayer.BOX, box_2)
// });
// snNodes[0].addPrimitivePorts(new PrimitivePort[]
// {
// PrimitivePort.newInstance(this, snNodes[0], new ArcProto [] {SignalArcs[0], PowerArcs[0]}, "signal-1", 0,180, 0, PortCharacteristic.UNKNOWN,
// EdgeH.makeLeftEdge(), EdgeV.makeBottomEdge(), EdgeH.makeRightEdge(), EdgeV.makeTopEdge())
// });
// snNodes[0].setFunction(PrimitiveNode.Function.NODE);
// snNodes[0].setHoldsOutline();
// snNodes[0].setSpecialType(PrimitiveNode.POLYGONAL);
//
// /** Signal-2-Node */
// snNodes[1] = PrimitiveNode.newInstance("Signal-2-Node", this, 1.25, 1.25, null,
// new Technology.NodeLayer []
// {
// new Technology.NodeLayer(S0_lay, 0, Poly.Type.FILLED, Technology.NodeLayer.BOX, box_2)
// });
// snNodes[1].addPrimitivePorts(new PrimitivePort[]
// {
// PrimitivePort.newInstance(this, snNodes[1], new ArcProto [] {SignalArcs[1], PowerArcs[1]}, "signal-2", 0,180, 0, PortCharacteristic.UNKNOWN,
// EdgeH.makeLeftEdge(), EdgeV.makeBottomEdge(), EdgeH.makeRightEdge(), EdgeV.makeTopEdge())
// });
// snNodes[1].setFunction(PrimitiveNode.Function.NODE);
// snNodes[1].setHoldsOutline();
// snNodes[1].setSpecialType(PrimitiveNode.POLYGONAL);
//
// /** Signal-3-Node */
// snNodes[2] = PrimitiveNode.newInstance("Signal-3-Node", this, 1.25, 1.25, null,
// new Technology.NodeLayer []
// {
// new Technology.NodeLayer(S1_lay, 0, Poly.Type.FILLED, Technology.NodeLayer.BOX, box_2)
// });
// snNodes[2].addPrimitivePorts(new PrimitivePort[]
// {
// PrimitivePort.newInstance(this, snNodes[2], new ArcProto [] {SignalArcs[2], PowerArcs[2]}, "signal-3", 0,180, 0, PortCharacteristic.UNKNOWN,
// EdgeH.makeLeftEdge(), EdgeV.makeBottomEdge(), EdgeH.makeRightEdge(), EdgeV.makeTopEdge())
// });
// snNodes[2].setFunction(PrimitiveNode.Function.NODE);
// snNodes[2].setHoldsOutline();
// snNodes[2].setSpecialType(PrimitiveNode.POLYGONAL);
//
// /** Signal-4-Node */
// snNodes[3] = PrimitiveNode.newInstance("Signal-4-Node", this, 1.25, 1.25, null,
// new Technology.NodeLayer []
// {
// new Technology.NodeLayer(S2_lay, 0, Poly.Type.FILLED, Technology.NodeLayer.BOX, box_2)
// });
// snNodes[3].addPrimitivePorts(new PrimitivePort[]
// {
// PrimitivePort.newInstance(this, snNodes[3], new ArcProto [] {SignalArcs[3], PowerArcs[3]}, "signal-4", 0,180, 0, PortCharacteristic.UNKNOWN,
// EdgeH.makeLeftEdge(), EdgeV.makeBottomEdge(), EdgeH.makeRightEdge(), EdgeV.makeTopEdge())
// });
// snNodes[3].setFunction(PrimitiveNode.Function.NODE);
// snNodes[3].setHoldsOutline();
// snNodes[3].setSpecialType(PrimitiveNode.POLYGONAL);
//
// /** Signal-5-Node */
// snNodes[4] = PrimitiveNode.newInstance("Signal-5-Node", this, 1.25, 1.25, null,
// new Technology.NodeLayer []
// {
// new Technology.NodeLayer(S3_lay, 0, Poly.Type.FILLED, Technology.NodeLayer.BOX, box_2)
// });
// snNodes[4].addPrimitivePorts(new PrimitivePort[]
// {
// PrimitivePort.newInstance(this, snNodes[4], new ArcProto [] {SignalArcs[4], PowerArcs[4]}, "signal-5", 0,180, 0, PortCharacteristic.UNKNOWN,
// EdgeH.makeLeftEdge(), EdgeV.makeBottomEdge(), EdgeH.makeRightEdge(), EdgeV.makeTopEdge())
// });
// snNodes[4].setFunction(PrimitiveNode.Function.NODE);
// snNodes[4].setHoldsOutline();
// snNodes[4].setSpecialType(PrimitiveNode.POLYGONAL);
//
// /** Signal-6-Node */
// snNodes[5] = PrimitiveNode.newInstance("Signal-6-Node", this, 1.25, 1.25, null,
// new Technology.NodeLayer []
// {
// new Technology.NodeLayer(S4_lay, 0, Poly.Type.FILLED, Technology.NodeLayer.BOX, box_2)
// });
// snNodes[5].addPrimitivePorts(new PrimitivePort[]
// {
// PrimitivePort.newInstance(this, snNodes[5], new ArcProto [] {SignalArcs[5], PowerArcs[5]}, "signal-6", 0,180, 0, PortCharacteristic.UNKNOWN,
// EdgeH.makeLeftEdge(), EdgeV.makeBottomEdge(), EdgeH.makeRightEdge(), EdgeV.makeTopEdge())
// });
// snNodes[5].setFunction(PrimitiveNode.Function.NODE);
// snNodes[5].setHoldsOutline();
// snNodes[5].setSpecialType(PrimitiveNode.POLYGONAL);
//
// /** Signal-7-Node */
// snNodes[6] = PrimitiveNode.newInstance("Signal-7-Node", this, 1.25, 1.25, null,
// new Technology.NodeLayer []
// {
// new Technology.NodeLayer(S5_lay, 0, Poly.Type.FILLED, Technology.NodeLayer.BOX, box_2)
// });
// snNodes[6].addPrimitivePorts(new PrimitivePort[]
// {
// PrimitivePort.newInstance(this, snNodes[6], new ArcProto [] {SignalArcs[6], PowerArcs[6]}, "signal-7", 0,180, 0, PortCharacteristic.UNKNOWN,
// EdgeH.makeLeftEdge(), EdgeV.makeBottomEdge(), EdgeH.makeRightEdge(), EdgeV.makeTopEdge())
// });
// snNodes[6].setFunction(PrimitiveNode.Function.NODE);
// snNodes[6].setHoldsOutline();
// snNodes[6].setSpecialType(PrimitiveNode.POLYGONAL);
//
// /** Signal-8-Node */
// snNodes[7] = PrimitiveNode.newInstance("Signal-8-Node", this, 1.25, 1.25, null,
// new Technology.NodeLayer []
// {
// new Technology.NodeLayer(S6_lay, 0, Poly.Type.FILLED, Technology.NodeLayer.BOX, box_2)
// });
// snNodes[7].addPrimitivePorts(new PrimitivePort[]
// {
// PrimitivePort.newInstance(this, snNodes[7], new ArcProto [] {SignalArcs[7], PowerArcs[7]}, "signal-8", 0,180, 0, PortCharacteristic.UNKNOWN,
// EdgeH.makeLeftEdge(), EdgeV.makeBottomEdge(), EdgeH.makeRightEdge(), EdgeV.makeTopEdge())
// });
// snNodes[7].setFunction(PrimitiveNode.Function.NODE);
// snNodes[7].setHoldsOutline();
// snNodes[7].setSpecialType(PrimitiveNode.POLYGONAL);
//
// PrimitiveNode[] pnNodes = new PrimitiveNode[8];
// /** Power-1-Node */
// pnNodes[0] = PrimitiveNode.newInstance("Power-1-Node", this, 1.25, 1.25, null,
// new Technology.NodeLayer []
// {
// new Technology.NodeLayer(P_lay, 0, Poly.Type.FILLED, Technology.NodeLayer.BOX, box_2)
// });
// pnNodes[0].addPrimitivePorts(new PrimitivePort[]
// {
// PrimitivePort.newInstance(this, pnNodes[0], new ArcProto [] {SignalArcs[0], PowerArcs[0]}, "power-1", 0,180, 0, PortCharacteristic.UNKNOWN,
// EdgeH.makeLeftEdge(), EdgeV.makeBottomEdge(), EdgeH.makeRightEdge(), EdgeV.makeTopEdge())
// });
// pnNodes[0].setFunction(PrimitiveNode.Function.NODE);
// pnNodes[0].setHoldsOutline();
// pnNodes[0].setSpecialType(PrimitiveNode.POLYGONAL);
//
// /** Power-2-Node */
// pnNodes[1] = PrimitiveNode.newInstance("Power-2-Node", this, 1.25, 1.25, null,
// new Technology.NodeLayer []
// {
// new Technology.NodeLayer(P0_lay, 0, Poly.Type.FILLED, Technology.NodeLayer.BOX, box_2)
// });
// pnNodes[1].addPrimitivePorts(new PrimitivePort[]
// {
// PrimitivePort.newInstance(this, pnNodes[1], new ArcProto [] {SignalArcs[1], PowerArcs[1]}, "power-2", 0,180, 0, PortCharacteristic.UNKNOWN,
// EdgeH.makeLeftEdge(), EdgeV.makeBottomEdge(), EdgeH.makeRightEdge(), EdgeV.makeTopEdge())
// });
// pnNodes[1].setFunction(PrimitiveNode.Function.NODE);
// pnNodes[1].setHoldsOutline();
// pnNodes[1].setSpecialType(PrimitiveNode.POLYGONAL);
//
// /** Power-3-Node */
// pnNodes[2] = PrimitiveNode.newInstance("Power-3-Node", this, 1.25, 1.25, null,
// new Technology.NodeLayer []
// {
// new Technology.NodeLayer(P1_lay, 0, Poly.Type.FILLED, Technology.NodeLayer.BOX, box_2)
// });
// pnNodes[2].addPrimitivePorts(new PrimitivePort[]
// {
// PrimitivePort.newInstance(this, pnNodes[2], new ArcProto [] {SignalArcs[2], PowerArcs[2]}, "power-3", 0,180, 0, PortCharacteristic.UNKNOWN,
// EdgeH.makeLeftEdge(), EdgeV.makeBottomEdge(), EdgeH.makeRightEdge(), EdgeV.makeTopEdge())
// });
// pnNodes[2].setFunction(PrimitiveNode.Function.NODE);
// pnNodes[2].setHoldsOutline();
// pnNodes[2].setSpecialType(PrimitiveNode.POLYGONAL);
//
// /** Power-4-Node */
// pnNodes[3] = PrimitiveNode.newInstance("Power-4-Node", this, 1.25, 1.25, null,
// new Technology.NodeLayer []
// {
// new Technology.NodeLayer(P2_lay, 0, Poly.Type.FILLED, Technology.NodeLayer.BOX, box_2)
// });
// pnNodes[3].addPrimitivePorts(new PrimitivePort[]
// {
// PrimitivePort.newInstance(this, pnNodes[3], new ArcProto [] {SignalArcs[3], PowerArcs[3]}, "power-4", 0,180, 0, PortCharacteristic.UNKNOWN,
// EdgeH.makeLeftEdge(), EdgeV.makeBottomEdge(), EdgeH.makeRightEdge(), EdgeV.makeTopEdge())
// });
// pnNodes[3].setFunction(PrimitiveNode.Function.NODE);
// pnNodes[3].setHoldsOutline();
// pnNodes[3].setSpecialType(PrimitiveNode.POLYGONAL);
//
// /** Power-5-Node */
// pnNodes[4] = PrimitiveNode.newInstance("Power-5-Node", this, 1.25, 1.25, null,
// new Technology.NodeLayer []
// {
// new Technology.NodeLayer(P3_lay, 0, Poly.Type.FILLED, Technology.NodeLayer.BOX, box_2)
// });
// pnNodes[4].addPrimitivePorts(new PrimitivePort[]
// {
// PrimitivePort.newInstance(this, pnNodes[4], new ArcProto [] {SignalArcs[4], PowerArcs[4]}, "power-5", 0,180, 0, PortCharacteristic.UNKNOWN,
// EdgeH.makeLeftEdge(), EdgeV.makeBottomEdge(), EdgeH.makeRightEdge(), EdgeV.makeTopEdge())
// });
// pnNodes[4].setFunction(PrimitiveNode.Function.NODE);
// pnNodes[4].setHoldsOutline();
// pnNodes[4].setSpecialType(PrimitiveNode.POLYGONAL);
//
// /** Power-6-Node */
// pnNodes[5] = PrimitiveNode.newInstance("Power-6-Node", this, 1.25, 1.25, null,
// new Technology.NodeLayer []
// {
// new Technology.NodeLayer(P4_lay, 0, Poly.Type.FILLED, Technology.NodeLayer.BOX, box_2)
// });
// pnNodes[5].addPrimitivePorts(new PrimitivePort[]
// {
// PrimitivePort.newInstance(this, pnNodes[5], new ArcProto [] {SignalArcs[5], PowerArcs[5]}, "power-6", 0,180, 0, PortCharacteristic.UNKNOWN,
// EdgeH.makeLeftEdge(), EdgeV.makeBottomEdge(), EdgeH.makeRightEdge(), EdgeV.makeTopEdge())
// });
// pnNodes[5].setFunction(PrimitiveNode.Function.NODE);
// pnNodes[5].setHoldsOutline();
// pnNodes[5].setSpecialType(PrimitiveNode.POLYGONAL);
//
// /** Power-7-Node */
// pnNodes[6] = PrimitiveNode.newInstance("Power-7-Node", this, 1.25, 1.25, null,
// new Technology.NodeLayer []
// {
// new Technology.NodeLayer(P5_lay, 0, Poly.Type.FILLED, Technology.NodeLayer.BOX, box_2)
// });
// pnNodes[6].addPrimitivePorts(new PrimitivePort[]
// {
// PrimitivePort.newInstance(this, pnNodes[6], new ArcProto [] {SignalArcs[6], PowerArcs[6]}, "power-7", 0,180, 0, PortCharacteristic.UNKNOWN,
// EdgeH.makeLeftEdge(), EdgeV.makeBottomEdge(), EdgeH.makeRightEdge(), EdgeV.makeTopEdge())
// });
// pnNodes[6].setFunction(PrimitiveNode.Function.NODE);
// pnNodes[6].setHoldsOutline();
// pnNodes[6].setSpecialType(PrimitiveNode.POLYGONAL);
//
// /** Power-8-Node */
// pnNodes[7] = PrimitiveNode.newInstance("Power-8-Node", this, 1.25, 1.25, null,
// new Technology.NodeLayer []
// {
// new Technology.NodeLayer(P6_lay, 0, Poly.Type.FILLED, Technology.NodeLayer.BOX, box_2)
// });
// pnNodes[7].addPrimitivePorts(new PrimitivePort[]
// {
// PrimitivePort.newInstance(this, pnNodes[7], new ArcProto [] {SignalArcs[7], PowerArcs[7]}, "power-8", 0,180, 0, PortCharacteristic.UNKNOWN,
// EdgeH.makeLeftEdge(), EdgeV.makeBottomEdge(), EdgeH.makeRightEdge(), EdgeV.makeTopEdge())
// });
// pnNodes[7].setFunction(PrimitiveNode.Function.NODE);
// pnNodes[7].setHoldsOutline();
// pnNodes[7].setSpecialType(PrimitiveNode.POLYGONAL);
//
// PrimitiveNode[] tsnNodes = new PrimitiveNode[2];
// PrimitiveNode[] bsnNodes = new PrimitiveNode[2];
//
// /** Top-Silk-Node */
// tsnNodes[0] = PrimitiveNode.newInstance("Top-Silk-Node", this, 1.25, 1.25, null,
// new Technology.NodeLayer []
// {
// new Technology.NodeLayer(T_lay, 0, Poly.Type.FILLED, Technology.NodeLayer.BOX, box_2)
// });
// tsnNodes[0].addPrimitivePorts(new PrimitivePort[]
// {
// PrimitivePort.newInstance(this, tsnNodes[0], new ArcProto [] {Top_Silk_arc}, "top-silk", 0,180, 0, PortCharacteristic.UNKNOWN,
// EdgeH.makeLeftEdge(), EdgeV.makeBottomEdge(), EdgeH.makeRightEdge(), EdgeV.makeTopEdge())
// });
// tsnNodes[0].setFunction(PrimitiveNode.Function.NODE);
// tsnNodes[0].setHoldsOutline();
// tsnNodes[0].setSpecialType(PrimitiveNode.POLYGONAL);
//
// /** Bottom-Silk-Node */
// bsnNodes[0] = PrimitiveNode.newInstance("Bottom-Silk-Node", this, 1.25, 1.25, null,
// new Technology.NodeLayer []
// {
// new Technology.NodeLayer(B_lay, 0, Poly.Type.FILLED, Technology.NodeLayer.BOX, box_2)
// });
// bsnNodes[0].addPrimitivePorts(new PrimitivePort[]
// {
// PrimitivePort.newInstance(this, bsnNodes[0], new ArcProto [] {Bottom_Silk_arc}, "bottom-silk", 0,180, 0, PortCharacteristic.UNKNOWN,
// EdgeH.makeLeftEdge(), EdgeV.makeBottomEdge(), EdgeH.makeRightEdge(), EdgeV.makeTopEdge())
// });
// bsnNodes[0].setFunction(PrimitiveNode.Function.NODE);
// bsnNodes[0].setHoldsOutline();
// bsnNodes[0].setSpecialType(PrimitiveNode.POLYGONAL);
//
// /** Top-Solder-Node */
// tsnNodes[1] = PrimitiveNode.newInstance("Top-Solder-Node", this, 1.25, 1.25, null,
// new Technology.NodeLayer []
// {
// new Technology.NodeLayer(T0_lay, 0, Poly.Type.FILLED, Technology.NodeLayer.BOX, box_2)
// });
// tsnNodes[1].addPrimitivePorts(new PrimitivePort[]
// {
// PrimitivePort.newInstance(this, tsnNodes[1], new ArcProto [] {Top_Solder_arc}, "top-solder", 0,180, 0, PortCharacteristic.UNKNOWN,
// EdgeH.makeLeftEdge(), EdgeV.makeBottomEdge(), EdgeH.makeRightEdge(), EdgeV.makeTopEdge())
// });
// tsnNodes[1].setFunction(PrimitiveNode.Function.NODE);
// tsnNodes[1].setHoldsOutline();
// tsnNodes[1].setSpecialType(PrimitiveNode.POLYGONAL);
//
// /** Bottom-Solder-Node */
// bsnNodes[1] = PrimitiveNode.newInstance("Bottom-Solder-Node", this, 1.25, 1.25, null,
// new Technology.NodeLayer []
// {
// new Technology.NodeLayer(B0_lay, 0, Poly.Type.FILLED, Technology.NodeLayer.BOX, box_2)
// });
// bsnNodes[1].addPrimitivePorts(new PrimitivePort[]
// {
// PrimitivePort.newInstance(this, bsnNodes[1], new ArcProto [] {Bottom_Solder_arc}, "bottom-solder", 0,180, 0, PortCharacteristic.UNKNOWN,
// EdgeH.makeLeftEdge(), EdgeV.makeBottomEdge(), EdgeH.makeRightEdge(), EdgeV.makeTopEdge())
// });
// bsnNodes[1].setFunction(PrimitiveNode.Function.NODE);
// bsnNodes[1].setHoldsOutline();
// bsnNodes[1].setSpecialType(PrimitiveNode.POLYGONAL);
//
// /** Engineering-Drawing-Node */
// PrimitiveNode edn_node = PrimitiveNode.newInstance("Engineering-Drawing-Node", this, 1.25, 1.25, null,
// new Technology.NodeLayer []
// {
// new Technology.NodeLayer(D1_lay, 0, Poly.Type.FILLED, Technology.NodeLayer.BOX, box_2)
// });
// edn_node.addPrimitivePorts(new PrimitivePort[]
// {
// PrimitivePort.newInstance(this, edn_node, new ArcProto [] {Drawing_arc}, "engineering", 0,180, 0, PortCharacteristic.UNKNOWN,
// EdgeH.makeLeftEdge(), EdgeV.makeBottomEdge(), EdgeH.makeRightEdge(), EdgeV.makeTopEdge())
// });
// edn_node.setFunction(PrimitiveNode.Function.NODE);
// edn_node.setHoldsOutline();
// edn_node.setSpecialType(PrimitiveNode.POLYGONAL);
// The pure layer nodes
S_lay.makePureLayerNode("Signal-1-Node", 1.25, Poly.Type.FILLED, "signal-1", SignalArcs[0], PowerArcs[0]);
S0_lay.makePureLayerNode("Signal-2-Node", 1.25, Poly.Type.FILLED, "signal-2", SignalArcs[1], PowerArcs[1]);
S1_lay.makePureLayerNode("Signal-3-Node", 1.25, Poly.Type.FILLED, "signal-3", SignalArcs[2], PowerArcs[2]);
S2_lay.makePureLayerNode("Signal-4-Node", 1.25, Poly.Type.FILLED, "signal-4", SignalArcs[3], PowerArcs[3]);
S3_lay.makePureLayerNode("Signal-5-Node", 1.25, Poly.Type.FILLED, "signal-5", SignalArcs[4], PowerArcs[4]);
S4_lay.makePureLayerNode("Signal-6-Node", 1.25, Poly.Type.FILLED, "signal-6", SignalArcs[5], PowerArcs[5]);
S5_lay.makePureLayerNode("Signal-7-Node", 1.25, Poly.Type.FILLED, "signal-7", SignalArcs[6], PowerArcs[6]);
S6_lay.makePureLayerNode("Signal-8-Node", 1.25, Poly.Type.FILLED, "signal-8", SignalArcs[7], PowerArcs[7]);
P_lay.makePureLayerNode("Power-1-Node", 1.25, Poly.Type.FILLED, "power-1", SignalArcs[0], PowerArcs[0]);
P0_lay.makePureLayerNode("Power-2-Node", 1.25, Poly.Type.FILLED, "power-2", SignalArcs[1], PowerArcs[1]);
P1_lay.makePureLayerNode("Power-3-Node", 1.25, Poly.Type.FILLED, "power-3", SignalArcs[2], PowerArcs[2]);
P2_lay.makePureLayerNode("Power-4-Node", 1.25, Poly.Type.FILLED, "power-4", SignalArcs[3], PowerArcs[3]);
P3_lay.makePureLayerNode("Power-5-Node", 1.25, Poly.Type.FILLED, "power-5", SignalArcs[4], PowerArcs[4]);
P4_lay.makePureLayerNode("Power-6-Node", 1.25, Poly.Type.FILLED, "power-6", SignalArcs[5], PowerArcs[5]);
P5_lay.makePureLayerNode("Power-7-Node", 1.25, Poly.Type.FILLED, "power-7", SignalArcs[6], PowerArcs[6]);
P6_lay.makePureLayerNode("Power-8-Node", 1.25, Poly.Type.FILLED, "power-8", SignalArcs[7], PowerArcs[7]);
T_lay.makePureLayerNode("Top-Silk-Node", 1.25, Poly.Type.FILLED, "top-silk", Top_Silk_arc);
B_lay.makePureLayerNode("Bottom-Silk-Node", 1.25, Poly.Type.FILLED, "bottom-silk", Bottom_Silk_arc);
T0_lay.makePureLayerNode("Top-Solder-Node", 1.25, Poly.Type.FILLED, "top-solder", Top_Solder_arc);
B0_lay.makePureLayerNode("Bottom-Solder-Node", 1.25, Poly.Type.FILLED, "bottom-solder", Bottom_Solder_arc);
D1_lay.makePureLayerNode("Engineering-Drawing-Node", 1.25, Poly.Type.FILLED, "engineering", Drawing_arc);
// S_lay.setPureLayerNode(snNodes[0]); // Signal1
// S0_lay.setPureLayerNode(snNodes[1]); // Signal2
// S1_lay.setPureLayerNode(snNodes[2]); // Signal3
// S2_lay.setPureLayerNode(snNodes[3]); // Signal4
// S3_lay.setPureLayerNode(snNodes[4]); // Signal5
// S4_lay.setPureLayerNode(snNodes[5]); // Signal6
// S5_lay.setPureLayerNode(snNodes[6]); // Signal7
// S6_lay.setPureLayerNode(snNodes[7]); // Signal8
// P_lay.setPureLayerNode(pnNodes[0]); // Power1
// P0_lay.setPureLayerNode(pnNodes[1]); // Power2
// P1_lay.setPureLayerNode(pnNodes[2]); // Power3
// P2_lay.setPureLayerNode(pnNodes[3]); // Power4
// P3_lay.setPureLayerNode(pnNodes[4]); // Power5
// P4_lay.setPureLayerNode(pnNodes[5]); // Power6
// P5_lay.setPureLayerNode(pnNodes[6]); // Power7
// P6_lay.setPureLayerNode(pnNodes[7]); // Power8
// T_lay.setPureLayerNode(tsnNodes[0]); // TopSilk
// B_lay.setPureLayerNode(bsnNodes[0]); // BottomSilk
// T0_lay.setPureLayerNode(tsnNodes[1]); // TopSolder
// B0_lay.setPureLayerNode(bsnNodes[1]); // BottomSolder
// D1_lay.setPureLayerNode(edn_node); // Drawing
// Building information for palette
loadFactoryMenuPalette(PCB.class.getResource("pcbMenu.xml"));
//Foundry
newFoundry(Foundry.Type.NONE, null);
// The GDS names
// S_lay.setFactoryGDSLayer("", Foundry.Type.MOSIS.name()); // Signal1
// S0_lay.setFactoryGDSLayer("", Foundry.Type.MOSIS.name()); // Signal2
// S1_lay.setFactoryGDSLayer("", Foundry.Type.MOSIS.name()); // Signal3
// S2_lay.setFactoryGDSLayer("", Foundry.Type.MOSIS.name()); // Signal4
// S3_lay.setFactoryGDSLayer("", Foundry.Type.MOSIS.name()); // Signal5
// S4_lay.setFactoryGDSLayer("", Foundry.Type.MOSIS.name()); // Signal6
// S5_lay.setFactoryGDSLayer("", Foundry.Type.MOSIS.name()); // Signal7
// S6_lay.setFactoryGDSLayer("", Foundry.Type.MOSIS.name()); // Signal8
// P_lay.setFactoryGDSLayer("", Foundry.Type.MOSIS.name()); // Power1
// P0_lay.setFactoryGDSLayer("", Foundry.Type.MOSIS.name()); // Power2
// P1_lay.setFactoryGDSLayer("", Foundry.Type.MOSIS.name()); // Power3
// P2_lay.setFactoryGDSLayer("", Foundry.Type.MOSIS.name()); // Power4
// P3_lay.setFactoryGDSLayer("", Foundry.Type.MOSIS.name()); // Power5
// P4_lay.setFactoryGDSLayer("", Foundry.Type.MOSIS.name()); // Power6
// P5_lay.setFactoryGDSLayer("", Foundry.Type.MOSIS.name()); // Power7
// P6_lay.setFactoryGDSLayer("", Foundry.Type.MOSIS.name()); // Power8
// T_lay.setFactoryGDSLayer("", Foundry.Type.MOSIS.name()); // TopSilk
// B_lay.setFactoryGDSLayer("", Foundry.Type.MOSIS.name()); // BottomSilk
// T0_lay.setFactoryGDSLayer("", Foundry.Type.MOSIS.name()); // TopSolder
// B0_lay.setFactoryGDSLayer("", Foundry.Type.MOSIS.name()); // BottomSolder
// D_lay.setFactoryGDSLayer("", Foundry.Type.MOSIS.name()); // Drill
// D0_lay.setFactoryGDSLayer("", Foundry.Type.MOSIS.name()); // DrillNonPlated
// D1_lay.setFactoryGDSLayer("", Foundry.Type.MOSIS.name()); // Drawing
};
}