From 7b47a747bf96055d7ea01e2caf8b4471b66a01f8 Mon Sep 17 00:00:00 2001 From: Branislav Stojkovic Date: Tue, 15 Jan 2019 19:24:15 +0100 Subject: [PATCH] added BR-3 rectifier --- diylc/diylc-library/lib/diylc-core.jar | Bin 242795 -> 242795 bytes .../semiconductors/BridgeRectifier.java | 91 +- diylc/diylc-swing/library/main.jar | Bin 540013 -> 541546 bytes diylc/diylc-swing/variants.xml | 1304 +++++++++-------- 4 files changed, 771 insertions(+), 624 deletions(-) diff --git a/diylc/diylc-library/lib/diylc-core.jar b/diylc/diylc-library/lib/diylc-core.jar index 1c978f448fe97e90a7b93195396c429a0099b4e1..fa11494daf6c83dc7d549d3a6dec7dd774055f6b 100644 GIT binary patch delta 4309 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 C9Jt2- delta 4309 zcmYjTd0fp|8^7nAx{4%A3Mt7NUSY_dEyAeV*qQ80Q4u9lT2$J%E5FK8(P9bZ8dsLd z80JkgW<)cLLB_}K9n|oOiJ9{}&+m`H(bQ@) zE&B3n+Dz9^@~_^Nbpx2sdhuGVKAL?7U}OUT9fs`?Lbc--*FmurqN91`lUYYvz$%!1-;D;k$sk+_wRi>AvQaA!zlayAD~F*0avtu zkA_@FbLCJQ#OuR65xWn6kJxo&CN@z%Iv>&7%^#brn$XCxx?!=laUR!bQcU!PRyKxT z+(XcBhR1Tm6Vv{Hl^6|%x;J;=Fsqa=MTp^Hy4DX|7;&?OYrw!+Xm%`fc5DA zYJH&v=(8evqyB7U9>&d${tWG@v9>6e#`Qyc-422HYoaCMv*c5N`ogq(0MY5!A=~T> zZ?qoFT83zm9p4J{I}3aSPM3Zzy|PeFH^EfDG{ahPi4v_04n;@M`G*oMmaHr7gz~FH zRNAgA8RbLA?qO?*CvfwIBZe~Y*U$gz7l1*hnxIraBbL^uSAGOB?F^km=~*jGQh9zV zUK*2&-(a%;UT#4Bnd-Y(Jhz4}iRaae)N#{LhfyW6<3*-fPwWk&YcJ6;HR-ZUN61U^ zmg%i7+8g@U&0?+L@}xii`%IP8uh7@;=%`=vo4KLv=Q@V7FS=K|GhApinil%|JFKP6 z(ok_T1-o$jtrWX>diNf7QC;uc0=j?mxB~U1&(34lt6n|>S?}FY1m<@QG{l*=7-oZ;wb{Ysfy};K z(dASg>x=n*-^aQFIdyFgShZ+AK^(-@R*@|dl%u0XUh203sV zY^W0-Mb)Nujr9+aPj@p@qSIux>|Q*D;T5~Jb3k)Hc@Vw0lIhHC6BJV>sl8TW$9?6KYJOIhT@q7v9X*r2cM2*)Jt{{0j zji(|B_2jOYx!j9e!WY7LLB~yyeCN&g!Z*aYayEBEQZkPV_$@LXS;Uv2rp+?$2F{9Z zIj;qa(+VEd9!PO0cf>T+o4GTRH(R&^66>w}27GLc&m(v>YEDLS9cr{O9DfCj9b>sQ zY6isf-AHN@_(ddX$-EfJ&@|owyO^HIjhM$o&nw|a$yim$%TW__fY)>Z&6q0wsV$OP z-iW3_H+YM7pc(myyJN!WC)|i+R7a|Nv$!u{MerAmU3&pP(<*`U?f={sV!ZM*l(r&d_ z3>_*PeZ>fQk(Fb%?r3tJhK94(r7Xke9C)p95B`r_MjE zr@V85L?GzD3lhG7E*r!bfUzpx+92kEJa{AJkKIW2TN^2Vk6`LMIGFPN5G*{vzhj8l z0GJdaW&z$0q4>d@sE?>k6n9O>VbSfSed6`~csC(Y|JF70W@cRM9?MtOYqaoa)qv3onpeA_$`+sJ~hj9k)@v z;B8_i_+8m1CIhyO6!QW7BWdnakpgb0!lKANHH!MrkD~a-DB9DsXzH^pn$AnaQ2#zL zH0QY(%4@ToaKm<*^G6k(V@ZyW6)U0MAF<@;5l8v*<4FDxM|Ee!lfEdP`uPw~^=9oL z{gE9sce9E!5@^o-3Dob01d7uoQrzK0+RukX+Mj0<$@`M1UPBV)^+=ZYPu_baS?)t( zeX_jw5__h|^OhK@;*}H`CuO@-nMb03s+b5^kt*B)n^NVykm#O9@yROIrcvHb>4Zzu z<-L@CN7E_pO*;9H%pi=)kS|r*uVj#)btc96WXf}s`h%HNzez=pEIGf_7i3Y~GZhEx zDgPF|+?%x5=;gj7I_#u;t5rO{ll+qQ%a1|3Y|#&#+_I^exNKTZT{aEpxQm(!P_c3s zHDj(&Qg20GG8w;Hp`;H~y>kx5hvvw`koNC$eFTqEn&$XIxNE;8s20tM@p=L6$G(v4D^)Bjr26kwdE9=AlS{|LzOkSD zJ0BqZiUU;lmORP|Ge=n`ZVQNH>j*^hi&y^HCRZ!Mf%aHqptvq4h3+4Z#NTQF diff --git a/diylc/diylc-library/src/org/diylc/components/semiconductors/BridgeRectifier.java b/diylc/diylc-library/src/org/diylc/components/semiconductors/BridgeRectifier.java index 17bc21ca..590be5e1 100644 --- a/diylc/diylc-library/src/org/diylc/components/semiconductors/BridgeRectifier.java +++ b/diylc/diylc-library/src/org/diylc/components/semiconductors/BridgeRectifier.java @@ -31,6 +31,7 @@ import java.awt.Rectangle; import java.awt.geom.AffineTransform; import java.awt.geom.Area; import java.awt.geom.Ellipse2D; +import java.awt.geom.Path2D; import java.awt.geom.Rectangle2D; import java.awt.geom.RoundRectangle2D; @@ -41,8 +42,8 @@ import org.diylc.common.IPlugInPort; import org.diylc.common.ObjectCache; import org.diylc.common.Orientation; import org.diylc.common.VerticalAlignment; -import org.diylc.components.AbstractTransparentComponent; import org.diylc.components.AbstractLeadedComponent.LabelOriantation; +import org.diylc.components.AbstractTransparentComponent; import org.diylc.components.transform.DIL_ICTransformer; import org.diylc.core.ComponentState; import org.diylc.core.IDIYComponent; @@ -75,14 +76,17 @@ public class BridgeRectifier extends AbstractTransparentComponent { private static int[] MINI2_LABEL_SPACING_X = new int[] { 1, -1, 1, -1 }; private static Size MINI_ROUND_DIAMETER = new Size(9.1d, SizeUnit.mm); - private static Size MINI_ROUND_SPACING = new Size(0.2d, SizeUnit.in); - + private static Size MINI_ROUND_SPACING = new Size(0.2d, SizeUnit.in); private static int[] MINI_ROUND_LABEL_SPACING_Y = new int[] { 1, 1, -1, -1 }; private static Size INLINE_LENGTH = new Size(23.2d, SizeUnit.mm); private static Size INLINE_WIDTH = new Size(2.7d, SizeUnit.mm); private static Size INLINE_SPACING = new Size(0.2d, SizeUnit.in); - private static int[] INLINE_LABEL_SPACING_Y = new int[] { -1, -1, 1, 1 }; + private static int[] INLINE_LABEL_SPACING_Y = new int[] { -1, -1, 1, 1 }; + + private static Size BR3_LENGTH = new Size(0.6d, SizeUnit.in); + private static Size BR3_SPACING = new Size(0.425d, SizeUnit.in); + private static int[] BR3_LABEL_SPACING_Y = new int[] { 1, 1, -1, -1 }; public static Color BODY_COLOR = Color.gray; public static Color BORDER_COLOR = Color.gray.darker(); @@ -90,7 +94,8 @@ public class BridgeRectifier extends AbstractTransparentComponent { public static Color PIN_BORDER_COLOR = PIN_COLOR.darker(); public static Color LABEL_COLOR = Color.white; public static int EDGE_RADIUS = 6; - public static Size PIN_SIZE = new Size(0.04d, SizeUnit.in); + public static Size SQUARE_PIN_SIZE = new Size(0.04d, SizeUnit.in); + public static Size ROUND_PIN_SIZE = new Size(0.032d, SizeUnit.in); public static Size INDENT_SIZE = new Size(0.07d, SizeUnit.in); private String value = ""; @@ -211,7 +216,13 @@ public class BridgeRectifier extends AbstractTransparentComponent { controlPoints[1].setLocation(firstPoint.x, firstPoint.y + vSpacing); controlPoints[2].setLocation(firstPoint.x, firstPoint.y + 2 * vSpacing); controlPoints[3].setLocation(firstPoint.x, firstPoint.y + 3 * vSpacing); - break; + break; + case SquareBR3: + hSpacing = vSpacing = (int) BR3_SPACING.convertToPixels(); + controlPoints[1].setLocation(firstPoint.x + hSpacing, firstPoint.y); + controlPoints[2].setLocation(firstPoint.x, firstPoint.y + vSpacing); + controlPoints[3].setLocation(firstPoint.x + hSpacing, firstPoint.y + vSpacing); + break; } if (orientation != Orientation.DEFAULT) { @@ -235,6 +246,7 @@ public class BridgeRectifier extends AbstractTransparentComponent { } } + @SuppressWarnings("incomplete-switch") public Area[] getBody() { if (body == null) { body = new Area[2]; @@ -259,6 +271,9 @@ public class BridgeRectifier extends AbstractTransparentComponent { length = (int) INLINE_WIDTH.convertToPixels(); width = (int) INLINE_LENGTH.convertToPixels(); break; + case SquareBR3: + length = width = (int) BR3_LENGTH.convertToPixels(); + break; } if (orientation == Orientation._90 || orientation == Orientation._270) { @@ -276,6 +291,36 @@ public class BridgeRectifier extends AbstractTransparentComponent { case MiniRound1: case MiniRound2: body[0] = new Area(new Ellipse2D.Double(centerX - length / 2, centerY - width / 2, length, width)); + break; + case SquareBR3: + Path2D path = new Path2D.Double(); + double margin = (BR3_LENGTH.convertToPixels() - BR3_SPACING.convertToPixels()) / 2; + path.moveTo(centerX - width / 2 + margin, centerY - width / 2); + path.lineTo(centerX + width / 2, centerY - width / 2); + path.lineTo(centerX + width / 2, centerY + width / 2); + path.lineTo(centerX - width / 2, centerY + width / 2); + path.lineTo(centerX - width / 2, centerY - width / 2 + margin); + path.closePath(); + body[0] = new Area(path); + + if (orientation != Orientation.DEFAULT) { + double theta = 0; + switch (orientation) { + case _90: + theta = Math.PI / 2; + break; + case _180: + theta = Math.PI; + break; + case _270: + theta = Math.PI * 3 / 2; + break; + } + AffineTransform rotation = AffineTransform.getRotateInstance(theta, centerX, centerY); + + body[0].transform(rotation); + } + break; } } @@ -291,21 +336,18 @@ public class BridgeRectifier extends AbstractTransparentComponent { } Area mainArea = getBody()[0]; - int pinSize = (int) PIN_SIZE.convertToPixels() / 2 * 2; - - // smaller pin for round - if (rectifierType == RectifierType.InLine || rectifierType == RectifierType.MiniRound1 || rectifierType == RectifierType.MiniRound2) - pinSize *= 0.8; + PinShape pinShape = rectifierType.getPinShape(); + int pinSize = (int) (pinShape == PinShape.Round ? ROUND_PIN_SIZE.convertToPixels() : SQUARE_PIN_SIZE.convertToPixels()) / 2 * 2; if (!outlineMode) { for (Point point : controlPoints) { g2d.setColor(PIN_COLOR); - if (rectifierType == RectifierType.InLine || rectifierType == RectifierType.MiniRound1 || rectifierType == RectifierType.MiniRound2) + if (pinShape == PinShape.Round) g2d.fillOval(point.x - pinSize / 2, point.y - pinSize / 2, pinSize, pinSize); else g2d.fillRect(point.x - pinSize / 2, point.y - pinSize / 2, pinSize, pinSize); g2d.setColor(PIN_BORDER_COLOR); - if (rectifierType == RectifierType.InLine || rectifierType == RectifierType.MiniRound1 || rectifierType == RectifierType.MiniRound2) + if (pinShape == PinShape.Round) g2d.drawOval(point.x - pinSize / 2, point.y - pinSize / 2, pinSize, pinSize); else g2d.drawRect(point.x - pinSize / 2, point.y - pinSize / 2, pinSize, pinSize); @@ -431,6 +473,9 @@ public class BridgeRectifier extends AbstractTransparentComponent { case InLine: dy = pinSize * INLINE_LABEL_SPACING_Y[i]; break; + case SquareBR3: + dy = pinSize * BR3_LABEL_SPACING_Y[i]; + break; } dx = (int) (1.5 * dx); @@ -459,6 +504,7 @@ public class BridgeRectifier extends AbstractTransparentComponent { break; case MiniRound1: case MiniRound2: + case SquareBR3: switch (orientation) { case _90: int p1 = dx; @@ -600,11 +646,19 @@ public class BridgeRectifier extends AbstractTransparentComponent { public static enum RectifierType { - MiniDIP1("DFM 1"), MiniDIP2("DFM 2"), MiniRound1("Round WOG 1"), MiniRound2("Round WOG 2"), InLine("In-Line D-44"); + MiniDIP1("DFM A", PinShape.Square), + MiniDIP2("DFM B", PinShape.Square), + MiniRound1("Round WOG A", PinShape.Round), + MiniRound2("Round WOG B", PinShape.Round), + InLine("In-Line D-44", PinShape.Round), + SquareBR3("Square BR-3", PinShape.Round); private String label; - private RectifierType(String label) { + private PinShape pinShape; + + private RectifierType(String label, PinShape pinShape) { this.label = label; + this.pinShape = pinShape; } @Override @@ -612,5 +666,12 @@ public class BridgeRectifier extends AbstractTransparentComponent { return label; } + public PinShape getPinShape() { + return pinShape; + } + } + + private static enum PinShape { + Square, Round } } diff --git a/diylc/diylc-swing/library/main.jar b/diylc/diylc-swing/library/main.jar index e14544ff5fdb092cd09533f98092f7c5dc75e2ae..8483f8821e94b5f806742e3821f1983cfcef3956 100644 GIT binary patch delta 18174 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 G@BaZxR|{qU diff --git a/diylc/diylc-swing/variants.xml b/diylc/diylc-swing/variants.xml index f34d3a89..4ce44d06 100644 --- a/diylc/diylc-swing/variants.xml +++ b/diylc/diylc-swing/variants.xml @@ -18,6 +18,14 @@ Alpha 127 + + Model + + + + Orientation + DEFAULT + Pole Color @@ -27,14 +35,6 @@ 255 - - Orientation - DEFAULT - - - Model - - Type Stratocaster @@ -73,16 +73,16 @@ 127 - Pole Color - + Model + Orientation DEFAULT - Model - + Pole Color + Type @@ -117,16 +117,16 @@ 127 - Pole Color - + Model + Orientation DEFAULT - Model - + Pole Color + Type @@ -161,16 +161,16 @@ 127 - Pole Color - + Model + Orientation DEFAULT - Model - + Pole Color + Type @@ -205,16 +205,16 @@ 127 - Pole Color - + Model + Orientation DEFAULT - Model - + Pole Color + Type @@ -249,16 +249,16 @@ 127 - Pole Color - + Model + Orientation DEFAULT - Model - + Pole Color + Type @@ -289,10 +289,6 @@ DPDT - - Alpha - 127 - Body @@ -302,10 +298,18 @@ 255 + + Alpha + 127 + Orientation VERTICAL + + Type + DPDT + Border @@ -315,10 +319,6 @@ 255 - - Type - DPDT - Spacing @@ -359,25 +359,25 @@ SPDT - Alpha - 127 + Body + - Body - + Alpha + 127 Orientation VERTICAL - - Border - - Type SPDT + + Border + + Spacing @@ -574,230 +574,6 @@ - - Semiconductors.Bridge Rectifier - - - Miniature Rectangular - - - Label Orientation - Directional - - - Alpha - 127 - - - Body - - 128 - 128 - 128 - 255 - - - - Value - - - - Orientation - DEFAULT - - - Type - MiniDIP1 - - - Border - - 89 - 89 - 89 - 255 - - - - Voltage - - - - Display - BOTH - - - Label - - 255 - 255 - 255 - 255 - - - - Current - - - - - - 0 - 0 - - - 60 - 0 - - - 60 - 40 - - - 0 - 40 - - - false - - - Miniature Round - - - Label Orientation - Directional - - - Alpha - 100 - - - Body - - - - Value - - - - Orientation - DEFAULT - - - Type - MiniRound1 - - - Border - - - - Voltage - - - - Display - BOTH - - - Label - - - - Current - - - - - - 0 - 0 - - - 40 - 0 - - - 40 - 40 - - - 0 - 40 - - - false - - - In-line - - - Label Orientation - Directional - - - Alpha - 100 - - - Body - - - - Value - - - - Orientation - DEFAULT - - - Type - InLine - - - Border - - - - Voltage - - - - Display - BOTH - - - Label - - - - Current - - - - - - 0 - 0 - - - 0 - 40 - - - 0 - 80 - - - 0 - 120 - - - false - - - Passive.Potentiometer @@ -982,6 +758,316 @@ + + Semiconductors.Bridge Rectifier + + + Miniature Rectangular + + + Label Orientation + Directional + + + Value + + + + Body + + 128 + 128 + 128 + 255 + + + + Alpha + 127 + + + Orientation + DEFAULT + + + Border + + 89 + 89 + 89 + 255 + + + + Type + MiniDIP1 + + + Display + BOTH + + + Voltage + + + + Label + + 255 + 255 + 255 + 255 + + + + Current + + + + + + 0 + 0 + + + 60 + 0 + + + 60 + 40 + + + 0 + 40 + + + false + + + Miniature Round + + + Label Orientation + Directional + + + Value + + + + Body + + + + Alpha + 100 + + + Orientation + DEFAULT + + + Border + + + + Type + MiniRound1 + + + Display + BOTH + + + Voltage + + + + Label + + + + Current + + + + + + 0 + 0 + + + 40 + 0 + + + 40 + 40 + + + 0 + 40 + + + false + + + In-line + + + Label Orientation + Directional + + + Value + + + + Body + + + + Alpha + 100 + + + Orientation + DEFAULT + + + Border + + + + Type + InLine + + + Display + BOTH + + + Voltage + + + + Label + + + + Current + + + + + + 0 + 0 + + + 0 + 40 + + + 0 + 80 + + + 0 + 120 + + + false + + + Square BR-3 + + + Label Orientation + Horizontal + + + Alpha + 100 + + + Body + + 128 + 128 + 128 + 255 + + + + Value + + + + Orientation + DEFAULT + + + Type + SquareBR3 + + + Border + + 89 + 89 + 89 + 255 + + + + Voltage + + + + Display + BOTH + + + Label + + 255 + 255 + 255 + 255 + + + + Current + + 3.0 + A + + + + + + 0 + 0 + + + 85 + 0 + + + 0 + 85 + + + 85 + 85 + + + false + + + Passive.Multi-Section Capacitor @@ -1005,10 +1091,8 @@ - Value - - - + Alpha + 127 Body @@ -1020,8 +1104,10 @@ - Alpha - 127 + Value + + + Orientation @@ -1036,14 +1122,14 @@ 255 - - Voltage - - Display BOTH + + Voltage + + Label @@ -1095,8 +1181,12 @@ - Alpha - 127 + Value + + + + + Body @@ -1108,12 +1198,8 @@ - Value - - - - - + Alpha + 127 Orientation @@ -1128,14 +1214,14 @@ 255 - - Display - BOTH - Voltage + + Display + BOTH + Label @@ -1195,13 +1281,8 @@ - Value - - - - - - + Alpha + 127 Body @@ -1213,8 +1294,13 @@ - Alpha - 127 + Value + + + + + + Orientation @@ -1229,14 +1315,14 @@ 255 - - Voltage - - Display BOTH + + Voltage + + Label @@ -1292,19 +1378,19 @@ - Value - - - - + Alpha + 127 Body - Alpha - 127 + Value + + + + Orientation @@ -1314,14 +1400,14 @@ Border - - Voltage - - Display BOTH + + Voltage + + Label @@ -1349,241 +1435,6 @@ - - Semiconductors.DIP IC - - - DIP8 - - - Row Spacing - - 0.3 - in - - - - Pins - _8 - - - Alpha - 127 - - - Body - - - - Value - - - - Orientation - DEFAULT - - - Border - - 89 - 89 - 89 - 255 - - - - Display - BOTH - - - Label - - - - Display Pin #s - NO - - - Indent - - 89 - 89 - 89 - 255 - - - - Pin Spacing - - 0.1 - in - - - - - - 0 - 0 - - - 0 - 20 - - - 0 - 40 - - - 0 - 60 - - - 60 - 0 - - - 60 - 20 - - - 60 - 40 - - - 60 - 60 - - - false - - - DIP16 - - - Row Spacing - - 0.3 - in - - - - Pins - _16 - - - Alpha - 127 - - - Body - - - - Value - - - - Orientation - DEFAULT - - - Border - - - - Display - BOTH - - - Label - - - - Display Pin #s - NO - - - Indent - - - - Pin Spacing - - 0.1 - in - - - - - - 0 - 0 - - - 0 - 20 - - - 0 - 40 - - - 0 - 60 - - - 0 - 80 - - - 0 - 100 - - - 0 - 120 - - - 0 - 140 - - - 60 - 0 - - - 60 - 20 - - - 60 - 40 - - - 60 - 60 - - - 60 - 80 - - - 60 - 100 - - - 60 - 120 - - - 60 - 140 - - - false - - - Passive.Resistor @@ -2480,20 +2331,255 @@ + + Semiconductors.DIP IC + + + DIP8 + + + Pins + _8 + + + Row Spacing + + 0.3 + in + + + + Value + + + + Body + + + + Alpha + 127 + + + Orientation + DEFAULT + + + Border + + 89 + 89 + 89 + 255 + + + + Display + BOTH + + + Label + + + + Display Pin #s + NO + + + Indent + + 89 + 89 + 89 + 255 + + + + Pin Spacing + + 0.1 + in + + + + + + 0 + 0 + + + 0 + 20 + + + 0 + 40 + + + 0 + 60 + + + 60 + 0 + + + 60 + 20 + + + 60 + 40 + + + 60 + 60 + + + false + + + DIP16 + + + Pins + _16 + + + Row Spacing + + 0.3 + in + + + + Value + + + + Body + + + + Alpha + 127 + + + Orientation + DEFAULT + + + Border + + + + Display + BOTH + + + Label + + + + Display Pin #s + NO + + + Indent + + + + Pin Spacing + + 0.1 + in + + + + + + 0 + 0 + + + 0 + 20 + + + 0 + 40 + + + 0 + 60 + + + 0 + 80 + + + 0 + 100 + + + 0 + 120 + + + 0 + 140 + + + 60 + 0 + + + 60 + 20 + + + 60 + 40 + + + 60 + 60 + + + 60 + 80 + + + 60 + 100 + + + 60 + 120 + + + 60 + 140 + + + false + + + Tubes.Tube Socket Noval - - Base - B9A - Angle 0 + + Base + B9A + Alpha 127 @@ -2559,14 +2645,14 @@ Octal - - Base - OCTAL - Angle 0 + + Base + OCTAL + Alpha 127 @@ -2628,6 +2714,10 @@ Covered PAF-Style + + Alpha + 127 + Bobin 1 @@ -2637,18 +2727,6 @@ 255 - - Alpha - 127 - - - Model - - - - Orientation - DEFAULT - Pole Color @@ -2658,6 +2736,14 @@ 255 + + Orientation + DEFAULT + + + Model + + Bobin 2 @@ -2704,10 +2790,6 @@ Uncovered PAF-Style - - Alpha - 127 - Bobin 1 @@ -2717,6 +2799,18 @@ 255 + + Alpha + 127 + + + Model + + + + Orientation + DEFAULT + Pole Color @@ -2726,14 +2820,6 @@ 255 - - Orientation - DEFAULT - - - Model - - Bobin 2 @@ -2780,10 +2866,6 @@ EMG-style - - Alpha - 127 - Bobin 1 @@ -2793,6 +2875,18 @@ 255 + + Alpha + 127 + + + Model + + + + Orientation + DEFAULT + Pole Color @@ -2802,14 +2896,6 @@ 255 - - Orientation - DEFAULT - - - Model - - Bobin 2 @@ -2856,6 +2942,10 @@ Filtertron-style + + Alpha + 127 + Bobin 1 @@ -2865,18 +2955,6 @@ 255 - - Alpha - 127 - - - Model - - - - Orientation - DEFAULT - Pole Color @@ -2886,6 +2964,14 @@ 255 + + Orientation + DEFAULT + + + Model + + Bobin 2 @@ -2899,14 +2985,14 @@ Type Filtertron - - Cover - true - Legs false + + Cover + true + Pole Pieces 1 Screws