Potentiometer bodies are no longer considered as conductive surfaces to avoid unwanted shorts

This commit is contained in:
Bane Stojkovic
2022-11-26 11:20:00 +01:00
parent 0e5dad5412
commit 45b9532e66
77 changed files with 717 additions and 865 deletions
@@ -353,7 +353,7 @@ public class NetlistBuilder {
areaTree.search(area.getArea()).stream().filter(graphNode -> {
if (graphNode.getArea() != null && graphNode.getArea() != area
&& graphNode.getArea().getLayerId() == area.getLayerId()) {
&& (graphNode.getArea().getLayerId() == 0 || area.getLayerId() == 0 || graphNode.getArea().getLayerId() == area.getLayerId())) {
Area a = new Area(graphNode.getArea().getArea());
a.intersect(area.getArea());
return !a.isEmpty();
@@ -366,8 +366,7 @@ public class NetlistBuilder {
areaTree.insert(area.getArea(), areaNode);
}
for (Map.Entry<Point2D, List<ProjectGraphNode>> entry : nodeMapByPoint.entrySet()) {
for (Map.Entry<Point2D, List<ProjectGraphNode>> entry : nodeMapByPoint.entrySet()) {
final Point2D point = entry.getKey();
List<ProjectGraphNode> candidateAreaNodes = areaTree.search(point, eps).stream()
@@ -381,16 +380,20 @@ public class NetlistBuilder {
for (ProjectGraphNode pointNode : entry.getValue()) {
List<ProjectGraphNode> areaNodesBelowPoint = candidateAreaNodes.stream()
.filter(x -> x.getArea().getZIndex() <= pointNode.getZIndex())
.sorted(Comparator.comparing(x -> x.getArea().getZIndex(), Comparator.reverseOrder()))
.collect(Collectors.toList());
// List<ProjectGraphNode> areaNodes = candidateAreaNodes.stream()
// .filter(x -> x.getArea().getZIndex() <= pointNode.getZIndex())
//// .sorted(Comparator.comparing(x -> x.getArea().getZIndex(), Comparator.reverseOrder()))
// .collect(Collectors.toList());
if (areaNodesBelowPoint.isEmpty()) {
builder.putEdge(pointNode, candidateAreaNodes.get(0));
} else {
builder.putEdge(pointNode, areaNodesBelowPoint.get(0));
for (ProjectGraphNode areaNode : candidateAreaNodes) {
builder.putEdge(pointNode, areaNode);
}
// if (areaNodesBelowPoint.isEmpty()) {
// builder.putEdge(pointNode, candidateAreaNodes.get(0));
// } else {
// builder.putEdge(pointNode, areaNodesBelowPoint.get(0));
// }
}
}
@@ -720,7 +720,7 @@ public class DrawingManager {
if (component instanceof ILayer) {
layerId = ((ILayer)component).getLayerId();
} else {
layerId = component.hashCode();
layerId = 0;
}
Collection<Area> positiveAreas = a.getContinuityPositiveAreas();
@@ -4190,6 +4190,10 @@
<changeType>IMPROVEMENT</changeType>
<description>Circuit analysis algorithm that supports netlist extraction, 'Highlight connected Areas' and 'Guitar Wiring Analyzer' features improved to take PCB trace layer and component z-order into account for better accuracy</description>
</org.diylc.appframework.update.Change>
<org.diylc.appframework.update.Change>
<changeType>IMPROVEMENT</changeType>
<description>Potentiometer bodies are no longer considered as conductive surfaces to avoid unwanted shorts</description>
</org.diylc.appframework.update.Change>
<org.diylc.appframework.update.Change>
<changeType>BUG_FIX</changeType>
<description>Do not apply any user-default property values when creating a standard datasheet model (e.g. a capacitor)</description>