diode improvements

This commit is contained in:
Bane Stojkovic
2026-11-02 14:58:52 +01:00
parent 3e043a8387
commit e369ea6200
8 changed files with 566 additions and 6 deletions
@@ -31,6 +31,7 @@ import org.diylc.common.IPlugInPort;
import org.diylc.components.AbstractLeadedComponent;
import org.diylc.components.transform.SimpleComponentTransformer;
import org.diylc.core.CreationMethod;
import org.diylc.core.IDatasheetSupport;
import org.diylc.core.IDIYComponent;
import org.diylc.core.Theme;
import org.diylc.core.annotations.AiNote;
@@ -43,11 +44,14 @@ import org.diylc.utils.Constants;
@AiNote("The two control points are the holes the leads go into and the body is centred between them; 'Length' is the body length, not the hole spacing")
@AiNote("If the control points are closer together than 'Length' (0.2in by default) the part is drawn standing, its body over the first point, or over the second with 'Reverse (standing)'; to keep it lying on a tighter footprint, reduce 'Length'")
@AiNote("A datasheet model is a part number such as 1N4148, BAT46 or 1N34A and sets 'Value', 'Length', 'Width' and the body colours to match its package; set 'Value' to the same part number together with the model")
@ComponentDescriptor(name = "Diode (glass)", author = "Branislav Stojkovic", category = "Semiconductors",
creationMethod = CreationMethod.POINT_BY_POINT, instanceNamePrefix = "D",
description = "Glass diode, like most small signal diodes.", zOrder = IDIYComponent.COMPONENT,
transformer = SimpleComponentTransformer.class, enableCache = true)
public class DiodeGlass extends AbstractLeadedComponent<String> implements IGerberComponentSimple {
transformer = SimpleComponentTransformer.class, enableCache = true, enableDatasheet = true,
datasheetCreationStepCount = 2, datasheetModelColumn = 1)
public class DiodeGlass extends AbstractLeadedComponent<String>
implements IGerberComponentSimple, IDatasheetSupport {
private static final long serialVersionUID = 1L;
@@ -71,6 +75,24 @@ public class DiodeGlass extends AbstractLeadedComponent<String> implements IGerb
this.borderColor = BORDER_COLOR;
}
public DiodeGlass(String[] model) {
this();
applyModel(model);
}
// columns: group, part number, package, body length, body diameter, body colour, cathode band
// colour, die colour
@Override
public void applyModel(String[] model) {
setValue(model[1]);
setLength(Size.parseSize(model[3]));
setWidth(Size.parseSize(model[4]));
setBodyColor(Color.decode(model[5]));
setMarkerColor(Color.decode(model[6]));
setInsideColor(Color.decode(model[7]));
}
@Override
protected boolean supportsStandingMode() {
return true;
@@ -31,6 +31,7 @@ import org.diylc.common.IPlugInPort;
import org.diylc.components.AbstractLeadedComponent;
import org.diylc.components.transform.SimpleComponentTransformer;
import org.diylc.core.CreationMethod;
import org.diylc.core.IDatasheetSupport;
import org.diylc.core.IDIYComponent;
import org.diylc.core.Theme;
import org.diylc.core.annotations.AiNote;
@@ -43,11 +44,14 @@ import org.diylc.utils.Constants;
@AiNote("The two control points are the holes the leads go into and the body is centred between them; 'Length' is the body length, not the hole spacing")
@AiNote("If the control points are closer together than 'Length' (0.25in by default) the part is drawn standing, its body over the first point; to keep it lying on a tighter footprint, reduce 'Length'")
@AiNote("A datasheet model is a part number such as 1N4007, 1N5819 or UF4007 and sets 'Value', 'Length', 'Width' and the body colours to match its package; set 'Value' to the same part number together with the model")
@ComponentDescriptor(name = "Diode (plastic)", author = "Branislav Stojkovic", category = "Semiconductors",
creationMethod = CreationMethod.POINT_BY_POINT, instanceNamePrefix = "D",
description = "Plastic diode, like most rectifier, zener, schottky, etc.", zOrder = IDIYComponent.COMPONENT,
transformer = SimpleComponentTransformer.class, enableCache = true)
public class DiodePlastic extends AbstractLeadedComponent<String> implements IGerberComponentSimple {
transformer = SimpleComponentTransformer.class, enableCache = true, enableDatasheet = true,
datasheetCreationStepCount = 2, datasheetModelColumn = 1)
public class DiodePlastic extends AbstractLeadedComponent<String>
implements IGerberComponentSimple, IDatasheetSupport {
private static final long serialVersionUID = 1L;
@@ -69,6 +73,23 @@ public class DiodePlastic extends AbstractLeadedComponent<String> implements IGe
this.borderColor = BORDER_COLOR;
}
public DiodePlastic(String[] model) {
this();
applyModel(model);
}
// columns: group, part number, package, body length, body diameter, body colour, cathode band
// colour
@Override
public void applyModel(String[] model) {
setValue(model[1]);
setLength(Size.parseSize(model[3]));
setWidth(Size.parseSize(model[4]));
setBodyColor(Color.decode(model[5]));
setMarkerColor(Color.decode(model[6]));
}
@Override
protected boolean supportsStandingMode() {
return true;
@@ -0,0 +1,200 @@
Signal,1N4148,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#D9652B
Signal,1N914,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#D9652B
Signal,1N4448,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#D9652B
Signal,1N916,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#D9652B
Signal,1N4151,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#D9652B
Signal,BAV21,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#D9652B
Signal,1N3600,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#D9652B
Signal,BA221,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#D9652B
Schottky,BAT41,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#D9652B
Schottky,BAT42,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#D9652B
Schottky,BAT43,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#D9652B
Schottky,BAT46,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#D9652B
Schottky,BAT48,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#D9652B
Schottky,BAT85,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#D9652B
Schottky,1N5711,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#D9652B
Schottky,BAT86,DO-34,2.6 mm,1.6 mm,#E1F0FF,#141414,#D9652B
Germanium,1N34A,DO-7,6.7 mm,2.45 mm,#E8F2F2,#141414,#5E5E5E
Germanium,1N270,DO-7,6.7 mm,2.45 mm,#E8F2F2,#141414,#5E5E5E
Germanium,OA90,DO-7,6.7 mm,2.45 mm,#E8F2F2,#141414,#5E5E5E
Germanium,OA91,DO-7,6.7 mm,2.45 mm,#E8F2F2,#141414,#5E5E5E
Germanium,OA95,DO-7,6.7 mm,2.45 mm,#E8F2F2,#141414,#5E5E5E
Germanium,OA47,DO-7,6.7 mm,2.45 mm,#E8F2F2,#141414,#5E5E5E
Germanium,AA119,DO-7,6.7 mm,2.45 mm,#E8F2F2,#141414,#5E5E5E
Germanium,AA143,DO-7,6.7 mm,2.45 mm,#E8F2F2,#141414,#5E5E5E
Germanium,1N60,DO-35,4 mm,1.8 mm,#E8F2F2,#141414,#5E5E5E
Germanium,1N60P,DO-35,4 mm,1.8 mm,#E8F2F2,#141414,#5E5E5E
Fast Rectifier,BYV26C,SOD-57,4.2 mm,3.5 mm,#202020,#B0B0B0,#202020
Fast Rectifier,BYV26E,SOD-57,4.2 mm,3.5 mm,#202020,#B0B0B0,#202020
Zener (1N47xx),1N4728A,DO-41,4.3 mm,2.4 mm,#E1F0FF,#141414,#E07A3A
Zener (1N47xx),1N4729A,DO-41,4.3 mm,2.4 mm,#E1F0FF,#141414,#E07A3A
Zener (1N47xx),1N4730A,DO-41,4.3 mm,2.4 mm,#E1F0FF,#141414,#E07A3A
Zener (1N47xx),1N4731A,DO-41,4.3 mm,2.4 mm,#E1F0FF,#141414,#E07A3A
Zener (1N47xx),1N4732A,DO-41,4.3 mm,2.4 mm,#E1F0FF,#141414,#E07A3A
Zener (1N47xx),1N4733A,DO-41,4.3 mm,2.4 mm,#E1F0FF,#141414,#E07A3A
Zener (1N47xx),1N4734A,DO-41,4.3 mm,2.4 mm,#E1F0FF,#141414,#E07A3A
Zener (1N47xx),1N4735A,DO-41,4.3 mm,2.4 mm,#E1F0FF,#141414,#E07A3A
Zener (1N47xx),1N4736A,DO-41,4.3 mm,2.4 mm,#E1F0FF,#141414,#E07A3A
Zener (1N47xx),1N4737A,DO-41,4.3 mm,2.4 mm,#E1F0FF,#141414,#E07A3A
Zener (1N47xx),1N4738A,DO-41,4.3 mm,2.4 mm,#E1F0FF,#141414,#E07A3A
Zener (1N47xx),1N4739A,DO-41,4.3 mm,2.4 mm,#E1F0FF,#141414,#E07A3A
Zener (1N47xx),1N4740A,DO-41,4.3 mm,2.4 mm,#E1F0FF,#141414,#E07A3A
Zener (1N47xx),1N4741A,DO-41,4.3 mm,2.4 mm,#E1F0FF,#141414,#E07A3A
Zener (1N47xx),1N4742A,DO-41,4.3 mm,2.4 mm,#E1F0FF,#141414,#E07A3A
Zener (1N47xx),1N4743A,DO-41,4.3 mm,2.4 mm,#E1F0FF,#141414,#E07A3A
Zener (1N47xx),1N4744A,DO-41,4.3 mm,2.4 mm,#E1F0FF,#141414,#E07A3A
Zener (1N47xx),1N4745A,DO-41,4.3 mm,2.4 mm,#E1F0FF,#141414,#E07A3A
Zener (1N47xx),1N4746A,DO-41,4.3 mm,2.4 mm,#E1F0FF,#141414,#E07A3A
Zener (1N47xx),1N4747A,DO-41,4.3 mm,2.4 mm,#E1F0FF,#141414,#E07A3A
Zener (1N47xx),1N4748A,DO-41,4.3 mm,2.4 mm,#E1F0FF,#141414,#E07A3A
Zener (1N47xx),1N4749A,DO-41,4.3 mm,2.4 mm,#E1F0FF,#141414,#E07A3A
Zener (1N47xx),1N4750A,DO-41,4.3 mm,2.4 mm,#E1F0FF,#141414,#E07A3A
Zener (1N47xx),1N4751A,DO-41,4.3 mm,2.4 mm,#E1F0FF,#141414,#E07A3A
Zener (1N47xx),1N4752A,DO-41,4.3 mm,2.4 mm,#E1F0FF,#141414,#E07A3A
Zener (1N47xx),1N4753A,DO-41,4.3 mm,2.4 mm,#E1F0FF,#141414,#E07A3A
Zener (1N47xx),1N4754A,DO-41,4.3 mm,2.4 mm,#E1F0FF,#141414,#E07A3A
Zener (1N47xx),1N4755A,DO-41,4.3 mm,2.4 mm,#E1F0FF,#141414,#E07A3A
Zener (1N47xx),1N4756A,DO-41,4.3 mm,2.4 mm,#E1F0FF,#141414,#E07A3A
Zener (1N47xx),1N4757A,DO-41,4.3 mm,2.4 mm,#E1F0FF,#141414,#E07A3A
Zener (1N47xx),1N4758A,DO-41,4.3 mm,2.4 mm,#E1F0FF,#141414,#E07A3A
Zener (1N47xx),1N4759A,DO-41,4.3 mm,2.4 mm,#E1F0FF,#141414,#E07A3A
Zener (1N47xx),1N4760A,DO-41,4.3 mm,2.4 mm,#E1F0FF,#141414,#E07A3A
Zener (1N47xx),1N4761A,DO-41,4.3 mm,2.4 mm,#E1F0FF,#141414,#E07A3A
Zener (1N47xx),1N4762A,DO-41,4.3 mm,2.4 mm,#E1F0FF,#141414,#E07A3A
Zener (1N47xx),1N4763A,DO-41,4.3 mm,2.4 mm,#E1F0FF,#141414,#E07A3A
Zener (1N47xx),1N4764A,DO-41,4.3 mm,2.4 mm,#E1F0FF,#141414,#E07A3A
Zener (1N52xx),1N5221B,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#E07A3A
Zener (1N52xx),1N5222B,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#E07A3A
Zener (1N52xx),1N5223B,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#E07A3A
Zener (1N52xx),1N5224B,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#E07A3A
Zener (1N52xx),1N5225B,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#E07A3A
Zener (1N52xx),1N5226B,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#E07A3A
Zener (1N52xx),1N5227B,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#E07A3A
Zener (1N52xx),1N5228B,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#E07A3A
Zener (1N52xx),1N5229B,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#E07A3A
Zener (1N52xx),1N5230B,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#E07A3A
Zener (1N52xx),1N5231B,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#E07A3A
Zener (1N52xx),1N5232B,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#E07A3A
Zener (1N52xx),1N5233B,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#E07A3A
Zener (1N52xx),1N5234B,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#E07A3A
Zener (1N52xx),1N5235B,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#E07A3A
Zener (1N52xx),1N5236B,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#E07A3A
Zener (1N52xx),1N5237B,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#E07A3A
Zener (1N52xx),1N5238B,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#E07A3A
Zener (1N52xx),1N5239B,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#E07A3A
Zener (1N52xx),1N5240B,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#E07A3A
Zener (1N52xx),1N5241B,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#E07A3A
Zener (1N52xx),1N5242B,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#E07A3A
Zener (1N52xx),1N5243B,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#E07A3A
Zener (1N52xx),1N5244B,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#E07A3A
Zener (1N52xx),1N5245B,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#E07A3A
Zener (1N52xx),1N5246B,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#E07A3A
Zener (1N52xx),1N5247B,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#E07A3A
Zener (1N52xx),1N5248B,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#E07A3A
Zener (1N52xx),1N5249B,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#E07A3A
Zener (1N52xx),1N5250B,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#E07A3A
Zener (1N52xx),1N5251B,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#E07A3A
Zener (1N52xx),1N5252B,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#E07A3A
Zener (1N52xx),1N5253B,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#E07A3A
Zener (1N52xx),1N5254B,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#E07A3A
Zener (1N52xx),1N5255B,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#E07A3A
Zener (1N52xx),1N5256B,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#E07A3A
Zener (1N52xx),1N5257B,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#E07A3A
Zener (1N52xx),1N5258B,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#E07A3A
Zener (1N52xx),1N5259B,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#E07A3A
Zener (1N52xx),1N5260B,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#E07A3A
Zener (1N52xx),1N5261B,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#E07A3A
Zener (1N52xx),1N5262B,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#E07A3A
Zener (1N52xx),1N5263B,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#E07A3A
Zener (1N52xx),1N5264B,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#E07A3A
Zener (1N52xx),1N5265B,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#E07A3A
Zener (1N52xx),1N5266B,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#E07A3A
Zener (1N52xx),1N5267B,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#E07A3A
Zener (1N7xx),1N746A,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#E07A3A
Zener (1N7xx),1N747A,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#E07A3A
Zener (1N7xx),1N748A,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#E07A3A
Zener (1N7xx),1N749A,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#E07A3A
Zener (1N7xx),1N750A,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#E07A3A
Zener (1N7xx),1N751A,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#E07A3A
Zener (1N7xx),1N752A,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#E07A3A
Zener (1N7xx),1N753A,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#E07A3A
Zener (1N7xx),1N754A,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#E07A3A
Zener (1N7xx),1N755A,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#E07A3A
Zener (1N7xx),1N756A,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#E07A3A
Zener (1N7xx),1N757A,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#E07A3A
Zener (1N7xx),1N758A,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#E07A3A
Zener (1N7xx),1N759A,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#E07A3A
Zener (BZX55),BZX55C2V4,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#E07A3A
Zener (BZX55),BZX55C2V7,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#E07A3A
Zener (BZX55),BZX55C3V0,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#E07A3A
Zener (BZX55),BZX55C3V3,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#E07A3A
Zener (BZX55),BZX55C3V6,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#E07A3A
Zener (BZX55),BZX55C3V9,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#E07A3A
Zener (BZX55),BZX55C4V3,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#E07A3A
Zener (BZX55),BZX55C4V7,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#E07A3A
Zener (BZX55),BZX55C5V1,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#E07A3A
Zener (BZX55),BZX55C5V6,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#E07A3A
Zener (BZX55),BZX55C6V2,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#E07A3A
Zener (BZX55),BZX55C6V8,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#E07A3A
Zener (BZX55),BZX55C7V5,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#E07A3A
Zener (BZX55),BZX55C8V2,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#E07A3A
Zener (BZX55),BZX55C9V1,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#E07A3A
Zener (BZX55),BZX55C10,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#E07A3A
Zener (BZX55),BZX55C11,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#E07A3A
Zener (BZX55),BZX55C12,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#E07A3A
Zener (BZX55),BZX55C13,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#E07A3A
Zener (BZX55),BZX55C15,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#E07A3A
Zener (BZX55),BZX55C16,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#E07A3A
Zener (BZX55),BZX55C18,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#E07A3A
Zener (BZX55),BZX55C20,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#E07A3A
Zener (BZX55),BZX55C22,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#E07A3A
Zener (BZX55),BZX55C24,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#E07A3A
Zener (BZX55),BZX55C27,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#E07A3A
Zener (BZX55),BZX55C30,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#E07A3A
Zener (BZX55),BZX55C33,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#E07A3A
Zener (BZX55),BZX55C36,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#E07A3A
Zener (BZX55),BZX55C39,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#E07A3A
Zener (BZX55),BZX55C43,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#E07A3A
Zener (BZX55),BZX55C47,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#E07A3A
Zener (BZX55),BZX55C51,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#E07A3A
Zener (BZX55),BZX55C56,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#E07A3A
Zener (BZX55),BZX55C62,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#E07A3A
Zener (BZX55),BZX55C68,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#E07A3A
Zener (BZX55),BZX55C75,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#E07A3A
Zener (BZX79),BZX79C2V4,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#E07A3A
Zener (BZX79),BZX79C2V7,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#E07A3A
Zener (BZX79),BZX79C3V0,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#E07A3A
Zener (BZX79),BZX79C3V3,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#E07A3A
Zener (BZX79),BZX79C3V6,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#E07A3A
Zener (BZX79),BZX79C3V9,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#E07A3A
Zener (BZX79),BZX79C4V3,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#E07A3A
Zener (BZX79),BZX79C4V7,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#E07A3A
Zener (BZX79),BZX79C5V1,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#E07A3A
Zener (BZX79),BZX79C5V6,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#E07A3A
Zener (BZX79),BZX79C6V2,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#E07A3A
Zener (BZX79),BZX79C6V8,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#E07A3A
Zener (BZX79),BZX79C7V5,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#E07A3A
Zener (BZX79),BZX79C8V2,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#E07A3A
Zener (BZX79),BZX79C9V1,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#E07A3A
Zener (BZX79),BZX79C10,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#E07A3A
Zener (BZX79),BZX79C11,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#E07A3A
Zener (BZX79),BZX79C12,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#E07A3A
Zener (BZX79),BZX79C13,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#E07A3A
Zener (BZX79),BZX79C15,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#E07A3A
Zener (BZX79),BZX79C16,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#E07A3A
Zener (BZX79),BZX79C18,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#E07A3A
Zener (BZX79),BZX79C20,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#E07A3A
Zener (BZX79),BZX79C22,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#E07A3A
Zener (BZX79),BZX79C24,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#E07A3A
Zener (BZX79),BZX79C27,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#E07A3A
Zener (BZX79),BZX79C30,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#E07A3A
Zener (BZX79),BZX79C33,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#E07A3A
Zener (BZX79),BZX79C36,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#E07A3A
Zener (BZX79),BZX79C39,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#E07A3A
Zener (BZX79),BZX79C43,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#E07A3A
Zener (BZX79),BZX79C47,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#E07A3A
Zener (BZX79),BZX79C51,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#E07A3A
Zener (BZX79),BZX79C56,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#E07A3A
Zener (BZX79),BZX79C62,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#E07A3A
Zener (BZX79),BZX79C68,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#E07A3A
Zener (BZX79),BZX79C75,DO-35,4 mm,1.8 mm,#E1F0FF,#141414,#E07A3A
@@ -0,0 +1,77 @@
Rectifier,1N4001,DO-41,4.6 mm,2.4 mm,#1E1E1E,#BDBDBD
Rectifier,1N4002,DO-41,4.6 mm,2.4 mm,#1E1E1E,#BDBDBD
Rectifier,1N4003,DO-41,4.6 mm,2.4 mm,#1E1E1E,#BDBDBD
Rectifier,1N4004,DO-41,4.6 mm,2.4 mm,#1E1E1E,#BDBDBD
Rectifier,1N4005,DO-41,4.6 mm,2.4 mm,#1E1E1E,#BDBDBD
Rectifier,1N4006,DO-41,4.6 mm,2.4 mm,#1E1E1E,#BDBDBD
Rectifier,1N4007,DO-41,4.6 mm,2.4 mm,#1E1E1E,#BDBDBD
Rectifier,1N5391,DO-41,4.6 mm,2.4 mm,#1E1E1E,#BDBDBD
Rectifier,1N5392,DO-41,4.6 mm,2.4 mm,#1E1E1E,#BDBDBD
Rectifier,1N5393,DO-41,4.6 mm,2.4 mm,#1E1E1E,#BDBDBD
Rectifier,1N5394,DO-41,4.6 mm,2.4 mm,#1E1E1E,#BDBDBD
Rectifier,1N5395,DO-41,4.6 mm,2.4 mm,#1E1E1E,#BDBDBD
Rectifier,1N5396,DO-41,4.6 mm,2.4 mm,#1E1E1E,#BDBDBD
Rectifier,1N5397,DO-41,4.6 mm,2.4 mm,#1E1E1E,#BDBDBD
Rectifier,1N5398,DO-41,4.6 mm,2.4 mm,#1E1E1E,#BDBDBD
Rectifier,1N5399,DO-41,4.6 mm,2.4 mm,#1E1E1E,#BDBDBD
Rectifier,1N5400,DO-201AD,8.5 mm,5.1 mm,#1E1E1E,#BDBDBD
Rectifier,1N5401,DO-201AD,8.5 mm,5.1 mm,#1E1E1E,#BDBDBD
Rectifier,1N5402,DO-201AD,8.5 mm,5.1 mm,#1E1E1E,#BDBDBD
Rectifier,1N5404,DO-201AD,8.5 mm,5.1 mm,#1E1E1E,#BDBDBD
Rectifier,1N5406,DO-201AD,8.5 mm,5.1 mm,#1E1E1E,#BDBDBD
Rectifier,1N5407,DO-201AD,8.5 mm,5.1 mm,#1E1E1E,#BDBDBD
Rectifier,1N5408,DO-201AD,8.5 mm,5.1 mm,#1E1E1E,#BDBDBD
Rectifier,BY255,DO-201AD,8.5 mm,5.1 mm,#1E1E1E,#BDBDBD
Rectifier,6A10,R-6,8.85 mm,8.85 mm,#1E1E1E,#BDBDBD
Fast Rectifier,UF4001,DO-41,4.6 mm,2.4 mm,#1E1E1E,#BDBDBD
Fast Rectifier,UF4002,DO-41,4.6 mm,2.4 mm,#1E1E1E,#BDBDBD
Fast Rectifier,UF4003,DO-41,4.6 mm,2.4 mm,#1E1E1E,#BDBDBD
Fast Rectifier,UF4004,DO-41,4.6 mm,2.4 mm,#1E1E1E,#BDBDBD
Fast Rectifier,UF4005,DO-41,4.6 mm,2.4 mm,#1E1E1E,#BDBDBD
Fast Rectifier,UF4006,DO-41,4.6 mm,2.4 mm,#1E1E1E,#BDBDBD
Fast Rectifier,UF4007,DO-41,4.6 mm,2.4 mm,#1E1E1E,#BDBDBD
Fast Rectifier,1N4933,DO-41,4.6 mm,2.4 mm,#1E1E1E,#BDBDBD
Fast Rectifier,1N4934,DO-41,4.6 mm,2.4 mm,#1E1E1E,#BDBDBD
Fast Rectifier,1N4935,DO-41,4.6 mm,2.4 mm,#1E1E1E,#BDBDBD
Fast Rectifier,1N4936,DO-41,4.6 mm,2.4 mm,#1E1E1E,#BDBDBD
Fast Rectifier,1N4937,DO-41,4.6 mm,2.4 mm,#1E1E1E,#BDBDBD
Fast Rectifier,FR101,DO-41,4.6 mm,2.4 mm,#1E1E1E,#BDBDBD
Fast Rectifier,FR102,DO-41,4.6 mm,2.4 mm,#1E1E1E,#BDBDBD
Fast Rectifier,FR103,DO-41,4.6 mm,2.4 mm,#1E1E1E,#BDBDBD
Fast Rectifier,FR104,DO-41,4.6 mm,2.4 mm,#1E1E1E,#BDBDBD
Fast Rectifier,FR105,DO-41,4.6 mm,2.4 mm,#1E1E1E,#BDBDBD
Fast Rectifier,FR106,DO-41,4.6 mm,2.4 mm,#1E1E1E,#BDBDBD
Fast Rectifier,FR107,DO-41,4.6 mm,2.4 mm,#1E1E1E,#BDBDBD
Fast Rectifier,HER101,DO-41,4.6 mm,2.4 mm,#1E1E1E,#BDBDBD
Fast Rectifier,HER102,DO-41,4.6 mm,2.4 mm,#1E1E1E,#BDBDBD
Fast Rectifier,HER103,DO-41,4.6 mm,2.4 mm,#1E1E1E,#BDBDBD
Fast Rectifier,HER104,DO-41,4.6 mm,2.4 mm,#1E1E1E,#BDBDBD
Fast Rectifier,HER105,DO-41,4.6 mm,2.4 mm,#1E1E1E,#BDBDBD
Fast Rectifier,HER106,DO-41,4.6 mm,2.4 mm,#1E1E1E,#BDBDBD
Fast Rectifier,HER107,DO-41,4.6 mm,2.4 mm,#1E1E1E,#BDBDBD
Fast Rectifier,HER108,DO-41,4.6 mm,2.4 mm,#1E1E1E,#BDBDBD
Fast Rectifier,MUR120,DO-41,4.6 mm,2.4 mm,#1E1E1E,#BDBDBD
Fast Rectifier,MUR160,DO-41,4.6 mm,2.4 mm,#1E1E1E,#BDBDBD
Fast Rectifier,BA157,DO-41,4.6 mm,2.4 mm,#1E1E1E,#BDBDBD
Fast Rectifier,BA158,DO-41,4.6 mm,2.4 mm,#1E1E1E,#BDBDBD
Fast Rectifier,BA159,DO-41,4.6 mm,2.4 mm,#1E1E1E,#BDBDBD
Fast Rectifier,UF5400,DO-201AD,8.5 mm,5.1 mm,#1E1E1E,#BDBDBD
Fast Rectifier,UF5401,DO-201AD,8.5 mm,5.1 mm,#1E1E1E,#BDBDBD
Fast Rectifier,UF5402,DO-201AD,8.5 mm,5.1 mm,#1E1E1E,#BDBDBD
Fast Rectifier,UF5404,DO-201AD,8.5 mm,5.1 mm,#1E1E1E,#BDBDBD
Fast Rectifier,UF5406,DO-201AD,8.5 mm,5.1 mm,#1E1E1E,#BDBDBD
Fast Rectifier,UF5407,DO-201AD,8.5 mm,5.1 mm,#1E1E1E,#BDBDBD
Fast Rectifier,UF5408,DO-201AD,8.5 mm,5.1 mm,#1E1E1E,#BDBDBD
Fast Rectifier,MUR460,DO-201AD,8.5 mm,5.1 mm,#1E1E1E,#BDBDBD
Fast Rectifier,BY399,DO-201AD,8.5 mm,5.1 mm,#1E1E1E,#BDBDBD
Schottky,1N5817,DO-41,4.6 mm,2.4 mm,#1E1E1E,#BDBDBD
Schottky,1N5818,DO-41,4.6 mm,2.4 mm,#1E1E1E,#BDBDBD
Schottky,1N5819,DO-41,4.6 mm,2.4 mm,#1E1E1E,#BDBDBD
Schottky,SB140,DO-41,4.6 mm,2.4 mm,#1E1E1E,#BDBDBD
Schottky,SB160,DO-41,4.6 mm,2.4 mm,#1E1E1E,#BDBDBD
Schottky,SR160,DO-41,4.6 mm,2.4 mm,#1E1E1E,#BDBDBD
Schottky,11DQ04,DO-41,4.6 mm,2.4 mm,#1E1E1E,#BDBDBD
Schottky,1N5820,DO-201AD,8.5 mm,5.1 mm,#1E1E1E,#BDBDBD
Schottky,1N5821,DO-201AD,8.5 mm,5.1 mm,#1E1E1E,#BDBDBD
Schottky,1N5822,DO-201AD,8.5 mm,5.1 mm,#1E1E1E,#BDBDBD
Schottky,SB560,DO-201AD,8.5 mm,5.1 mm,#1E1E1E,#BDBDBD
@@ -0,0 +1,105 @@
/*
DIY Layout Creator (DIYLC).
Copyright (c) 2009-2025 held jointly by the individual authors.
This file is part of DIYLC.
DIYLC 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.
DIYLC 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 DIYLC. If not, see <http://www.gnu.org/licenses/>.
*/
package org.diylc.components.semiconductors;
import java.awt.Color;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import org.diylc.core.measures.Size;
import org.diylc.presenter.DatasheetService;
import org.junit.Assert;
import org.junit.Test;
/** The datasheets of the plastic and glass diodes, which share their first seven columns. */
public class DiodeDatasheetTest {
@Test
public void everyPlasticRowApplies() {
for (String[] row : datasheet(DiodePlastic.class)) {
DiodePlastic diode = new DiodePlastic(row);
String context = String.join(",", row);
Assert.assertEquals(context, 7, row.length);
Assert.assertEquals(context, row[1], diode.getValue());
Assert.assertEquals(context, Size.parseSize(row[3]), diode.getLength());
Assert.assertEquals(context, Color.decode(row[6]), diode.getMarkerColor());
}
}
@Test
public void everyGlassRowApplies() {
for (String[] row : datasheet(DiodeGlass.class)) {
DiodeGlass diode = new DiodeGlass(row);
String context = String.join(",", row);
Assert.assertEquals(context, 8, row.length);
Assert.assertEquals(context, row[1], diode.getValue());
Assert.assertEquals(context, Size.parseSize(row[4]), diode.getWidth());
Assert.assertEquals(context, Color.decode(row[7]), diode.getInsideColor());
}
}
/** A part ships in one envelope, so it is listed under one component only. */
@Test
public void partNumbersAreUniqueAcrossBothFiles() {
Set<String> parts = new HashSet<String>();
for (Class<?> type : new Class<?>[] {DiodePlastic.class, DiodeGlass.class}) {
for (String[] row : datasheet(type)) {
Assert.assertTrue("repeated part " + row[1], parts.add(row[1].toUpperCase()));
}
}
}
/** Packages are standard outlines, so every part in one package is drawn the same size. */
@Test
public void onePackageHasOneSize() {
for (Class<?> type : new Class<?>[] {DiodePlastic.class, DiodeGlass.class}) {
Map<String, String> sizes = new HashMap<String, String>();
for (String[] row : datasheet(type)) {
String size = row[3] + " x " + row[4];
String first = sizes.putIfAbsent(row[2], size);
if (first != null) {
Assert.assertEquals(row[1] + " in " + row[2], first, size);
}
}
}
}
@Test
public void partIsFoundByNumberNotByGroup() {
DatasheetService service = DatasheetService.getInstance();
for (Class<?> type : new Class<?>[] {DiodePlastic.class, DiodeGlass.class}) {
String[] first = datasheet(type).get(0);
Assert.assertEquals(1, service.findSeries(type, first[1]).size());
Assert.assertTrue(service.findSeries(type, first[0]).isEmpty());
}
}
private static List<String[]> datasheet(Class<?> type) {
List<String[]> datasheet = DatasheetService.getInstance().loadDatasheet(type);
Assert.assertNotNull(type.getSimpleName(), datasheet);
Assert.assertFalse(type.getSimpleName(), datasheet.isEmpty());
return datasheet;
}
}