Radial film cap improvements - new shape, more models

This commit is contained in:
Bane Stojkovic
2022-11-15 22:50:53 +01:00
parent 6e382a8375
commit 8d54c8666a
3 changed files with 1581 additions and 1357 deletions
@@ -4145,5 +4145,33 @@
</changes>
<url>https://github.com/bancika/diy-layout-creator/releases</url>
</org.diylc.appframework.update.Version>
<org.diylc.appframework.update.Version>
<versionNumber>
<major>4</major>
<minor>33</minor>
<build>0</build>
</versionNumber>
<releaseDate>2022-11-11 00:00:00.000 CET</releaseDate>
<name></name>
<changes>
<org.diylc.appframework.update.Change>
<changeType>NEW_FEATURE</changeType>
<description>Added standard models in the drop down menu of the component toolbar</description>
</org.diylc.appframework.update.Change>
<org.diylc.appframework.update.Change>
<changeType>NEW_FEATURE</changeType>
<description>Radial Electrolytic Capacitor - added standard models from Nichicon FW datasheet</description>
</org.diylc.appframework.update.Change>
<org.diylc.appframework.update.Change>
<changeType>NEW_FEATURE</changeType>
<description>Radial Film Capacitor - added standard models from Epcos MKT datasheet</description>
</org.diylc.appframework.update.Change>
<org.diylc.appframework.update.Change>
<changeType>NEW_FEATURE</changeType>
<description>Radial Film Capacitor - added ability to select package shape - drop or box style</description>
</org.diylc.appframework.update.Change>
</changes>
<url>https://github.com/bancika/diy-layout-creator/releases</url>
</org.diylc.appframework.update.Version>
</a>
</java.util.Arrays_-ArrayList>
File diff suppressed because it is too large Load Diff
@@ -22,6 +22,7 @@ import java.awt.Color;
import java.awt.Graphics2D;
import java.awt.Rectangle;
import java.awt.Shape;
import java.awt.geom.Rectangle2D;
import java.awt.geom.RoundRectangle2D;
import org.diylc.components.passive.CapacitorDatasheetService.CapacitorDatasheet;
import org.diylc.components.transform.SimpleComponentTransformer;
@@ -48,6 +49,7 @@ public class RadialFilmCapacitor extends AbstractFilmCapacitor implements IDatas
public static Size PIN_SPACING = new Size(0.1d, SizeUnit.in);
private Size pinSpacing = PIN_SPACING;
private RadialFilmCapacitorShape shape = RadialFilmCapacitorShape.DROP;
public RadialFilmCapacitor() {
super();
@@ -82,6 +84,10 @@ public class RadialFilmCapacitor extends AbstractFilmCapacitor implements IDatas
setWidth(d.getWidth());
if (d.getLeadSpacing() != null)
setPinSpacing(d.getLeadSpacing());
if (model.length >= 10) {
setShape(RadialFilmCapacitorShape.valueOf(model[9]));
}
}
public void drawIcon(Graphics2D g2d, int width, int height) {
@@ -98,6 +104,9 @@ public class RadialFilmCapacitor extends AbstractFilmCapacitor implements IDatas
protected Shape getBodyShape() {
double lengthFinal = getLength().convertToPixels();
double widthFinal = getWidth().convertToPixels();
if (getShape() == RadialFilmCapacitorShape.BOX)
return new Rectangle2D.Double(0f, 0f, lengthFinal, getClosestOdd(widthFinal));
double radius = widthFinal * 0.7;
return new RoundRectangle2D.Double(0f, 0f, lengthFinal, getClosestOdd(widthFinal), radius,
@@ -120,4 +129,25 @@ public class RadialFilmCapacitor extends AbstractFilmCapacitor implements IDatas
public void setPinSpacing(Size pinSpacing) {
this.pinSpacing = pinSpacing;
}
@EditableProperty
public RadialFilmCapacitorShape getShape() {
if (shape == null) {
shape = RadialFilmCapacitorShape.DROP;
}
return shape;
}
public void setShape(RadialFilmCapacitorShape shape) {
this.shape = shape;
}
public static enum RadialFilmCapacitorShape {
DROP, BOX;
@Override
public String toString() {
return name().substring(0, 1) + name().substring(1).toLowerCase();
}
}
}