Mailing list archives : pcb-rnd

ID:3677
From:Gabriel Paubert <pa...@iram.es>
Date:Mon, 13 Jan 2020 18:33:31 +0100
Subject:[pcb-rnd] Bug report: editing padstacks of flipped through-hole components can
replies: 3678 from ge...@igor2.repo.hu
 
--gBBFr7Ir9EOA20Yy
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
 
	Hi,
 
load the attached file and:
- right click on the circular pad and select edit geometry/prototype
- click on the prototype tab
- change for example the top mask
- increase it by say, 0.1mm
- close the the change dialog
- instead of the top mask, it is the bottom mask that has been changed!
 
I've seen the same kind of side flip for copper, I've not tried the paste
layer, so I can't tell for sure but it seems likely.
 
If, instead of using shrink/grow, you try "derive automatically", the
bottom mask simply disappears and a red line appears in the message
window.
 
Note that the editor works fine for SMD padstacks, independently of the
side of the component.
 
	Regards,
	Gabriel
 
 
--gBBFr7Ir9EOA20Yy
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename="editflipped.lht"
 
ha:pcb-rnd-board-v6 {
 ha:meta {
  ha:size {
   thermal_scale = 0.500000
   x = 50.0mm
   y = 30.0mm
  }
  board_name = Test
  ha:grid {
   spacing = 0.5mm
   offs_x = 0.0
   offs_y = 0.0
  }
 }
 ha:layer_stack {
  li:groups {
   ha:0 {
    ha:type {
     top = 1
     paste = 1
    }
    li:layers {
     7
    }
    name = top_paste
   }
   ha:1 {
    ha:type {
     silk = 1
     top = 1
    }
    li:layers {
     6
    }
    name = top_silk
   }
   ha:2 {
    ha:type {
     top = 1
     mask = 1
    }
    li:layers {
     8
    }
    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 = grp_4
   }
   ha:5 {
    ha:type {
     copper = 1
     intern = 1
    }
    li:layers {
     3
    }
    name = Intern
   }
   ha:6 {
    ha:type {
     substrate = 1
     intern = 1
    }
    li:layers {
    }
    name = grp_6
   }
   ha:7 {
    ha:type {
     copper = 1
     intern = 1
    }
    li:layers {
     2
    }
    name = Intern
   }
   ha:8 {
    ha:type {
     substrate = 1
     intern = 1
    }
    li:layers {
    }
    name = grp_8
   }
   ha:9 {
    purpose = uroute
    ha:type {
     boundary = 1
    }
    li:layers {
     4
    }
    name = global_outline
   }
   ha:10 {
    ha:attributes {
     init-invis = true
    }
    purpose = ko.courtyard
    ha:type {
     top = 1
     doc = 1
    }
    li:layers {
     16
    }
    name = top-courtyard
   }
   ha:11 {
    ha:attributes {
     init-invis = true
    }
    purpose = ko.courtyard
    ha:type {
     bottom = 1
     doc = 1
    }
    li:layers {
     17
    }
    name = bot-courtyard
   }
   ha:12 {
    ha:type {
     bottom = 1
     copper = 1
    }
    li:layers {
     1
    }
    name = bottom_copper
   }
   ha:13 {
    ha:type {
     bottom = 1
     mask = 1
    }
    li:layers {
     9
    }
    name = bottom_mask
   }
   ha:14 {
    ha:type {
     silk = 1
     bottom = 1
    }
    li:layers {
     5
    }
    name = bottom_silk
   }
   ha:15 {
    ha:type {
     bottom = 1
     paste = 1
    }
    li:layers {
     10
    }
    name = bottom_paste
   }
   ha:16 {
    purpose = proute
    ha:type {
     mech = 1
    }
    li:layers {
     11
    }
    name = pmech
   }
   ha:17 {
    purpose = uroute
    ha:type {
     mech = 1
    }
    li:layers {
     12
    }
    name = umech
   }
   ha:18 {
    ha:attributes {
     init-invis = 1
    }
    purpose = assy
    ha:type {
     top = 1
     doc = 1
    }
    li:layers {
     13
    }
    name = top-assy
   }
   ha:19 {
    ha:attributes {
     init-invis = 1
    }
    purpose = assy
    ha:type {
     bottom = 1
     doc = 1
    }
    li:layers {
     14
    }
    name = bot-assy
   }
   ha:20 {
    ha:attributes {
     init-invis = 1
    }
    purpose = fab
    ha:type {
     top = 1
     doc = 1
    }
    li:layers {
     15
    }
    name = fab
   }
  }
 }
 li:styles {
  ha:Signal {
   diameter = 2.0mm
   text_scale = 0
   text_thick = 0.0
   thickness = 10.0mil
   hole = 31.5mil
   clearance = 20.0mil
  }
  ha:Power {
   diameter = 2.2mm
   text_scale = 0
   text_thick = 0.0
   thickness = 20.0mil
   hole = 1.0mm
   clearance = 20.0mil
  }
  ha:Fat {
   diameter = 137.8mil
   text_scale = 0
   text_thick = 0.0
   thickness = 80.0mil
   hole = 47.24mil
   clearance = 25.0mil
  }
  ha:Sig-tight {
   diameter = 64.0mil
   text_scale = 0
   text_thick = 0.0
   thickness = 10.0mil
   hole = 31.5mil
   clearance = 12.0mil
  }
 }
 li:pcb-rnd-conf-v1 {
  ha:overwrite {
   ha:plugins {
    ha:mincut {
     enable = false
    }
   }
   ha:design {
    min_ring = 0.10000000 mm
    clearance = 20.00 mil
    text_font_id = 0
    text_scale = 100
    via_thickness = 2.0000 mm
    via_drilling_hole = 31.50 mil
    min_slk = 0.15000000 mm
    text_thickness = 0
    line_thickness = 10.00 mil
    shrink = 0.10000000 mm
    min_wid = 0.10000000 mm
    bloat = 0.15000000 mm
    min_drill = 0.20000000 mm
   }
   ha:editor {
    wireframe_draw = false
    grid_unit = mm
    grids_idx = 11
    grid = 500.00 um
    buffer_number = 0
    only_names = false
    thin_draw_poly = false
    rubber_band_mode = true
    ha:view {
     flip_y = 0
    }
    show_solder_side = 0
     as_drawn_poly = true
   }
   ha:rc {
    li:library_search_paths {
     $(rc.path.design)/footprints
     ?~/pcblib/
     $(rc.path.share)/pcblib
    }
   }
  }
 }
 ha:data {
  li:padstack_prototypes {
   ha:ps_proto_v6.0 {
    htop = 0
    hdia = 0.2mm
    li:shape {
     ha:ps_shape_v4 {
      clearance = 0.0
      ha:ps_circ {
       x = 0.0
       y = 0.0
       dia = 0.4mm
      }
      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 = 0.4mm
      }
      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 = 0.4mm
      }
      ha:layer_mask {
       copper = 1
       intern = 1
      }
      ha:combining {
      }
     }
    }
    hbottom = 0
    hplated = 1
   }
   ha:ps_proto_v6.1 {
    htop = 0
    hdia = 0.0
    li:shape {
     ha:ps_shape_v4 {
      clearance = 0.2mm
      li:ps_poly {
       -0.25mm
       -0.25mm
       0.25mm
       -0.25mm
       0.25mm
       0.25mm
       -0.25mm
       0.25mm
      }
      ha:layer_mask {
       copper = 1
       top = 1
      }
      ha:combining {
      }
     }
     ha:ps_shape_v4 {
      clearance = 0.2mm
      li:ps_poly {
       -0.2mm
       -0.2mm
       0.2mm
       -0.2mm
       0.2mm
       0.2mm
       -0.2mm
       0.2mm
      }
      ha:layer_mask {
       top = 1
       paste = 1
      }
      ha:combining {
       auto = 1
      }
     }
     ha:ps_shape_v4 {
      clearance = 0.2mm
      li:ps_poly {
       -0.325mm
       -0.325mm
       0.325mm
       -0.325mm
       0.325mm
       0.325mm
       -0.325mm
       0.325mm
      }
      ha:layer_mask {
       top = 1
       mask = 1
      }
      ha:combining {
       sub = 1
       auto = 1
      }
     }
    }
    hbottom = 0
    hplated = 0
   }
   ha:ps_proto_v6.2 {
    htop = 0
    hdia = 0.0
    li:shape {
     ha:ps_shape_v4 {
      clearance = 40.0mil
      ha:ps_circ {
       x = 0.0
       y = 0.0
       dia = 0.33mm
      }
      ha:layer_mask {
       copper = 1
       top = 1
      }
      ha:combining {
      }
     }
     ha:ps_shape_v4 {
      clearance = 40.0mil
      ha:ps_circ {
       x = 0.0
       y = 0.0
       dia = 0.33mm
      }
      ha:layer_mask {
       top = 1
       paste = 1
      }
      ha:combining {
       auto = 1
      }
     }
     ha:ps_shape_v4 {
      clearance = 40.0mil
      ha:ps_circ {
       x = 0.0
       y = 0.0
       dia = 0.48mm
      }
      ha:layer_mask {
       top = 1
       mask = 1
      }
      ha:combining {
       sub = 1
       auto = 1
      }
     }
    }
    hbottom = 0
    hplated = 0
   }
  }
  li:objects {
   ha:subc.2517682 {
    ha:attributes {
     footprint = LED3, 3mm LED (pin 1 is +, 2 is -)
     refdes = D1
    }
    ha:data {
     li:padstack_prototypes {
      ha:ps_proto_v6.0 {
       htop = 0
       hdia = 43.0mil
       li:shape {
        ha:ps_shape_v4 {
         clearance = 0.0
         li:ps_poly {
          -32.5mil
          -32.5mil
          32.5mil
          -32.5mil
          32.5mil
          32.5mil
          -32.5mil
          32.5mil
         }
         ha:layer_mask {
          copper = 1
          top = 1
         }
         ha:combining {
         }
        }
        ha:ps_shape_v4 {
         clearance = 0.0
         li:ps_poly {
          -32.5mil
          -32.5mil
          32.5mil
          -32.5mil
          32.5mil
          32.5mil
          -32.5mil
          32.5mil
         }
         ha:layer_mask {
          bottom = 1
          copper = 1
         }
         ha:combining {
         }
        }
        ha:ps_shape_v4 {
         clearance = 0.0
         li:ps_poly {
          -32.5mil
          -32.5mil
          32.5mil
          -32.5mil
          32.5mil
          32.5mil
          -32.5mil
          32.5mil
         }
         ha:layer_mask {
          copper = 1
          intern = 1
         }
         ha:combining {
         }
        }
        ha:ps_shape_v4 {
         clearance = 0.0
         li:ps_poly {
          -35.5mil
          -35.5mil
          35.5mil
          -35.5mil
          35.5mil
          35.5mil
          -35.5mil
          35.5mil
         }
         ha:layer_mask {
          top = 1
          mask = 1
         }
         ha:combining {
          sub = 1
          auto = 1
         }
        }
        ha:ps_shape_v4 {
         clearance = 0.0
         li:ps_poly {
          -35.5mil
          -35.5mil
          35.5mil
          -35.5mil
          35.5mil
          35.5mil
          -35.5mil
          35.5mil
         }
         ha:layer_mask {
          bottom = 1
          mask = 1
         }
         ha:combining {
          sub = 1
          auto = 1
         }
        }
       }
       hbottom = 0
       hplated = 1
      }
      ha:ps_proto_v6.1 {
       htop = 0
       hdia = 43.0mil
       li:shape {
        ha:ps_shape_v4 {
         clearance = 0.0
         ha:ps_circ {
          x = 0.0
          y = 0.0
          dia = 65.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 = 65.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 = 65.0mil
         }
         ha:layer_mask {
          copper = 1
          intern = 1
         }
         ha:combining {
         }
        }
        ha:ps_shape_v4 {
         clearance = 0.0
         ha:ps_circ {
          x = 0.0
          y = 0.0
          dia = 71.0mil
         }
         ha:layer_mask {
          top = 1
          mask = 1
         }
         ha:combining {
          sub = 1
          auto = 1
         }
        }
        ha:ps_shape_v4 {
         clearance = 0.0
         ha:ps_circ {
          x = 0.0
          y = 0.0
          dia = 71.0mil
         }
         ha:layer_mask {
          bottom = 1
          mask = 1
         }
         ha:combining {
          sub = 1
          auto = 1
         }
        }
       }
       hbottom = 0
       hplated = 1
      }
     }
     li:objects {
      ha:padstack_ref.2517700 {
       smirror = 1
       ha:attributes {
        term = 1
        name = 1
       }
       proto = 0
       xmirror = 1
       x = 7.23mm
       rot = 0.000000
       y = 6.0mm
       li:thermal {
       }
       ha:flags {
        clearline = 1
       }
       clearance = 15.0mil
      }
      ha:padstack_ref.2517701 {
       smirror = 1
       ha:attributes {
        term = 2
        name = 2
       }
       proto = 1
       xmirror = 1
       x = 9.77mm
       rot = 0.000000
       y = 6.0mm
       li:thermal {
       }
       ha:flags {
        clearline = 1
       }
       clearance = 15.0mil
      }
     }
     li:layers {
      ha:top-silk {
       lid = 0
       ha:type {
        silk = 1
        bottom = 1
       }
       li:objects {
        ha:arc.2517683 {
         astart = -45
         thickness = 10.0mil
         width = 59.0mil
         height = 59.0mil
         x = 8.5mm
         y = 6.0mm
         adelta = -90
         clearance = 0.0
        }
        ha:arc.2517684 {
         astart = -225
         thickness = 10.0mil
         width = 59.0mil
         height = 59.0mil
         x = 8.5mm
         y = 6.0mm
         adelta = -90
         clearance = 0.0
        }
        ha:arc.2517685 {
         astart = -45
         thickness = 10.0mil
         width = 79.0mil
         height = 79.0mil
         x = 8.5mm
         y = 6.0mm
         adelta = -90
         clearance = 0.0
        }
        ha:arc.2517686 {
         astart = -225
         thickness = 10.0mil
         width = 79.0mil
         height = 79.0mil
         x = 8.5mm
         y = 6.0mm
         adelta = -90
         clearance = 0.0
        }
        ha:text.2517687 {
         scale = 100
         x = 11.04mm
         y = 4.222mm
         rot = 0.000000
         string = %a.parent.refdes%
         fid = 0
         ha:flags {
          dyntext = 1
          floater = 1
          onsolder = 1
         }
        }
       }
       ha:combining {
       }
      }
      ha:subc-aux {
       lid = 1
       ha:type {
        bottom = 1
        virtual = 1
        misc = 1
       }
       li:objects {
        ha:line.2517688 {
         clearance = 0.0
         y2 = 6.0mm
         thickness = 0.1mm
         ha:attributes {
          subc-role = pnp-origin
         }
         x1 = 8.5mm
         x2 = 8.5mm
         y1 = 6.0mm
        }
        ha:line.2517691 {
         clearance = 0.0
         y2 = 6.0mm
         thickness = 0.1mm
         ha:attributes {
          subc-role = origin
         }
         x1 = 8.5mm
         x2 = 8.5mm
         y1 = 6.0mm
        }
        ha:line.2517694 {
         clearance = 0.0
         y2 = 6.0mm
         thickness = 0.1mm
         ha:attributes {
          subc-role = x
         }
         x1 = 8.5mm
         x2 = 9.5mm
         y1 = 6.0mm
        }
        ha:line.2517697 {
         clearance = 0.0
         y2 = 5.0mm
         thickness = 0.1mm
         ha:attributes {
          subc-role = y
         }
         x1 = 8.5mm
         x2 = 8.5mm
         y1 = 6.0mm
        }
       }
       ha:combining {
       }
      }
     }
    }
    uid = AXOBLf2n2pEOmUoe7pcAAAAB
   }
  }
  li:layers {
   ha:top-sig {
    lid = 0
    li:objects {
    }
    color = {#8b2323}
    group = 3
    ha:combining {
    }
   }
   ha:bottom-sig {
    lid = 1
    li:objects {
    }
    color = {#3a5fcd}
    group = 12
    ha:combining {
    }
   }
   ha:int-sig2 {
    lid = 2
    li:objects {
    }
    color = {#548b54}
    group = 7
    ha:combining {
    }
   }
   ha:int-sig1 {
    lid = 3
    li:objects {
    }
    color = {#8b7355}
    group = 5
    ha:combining {
    }
   }
   ha:outline {
    lid = 4
    li:objects {
    }
    color = {#00868b}
    group = 9
    ha:combining {
    }
   }
   ha:bottom-silk {
    lid = 5
    li:objects {
    }
    color = {#000000}
    group = 14
    ha:combining {
     auto = 1
    }
   }
   ha:top-silk {
    lid = 6
    li:objects {
    }
    color = {#000000}
    group = 1
    ha:combining {
     auto = 1
    }
   }
   ha:top-paste {
    lid = 7
    li:objects {
    }
    color = {#cd00cd}
    group = 0
    ha:combining {
     auto = 1
    }
   }
   ha:top-mask {
    lid = 8
    li:objects {
    }
    color = {#ff0000}
    group = 2
    ha:combining {
     sub = 1
     auto = 1
    }
   }
   ha:bottom-mask {
    lid = 9
    li:objects {
    }
    color = {#ff0000}
    group = 13
    ha:combining {
     sub = 1
     auto = 1
    }
   }
   ha:bottom-paste {
    lid = 10
    li:objects {
    }
    color = {#cd00cd}
    group = 15
    ha:combining {
     auto = 1
    }
   }
   ha:slot-plated {
    lid = 11
    li:objects {
    }
    color = {#8b7355}
    group = 16
    ha:combining {
     auto = 1
    }
   }
   ha:slot-unplated {
    lid = 12
    li:objects {
    }
    color = {#00868b}
    group = 17
    ha:combining {
     auto = 1
    }
   }
   ha:top-assy {
    lid = 13
    li:objects {
    }
    color = {#444444}
    group = 18
    ha:combining {
    }
   }
   ha:bot-assy {
    lid = 14
    li:objects {
    }
    color = {#444444}
    group = 19
    ha:combining {
    }
   }
   ha:fab {
    lid = 15
    li:objects {
    }
    color = {#222222}
    group = 20
    ha:combining {
     auto = 1
    }
   }
   ha:top-courtyard {
    lid = 16
    li:objects {
    }
    color = {#104e8b}
    group = 10
    ha:combining {
    }
   }
   ha:bot-courtyard {
    lid = 17
    li:objects {
    }
    color = {#cd3700}
    group = 11
    ha:combining {
    }
   }
  }
 }
}
 
--gBBFr7Ir9EOA20Yy--
 

Reply subtree:
3677 [pcb-rnd] Bug report: editing padstacks of flipped through-hole components can from Gabriel Paubert <pa...@iram.es>
  3678 Re: [pcb-rnd] Bug report: editing padstacks of flipped through-hole from ge...@igor2.repo.hu
    3924 Re: [pcb-rnd] Bug report: editing padstacks of flipped through-hole from ge...@igor2.repo.hu
      3930 Re: [pcb-rnd] Bug report: editing padstacks of flipped through-hole from Gabriel Paubert <pa...@iram.es>