Seems to happen when there is no closed outline drawn in the footprint.
Another test cases in an attachment.

Andrzej

W dniu 2018-02-21 o 17:41, Andrzej Wolski pisze:
After this patch, I can no longer select some footprints by clicking inside their area.
Please see the board in an attachment.

Andrzej

W dniu 2018-02-20 o 16:44, Wayne Stambaugh pisze:
Jon,

I merged your patch.

Thanks,

Wayne

On 2/18/2018 7:01 PM, Jon Evans wrote:
Hi Wayne,

In my testing there is no performance impact, but more testing is
welcome.  It shouldn't be doing the calculation on too many objects in
general, since this is a "second pass" hit test that applies to modules
that have a bounding box overlapping the mouse cursor.
However, I did some more testing and discovered some weird behavior, so
I have tweaked the algorithm in the attached new version of the patch.

-Jon

On Sun, Feb 18, 2018 at 5:25 PM, Wayne Stambaugh <stambau...@gmail.com
<mailto:stambau...@gmail.com>> wrote:

     Hey Jon,

     Did you notice an performance hit with your patch? Obviously there
     is going to be more overhead calculating a polygon versus a
     rectangle.  I just want to be sure we are not causing any usability
     issues due to the polygon calculations.

     Thanks,

     Wayne


     On 02/18/2018 12:10 PM, Jon Evans wrote:

         Hi all,

         The attached patch adds some plumbing to calculate and make use
         of a polygonal bounding area for modules.  It fixes the below
         issue and in general improves the accuracy of selection in my
         testing.

         This mechanism could be extended to other objects besides
         modules if it's useful.  I figured I'd start by sending out this
         patch to get feedback, and if it gets merged, look for other
         areas where we could improve things by using polygons instead of
         bounding boxes.

         https://bugs.launchpad.net/kicad/+bug/1749077
         <https://bugs.launchpad.net/kicad/+bug/1749077>

         -Jon


         _______________________________________________
         Mailing list: https://launchpad.net/~kicad-developers
         <https://launchpad.net/~kicad-developers>
         Post to     : kicad-developers@lists.launchpad.net
         <mailto:kicad-developers@lists.launchpad.net>
         Unsubscribe : https://launchpad.net/~kicad-developers
         <https://launchpad.net/~kicad-developers>
         More help   : https://help.launchpad.net/ListHelp
         <https://help.launchpad.net/ListHelp>


     _______________________________________________
     Mailing list: https://launchpad.net/~kicad-developers
     <https://launchpad.net/~kicad-developers>
     Post to     : kicad-developers@lists.launchpad.net
     <mailto:kicad-developers@lists.launchpad.net>
     Unsubscribe : https://launchpad.net/~kicad-developers
     <https://launchpad.net/~kicad-developers>
     More help   : https://help.launchpad.net/ListHelp
     <https://help.launchpad.net/ListHelp>


_______________________________________________
Mailing list: https://launchpad.net/~kicad-developers
Post to     : kicad-developers@lists.launchpad.net
Unsubscribe : https://launchpad.net/~kicad-developers
More help   : https://help.launchpad.net/ListHelp



(kicad_pcb (version 20171130) (host pcbnew "(5.0-dev-4108-g1013f8160)")

  (general
    (thickness 1.6)
    (drawings 0)
    (tracks 0)
    (zones 0)
    (modules 3)
    (nets 1)
  )

  (page A4)
  (layers
    (0 F.Cu signal)
    (31 B.Cu signal)
    (32 B.Adhes user)
    (33 F.Adhes user)
    (34 B.Paste user)
    (35 F.Paste user)
    (36 B.SilkS user)
    (37 F.SilkS user)
    (38 B.Mask user)
    (39 F.Mask user)
    (40 Dwgs.User user)
    (41 Cmts.User user)
    (42 Eco1.User user)
    (43 Eco2.User user)
    (44 Edge.Cuts user)
    (45 Margin user)
    (46 B.CrtYd user)
    (47 F.CrtYd user)
    (48 B.Fab user)
    (49 F.Fab user)
  )

  (setup
    (last_trace_width 0.25)
    (trace_clearance 0.2)
    (zone_clearance 0.508)
    (zone_45_only no)
    (trace_min 0.2)
    (segment_width 0.2)
    (edge_width 0.15)
    (via_size 0.8)
    (via_drill 0.4)
    (via_min_size 0.4)
    (via_min_drill 0.3)
    (uvia_size 0.3)
    (uvia_drill 0.1)
    (uvias_allowed no)
    (uvia_min_size 0.2)
    (uvia_min_drill 0.1)
    (pcb_text_width 0.3)
    (pcb_text_size 1.5 1.5)
    (mod_edge_width 0.15)
    (mod_text_size 1 1)
    (mod_text_width 0.15)
    (pad_size 1.524 1.524)
    (pad_drill 0.762)
    (pad_to_mask_clearance 0.2)
    (aux_axis_origin 0 0)
    (visible_elements FFFFEF7F)
    (pcbplotparams
      (layerselection 0x010fc_ffffffff)
      (usegerberextensions false)
      (usegerberattributes false)
      (usegerberadvancedattributes false)
      (creategerberjobfile false)
      (excludeedgelayer true)
      (linewidth 0.100000)
      (plotframeref false)
      (viasonmask false)
      (mode 1)
      (useauxorigin false)
      (hpglpennumber 1)
      (hpglpenspeed 20)
      (hpglpendiameter 15)
      (psnegative false)
      (psa4output false)
      (plotreference true)
      (plotvalue true)
      (plotinvisibletext false)
      (padsonsilk false)
      (subtractmaskfromsilk false)
      (outputformat 1)
      (mirror false)
      (drillshape 1)
      (scaleselection 1)
      (outputdirectory ""))
  )

  (net 0 "")

  (net_class Default "This is the default net class."
    (clearance 0.2)
    (trace_width 0.25)
    (via_dia 0.8)
    (via_drill 0.4)
    (uvia_dia 0.3)
    (uvia_drill 0.1)
  )

  (module IPC7351-Nominal:CAPC1608X55 (layer F.Cu) (tedit 5A8DAC0E) (tstamp 
5A8DA738)
    (at 141.55 92.31 90)
    (descr "Capacitor,non-polarized,Chip;1.60mm L X 0.80mm W X 0.55mm H")
    (path /57752301/5775B959)
    (attr smd)
    (fp_text reference C41 (at -0.046 0.221 90) (layer F.Fab) hide
      (effects (font (size 0.8 0.8) (thickness 0.15)))
    )
    (fp_text value 1u (at 0 0 90) (layer F.Fab) hide
      (effects (font (size 0.8 0.8) (thickness 0.15)))
    )
    (fp_line (start -1.45 -0.725) (end 1.45 -0.725) (layer F.CrtYd) (width 
0.15))
    (fp_line (start 1.45 -0.725) (end 1.45 0.725) (layer F.CrtYd) (width 0.15))
    (fp_line (start 1.45 0.725) (end -1.45 0.725) (layer F.CrtYd) (width 0.15))
    (fp_line (start -1.45 0.725) (end -1.45 -0.725) (layer F.CrtYd) (width 
0.15))
    (pad 1 smd rect (at -0.75 0 90) (size 0.9 0.95) (layers F.Cu F.Paste 
F.Mask))
    (pad 2 smd rect (at 0.75 0 90) (size 0.9 0.95) (layers F.Cu F.Paste F.Mask))
    (model smd_cap/c_0603.wrl
      (at (xyz 0 0 0))
      (scale (xyz 1 1 1))
      (rotate (xyz 0 0 0))
    )
  )

  (module IPC7351-Nominal:CAPC1608X55 (layer F.Cu) (tedit 5A8DAC00) (tstamp 
5A8DAC81)
    (at 143.77 92.32 90)
    (descr "Capacitor,non-polarized,Chip;1.60mm L X 0.80mm W X 0.55mm H")
    (path /57752301/5775B959)
    (attr smd)
    (fp_text reference C41 (at -0.046 0.221 90) (layer F.Fab) hide
      (effects (font (size 0.8 0.8) (thickness 0.15)))
    )
    (fp_text value 1u (at 0 0 90) (layer F.Fab) hide
      (effects (font (size 0.8 0.8) (thickness 0.15)))
    )
    (fp_line (start -1.45 -0.725) (end 1.45 -0.725) (layer F.CrtYd) (width 
0.15))
    (fp_line (start 1.45 -0.725) (end 1.45 0.725) (layer F.CrtYd) (width 0.15))
    (fp_line (start 1.45 0.725) (end -1 0.725) (layer F.CrtYd) (width 0.15))
    (fp_line (start -1.45 0.725) (end -1.45 -0.725) (layer F.CrtYd) (width 
0.15))
    (pad 1 smd rect (at -0.75 0 90) (size 0.9 0.95) (layers F.Cu F.Paste 
F.Mask))
    (pad 2 smd rect (at 0.75 0 90) (size 0.9 0.95) (layers F.Cu F.Paste F.Mask))
    (model smd_cap/c_0603.wrl
      (at (xyz 0 0 0))
      (scale (xyz 1 1 1))
      (rotate (xyz 0 0 0))
    )
  )

  (module IPC7351-Nominal:CAPC1608X55 (layer F.Cu) (tedit 5A8DAB9B) (tstamp 
5A8DAB68)
    (at 145.86 92.34 90)
    (descr "Capacitor,non-polarized,Chip;1.60mm L X 0.80mm W X 0.55mm H")
    (path /57752301/5775B959)
    (attr smd)
    (fp_text reference C41 (at -0.046 0.221 90) (layer F.Fab) hide
      (effects (font (size 0.8 0.8) (thickness 0.15)))
    )
    (fp_text value 1u (at 0 0 90) (layer F.Fab) hide
      (effects (font (size 0.8 0.8) (thickness 0.15)))
    )
    (pad 2 smd rect (at 0.75 0 90) (size 0.9 0.95) (layers F.Cu F.Paste F.Mask))
    (pad 1 smd rect (at -0.75 0 90) (size 0.9 0.95) (layers F.Cu F.Paste 
F.Mask))
    (model smd_cap/c_0603.wrl
      (at (xyz 0 0 0))
      (scale (xyz 1 1 1))
      (rotate (xyz 0 0 0))
    )
  )

)
_______________________________________________
Mailing list: https://launchpad.net/~kicad-developers
Post to     : kicad-developers@lists.launchpad.net
Unsubscribe : https://launchpad.net/~kicad-developers
More help   : https://help.launchpad.net/ListHelp

Reply via email to