Index: work/bug_files/TODO/drc1/A.rp =================================================================== --- work/bug_files/TODO/drc1/A.rp (nonexistent) +++ work/bug_files/TODO/drc1/A.rp (revision 38645) @@ -0,0 +1,970 @@ +ha:pcb-rnd-board-v9 { + ha:netlists { + li:input { + ha:unnamed_net36 { + ha:attributes { + style=(unknown) + } + li:conn { Q1-5; Q1-6; Q1-7; Q1-8; } + } + ha:unnamed_net35 { + ha:attributes { + style=(unknown) + } + li:conn { C1-1; Q1-1; Q1-2; Q1-3; } + } + ha:unnamed_net34 { + ha:attributes { + style=(unknown) + } + li:conn { Q1-4; } + } + ha:GND { + ha:attributes { + style=(unknown) + } + li:conn { C1-2; } + } + } + } + ha:meta { + ha:size { + y2 = 304.0mil + x1 = 0.0 + x2 = 405.0mil + thermal_scale = 0.500000 + y1 = 0.0 + } + board_name = DRC TOO CLOSE + ha:grid { + spacing = 0.01mm + offs_x = 0.0 + offs_y = 0.0 + } + } + ha:layer_stack { + li:groups { + ha:0 { + ha:type { + top = 1 + paste = 1 + } + li:layers { + 8 + } + name = top_paste + } + ha:1 { + ha:type { + silk = 1 + top = 1 + } + li:layers { + 13 + } + name = top_silk + } + ha:2 { + ha:type { + top = 1 + mask = 1 + } + li:layers { + 10 + } + name = top_mask + } + ha:3 { + ha:type { + copper = 1 + top = 1 + } + li:layers { + 0 + } + name = top_copper + } + ha:4 { + ha:type { + substrate = 1 + intern = 1 + } + li:layers { + } + name = implicit_subst + } + ha:5 { + ha:type { + copper = 1 + intern = 1 + } + li:layers { + 1 + } + name = Intern + } + ha:6 { + ha:type { + substrate = 1 + intern = 1 + } + li:layers { + } + name = implicit_subst + } + ha:7 { + ha:type { + copper = 1 + intern = 1 + } + li:layers { + 2 + } + name = Intern + } + ha:8 { + ha:type { + substrate = 1 + intern = 1 + } + li:layers { + } + name = implicit_subst + } + ha:9 { + ha:type { + copper = 1 + intern = 1 + } + li:layers { + 3 + } + name = Intern + } + ha:10 { + ha:type { + substrate = 1 + intern = 1 + } + li:layers { + } + name = implicit_subst + } + ha:11 { + ha:type { + copper = 1 + intern = 1 + } + li:layers { + 4 + } + name = Intern + } + ha:12 { + ha:type { + substrate = 1 + intern = 1 + } + li:layers { + } + name = implicit_subst + } + ha:13 { + purpose = uroute + ha:type { + boundary = 1 + } + li:layers { + 6 + } + name = global_outline + } + ha:14 { + ha:type { + copper = 1 + intern = 1 + } + li:layers { + 7 + } + name = Intern + } + ha:15 { + ha:type { + substrate = 1 + intern = 1 + } + li:layers { + } + name = implicit_subst + } + ha:16 { + ha:type { + bottom = 1 + copper = 1 + } + li:layers { + 5 + } + name = bottom_copper + } + ha:17 { + ha:type { + bottom = 1 + mask = 1 + } + li:layers { + 11 + } + name = bottom_mask + } + ha:18 { + ha:type { + silk = 1 + bottom = 1 + } + li:layers { + 12 + } + name = bottom_silk + } + ha:19 { + ha:type { + bottom = 1 + paste = 1 + } + li:layers { + 9 + } + name = bottom_paste + } + } + } + ha:attributes { + {PCB::loader} = geda/pcb - readable units + {PCB::conf::editor/line_refraction} = 0 + {PCB::grid::size} = 0.10mil + {PCB::grid::unit} = mil + {PCB::conf::editor/grid} = 1.00 mil + {PCB::conf::editor/grids_idx} = 1 + } + li:styles { + ha:Signal { + via_proto = 0 + thickness = 0.6mm + text_thick = 0.0 + text_scale = 0 + clearance = 10.0mil + } + ha:Power { + via_proto = 1 + thickness = 19.0mil + text_thick = 0.0 + text_scale = 0 + clearance = 10.0mil + } + ha:Fat { + via_proto = 2 + thickness = 28.0mil + text_thick = 0.0 + text_scale = 0 + clearance = 10.0mil + } + ha:Skinny { + via_proto = 3 + thickness = 16.0mil + text_thick = 0.0 + text_scale = 0 + clearance = 10.0mil + } + } + li:pcb-rnd-conf-v1 { + ha:overwrite { + ha:plugins { + ha:mincut { + enable = false + } + } + ha:editor { + live_routing = false + snap_pin = false + grid = 10.00 um + show_number = false + unique_names = true + all_direction_lines = 0 + auto_drc = false + orthogonal_moves = false + local_ref = false + hide_names = false + check_planes = false + name_on_pcb = true + swap_start_direction = false + clear_line = true + line_refraction = 0 + show_drc = false + grid_unit = mm + grids_idx = 7 + only_names = false + full_poly = false + lock_names = false + thin_draw_poly = false + thin_draw = false + rubber_band_mode = false + description = false + } + ha:design { + line_thickness = 600.00 um + via_proto = 0 + text_font_id = 0 + text_scale = 100 + text_thickness = 0 + clearance = 10.00 mil + ha:drc { + min_copper_clearance = 0.6 mm + } + } + } + } + ha:data { + li:padstack_prototypes { + ha:ps_proto_v6.0 { + htop = 0 + hdia = 12.0mil + li:shape { + ha:ps_shape_v4 { + clearance = 0.0 + ha:ps_circ { + x = 0.0 + y = 0.0 + dia = 28.0mil + } + ha:layer_mask { + copper = 1 + top = 1 + } + ha:combining { + } + } + ha:ps_shape_v4 { + clearance = 0.0 + ha:ps_circ { + x = 0.0 + y = 0.0 + dia = 28.0mil + } + ha:layer_mask { + bottom = 1 + copper = 1 + } + ha:combining { + } + } + ha:ps_shape_v4 { + clearance = 0.0 + ha:ps_circ { + x = 0.0 + y = 0.0 + dia = 28.0mil + } + ha:layer_mask { + copper = 1 + intern = 1 + } + ha:combining { + } + } + } + hbottom = 0 + hplated = 1 + } + ha:ps_proto_v6.1 { + htop = 0 + hdia = 16.0mil + li:shape { + ha:ps_shape_v4 { + clearance = 0.0 + ha:ps_circ { + x = 0.0 + y = 0.0 + dia = 32.0mil + } + ha:layer_mask { + copper = 1 + top = 1 + } + ha:combining { + } + } + ha:ps_shape_v4 { + clearance = 0.0 + ha:ps_circ { + x = 0.0 + y = 0.0 + dia = 32.0mil + } + ha:layer_mask { + bottom = 1 + copper = 1 + } + ha:combining { + } + } + ha:ps_shape_v4 { + clearance = 0.0 + ha:ps_circ { + x = 0.0 + y = 0.0 + dia = 32.0mil + } + ha:layer_mask { + copper = 1 + intern = 1 + } + ha:combining { + } + } + } + hbottom = 0 + hplated = 1 + } + ha:ps_proto_v6.2 { + htop = 0 + hdia = 35.0mil + li:shape { + ha:ps_shape_v4 { + clearance = 0.0 + ha:ps_circ { + x = 0.0 + y = 0.0 + dia = 60.0mil + } + ha:layer_mask { + copper = 1 + top = 1 + } + ha:combining { + } + } + ha:ps_shape_v4 { + clearance = 0.0 + ha:ps_circ { + x = 0.0 + y = 0.0 + dia = 60.0mil + } + ha:layer_mask { + bottom = 1 + copper = 1 + } + ha:combining { + } + } + ha:ps_shape_v4 { + clearance = 0.0 + ha:ps_circ { + x = 0.0 + y = 0.0 + dia = 60.0mil + } + ha:layer_mask { + copper = 1 + intern = 1 + } + ha:combining { + } + } + } + hbottom = 0 + hplated = 1 + } + ha:ps_proto_v6.3 { + htop = 0 + hdia = 10.0mil + li:shape { + ha:ps_shape_v4 { + clearance = 0.0 + ha:ps_circ { + x = 0.0 + y = 0.0 + dia = 26.0mil + } + ha:layer_mask { + copper = 1 + top = 1 + } + ha:combining { + } + } + ha:ps_shape_v4 { + clearance = 0.0 + ha:ps_circ { + x = 0.0 + y = 0.0 + dia = 26.0mil + } + ha:layer_mask { + bottom = 1 + copper = 1 + } + ha:combining { + } + } + ha:ps_shape_v4 { + clearance = 0.0 + ha:ps_circ { + x = 0.0 + y = 0.0 + dia = 26.0mil + } + ha:layer_mask { + copper = 1 + intern = 1 + } + ha:combining { + } + } + } + hbottom = 0 + hplated = 1 + } + } + li:objects { + ha:subc.5 { + ha:attributes { + value = 4.7uF + footprint = CAPC3225N + refdes = C1 + } + ha:data { + li:padstack_prototypes { + ha:ps_proto_v6.0 { + htop = 0 + hdia = 0.0 + li:shape { + ha:ps_shape_v4 { + clearance = 0.0 + li:ps_poly { + -53.14mil + -25.59mil + -53.14mil + 25.59mil + 53.14mil + 25.59mil + 53.14mil + -25.59mil + } + ha:layer_mask { + copper = 1 + top = 1 + } + ha:combining { + } + } + ha:ps_shape_v4 { + clearance = 0.0 + li:ps_poly { + -56.14mil + -28.59mil + -56.14mil + 28.59mil + 56.14mil + 28.59mil + 56.14mil + -28.59mil + } + ha:layer_mask { + top = 1 + mask = 1 + } + ha:combining { + sub = 1 + auto = 1 + } + } + ha:ps_shape_v4 { + clearance = 0.0 + li:ps_poly { + -53.14mil + -25.59mil + -53.14mil + 25.59mil + 53.14mil + 25.59mil + 53.14mil + -25.59mil + } + ha:layer_mask { + top = 1 + paste = 1 + } + ha:combining { + auto = 1 + } + } + } + hbottom = 0 + hplated = 0 + } + + ha:ps_proto_v6.1 { + hdia=0.0; hplated=1; htop=0; hbottom=0; + li:shape { + + ha:ps_shape_v4 { + ha:ps_circ { x=0.0; y=0.0; dia=0.2mm; } + ha:combining { } + ha:layer_mask { + copper = 1 + top = 1 + } + clearance=0.0 + } + + ha:ps_shape_v4 { + ha:ps_circ { x=0.0; y=0.0; dia=0.3524mm; } + ha:combining { sub=1; auto=1; } + ha:layer_mask { + top = 1 + mask = 1 + } + clearance=0.0 + } + + ha:ps_shape_v4 { + ha:ps_circ { x=0.0; y=0.0; dia=0.2mm; } + ha:combining { auto=1; } + ha:layer_mask { + top = 1 + paste = 1 + } + clearance=0.0 + } + } + } + + ha:ps_proto_v6.2 { + hdia=0.0; hplated=1; htop=0; hbottom=0; + li:shape { + + ha:ps_shape_v4 { + ha:ps_circ { x=0.0; y=0.0; dia=1.0mm; } + ha:combining { } + ha:layer_mask { + copper = 1 + top = 1 + } + clearance=0.0 + } + + ha:ps_shape_v4 { + ha:ps_circ { x=0.0; y=0.0; dia=1.1524mm; } + ha:combining { sub=1; auto=1; } + ha:layer_mask { + top = 1 + mask = 1 + } + clearance=0.0 + } + + ha:ps_shape_v4 { + ha:ps_circ { x=0.0; y=0.0; dia=1.0mm; } + ha:combining { auto=1; } + ha:layer_mask { + top = 1 + paste = 1 + } + clearance=0.0 + } + } + } + } + li:objects { + ha:padstack_ref.7 { + smirror = 0 + ha:attributes { + term = 1 + name = 1 + } + proto = 2 + xmirror = 0 + x = 264.0mil + rot = 0.000000 + y = 244.05mil + li:thermal { + } + ha:flags { + clearline = 1 + } + clearance = 0.0 + } + ha:padstack_ref.8 { + smirror = 0 + ha:attributes { + term = 2 + name = 2 + } + proto = 2 + xmirror = 0 + x = 264.0mil + rot = 0.000000 + y = 125.95mil + li:thermal { + li:0 { + on + solid + noshape + } + } + ha:flags { + clearline = 1 + } + clearance = 0.0 + } + } + li:layers { + ha:top-silk { + lid = 0 + ha:type { + silk = 1 + top = 1 + } + li:objects { + } + ha:combining { + } + } + ha:subc-aux { + lid = 1 + ha:type { + top = 1 + misc = 1 + virtual = 1 + } + li:objects { + ha:line.15 { + clearance = 0.0 + y2 = 185.0mil + thickness = 0.1mm + ha:attributes { + subc-role = pnp-origin + } + x1 = 264.0mil + x2 = 264.0mil + y1 = 185.0mil + ha:flags ={ selected=1 + }; } + ha:line.18 { + clearance = 0.0 + y2 = 185.0mil + thickness = 0.1mm + ha:attributes { + subc-role = origin + } + x1 = 264.0mil + x2 = 264.0mil + y1 = 185.0mil + ha:flags ={ selected=1 + }; } + ha:line.21 { + clearance = 0.0 + y2 = 5.699mm + thickness = 0.1mm + ha:attributes { + subc-role = x + } + x1 = 264.0mil + x2 = 264.0mil + y1 = 185.0mil + ha:flags ={ selected=1 + }; } + ha:line.24 { + clearance = 0.0 + y2 = 185.0mil + thickness = 0.1mm + ha:attributes { + subc-role = y + } + x1 = 264.0mil + x2 = 7.7056mm + y1 = 185.0mil + ha:flags ={ selected=1 + }; } + } + ha:combining { + } + } + } + } + uid = XDaH5cXPEgcPG62hDDgAAAAB + } + } + li:layers { + ha:top { + lid = 0 + li:objects { + ha:polygon.93 { clearance=20.0mil; + li:geometry { + ta:contour { + { 4.5mm; 1.4mm } + { 8.6mm; 1.4mm } + { 8.6mm; 4.4mm } + { 4.5mm; 4.4mm } + } + } + + ha:flags { + clearpoly=1 + } + } + ha:polygon.98 { clearance=20.0mil; + li:geometry { + ta:contour { + { 4.5mm; 5.0mm } + { 8.6mm; 5.0mm } + { 8.6mm; 7.5mm } + { 4.5mm; 7.5mm } + } + } + + ha:flags { + clearpoly=1 + } + } + } + color = {#8b2323} + group = 3 + ha:combining { + } + } + ha:ground { + lid = 1 + li:objects { + } + color = {#3a5fcd} + group = 5 + ha:combining { + } + } + ha:signal2 { + lid = 2 + li:objects { + } + color = {#104e8b} + group = 7 + ha:combining { + } + } + ha:signal3 { + lid = 3 + li:objects { + } + color = {#cd3700} + group = 9 + ha:combining { + } + } + ha:power { + lid = 4 + li:objects { + } + color = {#548b54} + group = 11 + ha:combining { + } + } + ha:bottom { + lid = 5 + li:objects { + } + color = {#8b7355} + group = 16 + ha:combining { + } + } + ha:outline { + lid = 6 + li:objects { + } + color = {#00868b} + group = 13 + ha:combining { + auto = 1 + } + } + ha:spare { + lid = 7 + li:objects { + } + color = {#228b22} + group = 14 + ha:combining { + } + } + ha:top-paste { + lid = 8 + li:objects { + } + color = {#cd00cd} + group = 0 + ha:combining { + auto = 1 + } + } + ha:bottom-paste { + lid = 9 + li:objects { + } + color = {#cd00cd} + group = 19 + ha:combining { + auto = 1 + } + } + ha:top-mask { + lid = 10 + li:objects { + } + color = {#ff0000} + group = 2 + ha:combining { + sub = 1 + auto = 1 + } + } + ha:bottom-mask { + lid = 11 + li:objects { + } + color = {#ff0000} + group = 17 + ha:combining { + sub = 1 + auto = 1 + } + } + {ha:bottom silk} { + lid = 12 + li:objects { + } + color = {#000000} + group = 18 + ha:combining { + auto = 1 + } + } + {ha:top silk} { + lid = 13 + li:objects { + } + color = {#000000} + group = 1 + ha:combining { + auto = 1 + } + } + } + } + ha:pixmaps { + } + +} Index: work/bug_files/TODO/drc1/B.rp =================================================================== --- work/bug_files/TODO/drc1/B.rp (nonexistent) +++ work/bug_files/TODO/drc1/B.rp (revision 38645) @@ -0,0 +1,771 @@ +ha:pcb-rnd-board-v9 { + + ha:attributes { + {PCB::loader}=geda/pcb - readable units + {PCB::grid::size}=0.10mil + {PCB::grid::unit}=mil + {PCB::conf::editor/grid}=1.00 mil + {PCB::conf::editor/grids_idx}=1 + } + + li:styles { + ha:Signal { + via_proto = 0 + thickness = 10.0mil + text_thick = 0.0 + text_scale = 0 + clearance = 10.0mil + } + ha:Power { + via_proto = 1 + thickness = 20.0mil + text_thick = 0.0 + text_scale = 0 + clearance = 10.0mil + } + ha:Fat { + via_proto = 2 + thickness = 28.0mil + text_thick = 0.0 + text_scale = 0 + clearance = 10.0mil + } + ha:Skinny { + via_proto = 3 + thickness = 0.1mil + text_thick = 0.0 + text_scale = 0 + clearance = 0.0 + } + } + + ha:meta { + ha:size { + y2 = 308.0mil + x1 = 0.0 + x2 = 523.0mil + thermal_scale = 0.500000 + y1 = 0.0 + } + board_name = DRC TOO CLOSE + ha:grid { + spacing = 1.0mil + offs_x = 0.0 + offs_y = 0.0 + } + } + + ha:data { + li:padstack_prototypes { + + ha:ps_proto_v6.0 { + hdia=12.0mil; hplated=1; htop=0; hbottom=0; + li:shape { + + ha:ps_shape_v4 { + ha:ps_circ { x=0.0; y=0.0; dia=28.0mil; } + ha:combining { } + ha:layer_mask { + copper = 1 + top = 1 + } + clearance=0.0 + } + + ha:ps_shape_v4 { + ha:ps_circ { x=0.0; y=0.0; dia=28.0mil; } + ha:combining { } + ha:layer_mask { + bottom = 1 + copper = 1 + } + clearance=0.0 + } + + ha:ps_shape_v4 { + ha:ps_circ { x=0.0; y=0.0; dia=28.0mil; } + ha:combining { } + ha:layer_mask { + copper = 1 + intern = 1 + } + clearance=0.0 + } + } + } + + ha:ps_proto_v6.1 { + hdia=16.0mil; hplated=1; htop=0; hbottom=0; + li:shape { + + ha:ps_shape_v4 { + ha:ps_circ { x=0.0; y=0.0; dia=32.0mil; } + ha:combining { } + ha:layer_mask { + copper = 1 + top = 1 + } + clearance=0.0 + } + + ha:ps_shape_v4 { + ha:ps_circ { x=0.0; y=0.0; dia=32.0mil; } + ha:combining { } + ha:layer_mask { + bottom = 1 + copper = 1 + } + clearance=0.0 + } + + ha:ps_shape_v4 { + ha:ps_circ { x=0.0; y=0.0; dia=32.0mil; } + ha:combining { } + ha:layer_mask { + copper = 1 + intern = 1 + } + clearance=0.0 + } + } + } + + ha:ps_proto_v6.2 { + hdia=35.0mil; hplated=1; htop=0; hbottom=0; + li:shape { + + ha:ps_shape_v4 { + ha:ps_circ { x=0.0; y=0.0; dia=60.0mil; } + ha:combining { } + ha:layer_mask { + copper = 1 + top = 1 + } + clearance=0.0 + } + + ha:ps_shape_v4 { + ha:ps_circ { x=0.0; y=0.0; dia=60.0mil; } + ha:combining { } + ha:layer_mask { + bottom = 1 + copper = 1 + } + clearance=0.0 + } + + ha:ps_shape_v4 { + ha:ps_circ { x=0.0; y=0.0; dia=60.0mil; } + ha:combining { } + ha:layer_mask { + copper = 1 + intern = 1 + } + clearance=0.0 + } + } + } + + ha:ps_proto_v6.3 { + hdia=10.0mil; hplated=1; htop=0; hbottom=0; + li:shape { + + ha:ps_shape_v4 { + ha:ps_circ { x=0.0; y=0.0; dia=26.0mil; } + ha:combining { } + ha:layer_mask { + copper = 1 + top = 1 + } + clearance=0.0 + } + + ha:ps_shape_v4 { + ha:ps_circ { x=0.0; y=0.0; dia=26.0mil; } + ha:combining { } + ha:layer_mask { + bottom = 1 + copper = 1 + } + clearance=0.0 + } + + ha:ps_shape_v4 { + ha:ps_circ { x=0.0; y=0.0; dia=26.0mil; } + ha:combining { } + ha:layer_mask { + copper = 1 + intern = 1 + } + clearance=0.0 + } + } + } + } + + li:objects { + ha:subc.5 { + ha:attributes { + value=4.7uF + footprint=CAPC3225N + refdes=C1 + } + ha:data { + li:padstack_prototypes { + + ha:ps_proto_v6.0 { + hdia=0.0; hplated=0; htop=0; hbottom=0; + li:shape { + + ha:ps_shape_v4 { + ha:combining { } + ha:layer_mask { + copper = 1 + top = 1 + } + clearance=0.0 + li:ps_poly { + -53.14mil + -25.59mil + -53.14mil + 25.59mil + 53.14mil + 25.59mil + 53.14mil + -25.59mil + } + } + + ha:ps_shape_v4 { + ha:combining { sub=1; auto=1; } + ha:layer_mask { + top = 1 + mask = 1 + } + clearance=0.0 + li:ps_poly { + -56.14mil + -28.59mil + -56.14mil + 28.59mil + 56.14mil + 28.59mil + 56.14mil + -28.59mil + } + } + + ha:ps_shape_v4 { + ha:combining { auto=1; } + ha:layer_mask { + top = 1 + paste = 1 + } + clearance=0.0 + li:ps_poly { + -53.14mil + -25.59mil + -53.14mil + 25.59mil + 53.14mil + 25.59mil + 53.14mil + -25.59mil + } + } + } + } + + ha:ps_proto_v6.1 { + hdia=0.0; hplated=1; htop=0; hbottom=0; + li:shape { + + ha:ps_shape_v4 { + ha:ps_circ { x=0.0; y=0.0; dia=1.0mm; } + ha:combining { } + ha:layer_mask { + copper = 1 + top = 1 + } + clearance=0.0 + } + + ha:ps_shape_v4 { + ha:ps_circ { x=0.0; y=0.0; dia=1.1524mm; } + ha:combining { sub=1; auto=1; } + ha:layer_mask { + top = 1 + mask = 1 + } + clearance=0.0 + } + + ha:ps_shape_v4 { + ha:ps_circ { x=0.0; y=0.0; dia=1.0mm; } + ha:combining { auto=1; } + ha:layer_mask { + top = 1 + paste = 1 + } + clearance=0.0 + } + } + } + } + + li:objects { + ha:padstack_ref.7 { + proto=1; x=264.0mil; y=231.05mil; rot=0.000000; xmirror=0; smirror=0; clearance=0.0; + ha:flags { + clearline=1 + } + + li:thermal { + } + + ha:attributes { + term=1 + name=1 + } + } + ha:padstack_ref.8 { + proto=1; x=264.0mil; y=112.95mil; rot=0.000000; xmirror=0; smirror=0; clearance=0.0; + ha:flags { + clearline=1 + } + + li:thermal { + } + + ha:attributes { + term=2 + name=2 + } + } + } + li:layers { + + ha:top-silk { + lid=0 + ha:combining { } + + li:objects { + ha:line.9 { + x1=210.86mil; y1=152.32mil; x2=210.86mil; y2=191.68mil; thickness=8.0mil; clearance=0.0; + } + ha:line.12 { + x1=317.14mil; y1=152.32mil; x2=317.14mil; y2=191.68mil; thickness=8.0mil; clearance=0.0; + } + ha:text.6 { + string=%a.parent.refdes%; x=240.5mil; y=262.5mil; scale=100; fid=0; + ha:flags { + dyntext=1 + floater=1 + } + rot = 0.000000 + } + } + ha:type { + silk = 1 + top = 1 + } + } + + ha:subc-aux { + lid=1 + ha:combining { } + + li:objects { + ha:line.15 { + x1=264.0mil; y1=172.0mil; x2=264.0mil; y2=172.0mil; thickness=0.1mm; clearance=0.0; + ha:attributes { + subc-role=pnp-origin + } + ha:flags ={ selected=1 + }; } + ha:line.18 { + x1=264.0mil; y1=172.0mil; x2=264.0mil; y2=172.0mil; thickness=0.1mm; clearance=0.0; + ha:attributes { + subc-role=origin + } + ha:flags ={ selected=1 + }; } + ha:line.21 { + x1=264.0mil; y1=172.0mil; x2=264.0mil; y2=5.3688mm; thickness=0.1mm; clearance=0.0; + ha:attributes { + subc-role=x + } + ha:flags ={ selected=1 + }; } + ha:line.24 { + x1=264.0mil; y1=172.0mil; x2=7.7056mm; y2=172.0mil; thickness=0.1mm; clearance=0.0; + ha:attributes { + subc-role=y + } + ha:flags ={ selected=1 + }; } + } + ha:type { + top = 1 + misc = 1 + virtual = 1 + } + } + } + } + uid = R75K2AQf/PjgEoHgRt8AAAAB + } + } + li:layers { + + ha:top { + lid=0 + group=3 + ha:combining { } + + li:objects { + ha:polygon.27 { + li:geometry { + ta:contour { + { 273.0mil; 336.0mil } + { 442.0mil; 309.0mil } + { 347.0mil; 200.0mil } + { 1.0mil; 200.0mil } + } + } + + ha:flags { + clearpoly=1 + } + } + ha:polygon.32 { + li:geometry { + ta:contour { + { 411.0mil; 257.0mil } + { 357.0mil; 186.8mil } + { 175.0mil; 186.8mil } + { 312.0mil; 52.0mil } + } + } + + ha:flags { + clearpoly=1 + } + } + } + color = {#8b2323} + } + + ha:ground { + lid=1 + group=5 + ha:combining { } + + li:objects { + } + color = {#3a5fcd} + } + + ha:signal2 { + lid=2 + group=7 + ha:combining { } + + li:objects { + } + color = {#104e8b} + } + + ha:signal3 { + lid=3 + group=9 + ha:combining { } + + li:objects { + } + color = {#cd3700} + } + + ha:power { + lid=4 + group=11 + ha:combining { } + + li:objects { + } + color = {#548b54} + } + + ha:bottom { + lid=5 + group=16 + ha:combining { } + + li:objects { + } + color = {#8b7355} + } + + ha:outline { + lid=6 + group=13 + ha:combining { auto=1; } + + li:objects { + } + color = {#00868b} + } + + ha:spare { + lid=7 + group=14 + ha:combining { } + + li:objects { + } + color = {#228b22} + } + + ha:top-paste { + lid=8 + group=0 + ha:combining { auto=1; } + + li:objects { + } + color = {#cd00cd} + } + + ha:bottom-paste { + lid=9 + group=19 + ha:combining { auto=1; } + + li:objects { + } + color = {#cd00cd} + } + + ha:top-mask { + lid=10 + group=2 + ha:combining { sub=1; auto=1; } + + li:objects { + } + color = {#ff0000} + } + + ha:bottom-mask { + lid=11 + group=17 + ha:combining { sub=1; auto=1; } + + li:objects { + } + color = {#ff0000} + } + + ha:silk { + lid=12 + group=18 + ha:combining { auto=1; } + + li:objects { + } + color = {#000000} + } + + ha:silk { + lid=13 + group=1 + ha:combining { auto=1; } + + li:objects { + } + color = {#000000} + } + } + } + + ha:netlists { + li:input { + ha:unnamed_net36 { + ha:attributes { + style=(unknown) + } + li:conn { Q1-5; Q1-6; Q1-7; Q1-8; } + } + ha:unnamed_net35 { + ha:attributes { + style=(unknown) + } + li:conn { C1-1; Q1-1; Q1-2; Q1-3; } + } + ha:GND { + ha:attributes { + style=(unknown) + } + li:conn { C1-2; } + } + ha:unnamed_net34 { + ha:attributes { + style=(unknown) + } + li:conn { Q1-4; } + } + } + } + ha:layer_stack { + li:groups { + ha:0 { + name = top_paste + ha:type { top=1; paste=1; } + li:layers { 8; } + } + ha:1 { + name = top_silk + ha:type { silk=1; top=1; } + li:layers { 13; } + } + ha:2 { + name = top_mask + ha:type { top=1; mask=1; } + li:layers { 10; } + } + ha:3 { + name = top_copper + ha:type { copper=1; top=1; } + li:layers { 0; } + } + ha:4 { + name = implicit_subst + ha:type { substrate=1; intern=1; } + li:layers { } + } + ha:5 { + name = Intern + ha:type { copper=1; intern=1; } + li:layers { 1; } + } + ha:6 { + name = implicit_subst + ha:type { substrate=1; intern=1; } + li:layers { } + } + ha:7 { + name = Intern + ha:type { copper=1; intern=1; } + li:layers { 2; } + } + ha:8 { + name = implicit_subst + ha:type { substrate=1; intern=1; } + li:layers { } + } + ha:9 { + name = Intern + ha:type { copper=1; intern=1; } + li:layers { 3; } + } + ha:10 { + name = implicit_subst + ha:type { substrate=1; intern=1; } + li:layers { } + } + ha:11 { + name = Intern + ha:type { copper=1; intern=1; } + li:layers { 4; } + } + ha:12 { + name = implicit_subst + ha:type { substrate=1; intern=1; } + li:layers { } + } + ha:13 { + name = global_outline + ha:type { boundary=1; } + li:layers { 6; } + purpose = uroute + } + ha:14 { + name = Intern + ha:type { copper=1; intern=1; } + li:layers { 7; } + } + ha:15 { + name = implicit_subst + ha:type { substrate=1; intern=1; } + li:layers { } + } + ha:16 { + name = bottom_copper + ha:type { bottom=1; copper=1; } + li:layers { 5; } + } + ha:17 { + name = bottom_mask + ha:type { bottom=1; mask=1; } + li:layers { 11; } + } + ha:18 { + name = bottom_silk + ha:type { silk=1; bottom=1; } + li:layers { 12; } + } + ha:19 { + name = bottom_paste + ha:type { bottom=1; paste=1; } + li:layers { 9; } + } + } + } + li:pcb-rnd-conf-v1 { + ha:overwrite { + ha:plugins { + ha:mincut { + enable = false + } + } + ha:editor { + live_routing = false + snap_pin = false + grid = 1.00 mil + show_number = false + unique_names = true + all_direction_lines = 0 + auto_drc = false + orthogonal_moves = false + local_ref = false + hide_names = false + check_planes = false + name_on_pcb = true + swap_start_direction = false + clear_line = true + show_drc = false + grid_unit = mil + grids_idx = 1 + only_names = false + full_poly = false + lock_names = false + thin_draw_poly = false + thin_draw = false + rubber_band_mode = false + description = false + line_refraction = 0 + } + ha:design { + via_proto = 3 + text_font_id = 0 + text_scale = 100 + text_thickness = 0 + line_thickness = 0.10 mil + bloat = 0.25400000 mm + clearance = 0 + } + } + } + ha:pixmaps { + } +} Index: work/bug_files/TODO/drc1/drc1.patch =================================================================== --- work/bug_files/TODO/drc1/drc1.patch (nonexistent) +++ work/bug_files/TODO/drc1/drc1.patch (revision 38645) @@ -0,0 +1,64 @@ +Index: find_geo.c +=================================================================== +--- find_geo.c (revision 38641) ++++ find_geo.c (working copy) +@@ -744,9 +744,11 @@ + if (!Polygon->Clipped) + return rnd_false; + if (PCB_FLAG_TEST(PCB_FLAG_SQUARE, Line) && (Line->Point1.X == Line->Point2.X || Line->Point1.Y == Line->Point2.Y)) { +- rnd_coord_t wid = (Line->Thickness + bloat + 1) / 2; ++ rnd_coord_t wid = (Line->Thickness + bloat + 1) / 2 - 1; + rnd_coord_t x1, x2, y1, y2; + ++ rnd_trace("wid: %ml %ml => %ml %ld\n", Line->Thickness, (bloat + 1) / 2, wid, wid); ++ + x1 = MIN(Line->Point1.X, Line->Point2.X) - wid; + y1 = MIN(Line->Point1.Y, Line->Point2.Y) - wid; + x2 = MAX(Line->Point1.X, Line->Point2.X) + wid; +@@ -755,9 +757,10 @@ + } + if (box_isc_poly_any_island_bbox(ctx, Box, Polygon, !PCB_FLAG_TEST(PCB_FLAG_FULLPOLY, Polygon))) { + rnd_coord_t lth = Line->Thickness + bloat*2; ++rnd_trace("round %ml + %ml*2 = %ml\n", Line->Thickness, bloat, lth); + if (lth < 2) { + rnd_coord_t shorten = -bloat - Line->Thickness/2; +- pcb_line_t ltmp; ++ pcb_line_t ltmp = {0}; + double dx, dy, l; + + ltmp.Point1.X = Line->Point1.X; ltmp.Point1.Y = Line->Point1.Y; +@@ -782,8 +785,15 @@ + return rnd_false; /* error generating the line */ + } + else { ++ rnd_vnode_t *n; ++ lth = (Line->Thickness + bloat)-4; ++rnd_trace("direct lth=%mm\n", lth); + if (!(lp = pcb_poly_from_pcb_line(Line, lth))) + return rnd_false; /* error generating the line */ ++ n = lp->contours->head; ++ do { ++ rnd_trace(" %mm %mm\n", n->point[0], n->point[1]); ++ } while((n = n->next) != lp->contours->head); + } + return box_isc_poly_any_island_free(lp, Polygon, !PCB_FLAG_TEST(PCB_FLAG_FULLPOLY, Polygon)); + } +@@ -820,13 +830,17 @@ + line.Thickness = bloat; + line.Clearance = 0; + line.Flags = pcb_flag_make(PCB_FLAG_SQUARE); ++ rnd_trace("pt1: %ml %ml\n", v->point[0], v->point[1]); + for (v = v->next; v != c->head; v = v->next) { + line.Point2.X = v->point[0]; + line.Point2.Y = v->point[1]; ++ rnd_trace("pt2: %ml %ml\n", v->point[0], v->point[1]); + pcb_line_bbox(&line); + TODO("This is very expensive: we could use something cheaper here that checks the two offseted thin line edges and one of the end cap circles"); +- if (pcb_isc_line_poly_blt(ctx, &line, P2, bloat)) ++ if (pcb_isc_line_poly_blt(ctx, &line, P2, bloat)) { ++ rnd_trace("COLLIDED: %ml %ml to %ml %ml\n", line.Point1.X, line.Point1.Y, line.Point2.X, line.Point2.Y); + return rnd_true; ++ } + line.Point1.X = line.Point2.X; + line.Point1.Y = line.Point2.Y; + }