Index: work/bug_files/TODO/clipbug.lht =================================================================== --- work/bug_files/TODO/clipbug.lht (revision 35572) +++ work/bug_files/TODO/clipbug.lht (nonexistent) @@ -1,1123 +0,0 @@ -ha:pcb-rnd-board-v8 { - - ha:attributes { - thickness=1.6mm - } - - li:styles { - ha:Signal { - via_proto = 0 - thickness = 0.2mm - text_thick = 0.0 - text_scale = 100 - clearance = 6.0mil - } - ha:Power { - via_proto = 0 - thickness = 0.3mm - text_thick = 0.0 - text_scale = 100 - clearance = 0.2mm - } - ha:imp_diff100 { - via_proto = 2 - thickness = 0.2mm - text_thick = 0.0 - text_scale = 100 - clearance = 30.0mil - } - ha:thin { - via_proto = 4 - thickness = 0.1mm - text_thick = 0.0 - text_scale = 100 - clearance = 0.2mm - } - ha:outline { - via_proto = 3 - thickness = 0.1mm - text_thick = 0.0 - text_scale = 100 - clearance = 0.2mm - } - } - - ha:meta { - ha:size { - thermal_scale = 0.500000 - x = 100.0mm - y = 100.0mm - } - board_name = HDMI firewall dongle - ha:grid { - spacing = 0.05mm - offs_x = 0.0 - offs_y = 0.0 - } - } - - ha:data { - li:padstack_prototypes { - - ha:ps_proto_v6.0 { - hdia=0.3mm; hplated=1; htop=0; hbottom=0; - li:shape { - - ha:ps_shape_v4 { - ha:ps_circ { x=0.0; y=0.0; dia=0.6mm; } - 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.6mm; } - 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=0.6mm; } - ha:combining { } - ha:layer_mask { - copper = 1 - intern = 1 - } - clearance=0.0 - } - } - } - - ha:ps_proto_v6.1 { - hdia=0.6mm; hplated=1; htop=0; hbottom=0; - li:shape { - - ha:ps_shape_v4 { - ha:ps_circ { x=0.0; y=0.0; dia=0.3mm; } - 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.3mm; } - 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=0.3mm; } - ha:combining { } - ha:layer_mask { - copper = 1 - intern = 1 - } - clearance=0.0 - } - } - } - - ha:ps_proto_v6.2 { - hdia=0.2mm; hplated=1; htop=0; hbottom=0; - li:shape { - - ha:ps_shape_v4 { - ha:ps_circ { x=0.0; y=0.0; dia=0.45mm; } - 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.45mm; } - 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=0.45mm; } - ha:combining { } - ha:layer_mask { - copper = 1 - intern = 1 - } - clearance=0.0 - } - } - } - - ha:ps_proto_v6.3 { - hdia=0.5mm; hplated=0; htop=0; hbottom=0; - li:shape { - - ha:ps_shape_v4 { - ha:combining { } - ha:layer_mask { - copper = 1 - top = 1 - } - clearance=0.0 - ps_hshadow = - } - - ha:ps_shape_v4 { - ha:combining { } - ha:layer_mask { - copper = 1 - intern = 1 - } - clearance=0.0 - ps_hshadow = - } - - ha:ps_shape_v4 { - ha:combining { } - ha:layer_mask { - bottom = 1 - copper = 1 - } - clearance=0.0 - ps_hshadow = - } - } - name = mouse bite - } - - ha:ps_proto_v6.4 { - hdia=0.5mm; hplated=1; htop=0; hbottom=0; - li:shape { - - ha:ps_shape_v4 { - ha:ps_circ { x=0.0; y=0.0; dia=0.6mm; } - 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.6mm; } - 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=0.6mm; } - ha:combining { } - ha:layer_mask { - copper = 1 - intern = 1 - } - clearance=0.0 - } - } - } - unused = 1 - } - - li:objects { - ha:subc.8619 { - ha:attributes { - value=untrusted device - footprint=CONNECTOR_HDMI-001S.lht - refdes=J1 - } - 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 { - -0.15mm - -1.3mm - 0.15mm - -1.3mm - 0.15mm - 1.3mm - -0.15mm - 1.3mm - } - } - - ha:ps_shape_v4 { - ha:combining { sub=1; auto=1; } - ha:layer_mask { - top = 1 - mask = 1 - } - clearance=0.0 - li:ps_poly { - -0.2mm - -1.35mm - 0.2mm - -1.35mm - 0.2mm - 1.35mm - -0.2mm - 1.35mm - } - } - - ha:ps_shape_v4 { - ha:combining { auto=1; } - ha:layer_mask { - top = 1 - paste = 1 - } - clearance=0.0 - li:ps_poly { - -0.15mm - -1.3mm - 0.15mm - -1.3mm - 0.15mm - 1.3mm - -0.15mm - 1.3mm - } - } - } - } - - ha:ps_proto_v6.1 { - hdia=0.0; hplated=1; htop=0; hbottom=0; - li:shape { - - ha:ps_shape_v4 { - ha:ps_line { x1=0.0; y1=-0.35mm; x2=0.0; y2=0.35mm; thickness=0.9mm; square=0; } - ha:combining { auto=1; } - ha:layer_mask { - mech = 1 - } - clearance=0.0 - } - - ha:ps_shape_v4 { - ha:ps_line { x1=0.0; y1=-0.4mm; x2=0.0; y2=0.4mm; thickness=1.5mm; square=0; } - ha:combining { } - ha:layer_mask { - copper = 1 - top = 1 - } - clearance=0.2mm - } - - ha:ps_shape_v4 { - ha:ps_line { x1=0.0; y1=-0.4mm; x2=0.0; y2=0.4mm; thickness=1.6mm; square=0; } - ha:combining { sub=1; auto=1; } - ha:layer_mask { - top = 1 - mask = 1 - } - clearance=0.0 - } - - ha:ps_shape_v4 { - ha:ps_line { x1=0.0; y1=-0.4mm; x2=0.0; y2=0.4mm; thickness=1.5mm; square=0; } - ha:combining { } - ha:layer_mask { - copper = 1 - intern = 1 - } - clearance=0.2mm - } - - ha:ps_shape_v4 { - ha:ps_line { x1=0.0; y1=-0.4mm; x2=0.0; y2=0.4mm; thickness=1.5mm; square=0; } - ha:combining { } - ha:layer_mask { - bottom = 1 - copper = 1 - } - clearance=0.2mm - } - - ha:ps_shape_v4 { - ha:ps_line { x1=0.0; y1=-0.4mm; x2=0.0; y2=0.4mm; thickness=1.6mm; square=0; } - ha:combining { sub=1; auto=1; } - ha:layer_mask { - bottom = 1 - mask = 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_line { x1=0.0; y1=-0.9mm; x2=0.0; y2=0.9mm; thickness=0.9mm; square=0; } - ha:combining { auto=1; } - ha:layer_mask { - mech = 1 - } - clearance=0.0 - } - - ha:ps_shape_v4 { - ha:ps_line { x1=0.0; y1=-0.95mm; x2=0.0; y2=0.95mm; thickness=1.5mm; square=0; } - ha:combining { } - ha:layer_mask { - copper = 1 - top = 1 - } - clearance=0.2mm - } - - ha:ps_shape_v4 { - ha:ps_line { x1=0.0; y1=-0.95mm; x2=0.0; y2=0.95mm; thickness=1.6mm; square=0; } - ha:combining { sub=1; auto=1; } - ha:layer_mask { - top = 1 - mask = 1 - } - clearance=0.0 - } - - ha:ps_shape_v4 { - ha:ps_line { x1=0.0; y1=-0.95mm; x2=0.0; y2=0.95mm; thickness=1.5mm; square=0; } - ha:combining { } - ha:layer_mask { - copper = 1 - intern = 1 - } - clearance=0.2mm - } - - ha:ps_shape_v4 { - ha:ps_line { x1=0.0; y1=-0.95mm; x2=0.0; y2=0.95mm; thickness=1.5mm; square=0; } - ha:combining { } - ha:layer_mask { - bottom = 1 - copper = 1 - } - clearance=0.2mm - } - - ha:ps_shape_v4 { - ha:ps_line { x1=0.0; y1=-0.95mm; x2=0.0; y2=0.95mm; thickness=1.6mm; square=0; } - ha:combining { sub=1; auto=1; } - ha:layer_mask { - bottom = 1 - mask = 1 - } - clearance=0.0 - } - } - } - } - - li:objects { - ha:padstack_ref.8691 { - proto=0; x=32.735mm; y=17.65mm; rot=90.000000; xmirror=0; smirror=0; clearance=0.2mm; - ha:flags { - clearline=1 - } - - li:thermal { - } - - ha:attributes { - term=19 - name=19 - } - } - ha:padstack_ref.8693 { - proto=1; x=26.015mm; y=14.9mm; rot=90.000000; xmirror=0; smirror=0; clearance=0.2mm; - ha:flags { - clearline=1 - } - - li:thermal { - } - - ha:attributes { - term=NC2 - name=NC2 - } - } - } - li:layers { - - ha:subc-aux { - lid=0 - ha:combining { } - - li:objects { - ha:line.8620 { - x1=28.5mm; y1=22.15mm; x2=28.5mm; y2=22.15mm; thickness=0.1mm; clearance=0.0; - ha:attributes { - subc-role=origin - } - } - ha:line.8623 { - x1=28.5mm; y1=22.15mm; x2=28.5mm; y2=21.15mm; thickness=0.1mm; clearance=0.0; - ha:attributes { - subc-role=x - } - } - ha:line.8626 { - x1=28.5mm; y1=22.15mm; x2=29.5mm; y2=22.15mm; thickness=0.1mm; clearance=0.0; - ha:attributes { - subc-role=y - } - } - } - ha:type { - top = 1 - misc = 1 - virtual = 1 - } - } - - ha:top-silkscreen { - lid=1 - ha:combining { } - - li:objects { - } - ha:type { - silk = 1 - top = 1 - } - } - - ha:top-assembly { - lid=2 - ha:combining { } - - li:objects { - ha:line.8653 { - x1=28.5mm; y1=22.85mm; x2=28.5mm; y2=21.45mm; thickness=0.1mm; clearance=0.0; - } - ha:line.8656 { - x1=27.8mm; y1=22.15mm; x2=29.2mm; y2=22.15mm; thickness=0.1mm; clearance=0.0; - } - ha:line.8659 { - x1=22.425mm; y1=29.65mm; x2=22.425mm; y2=14.65mm; thickness=0.1mm; clearance=0.0; - } - ha:line.8662 { - x1=22.425mm; y1=14.65mm; x2=34.575mm; y2=14.65mm; thickness=0.1mm; clearance=0.0; - } - ha:line.8665 { - x1=34.575mm; y1=14.65mm; x2=34.575mm; y2=29.65mm; thickness=0.1mm; clearance=0.0; - } - ha:line.8668 { - x1=34.575mm; y1=29.65mm; x2=22.425mm; y2=29.65mm; thickness=0.1mm; clearance=0.0; - } - ha:arc.8671 { - x=28.5mm; y=22.15mm; width=0.5mm; height=0.5mm; astart=90.000000; adelta=360.000000; thickness=0.1mm; clearance=0.0; - } - ha:text.8672 { - string=%a.parent.refdes%; x=26.0mm; y=20.65mm; scale=100; fid=0; - ha:flags { - dyntext=1 - floater=1 - } - rot = 90.000000 - } - } - ha:type { - top = 1 - doc = 1 - } - purpose = assy - } - - ha:top-courtyard { - lid=3 - ha:combining { } - - li:objects { - ha:polygon.8696 { - li:geometry { - ta:contour { - { 22.175mm; 30.4mm } - { 22.175mm; 13.9mm } - { 34.825mm; 13.9mm } - { 34.825mm; 30.4mm } - } - } - } - } - ha:type { - top = 1 - doc = 1 - } - purpose = ko.courtyard - } - } - } - uid = UsZVGY9SkJLERZiC+TcAAAAj - } - } - 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 { - } - color = {#238b27} - } - - ha:bottom-sig { - lid=1 - group=13 - ha:combining { } - - ha:attributes { - {pcb-rnd::key::vis}={l; Shiftb} - {pcb-rnd::key::select}={l; b} - } - - li:objects { - } - color = {#38ee39} - } - - ha:top-gnd { - lid=2 - group=3 - ha:combining { } - - li:objects { - ha:line.21180 { - x1=41.0mm; y1=21.0mm; x2=42.325mm; y2=21.0mm; thickness=0.5mm; clearance=0.4mm; - ha:flags { - clearline=1 - } - li:thermal { - on - solid - } - } - ha:polygon.21680 { clearance=0.4mm; - li:geometry { - ta:contour { - { 24.55mm; 12.95mm } - { 43.25mm; 12.95mm } - { 43.25mm; 30.05mm } - { 24.55mm; 30.05mm } - } - } - - ha:flags { - clearpoly=1 - } - } - } - color = {#104e8b} - } - - ha:bottom-gnd { - lid=3 - group=13 - ha:combining { } - - li:objects { - } - color = {#6164ff} - } - - ha:outline { - lid=4 - group=9 - ha:combining { } - - li:objects { - } - color = {#00868b} - } - - ha:bottom-silk { - lid=5 - group=15 - 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=6 - 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=7 - group=0 - ha:combining { auto=1; } - - li:objects { - } - color = {#cd00cd} - } - - ha:top-mask { - lid=8 - group=2 - ha:combining { sub=1; auto=1; } - - li:objects { - } - color = {#ff0000} - } - - ha:bottom-mask { - lid=9 - group=14 - ha:combining { sub=1; auto=1; } - - li:objects { - } - color = {#ff0000} - } - - ha:bottom-paste { - lid=10 - group=16 - ha:combining { auto=1; } - - li:objects { - } - color = {#cd00cd} - } - - ha:slot-plated { - lid=11 - group=17 - ha:combining { auto=1; } - - li:objects { - } - color = {#8b7355} - } - - ha:slot-unplated { - lid=12 - group=18 - ha:combining { auto=1; } - - li:objects { - } - color = {#00868b} - } - - ha:top-assy { - lid=13 - group=19 - ha:combining { } - - li:objects { - } - color = {#444444} - } - - ha:bot-assy { - lid=14 - group=20 - ha:combining { } - - li:objects { - } - color = {#444444} - } - - ha:fab { - lid=15 - group=21 - ha:combining { auto=1; } - - li:objects { - ha:text.905 { - string=board thickness needs to be 1.6 mm for edge mounted HDMI plug; x=1.7mm; y=1.15mm; scale=200; fid=0; - ha:flags { - clearline=1 - } - rot = 0.000000 - } - } - color = {#222222} - } - - ha:top-courtyard { - lid=16 - group=10 - ha:combining { } - - li:objects { - } - color = {#104e8b} - } - - ha:bot-courtyard { - lid=17 - group=11 - ha:combining { } - - li:objects { - } - color = {#cd3700} - } - - ha:top-pwr { - lid=18 - group=3 - ha:combining { } - - li:objects { - } - color = {#c24744} - } - - ha:bottom-pwr { - lid=19 - group=13 - ha:combining { } - - li:objects { - } - color = {#ff5759} - } - - ha:inner-top { - lid=20 - group=5 - ha:combining { } - - li:objects { - } - color = {#548b54} - } - - ha:inner-bottom { - lid=21 - group=7 - ha:combining { } - - li:objects { - } - color = {#8b7355} - } - - ha:break-tabs { - lid=22 - group=12 - ha:combining { } - - li:objects { - } - color = {#00868b} - } - } - } - - - ha:layer_stack { - li:groups { - ha:0 { - name = top_paste - ha:type { top=1; paste=1; } - li:layers { 7; } - } - ha:1 { - name = top_silk - ha:type { silk=1; top=1; } - li:layers { 6; } - } - ha:2 { - name = top_mask - ha:type { top=1; mask=1; } - li:layers { 8; } - } - ha:3 { - name = top_copper - ha:type { copper=1; top=1; } - li:layers { 0; 18; 2; } - ha:attributes { - thickness=0.035mm - } - } - ha:4 { - name = grp_4 - ha:type { substrate=1; intern=1; } - li:layers { } - ha:attributes { - thickness={0.2mm } - } - } - ha:5 { - name = Intern - ha:type { copper=1; intern=1; } - li:layers { 20; } - ha:attributes { - thickness=0.0175mm - } - } - ha:6 { - name = grp_6 - ha:type { substrate=1; intern=1; } - li:layers { } - ha:attributes { - thickness=1.065mm - } - } - ha:7 { - name = Intern - ha:type { copper=1; intern=1; } - li:layers { 21; } - ha:attributes { - thickness=0.0175mm - } - } - ha:8 { - name = grp_9 - ha:type { substrate=1; intern=1; } - li:layers { } - ha:attributes { - thickness=0.2mm - } - } - ha:9 { - name = global_outline - ha:type { boundary=1; } - li:layers { 4; } - purpose = uroute - } - ha:10 { - name = top-courtyard - ha:type { top=1; doc=1; } - li:layers { 16; } - ha:attributes { - init-invis=true - } - purpose = ko.courtyard - } - ha:11 { - name = bot-courtyard - ha:type { bottom=1; doc=1; } - li:layers { 17; } - ha:attributes { - init-invis=true - } - purpose = ko.courtyard - } - ha:12 { - name = global-doc - ha:type { doc=1; } - li:layers { 22; } - } - ha:13 { - name = bottom_copper - ha:type { bottom=1; copper=1; } - li:layers { 1; 19; 3; } - ha:attributes { - thickness=0.035mm - } - } - ha:14 { - name = bottom_mask - ha:type { bottom=1; mask=1; } - li:layers { 9; } - } - ha:15 { - name = bottom_silk - ha:type { silk=1; bottom=1; } - li:layers { 5; } - } - ha:16 { - name = bottom_paste - ha:type { bottom=1; paste=1; } - li:layers { 10; } - } - ha:17 { - name = pmech - ha:type { mech=1; } - li:layers { 11; } - purpose = proute - } - ha:18 { - name = umech - ha:type { mech=1; } - li:layers { 12; } - purpose = uroute - } - ha:19 { - name = top_assy - ha:type { top=1; doc=1; } - li:layers { 13; } - ha:attributes { - init-invis=1 - } - purpose = assy - } - ha:20 { - name = bot_assy - ha:type { bottom=1; doc=1; } - li:layers { 14; } - ha:attributes { - init-invis=1 - } - purpose = assy - } - ha:21 { - name = fab - ha:type { top=1; doc=1; } - li:layers { 15; } - ha:attributes { - init-invis=1 - } - purpose = fab - } - } - } - li:pcb-rnd-conf-v1 { - ha:overwrite { - ha:plugins { - ha:show_netnames { - enable = true - } - ha:import_sch { - li:args { - ./hdmi_firewall.sch - } - import_fmt = lepton - } - } - ha:design { - via_proto = 0 - text_font_id = 0 - text_scale = 100 - min_slk = 0.15240000 mm - text_thickness = 0 - line_thickness = 300.00 um - ha:drc { - min_ring = 0.125 mm - min_copper_overlap = 6.0 mil - min_copper_thickness = 5.0 mil - min_drill = 0.2 mm - } - min_wid = 0.15240000 mm - bloat = 0.15240000 mm - clearance = 200.00 um - } - ha:editor { - grid_unit = mm - grids_idx = 8 - clear_line = true - grid = 50.00 um - line_refraction = 1 - buffer_number = 0 - rubber_band_mode = false - ha:view { - flip_y = 0 - } - show_solder_side = 0 - wireframe_draw = false - } - ha:rc { - li:library_search_paths { - $(rc.path.design)/coraleda/subc - $(rc.path.design)/coraleda/subc - ?../pcblib - ?~/pcblib/ - $(rc.path.share)/pcblib - } - } - } - ha:append { - ha:plugins { - ha:drc_query { - li:rules { - ha:net-length { - type = net length - title = network length violation - desc = network length is not within the specified range - query = {rule net_len_min -let ALLNETS netlist() -let LNET (ALLNETS.a."len_min" != "") -assert (isvoid(netlen(LNET))) thus violation(DRCGRP1, LNET, DRCTEXT, "network can not be verified for length (not a 2-terminal net): ", DRCTEXT, LNET.name) -assert (netlen(LNET) < coord(LNET.a."len_min")) thus violation(DRCGRP1, LNET, DRCTEXT, "network is too short: ", DRCTEXT, LNET.name, DRCMEASURE, netlen(LNET), DRCEXPECT, LNET.a."len_min") -rule net_len_max -let ALLNETS netlist() -let LNET (ALLNETS.a."len_max" != "") -assert (isvoid(netlen(LNET))) thus violation(DRCGRP1, LNET, DRCTEXT, "network can not be verified for length (not a 2-terminal net): ", DRCTEXT, LNET.name) -assert (netlen(LNET) > coord(LNET.a."len_max")) thus violation(DRCGRP1, LNET, DRCTEXT, "network is too long: ", DRCTEXT, LNET.name, DRCMEASURE, netlen(LNET), DRCEXPECT, LNET.a."len_max") -rule net_len_match_net -let ALLNETS netlist() -let LNET ((ALLNETS.a."len_match_net" != "") && (ALLNETS.a."len_match_tol" != "")) -assert (isvoid(netlen(LNET))) thus violation(DRCGRP1, LNET, DRCTEXT, "network can not be verified for length (not a 2-terminal net): ", DRCTEXT, LNET.name) -assert (abs(netlen(LNET) - netlen(LNET.a."len_match_net")) > coord(LNET.a."len_match_tol")) thus violation(DRCGRP1, LNET, DRCTEXT, "network is length match out of range: ", DRCTEXT, LNET.name, DRCTEXT, " vs. ", DRCTEXT, LNET.a."len_match_net", DRCMEASURE, abs(netlen(LNET) - netlen(LNET.a."len_match_net")), DRCEXPECT, LNET.a."len_match_tol") -} - } - } - } - } - } - } - ha:pixmaps { - } -}