diff --git a/crates/topola-cli/src/main.rs b/crates/topola-cli/src/main.rs index 8a64fa1..13746f2 100644 --- a/crates/topola-cli/src/main.rs +++ b/crates/topola-cli/src/main.rs @@ -35,7 +35,7 @@ fn main() -> Result<(), std::io::Error> { presort_by_pairwise_detours: false, router_options: RouterOptions { wrap_around_bands: true, - squeeze_through_under_bands: false, + squeeze_through_under_bends: false, routed_band_width: 100.0, }, }, diff --git a/crates/topola-egui/src/menu_bar.rs b/crates/topola-egui/src/menu_bar.rs index 6713ec7..5af7e14 100644 --- a/crates/topola-egui/src/menu_bar.rs +++ b/crates/topola-egui/src/menu_bar.rs @@ -38,7 +38,7 @@ impl MenuBar { router_options: RouterOptions { routed_band_width: 100.0, wrap_around_bands: true, - squeeze_through_under_bands: true, + squeeze_through_under_bends: true, }, }, is_placing_via: false, @@ -160,8 +160,8 @@ impl MenuBar { &mut self .autorouter_options .router_options - .squeeze_through_under_bands, - tr.text("tr-menu-route-options-squeeze-through-under-bands"), + .squeeze_through_under_bends, + tr.text("tr-menu-route-options-squeeze-through-under-bends"), ); ui.checkbox( &mut self.autorouter_options.router_options.wrap_around_bands, diff --git a/locales/de/main.ftl b/locales/de/main.ftl index 24d83ac..d1c0fd6 100644 --- a/locales/de/main.ftl +++ b/locales/de/main.ftl @@ -20,7 +20,7 @@ tr-menu-place-place-via = Platziere DuKo tr-menu-edit-remove-bands = Entferne Bänder tr-menu-inspect-compare-detours = Vergleiche Umwege tr-menu-route-options-presort-by-pairwise-detours = Nach paarweisen Umwegen vorsortieren -tr-menu-route-options-squeeze-through-under-bands = Presse unter Bänder durch +tr-menu-route-options-squeeze-through-under-bends = Presse unter Bänder durch tr-menu-route-options-wrap-around-bands = Wickle um Bänder tr-menu-view-zoom-to-fit = Einpassen tr-menu-view-show-ratsnest = Zeige Ratsnest diff --git a/locales/en-US/main.ftl b/locales/en-US/main.ftl index 6b11e32..c28f93f 100644 --- a/locales/en-US/main.ftl +++ b/locales/en-US/main.ftl @@ -41,7 +41,7 @@ tr-menu-route-options-presort-by-pairwise-detours = Presort by Pairwise Detours ## Continuously applied, so use imperfective aspect if possible, e.g. in Polish ## it should be "przeciskaj pod taśmami" instead of "przeciśnij pod taśmami". -tr-menu-route-options-squeeze-through-under-bands = Squeeze through under Bands +tr-menu-route-options-squeeze-through-under-bends = Squeeze through under Bands tr-menu-route-options-wrap-around-bands = Wrap around Bands ## diff --git a/locales/pl/main.ftl b/locales/pl/main.ftl index 16ce036..639d87d 100644 --- a/locales/pl/main.ftl +++ b/locales/pl/main.ftl @@ -18,7 +18,7 @@ tr-menu-view-show-bboxes = Pokaż obwiednie tr-menu-view-show-origin-destination = Pokaż pochodzenie i destynację tr-menu-options = Opcje tr-menu-route-options-wrap-around-bands = Owiń wokół taśm -tr-menu-route-options-squeeze-through-under-bands = Ściśnij pod taśmami +tr-menu-route-options-squeeze-through-under-bends = Ściśnij pod taśmami tr-menu-edit = Edytuj tr-menu-view = Widok tr-menu-place = Umieść diff --git a/locales/pt/main.ftl b/locales/pt/main.ftl index db1a532..3669485 100644 --- a/locales/pt/main.ftl +++ b/locales/pt/main.ftl @@ -24,7 +24,7 @@ tr-menu-view-show-navmesh = Mostrar Malha de Navegação tr-menu-view-show-bboxes = Mostrar BBoxes tr-menu-view-show-ratsnest = Mostrar Ratsnest tr-menu-route-options-presort-by-pairwise-detours = Preordenar por Desvios de Pares -tr-menu-route-options-squeeze-through-under-bands = Espremer embaixo das bandas +tr-menu-route-options-squeeze-through-under-bends = Espremer embaixo das bandas tr-menu-inspect-compare-detours = Comparar Desvios tr-menu-inspect-measure-length = Medir Comprimento tr-menu-preferences-set-language = Definir Idioma diff --git a/locales/tr/main.ftl b/locales/tr/main.ftl index 9ed083b..ae26224 100644 --- a/locales/tr/main.ftl +++ b/locales/tr/main.ftl @@ -23,7 +23,7 @@ tr-menu-help = Yardım tr-menu-help-online-documentation = Çevrimiçi Belgeler tr-menu-options = Seçenekler tr-menu-route-options-presort-by-pairwise-detours = Pairwise Detours ile Ön Sırala -tr-menu-route-options-squeeze-through-under-bands = Bantların Altından Sıkışarak Geç +tr-menu-route-options-squeeze-through-under-bends = Bantların Altından Sıkışarak Geç tr-menu-route-options-wrap-around-bands = Bantların çevresine sar tr-menu-inspect = İncele tr-menu-inspect-compare-detours = Tali Yolları Karşılaştır diff --git a/src/router/navmesh.rs b/src/router/navmesh.rs index 33e651d..8174c91 100644 --- a/src/router/navmesh.rs +++ b/src/router/navmesh.rs @@ -232,7 +232,7 @@ impl Navmesh { let mut gear = Into::::into(Into::::into(trianvertex)); - if options.squeeze_through_under_bands { + if options.squeeze_through_under_bends { Self::add_node_to_graph_and_map_as_binavvertex( &mut graph, &mut map, diff --git a/src/router/router.rs b/src/router/router.rs index 2526f43..697a003 100644 --- a/src/router/router.rs +++ b/src/router/router.rs @@ -34,7 +34,7 @@ use super::{ pub struct RouterOptions { pub routed_band_width: f64, pub wrap_around_bands: bool, - pub squeeze_through_under_bands: bool, + pub squeeze_through_under_bends: bool, } #[derive(Debug)] diff --git a/tests/common/mod.rs b/tests/common/mod.rs index ecf0085..7916338 100644 --- a/tests/common/mod.rs +++ b/tests/common/mod.rs @@ -105,7 +105,7 @@ pub fn assert_navvertex_count( destination, RouterOptions { wrap_around_bands: true, - squeeze_through_under_bands: false, + squeeze_through_under_bends: false, routed_band_width: 100.0, }, ) diff --git a/tests/single_layer/0603_breakout/autoroute_all.cmd b/tests/single_layer/0603_breakout/autoroute_all.cmd index e70ed00..c79e451 100644 --- a/tests/single_layer/0603_breakout/autoroute_all.cmd +++ b/tests/single_layer/0603_breakout/autoroute_all.cmd @@ -16,7 +16,7 @@ "presort_by_pairwise_detours": false, "router_options": { "wrap_around_bands": true, - "squeeze_through_under_bands": true, + "squeeze_through_under_bends": true, "routed_band_width": 100.0 } } @@ -38,7 +38,7 @@ "presort_by_pairwise_detours": false, "router_options": { "wrap_around_bands": true, - "squeeze_through_under_bands": true, + "squeeze_through_under_bends": true, "routed_band_width": 100.0 } } diff --git a/tests/single_layer/4x_3rd_order_smd_lc_filters/autoroute_signals.cmd b/tests/single_layer/4x_3rd_order_smd_lc_filters/autoroute_signals.cmd index da04ee7..59850db 100644 --- a/tests/single_layer/4x_3rd_order_smd_lc_filters/autoroute_signals.cmd +++ b/tests/single_layer/4x_3rd_order_smd_lc_filters/autoroute_signals.cmd @@ -52,7 +52,7 @@ "presort_by_pairwise_detours": false, "router_options": { "wrap_around_bands": true, - "squeeze_through_under_bands": true, + "squeeze_through_under_bends": true, "routed_band_width": 100.0 } } @@ -110,7 +110,7 @@ "presort_by_pairwise_detours": false, "router_options": { "wrap_around_bands": true, - "squeeze_through_under_bands": true, + "squeeze_through_under_bends": true, "routed_band_width": 100.0 } } @@ -168,7 +168,7 @@ "presort_by_pairwise_detours": false, "router_options": { "wrap_around_bands": true, - "squeeze_through_under_bands": true, + "squeeze_through_under_bends": true, "routed_band_width": 100.0 } } @@ -226,7 +226,7 @@ "presort_by_pairwise_detours": false, "router_options": { "wrap_around_bands": true, - "squeeze_through_under_bands": true, + "squeeze_through_under_bends": true, "routed_band_width": 100.0 } } diff --git a/tests/single_layer/short_squeeze_through_under_bends/short_squeeze_through_under_bends.dsn b/tests/single_layer/short_squeeze_through_under_bends/short_squeeze_through_under_bends.dsn new file mode 100644 index 0000000..dbd70c5 --- /dev/null +++ b/tests/single_layer/short_squeeze_through_under_bends/short_squeeze_through_under_bends.dsn @@ -0,0 +1,129 @@ +(pcb /home/mikolaj/proj/topola/tests/single_layer/short_squeeze_through_under_bends/short_squeeze_through_under_bends.dsn + (parser + (string_quote ") + (space_in_quoted_tokens on) + (host_cad "KiCad's Pcbnew") + (host_version "8.0.2") + ) + (resolution um 10) + (unit um) + (structure + (layer F.Cu + (type signal) + (property + (index 0) + ) + ) + (layer B.Cu + (type signal) + (property + (index 1) + ) + ) + (boundary + (path pcb 0 180000 -140000 125000 -140000 125000 -60000 180000 -60000 + 180000 -140000) + ) + (via "Via[0-1]_600:300_um") + (rule + (width 200) + (clearance 200) + (clearance 200 (type default_smd)) + (clearance 50 (type smd_smd)) + ) + ) + (placement + (component "Connector_JST:JST_EH_B5B-EH-A_1x05_P2.50mm_Vertical" + (place J2 150000.000000 -75000.000000 front 180.000000 (PN Conn_01x05)) + (place J1 150000.000000 -125000.000000 front 180.000000 (PN Conn_01x05)) + ) + ) + (library + (image "Connector_JST:JST_EH_B5B-EH-A_1x05_P2.50mm_Vertical" + (outline (path signal 120 12610 -2310 12610 1710)) + (outline (path signal 120 12610 -810 11610 -810)) + (outline (path signal 120 12610 1710 -2610 1710)) + (outline (path signal 120 12110 0 12610 0)) + (outline (path signal 120 12110 1210 12110 0)) + (outline (path signal 120 11610 -810 11610 -2310)) + (outline (path signal 120 -1610 -810 -1610 -2310)) + (outline (path signal 120 -2110 0 -2110 1210)) + (outline (path signal 120 -2110 1210 12110 1210)) + (outline (path signal 120 -2610 -2310 12610 -2310)) + (outline (path signal 120 -2610 -810 -1610 -810)) + (outline (path signal 120 -2610 0 -2110 0)) + (outline (path signal 120 -2610 1710 -2610 -2310)) + (outline (path signal 120 -2910 -2610 -410 -2610)) + (outline (path signal 120 -2910 -110 -2910 -2610)) + (outline (path signal 50 13000 -2700 13000 2100)) + (outline (path signal 50 13000 2100 -3000 2100)) + (outline (path signal 50 -3000 -2700 13000 -2700)) + (outline (path signal 50 -3000 2100 -3000 -2700)) + (outline (path signal 100 12500 -2200 12500 1600)) + (outline (path signal 100 12500 1600 -2500 1600)) + (outline (path signal 100 -2500 -2200 12500 -2200)) + (outline (path signal 100 -2500 1600 -2500 -2200)) + (outline (path signal 100 -2910 -2610 -410 -2610)) + (outline (path signal 100 -2910 -110 -2910 -2610)) + (pin RoundRect[A]Pad_1700x1950_250.951_um_0.000000_0 1 0 0) + (pin Oval[A]Pad_1700x1950_um 2 2500 0) + (pin Oval[A]Pad_1700x1950_um 3 5000 0) + (pin Oval[A]Pad_1700x1950_um 4 7500 0) + (pin Oval[A]Pad_1700x1950_um 5 10000 0) + ) + (padstack Oval[A]Pad_1700x1950_um + (shape (path F.Cu 1700 0 -125 0 125)) + (shape (path B.Cu 1700 0 -125 0 125)) + (attach off) + ) + (padstack RoundRect[A]Pad_1700x1950_250.951_um_0.000000_0 + (shape (polygon F.Cu 0 -850.951 725 -831.848 821.035 -777.449 902.449 -696.035 956.848 + -599.999 975.95 600 975.951 696.035 956.848 777.449 902.449 + 831.848 821.035 850.95 724.999 850.951 -725 831.848 -821.035 + 777.449 -902.449 696.035 -956.848 599.999 -975.95 -600 -975.951 + -696.035 -956.848 -777.449 -902.449 -831.848 -821.035 -850.95 -724.999 + -850.951 725)) + (shape (polygon B.Cu 0 -850.951 725 -831.848 821.035 -777.449 902.449 -696.035 956.848 + -599.999 975.95 600 975.951 696.035 956.848 777.449 902.449 + 831.848 821.035 850.95 724.999 850.951 -725 831.848 -821.035 + 777.449 -902.449 696.035 -956.848 599.999 -975.95 -600 -975.951 + -696.035 -956.848 -777.449 -902.449 -831.848 -821.035 -850.95 -724.999 + -850.951 725)) + (attach off) + ) + (padstack "Via[0-1]_600:300_um" + (shape (circle F.Cu 600)) + (shape (circle B.Cu 600)) + (attach off) + ) + ) + (network + (net "Net-(J1-Pin_4)" + (pins J2-4 J1-4) + ) + (net "Net-(J1-Pin_1)" + (pins J2-1 J1-1) + ) + (net GND + (pins J2-5 J1-5) + ) + (net "Net-(J1-Pin_3)" + (pins J2-3 J1-3) + ) + (net "Net-(J1-Pin_2)" + (pins J2-2 J1-2) + ) + (class kicad_default "" DD GND "Net-(J1-Pin_1)" "Net-(J1-Pin_2)" "Net-(J1-Pin_3)" + "Net-(J1-Pin_4)" + (circuit + (use_via Via[0-1]_600:300_um) + ) + (rule + (width 200) + (clearance 200) + ) + ) + ) + (wiring + ) +) diff --git a/tests/single_layer/short_squeeze_through_under_bends/short_squeeze_through_under_bends.kicad_pcb b/tests/single_layer/short_squeeze_through_under_bends/short_squeeze_through_under_bends.kicad_pcb new file mode 100644 index 0000000..ff7b7d4 --- /dev/null +++ b/tests/single_layer/short_squeeze_through_under_bends/short_squeeze_through_under_bends.kicad_pcb @@ -0,0 +1,962 @@ +(kicad_pcb + (version 20240108) + (generator "pcbnew") + (generator_version "8.0") + (general + (thickness 1.6) + (legacy_teardrops no) + ) + (paper "A4") + (layers + (0 "F.Cu" signal) + (31 "B.Cu" signal) + (32 "B.Adhes" user "B.Adhesive") + (33 "F.Adhes" user "F.Adhesive") + (34 "B.Paste" user) + (35 "F.Paste" user) + (36 "B.SilkS" user "B.Silkscreen") + (37 "F.SilkS" user "F.Silkscreen") + (38 "B.Mask" user) + (39 "F.Mask" user) + (40 "Dwgs.User" user "User.Drawings") + (41 "Cmts.User" user "User.Comments") + (42 "Eco1.User" user "User.Eco1") + (43 "Eco2.User" user "User.Eco2") + (44 "Edge.Cuts" user) + (45 "Margin" user) + (46 "B.CrtYd" user "B.Courtyard") + (47 "F.CrtYd" user "F.Courtyard") + (48 "B.Fab" user) + (49 "F.Fab" user) + (50 "User.1" user) + (51 "User.2" user) + (52 "User.3" user) + (53 "User.4" user) + (54 "User.5" user) + (55 "User.6" user) + (56 "User.7" user) + (57 "User.8" user) + (58 "User.9" user) + ) + (setup + (pad_to_mask_clearance 0) + (allow_soldermask_bridges_in_footprints no) + (pcbplotparams + (layerselection 0x00010fc_ffffffff) + (plot_on_all_layers_selection 0x0000000_00000000) + (disableapertmacros no) + (usegerberextensions no) + (usegerberattributes yes) + (usegerberadvancedattributes yes) + (creategerberjobfile yes) + (dashed_line_dash_ratio 12.000000) + (dashed_line_gap_ratio 3.000000) + (svgprecision 4) + (plotframeref no) + (viasonmask no) + (mode 1) + (useauxorigin no) + (hpglpennumber 1) + (hpglpenspeed 20) + (hpglpendiameter 15.000000) + (pdf_front_fp_property_popups yes) + (pdf_back_fp_property_popups yes) + (dxfpolygonmode yes) + (dxfimperialunits yes) + (dxfusepcbnewfont yes) + (psnegative no) + (psa4output no) + (plotreference yes) + (plotvalue yes) + (plotfptext yes) + (plotinvisibletext no) + (sketchpadsonfab no) + (subtractmaskfromsilk no) + (outputformat 1) + (mirror no) + (drillshape 1) + (scaleselection 1) + (outputdirectory "") + ) + ) + (net 0 "") + (net 1 "Net-(J1-Pin_4)") + (net 2 "Net-(J1-Pin_1)") + (net 3 "GND") + (net 4 "Net-(J1-Pin_3)") + (net 5 "Net-(J1-Pin_2)") + (net 6 "DD") + (footprint "Connector_JST:JST_EH_B5B-EH-A_1x05_P2.50mm_Vertical" + (layer "F.Cu") + (uuid "7fd44652-0a91-4cb8-b0f8-a519c9b69d8e") + (at 150 75 180) + (descr "JST EH series connector, B5B-EH-A (http://www.jst-mfg.com/product/pdf/eng/eEH.pdf), generated with kicad-footprint-generator") + (tags "connector JST EH vertical") + (property "Reference" "J2" + (at 5 -2.8 180) + (layer "F.SilkS") + (uuid "559428e2-0964-4138-b41d-c031052413c3") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (property "Value" "Conn_01x05" + (at 5 3.4 180) + (layer "F.Fab") + (uuid "0afa3c71-4155-47c2-9805-e7cefc7e5aee") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (property "Footprint" "Connector_JST:JST_EH_B5B-EH-A_1x05_P2.50mm_Vertical" + (at 0 0 180) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "14b899fe-f217-4ce3-b4d0-d63118b37634") + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Datasheet" "" + (at 0 0 180) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "c5f76ded-f05a-4aad-a085-120c6a33546b") + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Description" "Generic connector, single row, 01x05, script generated (kicad-library-utils/schlib/autogen/connector/)" + (at 0 0 180) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "06ac69a2-7b08-40ef-aa7e-00b89a4d4456") + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property ki_fp_filters "Connector*:*_1x??_*") + (path "/7218f180-0012-4984-a886-e3acbf5cedcc") + (sheetname "Root") + (sheetfile "short_squeeze_through_under_bends.kicad_sch") + (attr through_hole) + (fp_line + (start 12.61 2.31) + (end 12.61 -1.71) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "11c4c113-2ee7-4d0c-a526-f202b7f50979") + ) + (fp_line + (start 12.61 0.81) + (end 11.61 0.81) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "ee0bf4e6-2294-4bd7-8a54-c1c41243f377") + ) + (fp_line + (start 12.61 -1.71) + (end -2.61 -1.71) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "55d86e8b-d558-43ec-af82-55c70d9001a0") + ) + (fp_line + (start 12.11 0) + (end 12.61 0) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "0e9331e5-70b9-40a6-99e3-adfd9cb963ae") + ) + (fp_line + (start 12.11 -1.21) + (end 12.11 0) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "2f9604bf-ecfa-4f20-a05d-726b9a68116b") + ) + (fp_line + (start 11.61 0.81) + (end 11.61 2.31) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "31fd5bde-5336-454f-91a6-27c583eab197") + ) + (fp_line + (start -1.61 0.81) + (end -1.61 2.31) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "8478ac62-7678-45ae-9c58-3ca06a0d2b52") + ) + (fp_line + (start -2.11 0) + (end -2.11 -1.21) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "fdbc30d5-f535-4880-a55e-fa3731a82fef") + ) + (fp_line + (start -2.11 -1.21) + (end 12.11 -1.21) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "d29a7f27-e0ec-4729-9f1c-fe0809df94ee") + ) + (fp_line + (start -2.61 2.31) + (end 12.61 2.31) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "a0467873-7ea0-467d-8d3f-bf1012583800") + ) + (fp_line + (start -2.61 0.81) + (end -1.61 0.81) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "95f215d6-b906-480e-a7a6-5b3f27244ba5") + ) + (fp_line + (start -2.61 0) + (end -2.11 0) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "c2f6e5d7-bb6e-4746-a5d4-3dd091c49667") + ) + (fp_line + (start -2.61 -1.71) + (end -2.61 2.31) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "803169b6-33f0-48f2-874d-3c5dc2fa03e6") + ) + (fp_line + (start -2.91 2.61) + (end -0.41 2.61) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "ab375206-0e9d-429d-a48e-50be92871f40") + ) + (fp_line + (start -2.91 0.11) + (end -2.91 2.61) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "c5f47e28-94d3-46cd-a5d0-590f2d9f0131") + ) + (fp_line + (start 13 2.7) + (end 13 -2.1) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "f23f4fc5-aeb7-4ee8-9ad2-641a06d24504") + ) + (fp_line + (start 13 -2.1) + (end -3 -2.1) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "8dc4ee79-af8d-42dc-9478-68cc34b6f87f") + ) + (fp_line + (start -3 2.7) + (end 13 2.7) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "dd9326c9-f66d-45af-96a4-33f707565c05") + ) + (fp_line + (start -3 -2.1) + (end -3 2.7) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "30440b72-a237-43e3-8c0b-a91e75af7929") + ) + (fp_line + (start 12.5 2.2) + (end 12.5 -1.6) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "97140258-de6b-477f-a4b0-5f8e3d69fd7c") + ) + (fp_line + (start 12.5 -1.6) + (end -2.5 -1.6) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "086dc89a-1e31-4ee6-ad98-284ac56bf45b") + ) + (fp_line + (start -2.5 2.2) + (end 12.5 2.2) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "d5a1ffe7-33c9-4d99-abc5-974ec2a2bd34") + ) + (fp_line + (start -2.5 -1.6) + (end -2.5 2.2) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "fc0450aa-5a31-4a34-aa4c-d9921f74042d") + ) + (fp_line + (start -2.91 2.61) + (end -0.41 2.61) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "14869c67-4283-4aff-ad42-7bdb1f2cb2e1") + ) + (fp_line + (start -2.91 0.11) + (end -2.91 2.61) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "6a7923b6-be43-4548-94b8-011d7b2910c9") + ) + (fp_text user "${REFERENCE}" + (at 5 1.5 180) + (layer "F.Fab") + (uuid "033b0bef-5e9d-4808-aa56-bf5c31a8ab15") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (pad "1" thru_hole roundrect + (at 0 0 180) + (size 1.7 1.95) + (drill 0.95) + (layers "*.Cu" "*.Mask") + (remove_unused_layers no) + (roundrect_rratio 0.147059) + (net 2 "Net-(J1-Pin_1)") + (pinfunction "Pin_1") + (pintype "passive") + (uuid "8e3b4dcf-1a75-4b1f-8f36-f0dd985a0efe") + ) + (pad "2" thru_hole oval + (at 2.5 0 180) + (size 1.7 1.95) + (drill 0.95) + (layers "*.Cu" "*.Mask") + (remove_unused_layers no) + (net 5 "Net-(J1-Pin_2)") + (pinfunction "Pin_2") + (pintype "passive") + (uuid "c1dc1932-ee4b-42d5-b7e3-6dfbc8795660") + ) + (pad "3" thru_hole oval + (at 5 0 180) + (size 1.7 1.95) + (drill 0.95) + (layers "*.Cu" "*.Mask") + (remove_unused_layers no) + (net 4 "Net-(J1-Pin_3)") + (pinfunction "Pin_3") + (pintype "passive") + (uuid "8c27d24b-f263-4a14-af7e-fef31fe7d55c") + ) + (pad "4" thru_hole oval + (at 7.5 0 180) + (size 1.7 1.95) + (drill 0.95) + (layers "*.Cu" "*.Mask") + (remove_unused_layers no) + (net 1 "Net-(J1-Pin_4)") + (pinfunction "Pin_4") + (pintype "passive") + (uuid "8d466ec5-7291-40b1-9f59-661298e9e7df") + ) + (pad "5" thru_hole oval + (at 10 0 180) + (size 1.7 1.95) + (drill 0.95) + (layers "*.Cu" "*.Mask") + (remove_unused_layers no) + (net 3 "GND") + (pinfunction "Pin_5") + (pintype "passive") + (uuid "e44f253d-9fec-4794-bb54-0f254373161a") + ) + (model "${KICAD8_3DMODEL_DIR}/Connector_JST.3dshapes/JST_EH_B5B-EH-A_1x05_P2.50mm_Vertical.wrl" + (offset + (xyz 0 0 0) + ) + (scale + (xyz 1 1 1) + ) + (rotate + (xyz 0 0 0) + ) + ) + ) + (footprint "Connector_JST:JST_EH_B5B-EH-A_1x05_P2.50mm_Vertical" + (layer "F.Cu") + (uuid "e0b11e8a-9a24-4569-be41-d85610d3f616") + (at 150 125 180) + (descr "JST EH series connector, B5B-EH-A (http://www.jst-mfg.com/product/pdf/eng/eEH.pdf), generated with kicad-footprint-generator") + (tags "connector JST EH vertical") + (property "Reference" "J1" + (at 5 -2.8 180) + (layer "F.SilkS") + (uuid "238d82be-c598-487a-8468-3901300f16b5") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (property "Value" "Conn_01x05" + (at 5 3.4 180) + (layer "F.Fab") + (uuid "b9475497-7c2e-4bf7-b571-8af8699bb6af") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (property "Footprint" "Connector_JST:JST_EH_B5B-EH-A_1x05_P2.50mm_Vertical" + (at 0 0 180) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "119ebe8c-b89a-4f85-a245-101539be12d1") + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Datasheet" "" + (at 0 0 180) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "0bb19132-5a8e-4fcd-a488-90da3889aefd") + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Description" "Generic connector, single row, 01x05, script generated (kicad-library-utils/schlib/autogen/connector/)" + (at 0 0 180) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "dedf0243-5f17-4407-858f-cd98e1dab265") + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property ki_fp_filters "Connector*:*_1x??_*") + (path "/f9eceafb-1a23-4dee-8206-72db97bb44c1") + (sheetname "Root") + (sheetfile "short_squeeze_through_under_bends.kicad_sch") + (attr through_hole) + (fp_line + (start 12.61 2.31) + (end 12.61 -1.71) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "4063b35a-44a3-4df9-a0fc-f0d4688d3153") + ) + (fp_line + (start 12.61 0.81) + (end 11.61 0.81) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "484a0280-ec2c-4e19-ba76-0049e33ce638") + ) + (fp_line + (start 12.61 -1.71) + (end -2.61 -1.71) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "8068d158-ea60-492b-be74-685fcf290712") + ) + (fp_line + (start 12.11 0) + (end 12.61 0) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "d4de14cc-1b01-49e2-b32b-865c4278d119") + ) + (fp_line + (start 12.11 -1.21) + (end 12.11 0) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "af47f5c7-66d4-425e-925f-76bb4a151262") + ) + (fp_line + (start 11.61 0.81) + (end 11.61 2.31) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "aaf7d021-594e-4ad1-9014-cb9b1dd6a73d") + ) + (fp_line + (start -1.61 0.81) + (end -1.61 2.31) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "ca93f066-00b6-44bc-a4dd-c077f94312dd") + ) + (fp_line + (start -2.11 0) + (end -2.11 -1.21) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "344dae82-dbac-493b-a3f5-17a9ced7a91a") + ) + (fp_line + (start -2.11 -1.21) + (end 12.11 -1.21) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "cfec2552-2b28-4b85-b385-0488faea2e12") + ) + (fp_line + (start -2.61 2.31) + (end 12.61 2.31) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "979648e9-feb9-44aa-ba4c-f7dfa006b954") + ) + (fp_line + (start -2.61 0.81) + (end -1.61 0.81) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "78e7770a-77c6-499a-9046-6f53bf9be781") + ) + (fp_line + (start -2.61 0) + (end -2.11 0) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "b909ee23-5205-43cb-bfec-f482e32a0ae5") + ) + (fp_line + (start -2.61 -1.71) + (end -2.61 2.31) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "6a4ace6c-cba5-409c-bac0-326286e34d8d") + ) + (fp_line + (start -2.91 2.61) + (end -0.41 2.61) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "056fe372-6b63-46df-ac3a-38ebbe05d036") + ) + (fp_line + (start -2.91 0.11) + (end -2.91 2.61) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "be78184c-add5-4c5b-be58-71edd6d88f12") + ) + (fp_line + (start 13 2.7) + (end 13 -2.1) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "68f3fb8c-1856-4c3d-bc49-8dca1e9dfb08") + ) + (fp_line + (start 13 -2.1) + (end -3 -2.1) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "d437d157-e186-4a23-ab5c-eb873b8bd7f6") + ) + (fp_line + (start -3 2.7) + (end 13 2.7) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "eb1e3701-b75c-4196-bb54-980649049c57") + ) + (fp_line + (start -3 -2.1) + (end -3 2.7) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "75d1b9ac-2533-44ae-a588-6f4c4d2b4e68") + ) + (fp_line + (start 12.5 2.2) + (end 12.5 -1.6) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "11eca9d8-8084-464a-a736-349a8bf12644") + ) + (fp_line + (start 12.5 -1.6) + (end -2.5 -1.6) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "b1469ca3-8e2f-47e5-8c06-e5e11a702598") + ) + (fp_line + (start -2.5 2.2) + (end 12.5 2.2) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "7fe89535-2581-4fe6-9a4d-b2168798ff38") + ) + (fp_line + (start -2.5 -1.6) + (end -2.5 2.2) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "bcdde508-52a3-4d8d-9a98-0cdc3412f008") + ) + (fp_line + (start -2.91 2.61) + (end -0.41 2.61) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "bd34a257-abaa-4af4-8adb-e275c6b15108") + ) + (fp_line + (start -2.91 0.11) + (end -2.91 2.61) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "bc586b98-d708-4236-868b-5238980984bc") + ) + (fp_text user "${REFERENCE}" + (at 5 1.5 180) + (layer "F.Fab") + (uuid "35fdaca8-291d-4541-bc71-a8f463d8ae1e") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (pad "1" thru_hole roundrect + (at 0 0 180) + (size 1.7 1.95) + (drill 0.95) + (layers "*.Cu" "*.Mask") + (remove_unused_layers no) + (roundrect_rratio 0.147059) + (net 2 "Net-(J1-Pin_1)") + (pinfunction "Pin_1") + (pintype "passive") + (uuid "3546ac79-c060-4961-9320-c66eb346c031") + ) + (pad "2" thru_hole oval + (at 2.5 0 180) + (size 1.7 1.95) + (drill 0.95) + (layers "*.Cu" "*.Mask") + (remove_unused_layers no) + (net 5 "Net-(J1-Pin_2)") + (pinfunction "Pin_2") + (pintype "passive") + (uuid "e0ced972-7495-452a-aa80-01608e19e1b9") + ) + (pad "3" thru_hole oval + (at 5 0 180) + (size 1.7 1.95) + (drill 0.95) + (layers "*.Cu" "*.Mask") + (remove_unused_layers no) + (net 4 "Net-(J1-Pin_3)") + (pinfunction "Pin_3") + (pintype "passive") + (uuid "624b60e4-99c1-4261-85ed-b86dd9b42a2d") + ) + (pad "4" thru_hole oval + (at 7.5 0 180) + (size 1.7 1.95) + (drill 0.95) + (layers "*.Cu" "*.Mask") + (remove_unused_layers no) + (net 1 "Net-(J1-Pin_4)") + (pinfunction "Pin_4") + (pintype "passive") + (uuid "2b5b7f02-bedc-4260-998e-e5a6a2836030") + ) + (pad "5" thru_hole oval + (at 10 0 180) + (size 1.7 1.95) + (drill 0.95) + (layers "*.Cu" "*.Mask") + (remove_unused_layers no) + (net 3 "GND") + (pinfunction "Pin_5") + (pintype "passive") + (uuid "4ae4473a-3ddb-417f-b1b4-632fe1a4c9e4") + ) + (model "${KICAD8_3DMODEL_DIR}/Connector_JST.3dshapes/JST_EH_B5B-EH-A_1x05_P2.50mm_Vertical.wrl" + (offset + (xyz 0 0 0) + ) + (scale + (xyz 1 1 1) + ) + (rotate + (xyz 0 0 0) + ) + ) + ) + (gr_line + (start 130 100) + (end 130 135) + (stroke + (width 2) + (type default) + ) + (layer "F.Cu") + (net 6) + (uuid "1243f19a-697c-4061-9c40-f2efa1a30e63") + ) + (gr_line + (start 130 100) + (end 160 100) + (stroke + (width 2) + (type default) + ) + (layer "F.Cu") + (net 6) + (uuid "3a75a6ce-9587-4973-a6da-b1c5c2cbc86a") + ) + (gr_line + (start 130 65) + (end 175 65) + (stroke + (width 2) + (type default) + ) + (layer "F.Cu") + (net 6) + (uuid "5b3c655b-5a65-42ae-9125-b1009b3ece9b") + ) + (gr_line + (start 130 135) + (end 175 135) + (stroke + (width 2) + (type default) + ) + (layer "F.Cu") + (net 6) + (uuid "84ad8ca3-1dac-4909-9641-b466b5723891") + ) + (gr_line + (start 175 65) + (end 175 135) + (stroke + (width 2) + (type default) + ) + (layer "F.Cu") + (net 6) + (uuid "95d3083d-9030-4cf1-b241-f4948f99643d") + ) + (gr_line + (start 130 65) + (end 130 100) + (stroke + (width 2) + (type default) + ) + (layer "F.Cu") + (net 6) + (uuid "b0c876bc-bf0c-432e-b584-2bea6b59e5ce") + ) + (gr_rect + (start 125 60) + (end 180 140) + (stroke + (width 0.05) + (type default) + ) + (fill none) + (layer "Edge.Cuts") + (uuid "3f53eceb-0876-474f-a75f-1ee0d3aa671a") + ) +) diff --git a/tests/single_layer/short_squeeze_through_under_bends/short_squeeze_through_under_bends.kicad_prl b/tests/single_layer/short_squeeze_through_under_bends/short_squeeze_through_under_bends.kicad_prl new file mode 100644 index 0000000..e4b1e26 --- /dev/null +++ b/tests/single_layer/short_squeeze_through_under_bends/short_squeeze_through_under_bends.kicad_prl @@ -0,0 +1,83 @@ +{ + "board": { + "active_layer": 44, + "active_layer_preset": "All Layers", + "auto_track_width": true, + "hidden_netclasses": [], + "hidden_nets": [], + "high_contrast_mode": 0, + "net_color_mode": 1, + "opacity": { + "images": 0.6, + "pads": 1.0, + "tracks": 1.0, + "vias": 1.0, + "zones": 0.6 + }, + "selection_filter": { + "dimensions": true, + "footprints": true, + "graphics": true, + "keepouts": true, + "lockedItems": false, + "otherItems": true, + "pads": true, + "text": true, + "tracks": true, + "vias": true, + "zones": true + }, + "visible_items": [ + 0, + 1, + 2, + 3, + 4, + 5, + 8, + 9, + 10, + 11, + 12, + 13, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 32, + 33, + 34, + 35, + 36, + 39, + 40 + ], + "visible_layers": "fffffff_ffffffff", + "zone_display_mode": 0 + }, + "git": { + "repo_password": "", + "repo_type": "", + "repo_username": "", + "ssh_key": "" + }, + "meta": { + "filename": "short_squeeze_through_under_bends.kicad_prl", + "version": 3 + }, + "project": { + "files": [] + } +} diff --git a/tests/single_layer/short_squeeze_through_under_bends/short_squeeze_through_under_bends.kicad_pro b/tests/single_layer/short_squeeze_through_under_bends/short_squeeze_through_under_bends.kicad_pro new file mode 100644 index 0000000..b2fc993 --- /dev/null +++ b/tests/single_layer/short_squeeze_through_under_bends/short_squeeze_through_under_bends.kicad_pro @@ -0,0 +1,596 @@ +{ + "board": { + "3dviewports": [], + "design_settings": { + "defaults": { + "apply_defaults_to_fp_fields": false, + "apply_defaults_to_fp_shapes": false, + "apply_defaults_to_fp_text": false, + "board_outline_line_width": 0.05, + "copper_line_width": 0.2, + "copper_text_italic": false, + "copper_text_size_h": 1.5, + "copper_text_size_v": 1.5, + "copper_text_thickness": 0.3, + "copper_text_upright": false, + "courtyard_line_width": 0.05, + "dimension_precision": 4, + "dimension_units": 3, + "dimensions": { + "arrow_length": 1270000, + "extension_offset": 500000, + "keep_text_aligned": true, + "suppress_zeroes": false, + "text_position": 0, + "units_format": 1 + }, + "fab_line_width": 0.1, + "fab_text_italic": false, + "fab_text_size_h": 1.0, + "fab_text_size_v": 1.0, + "fab_text_thickness": 0.15, + "fab_text_upright": false, + "other_line_width": 0.1, + "other_text_italic": false, + "other_text_size_h": 1.0, + "other_text_size_v": 1.0, + "other_text_thickness": 0.15, + "other_text_upright": false, + "pads": { + "drill": 0.762, + "height": 1.524, + "width": 1.524 + }, + "silk_line_width": 0.1, + "silk_text_italic": false, + "silk_text_size_h": 1.0, + "silk_text_size_v": 1.0, + "silk_text_thickness": 0.1, + "silk_text_upright": false, + "zones": { + "min_clearance": 0.5 + } + }, + "diff_pair_dimensions": [ + { + "gap": 0.0, + "via_gap": 0.0, + "width": 0.0 + } + ], + "drc_exclusions": [], + "meta": { + "version": 2 + }, + "rule_severities": { + "annular_width": "error", + "clearance": "error", + "connection_width": "warning", + "copper_edge_clearance": "error", + "copper_sliver": "warning", + "courtyards_overlap": "error", + "diff_pair_gap_out_of_range": "error", + "diff_pair_uncoupled_length_too_long": "error", + "drill_out_of_range": "error", + "duplicate_footprints": "warning", + "extra_footprint": "warning", + "footprint": "error", + "footprint_symbol_mismatch": "warning", + "footprint_type_mismatch": "ignore", + "hole_clearance": "error", + "hole_near_hole": "error", + "invalid_outline": "error", + "isolated_copper": "warning", + "item_on_disabled_layer": "error", + "items_not_allowed": "error", + "length_out_of_range": "error", + "lib_footprint_issues": "warning", + "lib_footprint_mismatch": "warning", + "malformed_courtyard": "error", + "microvia_drill_out_of_range": "error", + "missing_courtyard": "ignore", + "missing_footprint": "warning", + "net_conflict": "warning", + "npth_inside_courtyard": "ignore", + "padstack": "warning", + "pth_inside_courtyard": "ignore", + "shorting_items": "error", + "silk_edge_clearance": "warning", + "silk_over_copper": "warning", + "silk_overlap": "warning", + "skew_out_of_range": "error", + "solder_mask_bridge": "error", + "starved_thermal": "error", + "text_height": "warning", + "text_thickness": "warning", + "through_hole_pad_without_hole": "error", + "too_many_vias": "error", + "track_dangling": "warning", + "track_width": "error", + "tracks_crossing": "error", + "unconnected_items": "error", + "unresolved_variable": "error", + "via_dangling": "warning", + "zones_intersect": "error" + }, + "rules": { + "max_error": 0.005, + "min_clearance": 0.0, + "min_connection": 0.0, + "min_copper_edge_clearance": 0.5, + "min_hole_clearance": 0.25, + "min_hole_to_hole": 0.25, + "min_microvia_diameter": 0.2, + "min_microvia_drill": 0.1, + "min_resolved_spokes": 2, + "min_silk_clearance": 0.0, + "min_text_height": 0.8, + "min_text_thickness": 0.08, + "min_through_hole_diameter": 0.3, + "min_track_width": 0.0, + "min_via_annular_width": 0.1, + "min_via_diameter": 0.5, + "solder_mask_to_copper_clearance": 0.0, + "use_height_for_length_calcs": true + }, + "teardrop_options": [ + { + "td_onpadsmd": true, + "td_onroundshapesonly": false, + "td_ontrackend": false, + "td_onviapad": true + } + ], + "teardrop_parameters": [ + { + "td_allow_use_two_tracks": true, + "td_curve_segcount": 0, + "td_height_ratio": 1.0, + "td_length_ratio": 0.5, + "td_maxheight": 2.0, + "td_maxlen": 1.0, + "td_on_pad_in_zone": false, + "td_target_name": "td_round_shape", + "td_width_to_size_filter_ratio": 0.9 + }, + { + "td_allow_use_two_tracks": true, + "td_curve_segcount": 0, + "td_height_ratio": 1.0, + "td_length_ratio": 0.5, + "td_maxheight": 2.0, + "td_maxlen": 1.0, + "td_on_pad_in_zone": false, + "td_target_name": "td_rect_shape", + "td_width_to_size_filter_ratio": 0.9 + }, + { + "td_allow_use_two_tracks": true, + "td_curve_segcount": 0, + "td_height_ratio": 1.0, + "td_length_ratio": 0.5, + "td_maxheight": 2.0, + "td_maxlen": 1.0, + "td_on_pad_in_zone": false, + "td_target_name": "td_track_end", + "td_width_to_size_filter_ratio": 0.9 + } + ], + "track_widths": [ + 0.0, + 10.0 + ], + "tuning_pattern_settings": { + "diff_pair_defaults": { + "corner_radius_percentage": 80, + "corner_style": 1, + "max_amplitude": 1.0, + "min_amplitude": 0.2, + "single_sided": false, + "spacing": 1.0 + }, + "diff_pair_skew_defaults": { + "corner_radius_percentage": 80, + "corner_style": 1, + "max_amplitude": 1.0, + "min_amplitude": 0.2, + "single_sided": false, + "spacing": 0.6 + }, + "single_track_defaults": { + "corner_radius_percentage": 80, + "corner_style": 1, + "max_amplitude": 1.0, + "min_amplitude": 0.2, + "single_sided": false, + "spacing": 0.6 + } + }, + "via_dimensions": [ + { + "diameter": 0.0, + "drill": 0.0 + } + ], + "zones_allow_external_fillets": false + }, + "ipc2581": { + "dist": "", + "distpn": "", + "internal_id": "", + "mfg": "", + "mpn": "" + }, + "layer_presets": [], + "viewports": [] + }, + "boards": [], + "cvpcb": { + "equivalence_files": [] + }, + "erc": { + "erc_exclusions": [], + "meta": { + "version": 0 + }, + "pin_map": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 2 + ], + [ + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 2, + 2 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 2 + ], + [ + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 1, + 2 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 2 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2 + ], + [ + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 2 + ], + [ + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 2 + ], + [ + 0, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 2, + 2 + ], + [ + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 2 + ], + [ + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 2 + ], + [ + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2 + ] + ], + "rule_severities": { + "bus_definition_conflict": "error", + "bus_entry_needed": "error", + "bus_to_bus_conflict": "error", + "bus_to_net_conflict": "error", + "conflicting_netclasses": "error", + "different_unit_footprint": "error", + "different_unit_net": "error", + "duplicate_reference": "error", + "duplicate_sheet_names": "error", + "endpoint_off_grid": "warning", + "extra_units": "error", + "global_label_dangling": "warning", + "hier_label_mismatch": "error", + "label_dangling": "error", + "lib_symbol_issues": "warning", + "missing_bidi_pin": "warning", + "missing_input_pin": "warning", + "missing_power_pin": "error", + "missing_unit": "warning", + "multiple_net_names": "warning", + "net_not_bus_member": "warning", + "no_connect_connected": "warning", + "no_connect_dangling": "warning", + "pin_not_connected": "error", + "pin_not_driven": "error", + "pin_to_pin": "warning", + "power_pin_not_driven": "error", + "similar_labels": "warning", + "simulation_model_issue": "ignore", + "unannotated": "error", + "unit_value_mismatch": "error", + "unresolved_variable": "error", + "wire_dangling": "error" + } + }, + "libraries": { + "pinned_footprint_libs": [], + "pinned_symbol_libs": [] + }, + "meta": { + "filename": "short_squeeze_through_under_bends.kicad_pro", + "version": 1 + }, + "net_settings": { + "classes": [ + { + "bus_width": 12, + "clearance": 0.2, + "diff_pair_gap": 0.25, + "diff_pair_via_gap": 0.25, + "diff_pair_width": 0.2, + "line_style": 0, + "microvia_diameter": 0.3, + "microvia_drill": 0.1, + "name": "Default", + "pcb_color": "rgba(0, 0, 0, 0.000)", + "schematic_color": "rgba(0, 0, 0, 0.000)", + "track_width": 0.2, + "via_diameter": 0.6, + "via_drill": 0.3, + "wire_width": 6 + } + ], + "meta": { + "version": 3 + }, + "net_colors": null, + "netclass_assignments": null, + "netclass_patterns": [] + }, + "pcbnew": { + "last_paths": { + "gencad": "", + "idf": "", + "netlist": "", + "plot": "", + "pos_files": "", + "specctra_dsn": "short_squeeze_through_under_bends.dsn", + "step": "", + "svg": "", + "vrml": "" + }, + "page_layout_descr_file": "" + }, + "schematic": { + "annotate_start_num": 0, + "bom_fmt_presets": [], + "bom_fmt_settings": { + "field_delimiter": ",", + "keep_line_breaks": false, + "keep_tabs": false, + "name": "CSV", + "ref_delimiter": ",", + "ref_range_delimiter": "", + "string_delimiter": "\"" + }, + "bom_presets": [], + "bom_settings": { + "exclude_dnp": false, + "fields_ordered": [ + { + "group_by": false, + "label": "Reference", + "name": "Reference", + "show": true + }, + { + "group_by": true, + "label": "Value", + "name": "Value", + "show": true + }, + { + "group_by": false, + "label": "Datasheet", + "name": "Datasheet", + "show": true + }, + { + "group_by": false, + "label": "Footprint", + "name": "Footprint", + "show": true + }, + { + "group_by": false, + "label": "Qty", + "name": "${QUANTITY}", + "show": true + }, + { + "group_by": true, + "label": "DNP", + "name": "${DNP}", + "show": true + } + ], + "filter_string": "", + "group_symbols": true, + "name": "Grouped By Value", + "sort_asc": true, + "sort_field": "Reference" + }, + "connection_grid_size": 50.0, + "drawing": { + "dashed_lines_dash_length_ratio": 12.0, + "dashed_lines_gap_length_ratio": 3.0, + "default_line_thickness": 6.0, + "default_text_size": 50.0, + "field_names": [], + "intersheets_ref_own_page": false, + "intersheets_ref_prefix": "", + "intersheets_ref_short": false, + "intersheets_ref_show": false, + "intersheets_ref_suffix": "", + "junction_size_choice": 3, + "label_size_ratio": 0.375, + "operating_point_overlay_i_precision": 3, + "operating_point_overlay_i_range": "~A", + "operating_point_overlay_v_precision": 3, + "operating_point_overlay_v_range": "~V", + "overbar_offset_ratio": 1.23, + "pin_symbol_size": 25.0, + "text_offset_ratio": 0.15 + }, + "legacy_lib_dir": "", + "legacy_lib_list": [], + "meta": { + "version": 1 + }, + "net_format_name": "", + "page_layout_descr_file": "", + "plot_directory": "", + "spice_current_sheet_as_root": false, + "spice_external_command": "spice \"%I\"", + "spice_model_current_sheet_as_root": true, + "spice_save_all_currents": false, + "spice_save_all_dissipations": false, + "spice_save_all_voltages": false, + "subpart_first_id": 65, + "subpart_id_separator": 0 + }, + "sheets": [ + [ + "365a4be7-e51b-4fc9-9e52-dcd62b2f9d71", + "Root" + ] + ], + "text_variables": {} +} diff --git a/tests/single_layer/short_squeeze_through_under_bends/short_squeeze_through_under_bends.kicad_sch b/tests/single_layer/short_squeeze_through_under_bends/short_squeeze_through_under_bends.kicad_sch new file mode 100644 index 0000000..9c95d1b --- /dev/null +++ b/tests/single_layer/short_squeeze_through_under_bends/short_squeeze_through_under_bends.kicad_sch @@ -0,0 +1,660 @@ +(kicad_sch + (version 20231120) + (generator "eeschema") + (generator_version "8.0") + (uuid "365a4be7-e51b-4fc9-9e52-dcd62b2f9d71") + (paper "A4") + (lib_symbols + (symbol "Connector_Generic:Conn_01x05" + (pin_names + (offset 1.016) hide) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (property "Reference" "J" + (at 0 7.62 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Value" "Conn_01x05" + (at 0 -7.62 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Generic connector, single row, 01x05, script generated (kicad-library-utils/schlib/autogen/connector/)" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "ki_keywords" "connector" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "ki_fp_filters" "Connector*:*_1x??_*" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (symbol "Conn_01x05_1_1" + (rectangle + (start -1.27 -4.953) + (end 0 -5.207) + (stroke + (width 0.1524) + (type default) + ) + (fill + (type none) + ) + ) + (rectangle + (start -1.27 -2.413) + (end 0 -2.667) + (stroke + (width 0.1524) + (type default) + ) + (fill + (type none) + ) + ) + (rectangle + (start -1.27 0.127) + (end 0 -0.127) + (stroke + (width 0.1524) + (type default) + ) + (fill + (type none) + ) + ) + (rectangle + (start -1.27 2.667) + (end 0 2.413) + (stroke + (width 0.1524) + (type default) + ) + (fill + (type none) + ) + ) + (rectangle + (start -1.27 5.207) + (end 0 4.953) + (stroke + (width 0.1524) + (type default) + ) + (fill + (type none) + ) + ) + (rectangle + (start -1.27 6.35) + (end 1.27 -6.35) + (stroke + (width 0.254) + (type default) + ) + (fill + (type background) + ) + ) + (pin passive line + (at -5.08 5.08 0) + (length 3.81) + (name "Pin_1" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "1" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at -5.08 2.54 0) + (length 3.81) + (name "Pin_2" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "2" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at -5.08 0 0) + (length 3.81) + (name "Pin_3" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "3" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at -5.08 -2.54 0) + (length 3.81) + (name "Pin_4" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "4" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at -5.08 -5.08 0) + (length 3.81) + (name "Pin_5" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "5" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + ) + ) + (symbol "power:GND" + (power) + (pin_numbers hide) + (pin_names + (offset 0) hide) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (property "Reference" "#PWR" + (at 0 -6.35 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Value" "GND" + (at 0 -3.81 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Power symbol creates a global label with name \"GND\" , ground" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "ki_keywords" "global power" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (symbol "GND_0_1" + (polyline + (pts + (xy 0 0) (xy 0 -1.27) (xy 1.27 -1.27) (xy 0 -2.54) (xy -1.27 -1.27) (xy 0 -1.27) + ) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + ) + (symbol "GND_1_1" + (pin power_in line + (at 0 0 270) + (length 0) + (name "~" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "1" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + ) + ) + ) + (wire + (pts + (xy 55.88 96.52) (xy 223.52 96.52) + ) + (stroke + (width 0) + (type default) + ) + (uuid "831261ce-9882-42f3-a2ad-b7802688b00a") + ) + (wire + (pts + (xy 55.88 104.14) (xy 223.52 104.14) + ) + (stroke + (width 0) + (type default) + ) + (uuid "acf2277f-273c-4a4f-ab88-55af4127ce98") + ) + (wire + (pts + (xy 55.88 99.06) (xy 223.52 99.06) + ) + (stroke + (width 0) + (type default) + ) + (uuid "c05dffcd-3494-4bda-a6c2-b374fa084db1") + ) + (wire + (pts + (xy 55.88 101.6) (xy 223.52 101.6) + ) + (stroke + (width 0) + (type default) + ) + (uuid "f0c670a6-3d0e-466c-970f-2912b9ed8a2b") + ) + (symbol + (lib_id "power:GND") + (at 55.88 106.68 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (uuid "16f1b096-794e-4913-ba17-9e4f4bcfde64") + (property "Reference" "#PWR01" + (at 55.88 113.03 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Value" "GND" + (at 55.88 111.76 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 55.88 106.68 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "" + (at 55.88 106.68 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Power symbol creates a global label with name \"GND\" , ground" + (at 55.88 106.68 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "f6f8c25a-d1df-4a94-890e-234f45c4e1c4") + ) + (instances + (project "short_squeeze_through_under_bends" + (path "/365a4be7-e51b-4fc9-9e52-dcd62b2f9d71" + (reference "#PWR01") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "Connector_Generic:Conn_01x05") + (at 228.6 101.6 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (uuid "7218f180-0012-4984-a886-e3acbf5cedcc") + (property "Reference" "J2" + (at 228.6 90.17 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Value" "Conn_01x05" + (at 228.6 92.71 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "Connector_JST:JST_EH_B5B-EH-A_1x05_P2.50mm_Vertical" + (at 228.6 101.6 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 228.6 101.6 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Generic connector, single row, 01x05, script generated (kicad-library-utils/schlib/autogen/connector/)" + (at 228.6 101.6 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "2" + (uuid "0236299a-be06-46e7-976b-89cbc985d508") + ) + (pin "1" + (uuid "11efbe80-ba26-4574-abed-914481244a1e") + ) + (pin "4" + (uuid "b87c4f52-98a2-4a58-bdee-2774ae6fd6c2") + ) + (pin "3" + (uuid "e0796e4f-7c1a-41e2-9a0f-71b2f4bc9f1e") + ) + (pin "5" + (uuid "eb4cb17b-e618-4b55-8cf7-2da8e6b7dcf0") + ) + (instances + (project "short_squeeze_through_under_bends" + (path "/365a4be7-e51b-4fc9-9e52-dcd62b2f9d71" + (reference "J2") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "power:GND") + (at 223.52 106.68 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (uuid "79c2a473-9510-4030-9173-16ddb35f15de") + (property "Reference" "#PWR02" + (at 223.52 113.03 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Value" "GND" + (at 223.52 111.76 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 223.52 106.68 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "" + (at 223.52 106.68 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Power symbol creates a global label with name \"GND\" , ground" + (at 223.52 106.68 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "59098d48-08d2-4ad0-8b52-00ffa89d25d8") + ) + (instances + (project "short_squeeze_through_under_bends" + (path "/365a4be7-e51b-4fc9-9e52-dcd62b2f9d71" + (reference "#PWR02") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "Connector_Generic:Conn_01x05") + (at 50.8 101.6 0) + (mirror y) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (fields_autoplaced yes) + (uuid "f9eceafb-1a23-4dee-8206-72db97bb44c1") + (property "Reference" "J1" + (at 50.8 90.17 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Value" "Conn_01x05" + (at 50.8 92.71 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "Connector_JST:JST_EH_B5B-EH-A_1x05_P2.50mm_Vertical" + (at 50.8 101.6 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 50.8 101.6 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Generic connector, single row, 01x05, script generated (kicad-library-utils/schlib/autogen/connector/)" + (at 50.8 101.6 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "2" + (uuid "b9bda249-a3bc-4fd4-a666-9f786f1d3b16") + ) + (pin "1" + (uuid "a60ecc0e-2226-4ba8-bc7e-0c5f2bcd42e7") + ) + (pin "4" + (uuid "0ccf2112-0315-4abc-9e1c-5447a38d2ec0") + ) + (pin "3" + (uuid "cfac65f0-0e56-4971-8ea3-771fc124d442") + ) + (pin "5" + (uuid "0c461f90-d20f-4893-af71-c727db29ea47") + ) + (instances + (project "short_squeeze_through_under_bends" + (path "/365a4be7-e51b-4fc9-9e52-dcd62b2f9d71" + (reference "J1") + (unit 1) + ) + ) + ) + ) + (sheet_instances + (path "/" + (page "1") + ) + ) +) diff --git a/tests/single_layer/smd_non_rectangular_buck_converter/route_all.cmd b/tests/single_layer/smd_non_rectangular_buck_converter/route_all.cmd index 8476e23..f48f407 100644 --- a/tests/single_layer/smd_non_rectangular_buck_converter/route_all.cmd +++ b/tests/single_layer/smd_non_rectangular_buck_converter/route_all.cmd @@ -41,7 +41,7 @@ "router_options": { "routed_band_width": 100.0, "wrap_around_bands": true, - "squeeze_through_under_bands": true + "squeeze_through_under_bends": true } } ] diff --git a/tests/single_layer/tht_3pin_xlr_to_tht_3pin_xlr/autoroute_all.cmd b/tests/single_layer/tht_3pin_xlr_to_tht_3pin_xlr/autoroute_all.cmd index d59931a..14d7f10 100644 --- a/tests/single_layer/tht_3pin_xlr_to_tht_3pin_xlr/autoroute_all.cmd +++ b/tests/single_layer/tht_3pin_xlr_to_tht_3pin_xlr/autoroute_all.cmd @@ -32,7 +32,7 @@ "presort_by_pairwise_detours": false, "router_options": { "wrap_around_bands": true, - "squeeze_through_under_bands": true, + "squeeze_through_under_bends": true, "routed_band_width": 100.0 } } diff --git a/tests/single_layer/tht_diode_bridge_rectifier/autoroute_all.cmd b/tests/single_layer/tht_diode_bridge_rectifier/autoroute_all.cmd index c69a4d7..226de3f 100644 --- a/tests/single_layer/tht_diode_bridge_rectifier/autoroute_all.cmd +++ b/tests/single_layer/tht_diode_bridge_rectifier/autoroute_all.cmd @@ -52,7 +52,7 @@ "presort_by_pairwise_detours": false, "router_options": { "wrap_around_bands": true, - "squeeze_through_under_bands": true, + "squeeze_through_under_bends": true, "routed_band_width": 100.0 } } @@ -74,7 +74,7 @@ "presort_by_pairwise_detours": false, "router_options": { "wrap_around_bands": true, - "squeeze_through_under_bands": true, + "squeeze_through_under_bends": true, "routed_band_width": 100.0 } }