Index: bug_files/TODO/empty_str.kicad_mod =================================================================== --- bug_files/TODO/empty_str.kicad_mod (revision 36137) +++ bug_files/TODO/empty_str.kicad_mod (nonexistent) @@ -1,45 +0,0 @@ -(module easyeda:MICRO-USB-SMD_5P-P0.65-H-F_C10418 (layer F.Cu) (tedit 0) - (attr smd) - (fp_text reference "" (at 0 -3.495001) (layer F.SilkS) - (effects (font (size 1.27 1.27) (thickness 0.15))) - ) - (fp_text value "" (at 0 5.797001) (layer F.SilkS) - (effects (font (size 1.27 1.27) (thickness 0.15))) - ) - (fp_text user "" (at 0 0) (layer Cmts.User) - (effects (font (size 1 1) (thickness 0.15))) - ) - (fp_line (start 3.999 4.4) (end -4.001 4.4) (layer F.SilkS) (width 0.254)) - (fp_line (start -4.001 2.814) (end -4.001 4.38) (layer F.SilkS) (width 0.254)) - (fp_line (start 3.999 2.814) (end 3.999 4.4) (layer F.SilkS) (width 0.254)) - (fp_line (start -4.001 -1.36) (end -4.001 0.414) (layer F.SilkS) (width 0.254)) - (fp_line (start 4 -1.36) (end 4 0.414) (layer F.SilkS) (width 0.254)) - (fp_line (start 3.285 -1.36) (end 3.999 -1.36) (layer F.SilkS) (width 0.254)) - (fp_line (start -4.001 -1.36) (end -3.285 -1.36) (layer F.SilkS) (width 0.254)) - (fp_line (start -3.971 4.38) (end -3.971 4.28) (layer F.SilkS) (width 0.254)) - (fp_line (start -3.971 4.28) (end -3.381 3.69) (layer F.SilkS) (width 0.254)) - (fp_line (start 3.979 4.4) (end 3.979 4.28) (layer F.SilkS) (width 0.254)) - (fp_line (start 3.979 4.28) (end 3.389 3.69) (layer F.SilkS) (width 0.254)) - (fp_line (start 3.389 3.69) (end -3.381 3.69) (layer F.SilkS) (width 0.254)) - (fp_circle (center 2.425 -1.1) (end 2.725 -1.1) (layer F.Paste) (width 0.6)) - (fp_circle (center -2.425 -1.1) (end -2.125 -1.1) (layer F.Paste) (width 0.6)) - (fp_poly (pts (xy -1.1 -2.225) (xy -1.1 -0.975) (xy -1.5 -0.975) (xy -1.5 -2.225)) (layer F.Paste) (width 0)) - (fp_poly (pts (xy -0.45 -2.225) (xy -0.45 -0.975) (xy -0.85 -0.975) (xy -0.85 -2.225)) (layer F.Paste) (width 0)) - (fp_poly (pts (xy 0.2 -2.225) (xy 0.2 -0.975) (xy -0.2 -0.975) (xy -0.2 -2.225)) (layer F.Paste) (width 0)) - (fp_poly (pts (xy 0.85 -2.225) (xy 0.85 -0.975) (xy 0.45 -0.975) (xy 0.45 -2.225)) (layer F.Paste) (width 0)) - (fp_poly (pts (xy 1.5 -2.225) (xy 1.5 -0.975) (xy 1.1 -0.975) (xy 1.1 -2.225)) (layer F.Paste) (width 0)) - (pad 0 thru_hole circle (at 2.425 -1.1) (size 1.2 1.2) (drill 0.7) (layers *.Cu *.Paste *.Mask)) - (pad 0 thru_hole circle (at -2.425 -1.1) (size 1.2 1.2) (drill 0.7) (layers *.Cu *.Paste *.Mask)) - (pad 0 thru_hole oval (at -3.6 1.6) (size 1.3 2.2) (drill oval 0.7 1.5) (layers *.Cu *.Paste *.Mask)) - (pad 0 thru_hole oval (at 3.6 1.6) (size 1.3 2.2) (drill oval 0.7 1.5) (layers *.Cu *.Paste *.Mask)) - (pad 1 smd rect (at -1.3 -1.6 270) (size 1.25 0.4) (layers F.Cu F.Paste F.Mask)) - (pad 2 smd rect (at -0.65 -1.6 270) (size 1.25 0.4) (layers F.Cu F.Paste F.Mask)) - (pad 3 smd rect (at 0 -1.6 270) (size 1.25 0.4) (layers F.Cu F.Paste F.Mask)) - (pad 4 smd rect (at 0.65 -1.6 270) (size 1.25 0.4) (layers F.Cu F.Paste F.Mask)) - (pad 5 smd rect (at 1.3 -1.6 270) (size 1.25 0.4) (layers F.Cu F.Paste F.Mask)) - (model ${EASY_EDA_3D}/micro-usb.3dshapes/MICRO-USB-SMD_5P-P0.65-H-F_C10418.wrl - (at (xyz 0 0 0)) - (scale (xyz 0.3937007874015748 0.3937007874015748 0.3937007874015748)) - (rotate (xyz 0 0 180)) - ) -) Index: bug_files/TODO/ppc_full.lht =================================================================== --- bug_files/TODO/ppc_full.lht (nonexistent) +++ bug_files/TODO/ppc_full.lht (revision 36138) @@ -0,0 +1,539 @@ +ha:pcb-rnd-board-v8 { + + ha:meta { + ha:size { + thermal_scale = 0.500000 + x = 600.0mil + y = 400.0mil + } + ha:grid { + spacing = 25.0mil + offs_x = 0.0 + offs_y = 0.0 + } + } + + ha:data { + li:padstack_prototypes { + + ha:ps_proto_v6.0 { + hdia=0.8mm; hplated=1; htop=0; hbottom=0; + li:shape { + + ha:ps_shape_v4 { + ha:ps_circ { x=0.0; y=0.0; dia=2.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=2.0mm; } + 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=2.0mm; } + ha:combining { } + ha:layer_mask { + copper = 1 + intern = 1 + } + clearance=0.0 + } + } + } + + ha:ps_proto_v6.1 { + hdia=1.0mm; hplated=1; htop=0; hbottom=0; + li:shape { + + ha:ps_shape_v4 { + ha:ps_circ { x=0.0; y=0.0; dia=2.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=2.2mm; } + 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=2.2mm; } + ha:combining { } + ha:layer_mask { + copper = 1 + intern = 1 + } + clearance=0.0 + } + } + } + + ha:ps_proto_v6.2 { + hdia=1.2mm; hplated=1; htop=0; hbottom=0; + li:shape { + + ha:ps_shape_v4 { + ha:ps_circ { x=0.0; y=0.0; dia=3.5mm; } + 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=3.5mm; } + 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=3.5mm; } + ha:combining { } + ha:layer_mask { + copper = 1 + intern = 1 + } + clearance=0.0 + } + } + } + + ha:ps_proto_v6.3 { + hdia=0.8mm; hplated=1; htop=0; hbottom=0; + li:shape { + + ha:ps_shape_v4 { + ha:ps_circ { x=0.0; y=0.0; dia=64.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=64.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=64.0mil; } + ha:combining { } + ha:layer_mask { + copper = 1 + intern = 1 + } + clearance=0.0 + } + } + } + } + + li:objects { + } + li:layers { + + ha:top-sig { + lid=0 + group=3 + ha:combining { } + + ha:attributes { + {pcb-rnd::key::vis}={l; Shiftt} + {pcb-rnd::key::select}={l; t} + } + + li:objects { + ha:arc.10 { + x=400.0mil; y=175.0mil; width=150.0mil; height=150.0mil; astart=90.000000; adelta=-90.000000; thickness=10.0mil; clearance=40.0mil; + ha:flags { + clearline=1 + } + } + ha:polygon.5 { clearance=40.0mil; + li:geometry { + ta:contour { + { 50.0mil; 200.0mil } + { 425.0mil; 200.0mil } + { 425.0mil; 300.0mil } + { 50.0mil; 300.0mil } + } + } + + ha:flags { + clearpolypoly=1 + clearpoly=1 + } + } + } + color = {#8b2323} + } + + ha:bottom-sig { + lid=1 + group=10 + ha:combining { } + + ha:attributes { + {pcb-rnd::key::vis}={l; Shiftb} + {pcb-rnd::key::select}={l; b} + } + + li:objects { + } + color = {#3a5fcd} + } + + ha:top-gnd { + lid=2 + group=3 + ha:combining { } + + li:objects { + ha:polygon.11 { clearance=40.0mil; + li:geometry { + ta:contour { + { 200.0mil; 25.0mil } + { 550.0mil; 25.0mil } + { 550.0mil; 350.0mil } + { 200.0mil; 350.0mil } + } + } + + ha:flags { + clearpoly=1 + } + } + } + color = {#104e8b} + } + + ha:bottom-gnd { + lid=3 + group=10 + ha:combining { } + + li:objects { + } + color = {#cd3700} + } + + ha:int-sig2 { + lid=4 + group=7 + ha:combining { } + + ha:attributes { + {pcb-rnd::key::vis}={l; Shifti} + {pcb-rnd::key::select}={l; i} + } + + li:objects { + } + color = {#548b54} + } + + ha:int-sig1 { + lid=5 + group=5 + ha:combining { } + + ha:attributes { + {pcb-rnd::key::vis}={l; Shifto} + {pcb-rnd::key::select}={l; o} + } + + li:objects { + } + color = {#8b7355} + } + + ha:outline { + lid=6 + group=9 + ha:combining { } + + li:objects { + } + color = {#00868b} + } + + ha:bottom-silk { + lid=7 + group=12 + ha:combining { auto=1; } + + ha:attributes { + {pcb-rnd::key::vis}={l; Shiftx} + {pcb-rnd::key::select}={l; x} + } + + li:objects { + } + color = {#000000} + } + + ha:top-silk { + lid=8 + group=1 + ha:combining { auto=1; } + + ha:attributes { + {pcb-rnd::key::vis}={l; Shifts} + {pcb-rnd::key::select}={l; s} + } + + li:objects { + } + color = {#000000} + } + + ha:top-paste { + lid=9 + group=0 + 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=11 + ha:combining { sub=1; auto=1; } + + li:objects { + } + color = {#ff0000} + } + + ha:bottom-paste { + lid=12 + group=13 + ha:combining { auto=1; } + + li:objects { + } + color = {#cd00cd} + } + + ha:slot-plated { + lid=13 + group=14 + ha:combining { auto=1; } + + li:objects { + } + color = {#8b7355} + } + + ha:slot-unplated { + lid=14 + group=15 + ha:combining { auto=1; } + + li:objects { + } + color = {#00868b} + } + + ha:top-assy { + lid=15 + group=16 + ha:combining { } + + li:objects { + } + color = {#444444} + } + + ha:bot-assy { + lid=16 + group=17 + ha:combining { } + + li:objects { + } + color = {#444444} + } + + ha:fab { + lid=17 + group=18 + ha:combining { auto=1; } + + li:objects { + } + color = {#222222} + } + } + } + ha:layer_stack { + li:groups { + ha:0 { + name = top_paste + ha:type { top=1; paste=1; } + li:layers { 9; } + } + ha:1 { + name = top_silk + ha:type { silk=1; top=1; } + li:layers { 8; } + } + 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; 2; } + } + ha:4 { + name = grp_4 + ha:type { substrate=1; intern=1; } + li:layers { } + ha:attributes { + thickness={0.7375mm } + } + } + ha:5 { + name = Intern + ha:type { copper=1; intern=1; } + li:layers { 5; } + } + ha:6 { + name = grp_6 + ha:type { substrate=1; intern=1; } + li:layers { } + ha:attributes { + thickness={0.125mm } + } + } + ha:7 { + name = Intern + ha:type { copper=1; intern=1; } + li:layers { 4; } + } + ha:8 { + name = grp_8 + ha:type { substrate=1; intern=1; } + li:layers { } + ha:attributes { + thickness={0.7375mm } + } + } + ha:9 { + name = global_outline + ha:type { boundary=1; } + li:layers { 6; } + purpose = uroute + } + ha:10 { + name = bottom_copper + ha:type { bottom=1; copper=1; } + li:layers { 1; 3; } + } + ha:11 { + name = bottom_mask + ha:type { bottom=1; mask=1; } + li:layers { 11; } + } + ha:12 { + name = bottom_silk + ha:type { silk=1; bottom=1; } + li:layers { 7; } + } + ha:13 { + name = bottom_paste + ha:type { bottom=1; paste=1; } + li:layers { 12; } + } + ha:14 { + name = pmech + ha:type { mech=1; } + li:layers { 13; } + purpose = proute + } + ha:15 { + name = umech + ha:type { mech=1; } + li:layers { 14; } + purpose = uroute + } + ha:16 { + name = top_assy + ha:type { top=1; doc=1; } + li:layers { 15; } + ha:attributes { + init-invis=1 + } + purpose = assy + } + ha:17 { + name = bot_assy + ha:type { bottom=1; doc=1; } + li:layers { 16; } + ha:attributes { + init-invis=1 + } + purpose = assy + } + ha:18 { + name = fab + ha:type { top=1; doc=1; } + li:layers { 17; } + ha:attributes { + init-invis=1 + } + purpose = fab + } + } + } + ha:pixmaps { + } +} Index: bug_files/TODO/ppc_full.txt =================================================================== --- bug_files/TODO/ppc_full.txt (nonexistent) +++ bug_files/TODO/ppc_full.txt (revision 36138) @@ -0,0 +1,13 @@ +polygon.c, pcb_poly_clearance_construct(), pcb_poly_island_first() loop: +if poly is not full, stop after the first island. + +This would make a data model incompatibility, so: + +1. add a bugfix config node for it, disabled by default + +2a. enable the node in default.lht config tree so new boards have it + (make sure new boards do copy it from defalt.lht) + +2b. or set it manually in new pcb creation code... + +