From adfedf11ceeaeb025fc6ebf80ff038232e6cc770 Mon Sep 17 00:00:00 2001 From: Branislav Stojkovic Date: Fri, 4 Nov 2016 10:10:01 +0100 Subject: [PATCH] improve trimmer and V1 import for trimmer and wire --- .../passive/TrimmerPotentiometer.java | 27 +- .../src/org/diylc/parsing/V1FileParser.java | 235 +++++++++++++++++- diylc/diylc-swing/.gitignore | 2 + diylc/diylc-swing/lib/diylc-core.jar | Bin 227322 -> 227331 bytes diylc/diylc-swing/library/main.jar | Bin 303675 -> 306177 bytes diylc/diylc-swing/update.xml | 2 +- 6 files changed, 261 insertions(+), 5 deletions(-) diff --git a/diylc/diylc-library/src/org/diylc/components/passive/TrimmerPotentiometer.java b/diylc/diylc-library/src/org/diylc/components/passive/TrimmerPotentiometer.java index 2a87f4b3..d89bfea0 100644 --- a/diylc/diylc-library/src/org/diylc/components/passive/TrimmerPotentiometer.java +++ b/diylc/diylc-library/src/org/diylc/components/passive/TrimmerPotentiometer.java @@ -97,6 +97,12 @@ public class TrimmerPotentiometer extends AbstractPotentiometer { dx2 = 0; dy2 = 2 * spacing; break; + case VERTICAL_OFFSET_BIG_GAP: + dx1 = 2 * spacing; + dy1 = spacing; + dx2 = 0; + dy2 = 2 * spacing; + break; } break; case _90: @@ -125,6 +131,12 @@ public class TrimmerPotentiometer extends AbstractPotentiometer { dx2 = -2 * spacing; dy2 = 0; break; + case VERTICAL_OFFSET_BIG_GAP: + dx1 = -spacing; + dy1 = 2 * spacing; + dx2 = -2 * spacing; + dy2 = 0; + break; } break; case _180: @@ -153,6 +165,12 @@ public class TrimmerPotentiometer extends AbstractPotentiometer { dx2 = 0; dy2 = -2 * spacing; break; + case VERTICAL_OFFSET_BIG_GAP: + dx1 = -2 * spacing; + dy1 = -spacing; + dx2 = 0; + dy2 = -2 * spacing; + break; } break; case _270: @@ -181,6 +199,12 @@ public class TrimmerPotentiometer extends AbstractPotentiometer { dx2 = 2 * spacing; dy2 = 0; break; + case VERTICAL_OFFSET_BIG_GAP: + dx1 = spacing; + dy1 = -2 * spacing; + dx2 = 2 * spacing; + dy2 = 0; + break; } break; default: @@ -223,6 +247,7 @@ public class TrimmerPotentiometer extends AbstractPotentiometer { break; case VERTICAL_INLINE: case VERTICAL_OFFSET: + case VERTICAL_OFFSET_BIG_GAP: length = getClosestOdd(VERTICAL_BODY_LENGTH.convertToPixels()); width = getClosestOdd(VERTICAL_BODY_WIDTH.convertToPixels()); break; @@ -417,7 +442,7 @@ public class TrimmerPotentiometer extends AbstractPotentiometer { } public static enum TrimmerType { - FLAT_LARGE, FLAT_SMALL, VERTICAL_INLINE, VERTICAL_OFFSET; + FLAT_LARGE, FLAT_SMALL, VERTICAL_INLINE, VERTICAL_OFFSET, VERTICAL_OFFSET_BIG_GAP; @Override public String toString() { diff --git a/diylc/diylc-library/src/org/diylc/parsing/V1FileParser.java b/diylc/diylc-library/src/org/diylc/parsing/V1FileParser.java index d118463c..790347bb 100644 --- a/diylc/diylc-library/src/org/diylc/parsing/V1FileParser.java +++ b/diylc/diylc-library/src/org/diylc/parsing/V1FileParser.java @@ -7,6 +7,7 @@ import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.Random; import org.apache.log4j.Logger; import org.diylc.common.Display; @@ -27,12 +28,15 @@ import org.diylc.components.connectivity.SolderPad; import org.diylc.components.connectivity.TraceCut; import org.diylc.components.electromechanical.MiniToggleSwitch; import org.diylc.components.electromechanical.ToggleSwitchType; +import org.diylc.components.misc.BOM; import org.diylc.components.misc.Label; import org.diylc.components.passive.PotentiometerPanel; import org.diylc.components.passive.RadialElectrolytic; import org.diylc.components.passive.RadialFilmCapacitor; import org.diylc.components.passive.Resistor; import org.diylc.components.passive.Taper; +import org.diylc.components.passive.TrimmerPotentiometer; +import org.diylc.components.passive.TrimmerPotentiometer.TrimmerType; import org.diylc.components.semiconductors.DIL_IC; import org.diylc.components.semiconductors.DiodePlastic; import org.diylc.components.semiconductors.LED; @@ -181,13 +185,21 @@ public class V1FileParser implements IOldFileParser { } else if (nodeName.equalsIgnoreCase("wire")) { LOG.debug("Recognized " + nodeName); HookupWire wire = new HookupWire(); - Point midPoint = new Point((point1.x + point2.x) / 2, (point1.y + point2.y) / 2); + long seed = Long.parseLong(node.getAttributes().getNamedItem("Seed").getNodeValue()); + Random r = new Random(seed); + randSeed = seed; + int d = (int) Math.round(Math.sqrt(Math.pow(point1.x - point2.x, 2) + Math.pow(point1.y - point2.y, 2)) / 2); + int x2 = (int) (point1.x + Math.round((point2.x - point1.x) * 0.40) + myRandom(d, r)); + int y2 = (int) (point1.y + Math.round((point2.y - point1.y) * 0.40) + myRandom(d, r)); + int x3 = (int) (point1.x + Math.round((point2.x - point1.x) * 0.60) + myRandom(d, r)); + int y3 = (int) (point1.y + Math.round((point2.y - point1.y) * 0.60) + myRandom(d, r)); + wire.setName(nameAttr); String colorAttr = node.getAttributes().getNamedItem("Color").getNodeValue(); wire.setColor(parseV1Color(colorAttr)); wire.setControlPoint(point1, 0); - wire.setControlPoint(midPoint, 1); - wire.setControlPoint(midPoint, 2); + wire.setControlPoint(new Point(x2, y2), 1); + wire.setControlPoint(new Point(x3, y3), 2); wire.setControlPoint(point2, 3); component = wire; } else if (nodeName.equalsIgnoreCase("resistor")) { @@ -464,6 +476,168 @@ public class V1FileParser implements IOldFileParser { }; } component = pot; + } else if (nodeName.equalsIgnoreCase("trimmer")) { + LOG.debug("Recognized " + nodeName); + TrimmerPotentiometer trimmer = new TrimmerPotentiometer(); + trimmer.setName(nameAttr); + int sizeX = Math.abs(x1Attr - x2Attr); + int sizeY = Math.abs(y1Attr - y2Attr); + TrimmerType trimmerType = null; + Orientation orientation = null; + int dx = 0; + int dy = 0; + // determine type by size + if (Math.min(sizeX, sizeY) == 0 && Math.max(sizeX, sizeY) == 1) { + trimmerType = TrimmerType.VERTICAL_INLINE; + + if (y1Attr > y2Attr) { + orientation = Orientation.DEFAULT; + dy = -1; + } else if (x1Attr > x2Attr) { + orientation = Orientation._90; + dx = 1; + } else if (y1Attr < y2Attr) { + orientation = Orientation._180; + dy = 1; + } else if (x1Attr < x2Attr) { + orientation = Orientation._270; + dx = -1; + } + } else if (Math.min(sizeX, sizeY) == 1 && Math.max(sizeX, sizeY) == 1) { + trimmerType = TrimmerType.VERTICAL_OFFSET; + + if (x1Attr > x2Attr && y1Attr > y2Attr) { + orientation = Orientation.DEFAULT; + dx = -1; + dy = -1; + } else if (x1Attr < x2Attr && y1Attr > y2Attr) { + orientation = Orientation._90; + dx = 1; + dy = -1; + } else if (x1Attr < x2Attr && y1Attr < y2Attr) { + orientation = Orientation._180; + dx = 1; + dy = 1; + } else if (x1Attr > x2Attr && y1Attr < y2Attr) { + orientation = Orientation._270; + dx = -1; + dy = 1; + } + } else if (Math.min(sizeX, sizeY) == 1 && Math.max(sizeX, sizeY) == 2) { + trimmerType = TrimmerType.VERTICAL_OFFSET_BIG_GAP; + + if (x1Attr > x2Attr && y1Attr > y2Attr) { + if (sizeX == 2) { + orientation = Orientation.DEFAULT; + dx = -2; + dy = -1; + } else { + orientation = Orientation._90; + dx = 1; + dy = -2; + } + } else if (x1Attr < x2Attr && y1Attr > y2Attr) { + if (sizeX == 2) { + orientation = Orientation._180; + dx = 2; + dy = 1; + } else { + orientation = Orientation._90; + dx = 1; + dy = -2; + } + } else if (x1Attr < x2Attr && y1Attr < y2Attr) { + if (sizeX == 2) { + orientation = Orientation._180; + dx = 2; + dy = 1; + } else { + orientation = Orientation._270; + dx = -1; + dy = 2; + } + } else if (x1Attr > x2Attr && y1Attr < y2Attr) { + if (sizeX == 2) { + orientation = Orientation.DEFAULT; + dx = -2; + dy = -1; + } else { + orientation = Orientation._270; + dx = -1; + dy = 2; + } + } + } else if (Math.min(sizeX, sizeY) == 1 && Math.max(sizeX, sizeY) == 4) { + trimmerType = TrimmerType.FLAT_LARGE; + + if (x1Attr > x2Attr && y1Attr > y2Attr) { + if (sizeX == 4) { + orientation = Orientation.DEFAULT; + dx = -4; + dy = -1; + } else { + orientation = Orientation._90; + dx = 1; + dy = -4; + } + } else if (x1Attr < x2Attr && y1Attr > y2Attr) { + if (sizeX == 4) { + orientation = Orientation._180; + dx = 4; + dy = 1; + } else { + orientation = Orientation._90; + dx = 1; + dy = -4; + } + } else if (x1Attr < x2Attr && y1Attr < y2Attr) { + if (sizeX == 4) { + orientation = Orientation._180; + dx = 4; + dy = 1; + } else { + orientation = Orientation._270; + dx = -1; + dy = 4; + } + } else if (x1Attr > x2Attr && y1Attr < y2Attr) { + if (sizeX == 4) { + orientation = Orientation.DEFAULT; + dx = -4; + dy = -1; + } else { + orientation = Orientation._270; + dx = -1; + dy = 4; + } + } + } + + if (trimmerType == null || orientation == null) { + String message = "Unsupported trimmer dimensions"; + LOG.debug(message); + if (!warnings.contains(message)) { + warnings.add(message); + } + } else { + try { + trimmer.setValue(Resistance.parseResistance(valueAttr)); + } catch (Exception e) { + LOG.debug("Could not set value of " + nameAttr); + } + trimmer.setType(trimmerType); + trimmer.setOrientation(orientation); + // scale nudges + dx *= V1_GRID_SPACING.convertToPixels(); + dy *= V1_GRID_SPACING.convertToPixels(); + // Translate control points. + for (int j = 0; j < trimmer.getControlPointCount(); j++) { + Point p = new Point(trimmer.getControlPoint(j)); + p.translate(point1.x + dx, point1.y + dy); + trimmer.setControlPoint(p, j); + } + component = trimmer; + } } else { String message = "Could not recognize component type " + nodeName; LOG.debug(message); @@ -482,6 +656,45 @@ public class V1FileParser implements IOldFileParser { } } } + + int minY = y; + for (IDIYComponent c : project.getComponents()) { + for (int i = 0; i < c.getControlPointCount(); i++) { + Point p = c.getControlPoint(i); + if (p.y < minY) + minY = p.y; + } + } + + // Add title and credits + Label titleLabel = new Label(); + titleLabel.setColor(Color.blue); + titleLabel.setFontSize(24); + titleLabel.setText(project.getTitle()); + titleLabel.setHorizontalAlignment(HorizontalAlignment.CENTER); + titleLabel.setControlPoint( + new Point(CalcUtils.roundToGrid(x + boardWidth / 2, V1_GRID_SPACING), CalcUtils.roundToGrid( + (int) (minY - Constants.PIXELS_PER_INCH * V1_GRID_SPACING.getValue() * 5), V1_GRID_SPACING)), 0); + project.getComponents().add(titleLabel); + + Label creditsLabel = new Label(); + creditsLabel.setFontSize(16); + creditsLabel.setText(project.getAuthor()); + creditsLabel.setHorizontalAlignment(HorizontalAlignment.CENTER); + creditsLabel.setControlPoint( + new Point(CalcUtils.roundToGrid(x + boardWidth / 2, V1_GRID_SPACING), CalcUtils.roundToGrid( + (int) (minY - Constants.PIXELS_PER_INCH * V1_GRID_SPACING.getValue() * 4), V1_GRID_SPACING)), 0); + project.getComponents().add(creditsLabel); + + // Add BOM at the bottom + BOM bom = new BOM(); + int bomSize = (int) bom.getSize().convertToPixels(); + bom.setControlPoint( + new Point(CalcUtils.roundToGrid(x + (boardWidth - bomSize) / 2, V1_GRID_SPACING), CalcUtils.roundToGrid( + (int) (y + boardHeight + 2 * V1_GRID_SPACING.convertToPixels()), V1_GRID_SPACING)), 0); + project.getComponents().add(bom); + + // Sort by z-order Collections.sort(project.getComponents(), ComparatorFactory.getInstance().getComponentZOrderComparator()); return project; } @@ -505,4 +718,20 @@ public class V1FileParser implements IOldFileParser { } } + private int myRandom(int range, Random r) { + range = (range * 2) / 3; + int rand = r.nextInt(range) - range / 2; + if (Math.abs(rand) < range / 3) + rand = myRandom(range, r); + return rand; + } + + private long randSeed = 0; + + private int randInt(int range) { + long newSeed = randSeed * 0x08088405 + 1; + randSeed = newSeed; + return (int) (newSeed * range >> 32); + } + } diff --git a/diylc/diylc-swing/.gitignore b/diylc/diylc-swing/.gitignore index 9b0ab937..c35c3382 100644 --- a/diylc/diylc-swing/.gitignore +++ b/diylc/diylc-swing/.gitignore @@ -2,5 +2,7 @@ /.apt_generated /log/ /build/ +/library/ +/lib/diylc-core.jar autoSave.diy config.xml \ No newline at end of file diff --git a/diylc/diylc-swing/lib/diylc-core.jar b/diylc/diylc-swing/lib/diylc-core.jar index f6654fcff3bd2b5e233cb8e626d4b5299b1e3724..f1e9e0d0d0569d4e8a9eed1214f56b1f6b5301e8 100644 GIT binary patch delta 9557 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 Y&Q`a;+W;m@+3{(#d%Fi8L1k3`3(H!;B>(^b delta 9683 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 diff --git a/diylc/diylc-swing/library/main.jar b/diylc/diylc-swing/library/main.jar index 3ba4fcac5dcb77b18eec36ef4fe2e5b4022e67de..8f02187733c6166d2ab8f0f190dfe0edec16de9a 100644 GIT binary patch delta 23989 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 VMbNFgUmxmA(yP!)_(K%M{{S3UH%R~h delta 21414 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 IK^Tkhe}IO%W&i*H diff --git a/diylc/diylc-swing/update.xml b/diylc/diylc-swing/update.xml index bf53f951..e825585e 100644 --- a/diylc/diylc-swing/update.xml +++ b/diylc/diylc-swing/update.xml @@ -1364,7 +1364,7 @@ IMPROVEMENT - Better support for V1 file import + Better support for old V1 file import IMPROVEMENT