Browse Source
Add additional handling for arc collisions
Add additional handling for arc collisions
Provides nearest point calculation for circles, segments and rects Fixes https://gitlab.com/kicad/code/kicad/-/issues/18203pcb_db
8 changed files with 494 additions and 18 deletions
-
33libs/kimath/include/geometry/shape_arc.h
-
4libs/kimath/include/math/box2.h
-
180libs/kimath/src/geometry/shape_arc.cpp
-
26libs/kimath/src/geometry/shape_collisions.cpp
-
2pcbnew/router/pns_line_placer.cpp
-
248qa/data/pcbnew/issue18203.kicad_pcb
-
18qa/tests/libs/kimath/math/test_box2.cpp
-
1qa/tests/pcbnew/drc/test_drc_regressions.cpp
@ -0,0 +1,248 @@ |
|||
(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 "") |
|||
(footprint "MountingHole:MountingHole_3.2mm_M3_ISO14580_Pad" |
|||
(layer "F.Cu") |
|||
(uuid "7726c890-db15-4ad7-814e-dd8447b43ed2") |
|||
(at 70.3 153.4) |
|||
(descr "Mounting Hole 3.2mm, M3, ISO14580") |
|||
(tags "mounting hole 3.2mm m3 iso14580") |
|||
(property "Reference" "H205" |
|||
(at 0 -3.75 0) |
|||
(layer "F.SilkS") |
|||
(hide yes) |
|||
(uuid "69cccef0-a8a2-48a2-be02-3b276d7072c3") |
|||
(effects |
|||
(font |
|||
(size 1 1) |
|||
(thickness 0.15) |
|||
) |
|||
) |
|||
) |
|||
(property "Value" "M3" |
|||
(at 0 3.75 0) |
|||
(layer "F.Fab") |
|||
(hide yes) |
|||
(uuid "1b7e40fa-418f-45d5-b0d9-c3f086a93cf6") |
|||
(effects |
|||
(font |
|||
(size 1 1) |
|||
(thickness 0.15) |
|||
) |
|||
) |
|||
) |
|||
(property "Footprint" "MountingHole:MountingHole_3.2mm_M3_ISO14580_Pad" |
|||
(at 0 0 0) |
|||
(unlocked yes) |
|||
(layer "F.Fab") |
|||
(hide yes) |
|||
(uuid "cda40eb5-55d9-4984-922a-3cd45a7fcb03") |
|||
(effects |
|||
(font |
|||
(size 1.27 1.27) |
|||
(thickness 0.15) |
|||
) |
|||
) |
|||
) |
|||
(property "Datasheet" "" |
|||
(at 0 0 0) |
|||
(unlocked yes) |
|||
(layer "F.Fab") |
|||
(hide yes) |
|||
(uuid "9612decc-23e6-4abe-a20f-28237de64d36") |
|||
(effects |
|||
(font |
|||
(size 1.27 1.27) |
|||
(thickness 0.15) |
|||
) |
|||
) |
|||
) |
|||
(property "Description" "Mounting Hole with connection" |
|||
(at 0 0 0) |
|||
(unlocked yes) |
|||
(layer "F.Fab") |
|||
(hide yes) |
|||
(uuid "33191b5e-4a3b-4d2f-bdd1-90692f6686a8") |
|||
(effects |
|||
(font |
|||
(size 1.27 1.27) |
|||
(thickness 0.15) |
|||
) |
|||
) |
|||
) |
|||
(attr exclude_from_pos_files exclude_from_bom) |
|||
(fp_circle |
|||
(center 0 0) |
|||
(end 2.75 0) |
|||
(stroke |
|||
(width 0.15) |
|||
(type solid) |
|||
) |
|||
(fill none) |
|||
(layer "Cmts.User") |
|||
(uuid "49f8db1f-3f32-4c10-83f5-25b68933e968") |
|||
) |
|||
(fp_circle |
|||
(center 0 0) |
|||
(end 3 0) |
|||
(stroke |
|||
(width 0.05) |
|||
(type solid) |
|||
) |
|||
(fill none) |
|||
(layer "F.CrtYd") |
|||
(uuid "618b7e68-8d12-46da-9dff-96876e14c0ad") |
|||
) |
|||
(fp_text user "${REFERENCE}" |
|||
(at 0 0 0) |
|||
(layer "F.Fab") |
|||
(uuid "29fb7ad8-c6ed-480b-ade2-449708344f36") |
|||
(effects |
|||
(font |
|||
(size 1 1) |
|||
(thickness 0.15) |
|||
) |
|||
) |
|||
) |
|||
(pad "1" thru_hole circle |
|||
(at 0 0) |
|||
(size 5 5.5) |
|||
(drill 3.2) |
|||
(layers "*.Cu" "*.Mask") |
|||
(remove_unused_layers no) |
|||
(pinfunction "1") |
|||
(pintype "input+no_connect") |
|||
(uuid "d7f69fe4-85ef-4985-a12a-043b32cbe18d") |
|||
) |
|||
) |
|||
(gr_line |
|||
(start 67.3 153.4) |
|||
(end 67.3 140.7) |
|||
(stroke |
|||
(width 0.1) |
|||
(type default) |
|||
) |
|||
(layer "Edge.Cuts") |
|||
(uuid "97b5451b-be12-48cb-97bb-046b12351275") |
|||
) |
|||
(gr_line |
|||
(start 67.3 140.7) |
|||
(end 80.1 140.7) |
|||
(stroke |
|||
(width 0.1) |
|||
(type default) |
|||
) |
|||
(layer "Edge.Cuts") |
|||
(uuid "a45d033f-eded-4908-8b8b-a4856e094f4d") |
|||
) |
|||
(gr_arc |
|||
(start 70.3 156.4) |
|||
(mid 68.178686 155.521314) |
|||
(end 67.3 153.4) |
|||
(stroke |
|||
(width 0.1) |
|||
(type default) |
|||
) |
|||
(layer "Edge.Cuts") |
|||
(uuid "aa375595-1206-4739-8744-4e01967a5e45") |
|||
) |
|||
(gr_line |
|||
(start 80.1 156.4) |
|||
(end 70.3 156.4) |
|||
(stroke |
|||
(width 0.1) |
|||
(type default) |
|||
) |
|||
(layer "Edge.Cuts") |
|||
(uuid "d1e9169a-9d96-4c1d-9c99-bceeb7cce997") |
|||
) |
|||
(gr_line |
|||
(start 80.1 140.7) |
|||
(end 80.1 156.4) |
|||
(stroke |
|||
(width 0.1) |
|||
(type default) |
|||
) |
|||
(layer "Edge.Cuts") |
|||
(uuid "f6a2d3af-1670-4475-9393-9f14f5ab578f") |
|||
) |
|||
) |
Write
Preview
Loading…
Cancel
Save
Reference in new issue