[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

Re: gEDA-user: sloppy rupper band mode



Ben Jackson wrote:

>On Sat, Oct 20, 2007 at 10:32:57AM -0700, joe tarantino wrote:
>  
>
>>On 10/20/07, Ben Jackson <ben@xxxxxxx> wrote:
>>    
>>
>>>1)  If you move a line or its endpoint:  For purposes of rubberbanding,
>>>it is considered connected to all of the line segments whose ends overlap
>>>the moving line's end(s).
>>>      
>>>
>>That appears to be the problem: Either that it is picking the wrong segment
>>or that it is leaving one of the endpoints behind (unpicked) that belongs to
>>the short segment.  In the case that Kai-Martin showed earlier in this
>>thread, there are three segments and 4 endpoints in the "pick region" that
>>must be sorted through.  It seems as if one of the endpoints gets dropped.
>>    
>>
>
>New illustration  A---------BC-DE--------F, where B=C, D=E and B,C,D,E overlap
>
>Well, that's what we've got to decide.  Either the bug is:  one gets
>dropped, meaning the "right" behavior that dragging segment EF should
>move points B, C, D along with E.  OR the bug is too many get included,
>meaning the "right" behavior that dragging EF should only drag D.
>  
>
The more explicit illustration helps...

I agree.  Either it should drag D with segment EF (my preference; it is 
simpler and more useful) or it should drag B,C,D along with segment EF( 
not preferred - it prevents stretching segment CD).  In the past I 
believe it was
dragging B & D along with segment EF, which was not useful.

>I favor the latter, but I am not sure what the rule is by which I'd
>exclude B.  Excluding C is easy, since we search by line I see C and D
>at the same time.  In fact, I'm not sure the rest of the code would cope
>if you added BOTH C and D.
>
>  
>
>>I think you've found the issue with the lines overlapping (i.e. adjacent
>>vertices being closer together than the line width).  What about ignoring
>>the line width while choosing the proper endpoint in the case when the
>>endpoints are closer together than one or two line widths?
>>    
>>
>
>That makes it easier to pick D when considering segment CD, but you can
>get the same result by simply picking the closer point.  I already made
>that fix in my view when I noticed it was picking the "first" end every
>time.  It's not much of an improvement, though.  You still get the weird
>3-line-V structure.
>
>[snip a discussion of how crosshair position could be used to select one
>of the two solutions I described above]
>
>  
>
>>Quite
>>often I generate these short lines by routing with "snap to pins/pads"
>>turned on.  Then you are almost always guaranteed to cause a tiny segment to
>>occur right at the end (often "inside" the pad).  In this case, if there is
>>a point that is exactly on the pin or pad and the pin or pad is moved, only
>>the line endpoint exactly on the pin or pad should move.  (Yes, I realize
>>that this may be difficult to do given the way the data is stored.)
>>    
>>
>
>Interesting preference.  I'm thinking of SMT pads that end up like this:
>
>+---------------------+
>|                  C--|---D
>|   A             B   |
>|                     |
>+---------------------+
>Where A and B are the points defining the pad and BC is the stubby segment
>that steps onto the grid.  When you move that now, one endpoint of BC
>stays behind.  The other endpoint along with the C-end of CD.  You end
>up with one crazy diagonal connecting line CD and one line from B back
>to approximately wherever the pad used to be.  That seems pretty useless
>to me.  Actually, the initial creation of BC seems pretty useless, since
>it adds nothing in the end.
>  
>
Creating the short segment (B-C) is a result of snapping to an off-grid 
pad.  Stretching this segment means moving point C, regardless of 
whether it was inside or outside the boundary of the pad to start with (?)

The situation I run into more often is that the pad points (A,B) are off 
grid, as is C, while D is on grid, but C is outside the pad (see 
below).  It may be simpler than the case you have drawn.  This is the 
picture that represents what I usually see.  Point C is off grid in 
either case.

+---------------------+
|                     |   D
|   A             B---|-C
|                     |
+---------------------+

Joe T

>>The 3+ line intersection case would be farther down my list.  I don't
>>encounter that too often unless I'm building up a  "geometry" like a
>>transmission line or taper.
>>    
>>
>
>I think the way I'm leaning now is to let the 3+ line case break or
>behave oddly and fix the bug by simply taking the one closest endpoint
>when doing line-to-line rubberbands.
>
>  
>



_______________________________________________
geda-user mailing list
geda-user@xxxxxxxxxxxxxx
http://www.seul.org/cgi-bin/mailman/listinfo/geda-user