Standardize how folded transistors are displayed - updated TO-92 and

TO-1 packages
This commit is contained in:
bancika
2020-04-18 10:18:55 +02:00
parent 098c0a9baf
commit 297c8d58c1
5 changed files with 35 additions and 79 deletions
@@ -3001,7 +3001,11 @@
<org.diylc.appframework.update.Change> <org.diylc.appframework.update.Change>
<changeType>NEW_FEATURE</changeType> <changeType>NEW_FEATURE</changeType>
<description>Added "Rotary Selector Switch" component</description> <description>Added "Rotary Selector Switch" component</description>
</org.diylc.appframework.update.Change> </org.diylc.appframework.update.Change>
<org.diylc.appframework.update.Change>
<changeType>IMPROVEMENT</changeType>
<description>Standardize how folded transistors are displayed - updated TO-92 and TO-1 packages</description>
</org.diylc.appframework.update.Change>
</changes> </changes>
<url>https://github.com/bancika/diy-layout-creator/releases</url> <url>https://github.com/bancika/diy-layout-creator/releases</url>
</org.diylc.appframework.update.Version> </org.diylc.appframework.update.Version>
@@ -67,8 +67,7 @@ public class TransistorTO1 extends AbstractTransistorPackage {
public static Size BODY_DIAMETER = new Size(0.24d, SizeUnit.in); public static Size BODY_DIAMETER = new Size(0.24d, SizeUnit.in);
public static Size BODY_LENGTH = new Size(0.4d, SizeUnit.in); public static Size BODY_LENGTH = new Size(0.4d, SizeUnit.in);
public static Size EDGE_RADIUS = new Size(2d, SizeUnit.mm); public static Size EDGE_RADIUS = new Size(2d, SizeUnit.mm);
private boolean folded = false;
private Size pinSpacing = PIN_SPACING; private Size pinSpacing = PIN_SPACING;
public TransistorTO1() { public TransistorTO1() {
@@ -120,31 +119,32 @@ public class TransistorTO1 extends AbstractTransistorPackage {
if (folded) { if (folded) {
switch (orientation) { switch (orientation) {
case DEFAULT: case DEFAULT:
newBody = newBody =
new Area(new RoundRectangle2D.Double(x - bodyLength, y - bodyDiameter / 2, bodyLength, bodyDiameter, new Area(new RoundRectangle2D.Double(x, y - bodyDiameter / 2, bodyLength, bodyDiameter, edgeRadius,
edgeRadius, edgeRadius)); edgeRadius));
newBody.add(new Area(new Rectangle2D.Double(x - bodyLength / 2, y - bodyDiameter / 2, bodyLength / 2,
bodyDiameter)));
break;
case _90:
newBody =
new Area(new RoundRectangle2D.Double(x - bodyDiameter / 2, y - bodyLength, bodyDiameter, bodyLength,
edgeRadius, edgeRadius));
newBody.add(new Area(new Rectangle2D.Double(x - bodyDiameter / 2, y - bodyLength / 2, bodyDiameter,
bodyLength / 2)));
break;
case _180:
newBody =
new Area(new RoundRectangle2D.Double(x, y - bodyDiameter / 2, bodyLength, bodyDiameter, edgeRadius,
edgeRadius));
newBody.add(new Area(new Rectangle2D.Double(x, y - bodyDiameter / 2, bodyLength / 2, bodyDiameter))); newBody.add(new Area(new Rectangle2D.Double(x, y - bodyDiameter / 2, bodyLength / 2, bodyDiameter)));
break; break;
case _270: case _90:
newBody = newBody =
new Area(new RoundRectangle2D.Double(x - bodyDiameter / 2, y, bodyDiameter, bodyLength, edgeRadius, new Area(new RoundRectangle2D.Double(x - bodyDiameter / 2, y, bodyDiameter, bodyLength, edgeRadius,
edgeRadius)); edgeRadius));
newBody.add(new Area(new Rectangle2D.Double(x - bodyDiameter / 2, y, bodyDiameter, bodyLength / 2))); newBody.add(new Area(new Rectangle2D.Double(x - bodyDiameter / 2, y, bodyDiameter, bodyLength / 2)));
break; break;
case _180:
newBody =
new Area(new RoundRectangle2D.Double(x - bodyLength, y - bodyDiameter / 2, bodyLength, bodyDiameter,
edgeRadius, edgeRadius));
newBody.add(new Area(new Rectangle2D.Double(x - bodyLength / 2, y - bodyDiameter / 2, bodyLength / 2,
bodyDiameter)));
break;
case _270:
newBody =
new Area(new RoundRectangle2D.Double(x - bodyDiameter / 2, y - bodyLength, bodyDiameter, bodyLength,
edgeRadius, edgeRadius));
newBody.add(new Area(new Rectangle2D.Double(x - bodyDiameter / 2, y - bodyLength / 2, bodyDiameter,
bodyLength / 2)));
break;
default: default:
throw new RuntimeException("Unexpected orientation: " + orientation); throw new RuntimeException("Unexpected orientation: " + orientation);
} }
@@ -250,18 +250,6 @@ public class TransistorTO1 extends AbstractTransistorPackage {
} }
} }
@EditableProperty
public boolean getFolded() {
return folded;
}
public void setFolded(boolean folded) {
this.folded = folded;
updateControlPoints();
// Reset body shape;
body = null;
}
@EditableProperty(name = "Pin spacing") @EditableProperty(name = "Pin spacing")
public Size getPinSpacing() { public Size getPinSpacing() {
return pinSpacing; return pinSpacing;
@@ -72,7 +72,6 @@ public class TransistorTO126 extends AbstractTransistorPackage {
public static Size LEAD_LENGTH = new Size(3.5d, SizeUnit.mm); public static Size LEAD_LENGTH = new Size(3.5d, SizeUnit.mm);
public static Size LEAD_THICKNESS = new Size(0.8d, SizeUnit.mm); public static Size LEAD_THICKNESS = new Size(0.8d, SizeUnit.mm);
private boolean folded = false;
private Size leadLength = LEAD_LENGTH; private Size leadLength = LEAD_LENGTH;
public TransistorTO126() { public TransistorTO126() {
@@ -338,17 +337,6 @@ public class TransistorTO126 extends AbstractTransistorPackage {
g2d.drawLine(width / 2 + bodyWidth / 3, margin + bodyHeight + 1, width / 2 + bodyWidth / 3, height - margin); g2d.drawLine(width / 2 + bodyWidth / 3, margin + bodyHeight + 1, width / 2 + bodyWidth / 3, height - margin);
} }
@EditableProperty
public boolean getFolded() {
return folded;
}
public void setFolded(boolean folded) {
this.folded = folded;
// Invalidate the body
this.body = null;
}
@EditableProperty(name = "Lead Length") @EditableProperty(name = "Lead Length")
public Size getLeadLength() { public Size getLeadLength() {
if (leadLength == null) { if (leadLength == null) {
@@ -77,7 +77,6 @@ public class TransistorTO220 extends AbstractTransistorPackage {
private Color tabColor = TAB_COLOR; private Color tabColor = TAB_COLOR;
private Color tabBorderColor = TAB_BORDER_COLOR; private Color tabBorderColor = TAB_BORDER_COLOR;
private boolean folded = false;
private Size leadLength = LEAD_LENGTH; private Size leadLength = LEAD_LENGTH;
public TransistorTO220() { public TransistorTO220() {
@@ -387,17 +386,6 @@ public class TransistorTO220 extends AbstractTransistorPackage {
this.tabColor = tabColor; this.tabColor = tabColor;
} }
@EditableProperty
public boolean getFolded() {
return folded;
}
public void setFolded(boolean folded) {
this.folded = folded;
// Invalidate the body
this.body = null;
}
@EditableProperty(name = "Lead Length") @EditableProperty(name = "Lead Length")
public Size getLeadLength() { public Size getLeadLength() {
if (leadLength == null) { if (leadLength == null) {
@@ -66,7 +66,6 @@ public class TransistorTO92 extends AbstractTransistorPackage {
public static Size PIN_SPACING = new Size(0.05d, SizeUnit.in); public static Size PIN_SPACING = new Size(0.05d, SizeUnit.in);
public static Size BODY_DIAMETER = new Size(0.2d, SizeUnit.in); public static Size BODY_DIAMETER = new Size(0.2d, SizeUnit.in);
private boolean folded = false;
private Size pinSpacing = PIN_SPACING; private Size pinSpacing = PIN_SPACING;
public TransistorTO92() { public TransistorTO92() {
@@ -77,17 +76,6 @@ public class TransistorTO92 extends AbstractTransistorPackage {
borderColor = BORDER_COLOR; borderColor = BORDER_COLOR;
} }
@EditableProperty
public boolean getFolded() {
return folded;
}
public void setFolded(boolean folded) {
this.folded = folded;
// Reset body shape;
body = null;
}
@EditableProperty(name = "Pin spacing") @EditableProperty(name = "Pin spacing")
public Size getPinSpacing() { public Size getPinSpacing() {
if (pinSpacing == null) { if (pinSpacing == null) {
@@ -141,17 +129,17 @@ public class TransistorTO92 extends AbstractTransistorPackage {
if (folded) { if (folded) {
switch (orientation) { switch (orientation) {
case DEFAULT: case DEFAULT:
newBody = new Area(new Rectangle2D.Double(x - bodyDiameter, y - bodyDiameter / 2, bodyDiameter, bodyDiameter)); newBody = new Area(new Rectangle2D.Double(x, y - bodyDiameter / 2, bodyDiameter, bodyDiameter));
break; break;
case _90: case _90:
newBody = new Area(new Rectangle2D.Double(x - bodyDiameter / 2, y - bodyDiameter, bodyDiameter, bodyDiameter)); newBody = new Area(new Rectangle2D.Double(x - bodyDiameter / 2, y, bodyDiameter, bodyDiameter));
break; break;
case _180: case _180:
newBody = new Area(new Rectangle2D.Double(x, y - bodyDiameter / 2, bodyDiameter, bodyDiameter)); newBody = new Area(new Rectangle2D.Double(x - bodyDiameter, y - bodyDiameter / 2, bodyDiameter, bodyDiameter));
break; break;
case _270: case _270:
newBody = new Area(new Rectangle2D.Double(x - bodyDiameter / 2, y, bodyDiameter, bodyDiameter)); newBody = new Area(new Rectangle2D.Double(x - bodyDiameter / 2, y - bodyDiameter, bodyDiameter, bodyDiameter));
break; break;
default: default:
throw new RuntimeException("Unexpected orientation: " + orientation); throw new RuntimeException("Unexpected orientation: " + orientation);