What about changing the plotter and page_info classes to metric? Like changing GetSizeMils() to GetSizeUM(), m_IUsPerDecimil to m_nmPerIU and MIN_PAGE_SIZE to MIN_PAGE_SIZE_UM? I say um because it is the largest IU (PL-editor) and m_nmPerIU could be an integer (AFAIK). That would make everything metric, avoid rounding errors for pages and pen sizes that are on a grid of 1 um or 10 mil, and it would avoid calculating the conversations factor to convert from metric to non-metric, only to then convert the conversations factor back to convert metric to metric, like it is done when starting a gerber plot. It would not limit maximum page sizes to a lower limit. Would you accept and welcome this or do you think this is a bad or useless idea?
Johannes Am Do., 13. Feb. 2020 um 14:46 Uhr schrieb Wayne Stambaugh <stambau...@gmail.com>: > > Hi Johannes, > > Thank you for your suggestion but the internal units for each format > were chosen for a specific reason. There really is no justifiable > reason to change them as they have been carefully selected based on the > requirements of the objects they represent. Conversion code is provided > for each internal unit so plotting to standard units such as > millimeters, inches, etc is trivial. I'm not opposed to adding support > for changing the plot units. I am opposed to changing the internal units. > > Cheers, > > Wayne > > On 2/13/20 9:32 AM, Johannes Pfister wrote: > > The KiCAD code uses all kinds of different units for distances. > > Amongst other things I found: > > nm: pcbnew internal units > > 10nm: Gerbview internal units > > 100nm EEschema internal units > > 1um: PL-Editor internal units > > 0.1mil (2.54um): SetViewport > > 1mil (25.4 um): WS_DRAW_ITEM_BASE and GetSizeMils > > And the native File formats use mm (pcbnew) and mil (EEschema). > > Something like SVG exports in 0.1 mil steps. I think that this is not > > very consistent and something like a PLOTTER class needs to handle > > different IU-sizes. > > > > My idea is to rewrite the internal units so that nm are used > > everywhere inside the source code, and only parts that write or read > > files and display data to or read data from the user should convert it > > to another unit system. I don't want to change any file formats. > > That would make it a bit more straightforward, more consistent, metric > > and an SVG-Plotter would use a metric step size. The disadvantage > > would be that there would be an about 2m or 4m limit in every > > direction, assuming int is 32 bit, which is AFAIK true for all > > platforms KiCAD current supports. > > > > Before i rewrite code, can you say what you guys think about it? > > > > > > Johannes Pfister > > > > _______________________________________________ > > 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 _______________________________________________ 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