test: add triangle problem

see issue #11 ("Implement ROAR optimizer") for context.
This commit is contained in:
Jaro Habiger 2025-11-05 00:48:09 +01:00
parent cfabfe335a
commit f11d5907db
7 changed files with 1285 additions and 0 deletions

View File

@ -216,3 +216,21 @@ fn autoroute_smd_non_rectangular_buck_converter(variant: &str) {
common::assert_that_all_ratlines_besides_gnd_are_autorouted(&mut autorouter);
//common::assert_number_of_conncomps(&mut autorouter, 16);
}
#[apply(test_master)]
fn autoroute_triangle_problem(variant: &str) {
let path = "tests/single_layer/triangle_problem/triangle_problem.dsn";
let autorouter = common::load_design(&path);
let mut invoker = common::create_invoker_and_assert(autorouter);
common::replay_and_assert_and_report(
&mut invoker,
"tests/single_layer/triangle_problem/route_all.cmd",
variant,
);
let (mut autorouter, ..) = invoker.dissolve();
common::assert_that_all_ratlines_besides_gnd_are_autorouted(&mut autorouter);
}

View File

@ -0,0 +1,58 @@
{
"done": [
{
"MultilayerAutoroute": [
[
{
"pin": "P1_1-1",
"layer": "F.Cu"
},
{
"pin": "P1_2-1",
"layer": "F.Cu"
},
{
"pin": "P2_1-1",
"layer": "F.Cu"
},
{
"pin": "P2_2-1",
"layer": "F.Cu"
},
{
"pin": "P3_1-1",
"layer": "F.Cu"
},
{
"pin": "P3_2-1",
"layer": "F.Cu"
}
],
{
"anterouter": {
"fanout_clearance": 200.0
},
"planar": {
"principal_layer": 0,
"presort_by": "RatlineIntersectionCountAndLength",
"permutate": true,
"router": {
"routed_band_width": 100.0,
"wrap_around_bands": true,
"squeeze_through_under_bends": true
},
"timeout": {
"initial": 1.0,
"progress_bonus": 0.005
}
},
"timeout": {
"initial": 5.0,
"progress_bonus": 0.5
}
}
]
}
],
"undone": []
}

View File

@ -0,0 +1,103 @@
(pcb /Users/anuejn/tmp/triangle_problem/triangle_problem.dsn
(parser
(string_quote ")
(space_in_quoted_tokens on)
(host_cad "KiCad's Pcbnew")
(host_version "9.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 157000 -157000 54500 -157000 54500 -62500 157000 -62500
157000 -157000)
)
(via "Via[0-1]_600:300_um")
(rule
(width 200)
(clearance 200)
(clearance 50 (type smd_smd))
)
)
(placement
(component TestPoint:TestPoint_Pad_D3.0mm
(place P2_1 142500.000000 -99000.000000 front 0.000000 (PN TestPoint_Pad_D3.0mm))
(place P3_2 98000.000000 -93500.000000 front 0.000000 (PN TestPoint_Pad_D3.0mm))
(place P3_1 82500.000000 -146000.000000 front 0.000000 (PN TestPoint_Pad_D3.0mm))
(place P2_2 88000.000000 -111000.000000 front 0.000000 (PN TestPoint_Pad_D3.0mm))
(place P1_2 108000.000000 -111500.000000 front 0.000000 (PN TestPoint_Pad_D3.0mm))
(place P1_1 71500.000000 -72000.000000 front 0.000000 (PN TestPoint_Pad_D3.0mm))
)
)
(library
(image TestPoint:TestPoint_Pad_D3.0mm
(outline (path signal 120 1750 0 1731.35 -254.802 1675.8 -504.173 1584.53 -742.799
1459.5 -965.594 1303.35 -1167.81 1119.43 -1345.13 911.646 -1493.79
684.433 -1610.61 442.633 -1693.1 191.4 -1739.5 -63.914 -1748.83
-317.864 -1720.89 -565.041 -1656.27 -800.174 -1556.35 -1018.25 -1423.26
-1214.63 -1259.83 -1385.12 -1069.55 -1526.09 -856.481 -1634.53 -625.154
-1708.13 -380.503 -1745.33 -127.742 -1745.33 127.742 -1708.13 380.503
-1634.53 625.154 -1526.09 856.481 -1385.12 1069.55 -1214.63 1259.83
-1018.25 1423.26 -800.174 1556.35 -565.041 1656.27 -317.864 1720.89
-63.914 1748.83 191.4 1739.5 442.633 1693.1 684.433 1610.61
911.646 1493.79 1119.43 1345.13 1303.35 1167.81 1459.5 965.594
1584.53 742.799 1675.8 504.173 1731.35 254.802 1750 0))
(outline (path signal 50 2000 0 1980.54 -278.346 1922.52 -551.275 1827.09 -813.473
1696.1 -1059.84 1532.09 -1285.58 1338.26 -1486.29 1118.39 -1658.08
876.742 -1797.59 618.034 -1902.11 347.296 -1969.62 69.799 -1998.78
-209.057 -1989.04 -483.844 -1940.59 -749.213 -1854.37 -1000 -1732.05
-1231.32 -1576.02 -1438.68 -1389.32 -1618.03 -1175.57 -1765.89 -938.943
-1879.38 -684.04 -1956.3 -415.823 -1995.13 -139.513 -1995.13 139.513
-1956.3 415.823 -1879.38 684.04 -1765.89 938.943 -1618.03 1175.57
-1438.68 1389.32 -1231.32 1576.02 -1000 1732.05 -749.213 1854.37
-483.844 1940.59 -209.057 1989.04 69.799 1998.78 347.296 1969.62
618.034 1902.11 876.742 1797.59 1118.39 1658.08 1338.26 1486.29
1532.09 1285.58 1696.1 1059.84 1827.09 813.473 1922.52 551.275
1980.54 278.346 2000 0))
(pin Round[T]Pad_3000.000000_um 1 0 0)
)
(padstack Round[T]Pad_3000.000000_um
(shape (circle F.Cu 3000))
(attach off)
)
(padstack "Via[0-1]_600:300_um"
(shape (circle F.Cu 600))
(shape (circle B.Cu 600))
(attach off)
)
)
(network
(net 1
(pins P1_2-1 P1_1-1)
)
(net 2
(pins P2_1-1 P2_2-1)
)
(net 3
(pins P3_2-1 P3_1-1)
)
(class kicad_default 1 2 3
(circuit
(use_via "Via[0-1]_600:300_um")
)
(rule
(width 200)
(clearance 200)
)
)
)
(wiring
)
)

View File

@ -0,0 +1,678 @@
(kicad_pcb
(version 20241229)
(generator "pcbnew")
(generator_version "9.0")
(general
(thickness 1.6)
(legacy_teardrops no)
)
(paper "A4")
(layers
(0 "F.Cu" signal)
(2 "B.Cu" signal)
(9 "F.Adhes" user "F.Adhesive")
(11 "B.Adhes" user "B.Adhesive")
(13 "F.Paste" user)
(15 "B.Paste" user)
(5 "F.SilkS" user "F.Silkscreen")
(7 "B.SilkS" user "B.Silkscreen")
(1 "F.Mask" user)
(3 "B.Mask" user)
(17 "Dwgs.User" user "User.Drawings")
(19 "Cmts.User" user "User.Comments")
(21 "Eco1.User" user "User.Eco1")
(23 "Eco2.User" user "User.Eco2")
(25 "Edge.Cuts" user)
(27 "Margin" user)
(31 "F.CrtYd" user "F.Courtyard")
(29 "B.CrtYd" user "B.Courtyard")
(35 "F.Fab" user)
(33 "B.Fab" user)
(39 "User.1" user)
(41 "User.2" user)
(43 "User.3" user)
(45 "User.4" user)
)
(setup
(pad_to_mask_clearance 0)
(allow_soldermask_bridges_in_footprints no)
(tenting front back)
(pcbplotparams
(layerselection 0x00000000_00000000_55555555_5755f5ff)
(plot_on_all_layers_selection 0x00000000_00000000_00000000_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)
(mode 1)
(useauxorigin no)
(hpglpennumber 1)
(hpglpenspeed 20)
(hpglpendiameter 15.000000)
(pdf_front_fp_property_popups yes)
(pdf_back_fp_property_popups yes)
(pdf_metadata yes)
(pdf_single_document no)
(dxfpolygonmode yes)
(dxfimperialunits yes)
(dxfusepcbnewfont yes)
(psnegative no)
(psa4output no)
(plot_black_and_white yes)
(sketchpadsonfab no)
(plotpadnumbers no)
(hidednponfab no)
(sketchdnponfab yes)
(crossoutdnponfab yes)
(subtractmaskfromsilk no)
(outputformat 1)
(mirror no)
(drillshape 1)
(scaleselection 1)
(outputdirectory "")
)
)
(net 0 "")
(net 1 "1")
(net 2 "2")
(net 3 "3")
(footprint "TestPoint:TestPoint_Pad_D3.0mm"
(layer "F.Cu")
(uuid "8565a1b2-df7f-4d3e-9a66-88360bf3763b")
(at 98 93.5)
(descr "SMD pad as test Point, diameter 3.0mm")
(tags "test point SMD pad")
(property "Reference" "P3_2"
(at 0 -2.398 0)
(layer "F.SilkS")
(uuid "796a082e-b614-4f3f-a04c-963eec4c0c01")
(effects
(font
(size 1 1)
(thickness 0.15)
)
)
)
(property "Value" "TestPoint_Pad_D3.0mm"
(at 0 2.55 0)
(layer "F.Fab")
(uuid "fd13e72e-29ff-4e67-8f49-d52dc168c441")
(effects
(font
(size 1 1)
(thickness 0.15)
)
)
)
(property "Datasheet" ""
(at 0 0 0)
(unlocked yes)
(layer "F.Fab")
(hide yes)
(uuid "881ccf59-51de-4353-b8f7-d7e7065fb84c")
(effects
(font
(size 1.27 1.27)
(thickness 0.15)
)
)
)
(property "Description" ""
(at 0 0 0)
(unlocked yes)
(layer "F.Fab")
(hide yes)
(uuid "f2615013-8727-4920-b0fb-9f0aa57b102a")
(effects
(font
(size 1.27 1.27)
(thickness 0.15)
)
)
)
(attr exclude_from_pos_files exclude_from_bom)
(fp_circle
(center 0 0)
(end 0 1.75)
(stroke
(width 0.12)
(type solid)
)
(fill no)
(layer "F.SilkS")
(uuid "215192c0-95e2-4a22-a7c3-c76140a37989")
)
(fp_circle
(center 0 0)
(end 2 0)
(stroke
(width 0.05)
(type solid)
)
(fill no)
(layer "F.CrtYd")
(uuid "69ceda7c-9f96-4176-a897-fb2a9b0a1c5b")
)
(fp_text user "${REFERENCE}"
(at 0 -2.4 0)
(layer "F.Fab")
(uuid "36664cef-3abf-4e53-a36c-13afc06a5001")
(effects
(font
(size 1 1)
(thickness 0.15)
)
)
)
(pad "1" smd circle
(at 0 0)
(size 3 3)
(layers "F.Cu" "F.Mask")
(net 3 "3")
(uuid "ffd43813-75c7-4b7a-ac98-8cb2cfd8d83f")
)
(embedded_fonts no)
)
(footprint "TestPoint:TestPoint_Pad_D3.0mm"
(layer "F.Cu")
(uuid "9b24c104-c357-4c81-85a1-8a313c58996a")
(at 71.5 72)
(descr "SMD pad as test Point, diameter 3.0mm")
(tags "test point SMD pad")
(property "Reference" "P1_1"
(at 0 -2.398 0)
(layer "F.SilkS")
(uuid "407a3d30-bcf0-49c8-afb8-3b1442658231")
(effects
(font
(size 1 1)
(thickness 0.15)
)
)
)
(property "Value" "TestPoint_Pad_D3.0mm"
(at 0 2.55 0)
(layer "F.Fab")
(uuid "e6def67f-a46f-4547-96eb-d20ba5a06cd5")
(effects
(font
(size 1 1)
(thickness 0.15)
)
)
)
(property "Datasheet" ""
(at 0 0 0)
(unlocked yes)
(layer "F.Fab")
(hide yes)
(uuid "d5cdb3fa-bd1e-44c3-9b16-7ec50f23ff59")
(effects
(font
(size 1.27 1.27)
(thickness 0.15)
)
)
)
(property "Description" ""
(at 0 0 0)
(unlocked yes)
(layer "F.Fab")
(hide yes)
(uuid "08c8853e-40ce-4af8-8c48-f6822c5d6c7a")
(effects
(font
(size 1.27 1.27)
(thickness 0.15)
)
)
)
(attr exclude_from_pos_files exclude_from_bom)
(fp_circle
(center 0 0)
(end 0 1.75)
(stroke
(width 0.12)
(type solid)
)
(fill no)
(layer "F.SilkS")
(uuid "773c8d2b-dc6f-4da3-9f61-d2cbb5b16887")
)
(fp_circle
(center 0 0)
(end 2 0)
(stroke
(width 0.05)
(type solid)
)
(fill no)
(layer "F.CrtYd")
(uuid "cc355675-70af-43ad-a393-1c6ebc84b429")
)
(fp_text user "${REFERENCE}"
(at 0 -2.4 0)
(layer "F.Fab")
(uuid "b3213696-779d-45b3-b210-c280b1e7193d")
(effects
(font
(size 1 1)
(thickness 0.15)
)
)
)
(pad "1" smd circle
(at 0 0)
(size 3 3)
(layers "F.Cu" "F.Mask")
(net 1 "1")
(uuid "754f14be-6917-48ac-a5d0-242b3faac77b")
)
(embedded_fonts no)
)
(footprint "TestPoint:TestPoint_Pad_D3.0mm"
(layer "F.Cu")
(uuid "a554a487-1d76-47c5-b212-b5f5222aecfc")
(at 88 111)
(descr "SMD pad as test Point, diameter 3.0mm")
(tags "test point SMD pad")
(property "Reference" "P2_2"
(at 0 -2.398 0)
(layer "F.SilkS")
(uuid "23a253cc-5f17-4ca0-941d-beb9e4fb7d9e")
(effects
(font
(size 1 1)
(thickness 0.15)
)
)
)
(property "Value" "TestPoint_Pad_D3.0mm"
(at 0 2.55 0)
(layer "F.Fab")
(uuid "c5481baf-8fb2-4bdc-858e-a5212d664d68")
(effects
(font
(size 1 1)
(thickness 0.15)
)
)
)
(property "Datasheet" ""
(at 0 0 0)
(unlocked yes)
(layer "F.Fab")
(hide yes)
(uuid "6436cffb-6c39-494a-9cc1-3b41ad84f693")
(effects
(font
(size 1.27 1.27)
(thickness 0.15)
)
)
)
(property "Description" ""
(at 0 0 0)
(unlocked yes)
(layer "F.Fab")
(hide yes)
(uuid "227ad11e-120d-4042-803b-322e553d1ed3")
(effects
(font
(size 1.27 1.27)
(thickness 0.15)
)
)
)
(attr exclude_from_pos_files exclude_from_bom)
(fp_circle
(center 0 0)
(end 0 1.75)
(stroke
(width 0.12)
(type solid)
)
(fill no)
(layer "F.SilkS")
(uuid "08be701b-c13b-4419-8eb7-04ff76e390b0")
)
(fp_circle
(center 0 0)
(end 2 0)
(stroke
(width 0.05)
(type solid)
)
(fill no)
(layer "F.CrtYd")
(uuid "c40e51f3-d6a1-4a6e-9c97-057737332c7d")
)
(fp_text user "${REFERENCE}"
(at 0 -2.4 0)
(layer "F.Fab")
(uuid "9b9fdda7-fb1a-4319-991b-72e265022eb8")
(effects
(font
(size 1 1)
(thickness 0.15)
)
)
)
(pad "1" smd circle
(at 0 0)
(size 3 3)
(layers "F.Cu" "F.Mask")
(net 2 "2")
(uuid "61f0a3ab-e9e8-4643-8f75-41da3e106857")
)
(embedded_fonts no)
)
(footprint "TestPoint:TestPoint_Pad_D3.0mm"
(layer "F.Cu")
(uuid "d61d7de3-3bbf-4dd7-8340-4b1ea14ed5f2")
(at 108 111.5)
(descr "SMD pad as test Point, diameter 3.0mm")
(tags "test point SMD pad")
(property "Reference" "P1_2"
(at 0 -2.398 0)
(layer "F.SilkS")
(uuid "5751fb20-7658-48aa-b5ba-7083865eca6c")
(effects
(font
(size 1 1)
(thickness 0.15)
)
)
)
(property "Value" "TestPoint_Pad_D3.0mm"
(at 0 2.55 0)
(layer "F.Fab")
(uuid "349ba265-f2fc-4951-8208-e8d24be62dc4")
(effects
(font
(size 1 1)
(thickness 0.15)
)
)
)
(property "Datasheet" ""
(at 0 0 0)
(unlocked yes)
(layer "F.Fab")
(hide yes)
(uuid "4f9a1fbe-359d-48a6-bf2a-724e17cc0fbc")
(effects
(font
(size 1.27 1.27)
(thickness 0.15)
)
)
)
(property "Description" ""
(at 0 0 0)
(unlocked yes)
(layer "F.Fab")
(hide yes)
(uuid "29bb1467-ef18-4c89-ad46-6fcdf99b66ee")
(effects
(font
(size 1.27 1.27)
(thickness 0.15)
)
)
)
(attr exclude_from_pos_files exclude_from_bom)
(fp_circle
(center 0 0)
(end 0 1.75)
(stroke
(width 0.12)
(type solid)
)
(fill no)
(layer "F.SilkS")
(uuid "a92c5460-a4d7-4461-914b-4aa482b80fd9")
)
(fp_circle
(center 0 0)
(end 2 0)
(stroke
(width 0.05)
(type solid)
)
(fill no)
(layer "F.CrtYd")
(uuid "7ed552cd-b77d-40b8-a9b6-5884d74146a3")
)
(fp_text user "${REFERENCE}"
(at 0 -2.4 0)
(layer "F.Fab")
(uuid "beef3a52-d324-4167-b2f4-ba785852bebb")
(effects
(font
(size 1 1)
(thickness 0.15)
)
)
)
(pad "1" smd circle
(at 0 0)
(size 3 3)
(layers "F.Cu" "F.Mask")
(net 1 "1")
(uuid "cd451c2a-88e9-41b8-a16f-90b306acfcba")
)
(embedded_fonts no)
)
(footprint "TestPoint:TestPoint_Pad_D3.0mm"
(layer "F.Cu")
(uuid "defe0374-2fb4-4693-bd31-fd54f5283695")
(at 82.5 146)
(descr "SMD pad as test Point, diameter 3.0mm")
(tags "test point SMD pad")
(property "Reference" "P3_1"
(at 0 -2.398 0)
(layer "F.SilkS")
(uuid "45b9dca3-dd03-4cd4-8a62-a18e93abcd65")
(effects
(font
(size 1 1)
(thickness 0.15)
)
)
)
(property "Value" "TestPoint_Pad_D3.0mm"
(at 0 2.55 0)
(layer "F.Fab")
(uuid "b2c1ee3c-3dac-4cec-bff9-456a6cde42a5")
(effects
(font
(size 1 1)
(thickness 0.15)
)
)
)
(property "Datasheet" ""
(at 0 0 0)
(unlocked yes)
(layer "F.Fab")
(hide yes)
(uuid "25b4b2fc-93c4-4c92-99a4-bd3bce0ed412")
(effects
(font
(size 1.27 1.27)
(thickness 0.15)
)
)
)
(property "Description" ""
(at 0 0 0)
(unlocked yes)
(layer "F.Fab")
(hide yes)
(uuid "d4c9f9d0-bb61-43f1-8541-f6ab5fc2a6d7")
(effects
(font
(size 1.27 1.27)
(thickness 0.15)
)
)
)
(attr exclude_from_pos_files exclude_from_bom)
(fp_circle
(center 0 0)
(end 0 1.75)
(stroke
(width 0.12)
(type solid)
)
(fill no)
(layer "F.SilkS")
(uuid "98f343e5-68a2-4a76-ba55-5bf98779cf7f")
)
(fp_circle
(center 0 0)
(end 2 0)
(stroke
(width 0.05)
(type solid)
)
(fill no)
(layer "F.CrtYd")
(uuid "bd6537a1-3d81-45db-8a44-bb8114dc7b1b")
)
(fp_text user "${REFERENCE}"
(at 0 -2.4 0)
(layer "F.Fab")
(uuid "0dce2e94-8ddc-4f7c-b8a4-159d0616fa68")
(effects
(font
(size 1 1)
(thickness 0.15)
)
)
)
(pad "1" smd circle
(at 0 0)
(size 3 3)
(layers "F.Cu" "F.Mask")
(net 3 "3")
(uuid "ed665788-cc7c-4295-9d45-e3477a3d6e3b")
)
(embedded_fonts no)
)
(footprint "TestPoint:TestPoint_Pad_D3.0mm"
(layer "F.Cu")
(uuid "ea514017-d99e-435c-97ce-ae186741e2a8")
(at 142.5 99)
(descr "SMD pad as test Point, diameter 3.0mm")
(tags "test point SMD pad")
(property "Reference" "P2_1"
(at 0 -2.398 0)
(layer "F.SilkS")
(uuid "8943f486-d75b-41d0-9853-e12abee5cd7c")
(effects
(font
(size 1 1)
(thickness 0.15)
)
)
)
(property "Value" "TestPoint_Pad_D3.0mm"
(at 0 2.55 0)
(layer "F.Fab")
(uuid "1e6fd845-2e14-4b6e-9a78-8161257f407d")
(effects
(font
(size 1 1)
(thickness 0.15)
)
)
)
(property "Datasheet" ""
(at 0 0 0)
(unlocked yes)
(layer "F.Fab")
(hide yes)
(uuid "69319d0e-24cf-49aa-b47a-0c8f266e7453")
(effects
(font
(size 1.27 1.27)
(thickness 0.15)
)
)
)
(property "Description" ""
(at 0 0 0)
(unlocked yes)
(layer "F.Fab")
(hide yes)
(uuid "b7bcb4cc-a111-4414-aa96-70c626cede93")
(effects
(font
(size 1.27 1.27)
(thickness 0.15)
)
)
)
(attr exclude_from_pos_files exclude_from_bom)
(fp_circle
(center 0 0)
(end 0 1.75)
(stroke
(width 0.12)
(type solid)
)
(fill no)
(layer "F.SilkS")
(uuid "53755e03-a30a-42cf-8ac4-7c2e15a5ea4a")
)
(fp_circle
(center 0 0)
(end 2 0)
(stroke
(width 0.05)
(type solid)
)
(fill no)
(layer "F.CrtYd")
(uuid "aa1823d8-adcd-4596-8419-2a998287aa1f")
)
(fp_text user "${REFERENCE}"
(at 0 -2.4 0)
(layer "F.Fab")
(uuid "55d0f963-3b48-4dbe-b9e4-0c3ab08b00e8")
(effects
(font
(size 1 1)
(thickness 0.15)
)
)
)
(pad "1" smd circle
(at 0 0)
(size 3 3)
(layers "F.Cu" "F.Mask")
(net 2 "2")
(uuid "75ce5bdd-4ecc-485c-aead-a82e37f7e4de")
)
(embedded_fonts no)
)
(gr_rect
(start 54.5 62.5)
(end 157 157)
(stroke
(width 0.05)
(type default)
)
(fill no)
(layer "Edge.Cuts")
(uuid "73b9c64d-ec9a-4db8-8606-fc815680e47d")
)
(embedded_fonts no)
)

View File

@ -0,0 +1,130 @@
{
"board": {
"active_layer": 25,
"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,
"shapes": 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": [
"vias",
"footprint_text",
"footprint_anchors",
"ratsnest",
"grid",
"footprints_front",
"footprints_back",
"footprint_values",
"footprint_references",
"tracks",
"drc_errors",
"drawing_sheet",
"bitmaps",
"pads",
"zones",
"drc_warnings",
"locked_item_shadows",
"conflict_shadows",
"shapes"
],
"visible_layers": "ffffffff_ffffffff_ffffffff_ffffffff",
"zone_display_mode": 0
},
"git": {
"repo_type": "",
"repo_username": "",
"ssh_key": ""
},
"meta": {
"filename": "triangle_problem.kicad_prl",
"version": 5
},
"net_inspector_panel": {
"col_hidden": [
false,
false,
false,
false,
false,
false,
false,
false,
false,
false
],
"col_order": [
0,
1,
2,
3,
4,
5,
6,
7,
8,
9
],
"col_widths": [
156,
141,
103,
71,
103,
103,
103,
74,
103,
103
],
"custom_group_rules": [],
"expanded_rows": [],
"filter_by_net_name": true,
"filter_by_netclass": true,
"filter_text": "",
"group_by_constraint": false,
"group_by_netclass": false,
"show_unconnected_nets": false,
"show_zero_pad_nets": false,
"sort_ascending": true,
"sorting_column": 0
},
"open_jobsets": [],
"project": {
"files": []
},
"schematic": {
"selection_filter": {
"graphics": true,
"images": true,
"labels": true,
"lockedItems": false,
"otherItems": true,
"pins": true,
"symbols": true,
"text": true,
"wires": true
}
}
}

View File

@ -0,0 +1,284 @@
{
"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": true,
"text_position": 0,
"units_format": 0
},
"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.0,
"height": 3.0,
"width": 3.0
},
"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": [],
"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",
"creepage": "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_filters_mismatch": "ignore",
"footprint_symbol_mismatch": "warning",
"footprint_type_mismatch": "ignore",
"hole_clearance": "error",
"hole_to_hole": "warning",
"holes_co_located": "warning",
"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",
"mirrored_text_on_front_layer": "warning",
"missing_courtyard": "ignore",
"missing_footprint": "warning",
"net_conflict": "warning",
"nonmirrored_text_on_back_layer": "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_on_edge_cuts": "error",
"text_thickness": "warning",
"through_hole_pad_without_hole": "error",
"too_many_vias": "error",
"track_angle": "error",
"track_dangling": "warning",
"track_segment_length": "error",
"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_groove_width": 0.0,
"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_onpthpad": true,
"td_onroundshapesonly": false,
"td_onsmdpad": true,
"td_ontrackend": false,
"td_onvia": 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": [],
"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": [],
"zones_allow_external_fillets": false
},
"ipc2581": {
"dist": "",
"distpn": "",
"internal_id": "",
"mfg": "",
"mpn": ""
},
"layer_pairs": [],
"layer_presets": [],
"viewports": []
},
"boards": [],
"cvpcb": {
"equivalence_files": []
},
"libraries": {
"pinned_footprint_libs": [],
"pinned_symbol_libs": []
},
"meta": {
"filename": "triangle_problem.kicad_pro",
"version": 3
},
"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)",
"priority": 2147483647,
"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": 4
},
"net_colors": null,
"netclass_assignments": null,
"netclass_patterns": []
},
"pcbnew": {
"last_paths": {
"gencad": "",
"idf": "",
"netlist": "",
"plot": "",
"pos_files": "",
"specctra_dsn": "triangle_problem.dsn",
"step": "",
"svg": "",
"vrml": ""
},
"page_layout_descr_file": ""
},
"schematic": {
"legacy_lib_dir": "",
"legacy_lib_list": []
},
"sheets": [],
"text_variables": {}
}

View File

@ -0,0 +1,14 @@
(kicad_sch
(version 20250114)
(generator "eeschema")
(generator_version "9.0")
(uuid 5462d403-87ca-4987-82b7-193435d95a22)
(paper "A4")
(lib_symbols)
(sheet_instances
(path "/"
(page "1")
)
)
(embedded_fonts no)
)