Added new 'Dial Scale' variations - 'Ticks + Numeric (0/5.5/11)' a'la Friedman and another variation of 'Ticks' with more pronounced 9/12/3 o'clock indices

This commit is contained in:
Bane Stojkovic
2026-03-28 20:58:36 +01:00
parent 5d8555e316
commit dab4975347
14 changed files with 172 additions and 97 deletions
+16 -96
View File
@@ -1,101 +1,5 @@
<java.util.Arrays_-ArrayList>
<a class="org.diylc.appframework.update.Version-array">
<org.diylc.appframework.update.Version>
<versionNumber>
<major>5</major>
<minor>5</minor>
<build>0</build>
</versionNumber>
<releaseDate>2025-05-26 00:00:00.000 CET</releaseDate>
<name></name>
<changes>
<org.diylc.appframework.update.Change>
<changeType>NEW_FEATURE</changeType>
<description>Added 'Compare With...' tool in the 'Analyze' menu that compares the content of two DIY files electronically and reports differences. Can be useful to compare two versions of the same circuit or validate a layout against the schematics file.</description>
</org.diylc.appframework.update.Change>
<org.diylc.appframework.update.Change>
<changeType>IMPROVEMENT</changeType>
<description>Increased tolerance of sticky points on guitar pickup terminals in order to make it easier for leads to make proper contact and for the circuit analyzer to work</description>
</org.diylc.appframework.update.Change>
<org.diylc.appframework.update.Change>
<changeType>IMPROVEMENT</changeType>
<description>Improved trace proximity calculation to avoid showing false positives</description>
</org.diylc.appframework.update.Change>
<org.diylc.appframework.update.Change>
<changeType>IMPROVEMENT</changeType>
<description>Improved the styling of circuit analysis reports</description>
</org.diylc.appframework.update.Change>
<org.diylc.appframework.update.Change>
<changeType>BUG_FIX</changeType>
<description>X or Q keys sometimes do not register in secondary dialogs</description>
</org.diylc.appframework.update.Change>
<org.diylc.appframework.update.Change>
<changeType>BUG_FIX</changeType>
<description>'Auto-Edit Mode' doesn't do what it's supposed to</description>
</org.diylc.appframework.update.Change>
<org.diylc.appframework.update.Change>
<changeType>BUG_FIX</changeType>
<description>If the internet connection is present, but unstable, the application starts but nothing can be clicked until the connection restores</description>
</org.diylc.appframework.update.Change>
</changes>
<url>https://github.com/bancika/diy-layout-creator/releases</url>
</org.diylc.appframework.update.Version>
<org.diylc.appframework.update.Version>
<versionNumber>
<major>5</major>
<minor>6</minor>
<build>0</build>
</versionNumber>
<releaseDate>2025-08-11 00:00:00.000 CET</releaseDate>
<name></name>
<changes>
<org.diylc.appframework.update.Change>
<changeType>NEW_FEATURE</changeType>
<description>Added 'Drill Hole' component that can be used for board mounting holes, chassis holes, faceplace holes, etc</description>
</org.diylc.appframework.update.Change>
<org.diylc.appframework.update.Change>
<changeType>IMPROVEMENT</changeType>
<description>Simplify zoom in/out keyboard shortcuts to only plus/minus keys and zero numerical key for zoom reset to 100</description>
</org.diylc.appframework.update.Change>
<org.diylc.appframework.update.Change>
<changeType>IMPROVEMENT</changeType>
<description>Bundle Java JRE with Linux AppImage to avoid having to install it</description>
</org.diylc.appframework.update.Change>
<org.diylc.appframework.update.Change>
<changeType>IMPROVEMENT</changeType>
<description>Updated naming conventions Mac build packages to replace 'arm' with 'silicon' and 'x86' to 'intel' for clarity</description>
</org.diylc.appframework.update.Change>
<org.diylc.appframework.update.Change>
<changeType>IMPROVEMENT</changeType>
<description>Allow Windows 64 bit installer to run on ARM-based Windows machine (through emulation)</description>
</org.diylc.appframework.update.Change>
<org.diylc.appframework.update.Change>
<changeType>IMPROVEMENT</changeType>
<description>More intuitive user account creation dialog for DIYLC Cloud - showing exact requirements for password and marking optional entries</description>
</org.diylc.appframework.update.Change>
<org.diylc.appframework.update.Change>
<changeType>IMPROVEMENT</changeType>
<description>Improved project search algorithm in DIYLC cloud</description>
</org.diylc.appframework.update.Change>
<org.diylc.appframework.update.Change>
<changeType>IMPROVEMENT</changeType>
<description>When a switch position is selected (i.e. set to a value other than None), DIYLC will treat the terminals that are internally connected in that switching logic as connected in analysis tools</description>
</org.diylc.appframework.update.Change>
<org.diylc.appframework.update.Change>
<changeType>IMPROVEMENT</changeType>
<description>Increase maximum size of the backup folder from 64MB to 1GB for deeper history</description>
</org.diylc.appframework.update.Change>
<org.diylc.appframework.update.Change>
<changeType>BUG_FIX</changeType>
<description>Alignment issues of some visual elements in the resulting Gerber files, e.g. DIL IC pin designators</description>
</org.diylc.appframework.update.Change>
<org.diylc.appframework.update.Change>
<changeType>BUG_FIX</changeType>
<description>'Connect to Patreon' option says that it connected account with username 'a b c' but doesn't do anything</description>
</org.diylc.appframework.update.Change>
</changes>
<url>https://github.com/bancika/diy-layout-creator/releases</url>
</org.diylc.appframework.update.Version>
<org.diylc.appframework.update.Version>
<versionNumber>
<major>5</major>
@@ -384,5 +288,21 @@
</changes>
<url>https://github.com/bancika/diy-layout-creator/releases</url>
</org.diylc.appframework.update.Version>
<org.diylc.appframework.update.Version>
<versionNumber>
<major>5</major>
<minor>13</minor>
<build>0</build>
</versionNumber>
<releaseDate>2026-03-26 00:00:00.000 CET</releaseDate>
<name></name>
<changes>
<org.diylc.appframework.update.Change>
<changeType>NEW_FEATURE</changeType>
<description>Added new 'Dial Scale' variations - 'Ticks + Numeric (0/5.5/11)' a'la Friedman and another variation of 'Ticks' with more pronounced 9/12/3 o'clock indices</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>
@@ -5057,5 +5057,101 @@
</changes>
<url>https://github.com/bancika/diy-layout-creator/releases</url>
</org.diylc.appframework.update.Version>
<org.diylc.appframework.update.Version>
<versionNumber>
<major>5</major>
<minor>5</minor>
<build>0</build>
</versionNumber>
<releaseDate>2025-05-26 00:00:00.000 CET</releaseDate>
<name></name>
<changes>
<org.diylc.appframework.update.Change>
<changeType>NEW_FEATURE</changeType>
<description>Added 'Compare With...' tool in the 'Analyze' menu that compares the content of two DIY files electronically and reports differences. Can be useful to compare two versions of the same circuit or validate a layout against the schematics file.</description>
</org.diylc.appframework.update.Change>
<org.diylc.appframework.update.Change>
<changeType>IMPROVEMENT</changeType>
<description>Increased tolerance of sticky points on guitar pickup terminals in order to make it easier for leads to make proper contact and for the circuit analyzer to work</description>
</org.diylc.appframework.update.Change>
<org.diylc.appframework.update.Change>
<changeType>IMPROVEMENT</changeType>
<description>Improved trace proximity calculation to avoid showing false positives</description>
</org.diylc.appframework.update.Change>
<org.diylc.appframework.update.Change>
<changeType>IMPROVEMENT</changeType>
<description>Improved the styling of circuit analysis reports</description>
</org.diylc.appframework.update.Change>
<org.diylc.appframework.update.Change>
<changeType>BUG_FIX</changeType>
<description>X or Q keys sometimes do not register in secondary dialogs</description>
</org.diylc.appframework.update.Change>
<org.diylc.appframework.update.Change>
<changeType>BUG_FIX</changeType>
<description>'Auto-Edit Mode' doesn't do what it's supposed to</description>
</org.diylc.appframework.update.Change>
<org.diylc.appframework.update.Change>
<changeType>BUG_FIX</changeType>
<description>If the internet connection is present, but unstable, the application starts but nothing can be clicked until the connection restores</description>
</org.diylc.appframework.update.Change>
</changes>
<url>https://github.com/bancika/diy-layout-creator/releases</url>
</org.diylc.appframework.update.Version>
<org.diylc.appframework.update.Version>
<versionNumber>
<major>5</major>
<minor>6</minor>
<build>0</build>
</versionNumber>
<releaseDate>2025-08-11 00:00:00.000 CET</releaseDate>
<name></name>
<changes>
<org.diylc.appframework.update.Change>
<changeType>NEW_FEATURE</changeType>
<description>Added 'Drill Hole' component that can be used for board mounting holes, chassis holes, faceplace holes, etc</description>
</org.diylc.appframework.update.Change>
<org.diylc.appframework.update.Change>
<changeType>IMPROVEMENT</changeType>
<description>Simplify zoom in/out keyboard shortcuts to only plus/minus keys and zero numerical key for zoom reset to 100</description>
</org.diylc.appframework.update.Change>
<org.diylc.appframework.update.Change>
<changeType>IMPROVEMENT</changeType>
<description>Bundle Java JRE with Linux AppImage to avoid having to install it</description>
</org.diylc.appframework.update.Change>
<org.diylc.appframework.update.Change>
<changeType>IMPROVEMENT</changeType>
<description>Updated naming conventions Mac build packages to replace 'arm' with 'silicon' and 'x86' to 'intel' for clarity</description>
</org.diylc.appframework.update.Change>
<org.diylc.appframework.update.Change>
<changeType>IMPROVEMENT</changeType>
<description>Allow Windows 64 bit installer to run on ARM-based Windows machine (through emulation)</description>
</org.diylc.appframework.update.Change>
<org.diylc.appframework.update.Change>
<changeType>IMPROVEMENT</changeType>
<description>More intuitive user account creation dialog for DIYLC Cloud - showing exact requirements for password and marking optional entries</description>
</org.diylc.appframework.update.Change>
<org.diylc.appframework.update.Change>
<changeType>IMPROVEMENT</changeType>
<description>Improved project search algorithm in DIYLC cloud</description>
</org.diylc.appframework.update.Change>
<org.diylc.appframework.update.Change>
<changeType>IMPROVEMENT</changeType>
<description>When a switch position is selected (i.e. set to a value other than None), DIYLC will treat the terminals that are internally connected in that switching logic as connected in analysis tools</description>
</org.diylc.appframework.update.Change>
<org.diylc.appframework.update.Change>
<changeType>IMPROVEMENT</changeType>
<description>Increase maximum size of the backup folder from 64MB to 1GB for deeper history</description>
</org.diylc.appframework.update.Change>
<org.diylc.appframework.update.Change>
<changeType>BUG_FIX</changeType>
<description>Alignment issues of some visual elements in the resulting Gerber files, e.g. DIL IC pin designators</description>
</org.diylc.appframework.update.Change>
<org.diylc.appframework.update.Change>
<changeType>BUG_FIX</changeType>
<description>'Connect to Patreon' option says that it connected account with username 'a b c' but doesn't do anything</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>
@@ -125,6 +125,36 @@ public class DialScale extends AbstractComponent<String> {
g2d.setStroke(tickStroke);
g2d.drawLine((int)x, (int)y, (int)x1, (int)y1);
break;
case Ticks_Mixed:
case Ticks_0_5_5_11: {
boolean majorTick = (i == 2 || i == 5 || i == 8);
double tickLen = majorTick ? marker : marker * 0.8;
x1 = x0 + Math.cos(alpha) * (r - tickLen);
y1 = y0 + Math.sin(alpha) * (r - tickLen);
g2d.setStroke(tickStroke);
g2d.drawLine((int)x, (int)y, (int)x1, (int)y1);
if (type == DialScaleType.Ticks_0_5_5_11) {
String label = null;
VerticalAlignment vAlign = VerticalAlignment.CENTER;
if (i == 0) {
label = "0";
vAlign = VerticalAlignment.TOP;
} else if (i == 5) {
label = "5.5";
vAlign = VerticalAlignment.BOTTOM;
} else if (i == 10) {
label = "11";
vAlign = VerticalAlignment.TOP;
}
if (label != null) {
double labelPad = marker * 0.95;
double lx = x0 + Math.cos(alpha) * (r + labelPad);
double ly = y0 + Math.sin(alpha) * (r + labelPad);
StringUtils.drawCenteredText(g2d, label, lx, ly, HorizontalAlignment.CENTER, vAlign);
}
}
break;
}
case Numeric_Even:
if (i % 2 == 0) {
StringUtils.drawCenteredText(g2d, Integer.toString(i), x, y, HorizontalAlignment.CENTER, VerticalAlignment.CENTER);
@@ -273,7 +303,7 @@ public class DialScale extends AbstractComponent<String> {
}
public enum DialScaleType {
Ticks("Ticks"), Dots("Dots (Uniform)"), Dots_Gradual("Dots (Gradual)"), Numeric_0_10("Numeric (0-10)"), Numeric_1_11("Numeric (1-11)"),
Ticks_Mixed("Ticks"), Ticks("Ticks (Uniform)"), Ticks_0_5_5_11("Ticks + Numeric (0/5.5/11)"), Dots("Dots (Uniform)"), Dots_Gradual("Dots (Gradual)"), Numeric_0_10("Numeric (0-10)"), Numeric_1_11("Numeric (1-11)"),
Numeric_1_10("Numeric (1-10)"), Numeric_1_12("Numeric (1-12)"), Numeric_Even("Numeric (Even, No Ticks)"), Numeric_Even_Ticks("Numeric (Even, With Ticks)");
private String label;
+2
View File
@@ -572,6 +572,8 @@ Through Hole
Tick
Tick Width
Ticks
Ticks (Uniform)
Ticks + Numeric (0/5.5/11)
Timing
Title
Title Block
@@ -417,6 +417,9 @@ Thickness|Dicke
Three|Drei
Through Hole|Durchsteckmontage
Tick|Abstufung
Ticks|Striche
Ticks (Uniform)|Striche (gleichmäßig)
Ticks + Numeric (0/5.5/11)|Striche + Numerisch (0/5.5/11)
Title|Titel
Toolbox|Werkzeugkasten
Top|Oben
@@ -408,6 +408,8 @@ Through Hole
Tick
Tick Width
Ticks
Ticks (Uniform)
Ticks + Numeric (0/5.5/11)
Title
Toolbox
Top
@@ -405,6 +405,9 @@ Thickness|Grosor
Three|Tres
Through Hole|Terminales para Soldar
Tick|Indicador
Ticks|Marcas
Ticks (Uniform)|Marcas (uniformes)
Ticks + Numeric (0/5.5/11)|Marcas + Numérico (0/5.5/11)
Title|Tí­tulo
Toolbox|Caja de Herramientas
Top|Arriba
@@ -402,6 +402,9 @@ Thickness|Épaisseur
Three|Trois
Through Hole|Trou traversant
Tick|Cocher
Ticks|Graduations
Ticks (Uniform)|Graduations (uniformes)
Ticks + Numeric (0/5.5/11)|Graduations + Numérique (0/5.5/11)
Title|Titre
Toolbox|Boîte à outils
Top|Haut
@@ -417,6 +417,9 @@ Thickness|spessore
Three|tre
Through Hole|Foro passante
Tick|Spunto
Ticks|Tacche
Ticks (Uniform)|Tacche (uniformi)
Ticks + Numeric (0/5.5/11)|Tacche + Numerico (0/5.5/11)
Title|titolo
Toolbox|cassetta degli attrezzi
Top|top
@@ -417,6 +417,9 @@ Thickness|Breedte
Three|Drie
Through Hole|THT
Tick|Maatstreep
Ticks|Streepjes
Ticks (Uniform)|Streepjes (gelijk)
Ticks + Numeric (0/5.5/11)|Streepjes + Numeriek (0/5.5/11)
Title|Titel
Toolbox|Gereedschapskist
Top|Bovenkant
@@ -405,6 +405,9 @@ Thickness|Espessura
Three|Três
Through Hole|Terminal de Solda
Tick|Indicador
Ticks|Traços
Ticks (Uniform)|Traços (uniformes)
Ticks + Numeric (0/5.5/11)|Traços + Numérico (0/5.5/11)
Title|Título
Toolbox|Caixa de Ferramentas
Top|Acima
@@ -398,6 +398,9 @@ Thickness|Debljinja
Three|Tri
Through Hole|Kroz Rupu
Tick|Crtica
Ticks|Crtice
Ticks (Uniform)|Ravnomerne crtice
Ticks + Numeric (0/5.5/11)|Crtice + numerički (0/5.5/11)
Title|Naslov
Toolbox|Kutija sa Alatima
Top|Vrh
@@ -408,6 +408,8 @@ Through Hole|थ्रू होल
Tick|टिक
Tick Width|टिक चौड़ाई
Ticks|टिक्स
Ticks (Uniform)|टिक्स (समान)
Ticks + Numeric (0/5.5/11)|टिक्स + संख्यात्मक (0/5.5/11)
Title|शीर्षक
Toolbox|टूलबॉक्स
Top|ऊपर
@@ -408,6 +408,8 @@ Through Hole|通孔
Tick|刻度
Tick Width|刻度宽度
Ticks|刻度
Ticks (Uniform)|刻度(均匀)
Ticks + Numeric (0/5.5/11)|刻度 + 数字 (0/5.5/11)
Title|标题
Toolbox|工具箱
Top|顶部