Re: [Kicad-developers] Removing segment hard-coding
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
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
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
+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
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
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
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
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
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
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
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