📄 schematics.java
字号:
/* 0.1 */ private final EdgeH LEFTBYP1 = new EdgeH(-0.1/2,0); /* 0.1333... */ private final EdgeH LEFTBYP125 = new EdgeH(-0.125/2,0); /* 0.2 */ private final EdgeH LEFTBYP2 = new EdgeH(-0.2/2,0); /* 0.25 */ private final EdgeH LEFTBYP25 = new EdgeH(-0.25/2,0); /* 0.3 */ private final EdgeH LEFTBYP3 = new EdgeH(-0.3/2,0); /* 0.35 */ private final EdgeH LEFTBYP35 = new EdgeH(-0.35/2,0); /* 0.4 */ private final EdgeH LEFTBYP4 = new EdgeH(-0.4/2,0); /* 0.45 */ private final EdgeH LEFTBYP45 = new EdgeH(-0.45/2,0); /* 0.5 */ private final EdgeH LEFTBYP5 = new EdgeH(-0.5/2,0); /* 0.6 */ private final EdgeH LEFTBYP6 = new EdgeH(-0.6/2,0); /* 0.6666... */ private final EdgeH LEFTBYP66 = new EdgeH(-0.6666666666/2,0); /* 0.7 */ private final EdgeH LEFTBYP7 = new EdgeH(-0.7/2,0); /* 0.75 */ private final EdgeH LEFTBYP75 = new EdgeH(-0.75/2,0); /* 0.8 */ private final EdgeH LEFTBYP8 = new EdgeH(-0.8/2,0); /* 0.875 */ private final EdgeH LEFTBYP875 = new EdgeH(-0.875/2,0); /* 0.9 */ private final EdgeH LEFTBYP9 = new EdgeH(-0.9/2,0);// /* 1.2 */ private final EdgeH LEFTBYP12 = new EdgeH(-1.2/2,0);// /* 1.4 */ private final EdgeH LEFTBYP14 = new EdgeH(-1.4/2,0); /* 1.6 */ private final EdgeH LEFTBY1P6 = new EdgeH(-1.6/2,0); // this much from the center to the right edge /* 0.1 */ private final EdgeH RIGHTBYP1 = new EdgeH(0.1/2,0); /* 0.1333... */ private final EdgeH RIGHTBYP125 = new EdgeH(0.125/2,0); /* 0.2 */ private final EdgeH RIGHTBYP2 = new EdgeH(0.2/2,0); /* 0.25 */ private final EdgeH RIGHTBYP25 = new EdgeH(0.25/2,0); /* 0.3 */ private final EdgeH RIGHTBYP3 = new EdgeH(0.3/2,0); /* 0.3333... */ private final EdgeH RIGHTBYP33 = new EdgeH(0.3333333333/2,0); /* 0.35 */ private final EdgeH RIGHTBYP35 = new EdgeH(0.35/2,0); /* 0.3833... */ private final EdgeH RIGHTBYP3833 = new EdgeH(0.3833333333/2,0); /* 0.4 */ private final EdgeH RIGHTBYP4 = new EdgeH(0.4/2,0); /* 0.4333... */ private final EdgeH RIGHTBYP433 = new EdgeH(0.4333333333/2,0); /* 0.45 */ private final EdgeH RIGHTBYP45 = new EdgeH(0.45/2,0); /* 0.5 */ private final EdgeH RIGHTBYP5 = new EdgeH(0.5/2,0); /* 0.5166... */ private final EdgeH RIGHTBYP5166 = new EdgeH(0.5166666666/2,0);// /* 0.55 */ private final EdgeH RIGHTBYP55 = new EdgeH(0.55/2,0); /* 0.5666... */ private final EdgeH RIGHTBYP566 = new EdgeH(0.5666666666/2,0); /* 0.6 */ private final EdgeH RIGHTBYP6 = new EdgeH(0.6/2,0); /* 0.6166... */ private final EdgeH RIGHTBYP6166 = new EdgeH(0.6166666666/2,0); /* 0.6666... */ private final EdgeH RIGHTBYP66 = new EdgeH(0.6666666666/2,0);// /* 0.7 */ private final EdgeH RIGHTBYP7 = new EdgeH(0.7/2,0); /* 0.75 */ private final EdgeH RIGHTBYP75 = new EdgeH(0.75/2,0); /* 0.8 */ private final EdgeH RIGHTBYP8 = new EdgeH(0.8/2,0); /* 0.875 */ private final EdgeH RIGHTBYP875 = new EdgeH(0.875/2,0); /* 0.9 */ private final EdgeH RIGHTBYP9 = new EdgeH(0.9/2,0); // this much from the center to the bottom edge// /* 0.1 */ private final EdgeV BOTBYP1 = new EdgeV(-0.1/2,0);// /* 0.125 */ private final EdgeV BOTBYP125 = new EdgeV(-0.125/2,0); /* 0.166... */ private final EdgeV BOTBYP166 = new EdgeV(-0.166666666/2,0); /* 0.2 */ private final EdgeV BOTBYP2 = new EdgeV(-0.2/2,0); /* 0.25 */ private final EdgeV BOTBYP25 = new EdgeV(-0.25/2,0); /* 0.3 */ private final EdgeV BOTBYP3 = new EdgeV(-0.3/2,0); /* 0.3333... */ private final EdgeV BOTBYP33 = new EdgeV(-0.3333333333/2,0); /* 0.375 */ private final EdgeV BOTBYP375 = new EdgeV(-0.375/2,0); /* 0.4 */ private final EdgeV BOTBYP4 = new EdgeV(-0.4/2,0); /* 0.5 */ private final EdgeV BOTBYP5 = new EdgeV(-0.5/2,0); /* 0.6 */ private final EdgeV BOTBYP6 = new EdgeV(-0.6/2,0); /* 0.6666... */ private final EdgeV BOTBYP66 = new EdgeV(-0.6666666666/2,0);// /* 0.7 */ private final EdgeV BOTBYP7 = new EdgeV(-0.7/2,0); /* 0.75 */ private final EdgeV BOTBYP75 = new EdgeV(-0.75/2,0); /* 0.8 */ private final EdgeV BOTBYP8 = new EdgeV(-0.8/2,0); /* 0.875 */ private final EdgeV BOTBYP875 = new EdgeV(-0.875/2,0); /* 0.9 */ private final EdgeV BOTBYP9 = new EdgeV(-0.9/2,0); // this much from the center to the top edge// /* 0.1 */ private final EdgeV TOPBYP1 = new EdgeV(0.1/2,0); /* 0.2 */ private final EdgeV TOPBYP2 = new EdgeV(0.2/2,0); /* 0.25 */ private final EdgeV TOPBYP25 = new EdgeV(0.25/2,0); /* 0.3 */ private final EdgeV TOPBYP3 = new EdgeV(0.3/2,0); /* 0.3333... */ private final EdgeV TOPBYP33 = new EdgeV(0.3333333333/2,0); /* 0.4 */ private final EdgeV TOPBYP4 = new EdgeV(0.4/2,0); /* 0.5 */ private final EdgeV TOPBYP5 = new EdgeV(0.5/2,0); /* 0.5833... */ private final EdgeV TOPBYP5833 = new EdgeV(0.5833333333/2,0); /* 0.6 */ private final EdgeV TOPBYP6 = new EdgeV(0.6/2,0); /* 0.6666... */ private final EdgeV TOPBYP66 = new EdgeV(0.6666666666/2,0); /* 0.75 */ private final EdgeV TOPBYP75 = new EdgeV(0.75/2,0); /* 0.8 */ private final EdgeV TOPBYP8 = new EdgeV(0.8/2,0); /* 0.9 */ private final EdgeV TOPBYP9 = new EdgeV(0.9/2,0); // -------------------- private and protected methods ------------------------ public Schematics(Generic generic) { super(generic, "schematic", Foundry.Type.NONE, 1); setTechShortName("Schematics"); setTechDesc("Schematic Capture"); setFactoryScale(2000, false); // in nanometers: really 2 micron setNonStandard(); setStaticTechnology();// setFactoryTransparentLayers(new Color []// {// new Color(107, 226, 96) // Bus// }); //**************************************** LAYERS **************************************** /** arc layer */ arc_lay = Layer.newInstance(this, "Arc", new EGraphics(false, false, null, 0, 0,0,255,0.8,true, new int[] {0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF, 0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF})); /** bus layer */// bus_lay = Layer.newInstance(this, "Bus",// new EGraphics(false, true, null, EGraphics.TRANSPARENT_1, 107,226,96, 0.8,true,// new int[] { 0x2222, // X X X X// 0x0000, //// 0x8888, // X X X X// 0x0000, //// 0x2222, // X X X X// 0x0000, //// 0x8888, // X X X X// 0x0000, //// 0x2222, // X X X X// 0x0000, //// 0x8888, // X X X X// 0x0000, //// 0x2222, // X X X X// 0x0000, //// 0x8888, // X X X X// 0x0000}));// bus_lay = Layer.newInstance(this, "Bus", new EGraphics(true, true, null, 0, 0,255,0, 0.8,true, new int[] { 0xAAAA, // X X X X X X X X 0x5555, // X X X X X X X X 0xAAAA, // X X X X X X X X 0x5555, // X X X X X X X X 0xAAAA, // X X X X X X X X 0x5555, // X X X X X X X X 0xAAAA, // X X X X X X X X 0x5555, // X X X X X X X X 0xAAAA, // X X X X X X X X 0x5555, // X X X X X X X X 0xAAAA, // X X X X X X X X 0x5555, // X X X X X X X X 0xAAAA, // X X X X X X X X 0x5555, // X X X X X X X X 0xAAAA, // X X X X X X X X 0x5555}));// X X X X X X X X /** node layer */ node_lay = Layer.newInstance(this, "Node", new EGraphics(false, false, null, 0, 255,0,0, 0.8,true, new int[] {0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF, 0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF})); /** text layer */ text_lay = Layer.newInstance(this, "Text", new EGraphics(false, false, null, 0, 0,0,0, 0.8,true, new int[] {0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF, 0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF})); // The layer functions arc_lay.setFunction(Layer.Function.METAL1); // arc bus_lay.setFunction(Layer.Function.BUS); // bus node_lay.setFunction(Layer.Function.ART); // node text_lay.setFunction(Layer.Function.ART); // text //**************************************** ARCS **************************************** /** wire arc */ wire_arc = newArcProto("wire", 0, 0.0, ArcProto.Function.METAL1, new Technology.ArcLayer(arc_lay, 0, Poly.Type.FILLED) ); wire_arc.setFactoryFixedAngle(true); wire_arc.setFactorySlidable(false); wire_arc.setFactoryAngleIncrement(45); /** bus arc */ bus_arc = newArcProto("bus", 0, 1.0, ArcProto.Function.BUS, new Technology.ArcLayer(bus_lay, 1, Poly.Type.FILLED) ); bus_arc.setFactoryFixedAngle(true); bus_arc.setFactorySlidable(false); bus_arc.setFactoryExtended(false); bus_arc.setFactoryAngleIncrement(45); //**************************************** NODES **************************************** // this text descriptor is used for all text on nodes TextDescriptor tdBig = TextDescriptor.EMPTY.withRelSize(2); TextDescriptor tdSmall = TextDescriptor.EMPTY.withRelSize(1); /** wire pin */ wirePinNode = PrimitiveNode.newInstance("Wire_Pin", this, 0.5, 0.5, null, new Technology.NodeLayer [] { new Technology.NodeLayer(arc_lay, 0, Poly.Type.DISC, Technology.NodeLayer.POINTS, new Technology.TechPoint [] { new Technology.TechPoint(EdgeH.makeCenter(), EdgeV.makeCenter()), new Technology.TechPoint(EdgeH.makeRightEdge(), EdgeV.makeCenter())}) }); wirePinNode.addPrimitivePorts(new PrimitivePort [] { PrimitivePort.newInstance(this, wirePinNode, new ArcProto[] {wire_arc}, "wire", 0,180, 0, PortCharacteristic.UNKNOWN, EdgeH.makeCenter(), EdgeV.makeCenter(), EdgeH.makeCenter(), EdgeV.makeCenter()) }); wirePinNode.setFunction(PrimitiveNode.Function.PIN); wirePinNode.setSquare(); wirePinNode.setWipeOn1or2(); wirePinNode.setCanBeZeroSize(); /** bus pin */ busPinNode = PrimitiveNode.newInstance("Bus_Pin", this, 2.0, 2.0, null, new Technology.NodeLayer [] { new Technology.NodeLayer(bus_lay, 0, Poly.Type.DISC, Technology.NodeLayer.POINTS, new Technology.TechPoint [] { new Technology.TechPoint(EdgeH.makeCenter(), EdgeV.makeCenter()), new Technology.TechPoint(EdgeH.makeRightEdge(), EdgeV.makeCenter())}), new Technology.NodeLayer(arc_lay, 0, Poly.Type.DISC, Technology.NodeLayer.POINTS, new Technology.TechPoint [] { new Technology.TechPoint(EdgeH.makeCenter(), EdgeV.makeCenter()), new Technology.TechPoint(EdgeH.makeRightEdge(), EdgeV.makeCenter())}) }); busPinNode.addPrimitivePorts(new PrimitivePort []
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -