Re: [Kicad-developers] Removing segment hard-coding

2019-05-18 Thread Tomasz Wlostowski
On 16/05/2019 20:44, Jon Evans wrote:
> I can think of at least two alternatives:
> 
> 1) automatic performance tuning based on self-benchmarking
> 
> 2) a "graphics performance" setting (high/medium/low) that changes
> multiple things under the hood.

Hi Jon,

I'm afraid this would be difficult to achieve without breaking the
WYSIWYG principle - board geometry should look exactly the same as in
the Gerber files (so IMHO we shouldn't allow for tweaking the number of
arc approx segments for display purposes only).

Cheers,
Tom

___
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


Re: [Kicad-developers] Removing segment hard-coding

2019-05-16 Thread Jon Evans
For the graphics performance point, do we want to go the "solidworks way"
of giving many settings to tweak performance, and letting users figure out
what works for them?

I can think of at least two alternatives:

1) automatic performance tuning based on self-benchmarking

2) a "graphics performance" setting (high/medium/low) that changes multiple
things under the hood.

-Jon

On Thu, May 16, 2019 at 2:36 PM Wayne Stambaugh 
wrote:

> Seth,
>
> On 5/16/19 1:29 PM, Seth Hillbrand wrote:
> > Am 2019-05-16 08:44, schrieb Seth Hillbrand:
> >> Am 2019-05-16 08:31, schrieb Wayne Stambaugh:
> >>> Seth,
> >>>
> >>> I took a look at this and it looks fine to me.  Refresh my memory, is
> >>> this change to reduce the number of arc segments to help address the
> >>> performance issues on complex boards or is this change for some other
> >>> reason?
> >>
> >> Correct, this reduces the complexity of boards by reducing the number
> >> of segments needed to approximate small radius curves.
> >>
> >
> >
> > Hi All-
> >
> > The next step in this is to remove the segment count setting from the
> > file format.  I have a baseline patch for this pushed to my segments
> > branch at [1].  As this is a file format change, it makes sense to think
> > about whether we want to add a an option for the board maximum error at
> > the same time.
> >
> > Currently, we use 0.005mm as the maximum error for most items.  This
> > includes approximating arcs, inflating/deflating for clearances and
> > converting items to polygons for plotting.  It may make sense to make
> > this value a setting that is stored.  There are a few options I see:
> >
> > 1) Put the value in the board file directly.  This might make sense
> > because it is used to figure out the copper fills that are stored in the
> > file.  But the value itself doesn't directly alter the physical aspect
> > of the board.
> >
> > 2) Put the value in the board settings.  This would be alongside things
> > like layer visibility and plot settings.
> >
> > 3) Put the value in the user settings. This would be alongside things
> > like anti-alias settings.
> >
> > If we go with option (3), we could have a separate value that controls
> > the plot output settings stored like (2) so that two users working on
> > the same board would get the same output.
> >
> >
> >
> > Thoughts?
> > -Seth
> >
> > [1] https://code.launchpad.net/~sethh/kicad/+git/kicad/+ref/segments
>
> If this setting has any affect on the board output (gerbers) then it
> belongs in 1.
>
> Otherwise, I don't have a preference.  You could argue option 2 since
> this setting seems like it would be board complexity dependent rather
> than application dependent.  I other words, you might want to allow more
> error for rendering on a complex board and less error for a simple
> board.  You could just as easily argue that it's your system that is
> slow and it should be an application setting (3).
>
> Wayne
>
> ___
> 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
>
___
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


Re: [Kicad-developers] Removing segment hard-coding

2019-05-16 Thread Wayne Stambaugh
Seth,

On 5/16/19 1:29 PM, Seth Hillbrand wrote:
> Am 2019-05-16 08:44, schrieb Seth Hillbrand:
>> Am 2019-05-16 08:31, schrieb Wayne Stambaugh:
>>> Seth,
>>>
>>> I took a look at this and it looks fine to me.  Refresh my memory, is
>>> this change to reduce the number of arc segments to help address the
>>> performance issues on complex boards or is this change for some other
>>> reason?
>>
>> Correct, this reduces the complexity of boards by reducing the number
>> of segments needed to approximate small radius curves.
>>
> 
> 
> Hi All-
> 
> The next step in this is to remove the segment count setting from the
> file format.  I have a baseline patch for this pushed to my segments
> branch at [1].  As this is a file format change, it makes sense to think
> about whether we want to add a an option for the board maximum error at
> the same time.
> 
> Currently, we use 0.005mm as the maximum error for most items.  This
> includes approximating arcs, inflating/deflating for clearances and
> converting items to polygons for plotting.  It may make sense to make
> this value a setting that is stored.  There are a few options I see:
> 
> 1) Put the value in the board file directly.  This might make sense
> because it is used to figure out the copper fills that are stored in the
> file.  But the value itself doesn't directly alter the physical aspect
> of the board.
> 
> 2) Put the value in the board settings.  This would be alongside things
> like layer visibility and plot settings.
> 
> 3) Put the value in the user settings. This would be alongside things
> like anti-alias settings.
> 
> If we go with option (3), we could have a separate value that controls
> the plot output settings stored like (2) so that two users working on
> the same board would get the same output.
> 
> 
> 
> Thoughts?
> -Seth
> 
> [1] https://code.launchpad.net/~sethh/kicad/+git/kicad/+ref/segments

If this setting has any affect on the board output (gerbers) then it
belongs in 1.

Otherwise, I don't have a preference.  You could argue option 2 since
this setting seems like it would be board complexity dependent rather
than application dependent.  I other words, you might want to allow more
error for rendering on a complex board and less error for a simple
board.  You could just as easily argue that it's your system that is
slow and it should be an application setting (3).

Wayne

___
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


Re: [Kicad-developers] Removing segment hard-coding

2019-05-16 Thread Jeff Young
+1 to having the setting.

As for where it’s stored, I don’t have much preference.  All of them have 
plusses and minuses.

Cheers,
Jeff.


> On 16 May 2019, at 18:52, Seth Hillbrand  wrote:
> 
> Am 2019-05-16 13:35, schrieb Jon Evans:
>> Hi Seth,
>> If we need to store the value to control plotting as part of board
>> settings (option 2), which makes sense to me, what is the advantage of
>> storing a different value in user settings (3)?
> 
> Hi Jon-
> 
> If there is a mismatch between a computer's video capabilities and the size 
> of the board being created, the user could work on the board in a lower 
> resolution and then output a smoother gerber (that is consistent across 
> computers).  This is how Solidworks handles 3d graphics.
> 
> This doesn't affect things like circles/tracks that use defined primitives in 
> gerber output.  It only affects interpolated edges in polygons.  For other 
> interpolations like rounded rectangles, we already use a higher (64) 
> segments-per-circle count for the approximation in the output than we use for 
> the on-screen representation.
> 
> -Seth
> 
> ___
> 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


___
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


Re: [Kicad-developers] Removing segment hard-coding

2019-05-16 Thread Seth Hillbrand

Am 2019-05-16 13:35, schrieb Jon Evans:

Hi Seth,

If we need to store the value to control plotting as part of board
settings (option 2), which makes sense to me, what is the advantage of
storing a different value in user settings (3)?


Hi Jon-

If there is a mismatch between a computer's video capabilities and the 
size of the board being created, the user could work on the board in a 
lower resolution and then output a smoother gerber (that is consistent 
across computers).  This is how Solidworks handles 3d graphics.


This doesn't affect things like circles/tracks that use defined 
primitives in gerber output.  It only affects interpolated edges in 
polygons.  For other interpolations like rounded rectangles, we already 
use a higher (64) segments-per-circle count for the approximation in the 
output than we use for the on-screen representation.


-Seth

___
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


Re: [Kicad-developers] Removing segment hard-coding

2019-05-16 Thread Jon Evans
Hi Seth,

If we need to store the value to control plotting as part of board settings 
(option 2), which makes sense to me, what is the advantage of storing a 
different value in user settings (3)? 

-Jon

On Thu, May 16, 2019, at 1:30 PM, Seth Hillbrand wrote:
> Am 2019-05-16 08:44, schrieb Seth Hillbrand:
> > Am 2019-05-16 08:31, schrieb Wayne Stambaugh:
> >> Seth,
> >> 
> >> I took a look at this and it looks fine to me. Refresh my memory, is
> >> this change to reduce the number of arc segments to help address the
> >> performance issues on complex boards or is this change for some other
> >> reason?
> > 
> > Correct, this reduces the complexity of boards by reducing the number
> > of segments needed to approximate small radius curves.
> > 
> 
> 
> Hi All-
> 
> The next step in this is to remove the segment count setting from the 
> file format. I have a baseline patch for this pushed to my segments 
> branch at [1]. As this is a file format change, it makes sense to think 
> about whether we want to add a an option for the board maximum error at 
> the same time.
> 
> Currently, we use 0.005mm as the maximum error for most items. This 
> includes approximating arcs, inflating/deflating for clearances and 
> converting items to polygons for plotting. It may make sense to make 
> this value a setting that is stored. There are a few options I see:
> 
> 1) Put the value in the board file directly. This might make sense 
> because it is used to figure out the copper fills that are stored in the 
> file. But the value itself doesn't directly alter the physical aspect 
> of the board.
> 
> 2) Put the value in the board settings. This would be alongside things 
> like layer visibility and plot settings.
> 
> 3) Put the value in the user settings. This would be alongside things 
> like anti-alias settings.
> 
> If we go with option (3), we could have a separate value that controls 
> the plot output settings stored like (2) so that two users working on 
> the same board would get the same output.
> 
> 
> 
> Thoughts?
> -Seth
> 
> [1] https://code.launchpad.net/~sethh/kicad/+git/kicad/+ref/segments
> 
> ___
> 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
> 
___
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


Re: [Kicad-developers] Removing segment hard-coding

2019-05-16 Thread Seth Hillbrand

Am 2019-05-16 08:44, schrieb Seth Hillbrand:

Am 2019-05-16 08:31, schrieb Wayne Stambaugh:

Seth,

I took a look at this and it looks fine to me.  Refresh my memory, is
this change to reduce the number of arc segments to help address the
performance issues on complex boards or is this change for some other
reason?


Correct, this reduces the complexity of boards by reducing the number
of segments needed to approximate small radius curves.




Hi All-

The next step in this is to remove the segment count setting from the 
file format.  I have a baseline patch for this pushed to my segments 
branch at [1].  As this is a file format change, it makes sense to think 
about whether we want to add a an option for the board maximum error at 
the same time.


Currently, we use 0.005mm as the maximum error for most items.  This 
includes approximating arcs, inflating/deflating for clearances and 
converting items to polygons for plotting.  It may make sense to make 
this value a setting that is stored.  There are a few options I see:


1) Put the value in the board file directly.  This might make sense 
because it is used to figure out the copper fills that are stored in the 
file.  But the value itself doesn't directly alter the physical aspect 
of the board.


2) Put the value in the board settings.  This would be alongside things 
like layer visibility and plot settings.


3) Put the value in the user settings. This would be alongside things 
like anti-alias settings.


If we go with option (3), we could have a separate value that controls 
the plot output settings stored like (2) so that two users working on 
the same board would get the same output.




Thoughts?
-Seth

[1] https://code.launchpad.net/~sethh/kicad/+git/kicad/+ref/segments

___
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


Re: [Kicad-developers] Removing segment hard-coding

2019-05-16 Thread Seth Hillbrand

Am 2019-05-16 08:31, schrieb Wayne Stambaugh:

Seth,

I took a look at this and it looks fine to me.  Refresh my memory, is
this change to reduce the number of arc segments to help address the
performance issues on complex boards or is this change for some other
reason?


Correct, this reduces the complexity of boards by reducing the number of 
segments needed to approximate small radius curves.


-Seth

___
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


Re: [Kicad-developers] Removing segment hard-coding

2019-05-16 Thread Wayne Stambaugh
Seth,

On 5/15/19 8:06 PM, Seth Hillbrand wrote:
> Am 2019-05-14 20:04, schrieb Seth Hillbrand:
>> Hi All-
>>
>> I pushed a branch that removes the remaining hard-coded segment counts
>> to my kicad fork[1].  It touches many things, so I'd love to get some
>> testing before merging.
>>
>> It has the side effect of needing to decouple the remaining
>> tool_manager interfaces from pcbnew.  I noticed a couple of hacks that
>> used some of these calls to fix focus bugs on Windows.  I think I
>> preserved this but it would be nice to verify.  The comments noted
>> that these occurred when the main window was minimized.  @JP, I think
>> that this was your comment (tool_dispatcher.cpp:320)
>>
>> Thanks-
>> Seth
>>
>> [1] https://code.launchpad.net/~sethh/kicad/+git/kicad/+ref/segments
>>
> 
> If anyone would like some time to review this, let me know in the next
> couple days and I'll hold off before merging.
> 
> -Seth
> 

I took a look at this and it looks fine to me.  Refresh my memory, is
this change to reduce the number of arc segments to help address the
performance issues on complex boards or is this change for some other
reason?

Cheers,

Wayne

___
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


Re: [Kicad-developers] Removing segment hard-coding

2019-05-15 Thread Seth Hillbrand

Am 2019-05-14 20:04, schrieb Seth Hillbrand:

Hi All-

I pushed a branch that removes the remaining hard-coded segment counts
to my kicad fork[1].  It touches many things, so I'd love to get some
testing before merging.

It has the side effect of needing to decouple the remaining
tool_manager interfaces from pcbnew.  I noticed a couple of hacks that
used some of these calls to fix focus bugs on Windows.  I think I
preserved this but it would be nice to verify.  The comments noted
that these occurred when the main window was minimized.  @JP, I think
that this was your comment (tool_dispatcher.cpp:320)

Thanks-
Seth

[1] https://code.launchpad.net/~sethh/kicad/+git/kicad/+ref/segments



If anyone would like some time to review this, let me know in the next 
couple days and I'll hold off before merging.


-Seth

___
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-developers] Removing segment hard-coding

2019-05-14 Thread Seth Hillbrand

Hi All-

I pushed a branch that removes the remaining hard-coded segment counts 
to my kicad fork[1].  It touches many things, so I'd love to get some 
testing before merging.


It has the side effect of needing to decouple the remaining tool_manager 
interfaces from pcbnew.  I noticed a couple of hacks that used some of 
these calls to fix focus bugs on Windows.  I think I preserved this but 
it would be nice to verify.  The comments noted that these occurred when 
the main window was minimized.  @JP, I think that this was your comment 
(tool_dispatcher.cpp:320)


Thanks-
Seth

[1] https://code.launchpad.net/~sethh/kicad/+git/kicad/+ref/segments

___
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