Import DXF cause int overflow

166 views
Skip to first unread message

Liang Jia

unread,
Nov 25, 2024, 5:07:00 AM11/25/24
to KiCad Developers
Hi All,

I am writing to inquire about the challenges we are facing when importing DXF files which contain large numbers into our system. 

I have noticed that when the number exceeds a certain threshold(such as 4437 mm), the import process results in an int overflow error.

I did the search below:
1. Found that there was a ticket to track it, but it seems it still opens.

2. From the Kicad document:
The internal measurement resolution of all objects in KiCad is 1 nanometer, and measurements are stored as 32-bit integers. This means it is possible to create boards up to approximately 4 meters by 4 meters
I think the root cause is here: Kicad tried to convert the DXF number into nanometer, but those numbers exceeded the limit of integer.

Questions:
1. Is there any workaround for this case, and let Kicad import those files successfully?
2. If I want to fix ticket 12392, what should I do?
    Change the measurement store from 32-bit to 64-bit, so Kicad can support a larger board.
    Change the resolution of all objects to mm

Looking forward to any comment or workaround.

Sincerely
Liang

Mark Roszko

unread,
Nov 25, 2024, 6:21:12 AM11/25/24
to dev...@kicad.org
>This means it is possible to create boards up to approximately 4 meters by 4 meters

Yes, KiCad is limited to 4x4 meter boards currently. 

>   Change the measurement store from 32-bit to 64-bit, so Kicad can support a larger board.

This is not an easy task in the slightest. Specifically because we can't get 128-bit integer math support in processors, and many compilers do not support 128-bit integers. I think gcc has some experimental support.

>    Change the resolution of all objects to mm

mm is not adequate to express the resolution of position data required for a board design. 



Basically the bug here is we simply do not tell the users the DXF is beyond our board support limit.


--
You received this message because you are subscribed to the Google Groups "KiCad Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email to devlist+u...@kicad.org.
To view this discussion visit https://groups.google.com/a/kicad.org/d/msgid/devlist/CAE0Ak8bd%3DgDwW%3DDWVXH-TKj%3Dr4nsgW370aNqB6PbP7T8b2QU6A%40mail.gmail.com.

Liang Jia

unread,
Nov 25, 2024, 8:01:40 AM11/25/24
to dev...@kicad.org
Hi Mark,

Thanks for your email.

Could you please explain more about the relation between "Change the measurement store from 32-bit to 64-bit" and "128-bit integer math support in processors"?
And why did Kicad choose integer as internal measurement resolution?

>mm is not adequate to express the resolution of position data required for a board design. 
How about this? use mm for internal measurement resolution, but use nanometer or double(instead of integer) for board design.


Last, so that means there is no way to handle this issue?

Mark Roszko

unread,
Nov 25, 2024, 1:02:13 PM11/25/24
to dev...@kicad.org
Floats are not accurate beyond 6-7 digits and worse, floating point behavior is actually not fully well defined. You can actually get different quirks depending on platform, compiler and arch. Though generally the risk isn't in the arithmetic but supporting functions that are part of libc.

>And why did Kicad choose integer as internal measurement resolution?

Using integers is standard programming behavior for applications that want well defined and bounded mathematical behavior. 

When you do floating point math, even if we ignore the inaccurate power part of the number, that error still sits in the number. When you carry out sufficient and numerous operations using numbers that carry these not used digits, they can actually creep in and start affecting the digits you do care about and cause errors.


>Last, so that means there is no way to handle this issue?


We have come to the conclusion that if somebody needs PCB designs larger than 4 meters, which is already an ridiculous size. They need to discuss with us the use case which is already going to be ridiculously niche for that one person because there is no standard PCB manufacturing equipment for a board of that size.


Seth Hillbrand

unread,
Nov 25, 2024, 2:00:18 PM11/25/24
to KiCad Developers


On Mon, Nov 25, 2024, 5:01 AM Liang Jia <lantian...@gmail.com> wrote:
Hi Mark,

Thanks for your email.

Could you please explain more about the relation between "Change the measurement store from 32-bit to 64-bit" and "128-bit integer math support in processors"?
And why did Kicad choose integer as internal measurement resolution?

Because we need exact locations of elements. 

Floating point is very accurate for small numbers (close to the origin) and very inaccurate for large numbers (far from the origin).  So, for the larger boards, you end up with clearance errors and possible manufacturing issues at the edges.



Last, so that means there is no way to handle this issue?

Addressing this means reworking our internal coordinate system.  Either figuring out how to work efficiently with larger integers (so that it doesn't slow down work on normal sized boards) or changing to a dual integer+fractional fixed point representation. 

Either way requires a lot of internal work as Mark mentioned. 

Seth

Liang Jia

unread,
Nov 25, 2024, 10:25:20 PM11/25/24
to dev...@kicad.org
Hi Mark and Seth,

Thanks for your reply.

Yes, you're right, it will lose some precision when using double.

Just curious, I did some search online.
1. I found that the key players in the PCB market still have limits.
OrCAD X: 200 in. x 200 in = 5 meter * 5 meter;
Altium Designer: 200 in. x 200 in = 2.5 meter * 2.5 meter
Allegro: I can't find any detail information, but I tried the software, it seems still have limit. Anyone know the board size limit for Allegro?

2. If we really want to solve this problem, there are options below.
2.1 Using software integer library, such as GMP; 
      We can give an option to the user, let the user choose to enable it or not.
      If enabled, Kicad can support a bigger board size, but software will slow;
      If enabled, Kicad runs as usual.
2.2 Using Binary coded-decimal, 
2.3 Give the control of precision and board size to the user.
      If a user wants to have a smaller board size, he/she will have more precision location and something else;
      If a user wants to have a bigger board size, he/she will have less precision location and something else;

@Mark what's your opinion? 

>Addressing this means reworking our internal coordinate system
Could you please kindly give me some location for those codes? so I can dig into it.


Sincerely
Liang

Seth Hillbrand

unread,
Nov 25, 2024, 10:48:03 PM11/25/24
to KiCad Developers
BCD is not relevant to integer values where all bits are used. 

GMP is slow.  Very very slow.

Making this configurable means adding an additional, little used code path.  One will end up being a second class citizen. 

Similarly for allowing configurable minimum units. 

You can look at vector2.h for many of the places but not all. 

Seth




Liang Jia

unread,
Nov 25, 2024, 11:14:19 PM11/25/24
to dev...@kicad.org
Hi Seth,

Thanks for your quick response.
I will check it.

Have a nice day.

Sincerely
Liang

Rafał Pietrak

unread,
Nov 26, 2024, 12:06:14 AM11/26/24
to dev...@kicad.org
Guys, have you ever considered going to "virtual dimensions"?

What I mean here is that the entire design (that is the PCB of course,
not the SCH) is based on an integer grid like "natural numbers indices
to locations", while the grid size is provided for the entire PCB as a
single float?

Consequently, the current 32bit integers stay as they are, only their
meaning changes. They would no longer mean "mm" (or whatever
"physical"), but just "indecies". "Physical sizes" would emerge only
when pcb get converted to production (gerber?) files ... or whenever
user puts in new constraints. The later naturally should be accepted in
physical dimensions as they are specified by fabs, but for the design
within KiCAD they should be converted to "grid size" based on current
grid size. Same goes for shapes libraries, but I think its doable.

Such approach would introduce a "one time rounding errors" to the
design, but since this is really a "one time event" it does not bare any
cumulative effects, so it shouldn't matter at all.

-R

On 26.11.2024 04:25, Liang Jia wrote:
> Hi Mark and Seth,
>
> Thanks for your reply.
>
> Yes, you're right, it will lose some precision when using double.
>
> Just curious, I did some search online.
> *1. I found that the key players in the PCB market still have limits.*
> OrCAD X: 200 in. x 200 in = 5 meter * 5 meter;
> https://www.cadence.com/en_US/home/tools/pcb-design-and-analysis/
> orcad.html#pcb-layout <https://www.cadence.com/en_US/home/tools/pcb-
> design-and-analysis/orcad.html#pcb-layout>
> Altium Designer: 200 in. x 200 in = 2.5 meter * 2.5 meter
> https://www.altium.com/documentation/knowledge-base/altium-designer/
> indicate-visual-cues-at-the-coordinate-limit-of-pcb-design-space-beyond-
> which-objects-should-not-be-placed <https://www.altium.com/
> documentation/knowledge-base/altium-designer/indicate-visual-cues-at-
> the-coordinate-limit-of-pcb-design-space-beyond-which-objects-should-
> not-be-placed>
> Allegro: I can't find any detail information, but I tried the software,
> it seems still have limit. *Anyone know the board size limit for Allegro?*
> *
> *
> *2. If we really want to solve this problem, there are options below.*
> 2.1 Using software integer library, such as GMP;
>       We can give an option to the user, let the user choose to enable
> it or not.
>       If enabled, Kicad can support a bigger board size, but software
> will slow;
>       If enabled, Kicad runs as usual.
> **https://gmplib.org/ <https://gmplib.org/>
> have-built-in-bigint-support <https://stackoverflow.com/
> questions/2624973/why-doesnt-my-processor-have-built-in-bigint-support>
> https://en.wikipedia.org/wiki/Binary-coded_decimal <https://
> en.wikipedia.org/wiki/Binary-coded_decimal>
> 2.3 *Give the control of precision and board size to the user.*
>       If a user wants to have a smaller board size, he/she will have
> more precision location and something else;
>       If a user wants to have a bigger board size, he/she will have
> less precision location and something else;
>
> *@Mark what's your opinion? *
> *
> *
> *@Seth,
> *
> >Addressing this means reworking our internal coordinate system
> Could you please kindly give me some location for those codes? so I can
> dig into it.
> *
> *
> the measurement store from 32-bit to *64-bit*" and "128-bit
> integer math support in processors"?
> And why did Kicad choose integer as internal measurement resolution?
>
> >mm is not adequate to express the resolution of position data
> required for a board design.
> How about this? use mm for internal measurement resolution, but
> use nanometer or *double(instead of integer)* for board design.
>
>
> Last, so that means there is no way to handle this issue?
>
> On Mon, 25 Nov 2024 at 19:21, Mark Roszko <mark....@gmail.com
> <mailto:mark....@gmail.com>> wrote:
>
> >This means it is possible to create boards up to
> approximately 4 meters by 4 meters
>
> Yes, KiCad is limited to 4x4 meter boards currently.
>
> >   Change the measurement store from 32-bit to 64-bit, so
> Kicad can support a larger board.
>
> This is not an easy task in the slightest. Specifically
> because we can't get 128-bit integer math support in
> processors, and many compilers do not support 128-bit
> integers. I think gcc has some experimental support.
>
> >    Change the resolution of all objects to mm
>
> mm is not adequate to express the resolution of position
> data required for a board design.
>
>
>
> Basically the bug here is we simply do not tell the users
> the DXF is beyond our board support limit.
>
>
> On Mon, Nov 25, 2024 at 5:07 AM Liang Jia
> <lantian...@gmail.com
> <mailto:lantian...@gmail.com>> wrote:
>
> Hi All,
>
> I am writing to inquire about the challenges we are
> facing when importing DXF files which contain large
> numbers into our system.
>
> I have noticed that when the number exceeds a certain
> threshold(such as 4437 mm), the import process results
> in an int overflow error.
>
> I did the search below:
> 1. Found that there was a ticket to track it, but it
> seems *it still opens*.
> https://gitlab.com/kicad/code/kicad/-/issues/12392
> <https://gitlab.com/kicad/code/kicad/-/issues/12392>
>
> 2. From the Kicad document:
> The internal measurement resolution of all objects in
> KiCad is *1 nanometer*, and measurements are stored as
> *32-bit integers*. This means it is possible to create
> boards up to approximately 4 meters by 4 meters
> I think the *root cause* is here: Kicad tried to convert
> the DXF number into nanometer, but those numbers
> exceeded the limit of integer.
>
> Questions:
> 1. Is there any workaround for this case, and let Kicad
> import those files successfully?
> 2. If I want to fix ticket 12392, what should I do?
>     Change the measurement store from 32-bit to 64-bit,
> so Kicad can support a larger board.
>     Change the resolution of all objects to mm
>
> Looking forward to any comment or workaround.
>
> Sincerely
> Liang
>
> --
> You received this message because you are subscribed to
> the Google Groups "KiCad Developers" group.
> To unsubscribe from this group and stop receiving emails
> from it, send an email to devlist+u...@kicad.org
> <mailto:devlist+u...@kicad.org>.
> To view this discussion visit https://groups.google.com/
> a/kicad.org/d/msgid/devlist/CAE0Ak8bd%3DgDwW%3DDWVXH-
> TKj%3Dr4nsgW370aNqB6PbP7T8b2QU6A%40mail.gmail.com
> <https://groups.google.com/a/kicad.org/d/msgid/devlist/
> CAE0Ak8bd%3DgDwW%3DDWVXH-
> TKj%3Dr4nsgW370aNqB6PbP7T8b2QU6A%40mail.gmail.com?
> utm_medium=email&utm_source=footer>.
>
> --
> You received this message because you are subscribed to the
> Google Groups "KiCad Developers" group.
> To unsubscribe from this group and stop receiving emails
> from it, send an email to devlist+u...@kicad.org
> <mailto:devlist+u...@kicad.org>.
> To view this discussion visit https://groups.google.com/a/
> kicad.org/d/msgid/devlist/
> CAJjB1qKoN689BoyB1uWpWYmDCpbaCRKCyW2qmnBOoG5Au_Nnfg%40mail.gmail.com <https://groups.google.com/a/kicad.org/d/msgid/devlist/CAJjB1qKoN689BoyB1uWpWYmDCpbaCRKCyW2qmnBOoG5Au_Nnfg%40mail.gmail.com?utm_medium=email&utm_source=footer>.
>
> --
> You received this message because you are subscribed to the
> Google Groups "KiCad Developers" group.
> To unsubscribe from this group and stop receiving emails from
> it, send an email to devlist+u...@kicad.org
> <mailto:devlist+u...@kicad.org>.
> To view this discussion visit https://groups.google.com/a/
> kicad.org/d/msgid/devlist/
> CAE0Ak8bmAyB7ciCe6nrps8gw0meXgaj25r5Zq-
> o2Z9x_-8CFDA%40mail.gmail.com <https://groups.google.com/a/
> kicad.org/d/msgid/devlist/
> CAE0Ak8bmAyB7ciCe6nrps8gw0meXgaj25r5Zq-
> o2Z9x_-8CFDA%40mail.gmail.com?utm_medium=email&utm_source=footer>.
>
> --
> You received this message because you are subscribed to the Google
> Groups "KiCad Developers" group.
> To unsubscribe from this group and stop receiving emails from it,
> send an email to devlist+u...@kicad.org
> <mailto:devlist+u...@kicad.org>.
> To view this discussion visit https://groups.google.com/a/kicad.org/
> d/msgid/devlist/
> CAJjB1qLDDND2JZpaBCOHZpoz9HvsVF%2Brn%3D5nSGAQVDzyrFFRBA%40mail.gmail.com <https://groups.google.com/a/kicad.org/d/msgid/devlist/CAJjB1qLDDND2JZpaBCOHZpoz9HvsVF%2Brn%3D5nSGAQVDzyrFFRBA%40mail.gmail.com?utm_medium=email&utm_source=footer>.
>
> --
> You received this message because you are subscribed to the Google
> Groups "KiCad Developers" group.
> To unsubscribe from this group and stop receiving emails from it, send
> an email to devlist+u...@kicad.org
> <mailto:devlist+u...@kicad.org>.
> To view this discussion visit https://groups.google.com/a/kicad.org/d/
> msgid/devlist/CAE0Ak8awnYeEqbpz0SwNc7wAf_hmS1ybhDWNbRuyr7efEPUf-
> w%40mail.gmail.com <https://groups.google.com/a/kicad.org/d/msgid/
> devlist/CAE0Ak8awnYeEqbpz0SwNc7wAf_hmS1ybhDWNbRuyr7efEPUf-
> w%40mail.gmail.com?utm_medium=email&utm_source=footer>.

Liang Jia

unread,
Nov 26, 2024, 3:20:42 AM11/26/24
to dev...@kicad.org
Hi Rafał,

Thanks for your reply. 

> Guys, have you ever considered going to "virtual dimensions"?
I think it's not doable.

Because you need to show the same thing with different units when using pcb editor.
For example:
1. Users want to change the display unit from one to another.
2. Imported dxf shapes with specified unit

Sincerely
Liang



To unsubscribe from this group and stop receiving emails from it, send an email to devlist+u...@kicad.org.
To view this discussion visit https://groups.google.com/a/kicad.org/d/msgid/devlist/53def67c-3503-4980-aa8f-ae33764ce9c7%40electric-sheep.eu.

Rafał Pietrak

unread,
Nov 26, 2024, 3:49:16 AM11/26/24
to dev...@kicad.org
Hi Liang

I truly fail to see if those points could be of any problem.

You just go from virtual to "physical" (and back again) whenever
necessary ... like while presenting "tings" to user (or vice verse when
taking user input, or during export/import). The main issue here, is
that if KiCAD *internally* would be working in virtual spaces just like
today and "nothing" had to change there. "only" the GUI and
export/import get the modification impact.

(IMHO This is quite like disk space was initially managed by sectors,
then there was too many sectors, so clusters were invented, then came
group of clusters, etc ... to get us eventually to petabytes capacities;
so turning internal integer "dimensions" a "virtual grid space" gets us
onto the first "clustering" stage of "growth beyond" :).

But that's just my 2c. I only think it's worth pondering/weighting for
pros/cons. I don't intend to push the concept any further.

Cheers,

-R

On 26.11.2024 09:20, Liang Jia wrote:
> Hi Rafał,
>
> Thanks for your reply.
> *
> *
> <https://www.cadence.com/en_US/home/tools/pcb-design-and-analysis/>
> > orcad.html#pcb-layout <https://www.cadence.com/en_US/home/tools/
> pcb- <https://www.cadence.com/en_US/home/tools/pcb->
> > design-and-analysis/orcad.html#pcb-layout>
> > Altium Designer: 200 in. x 200 in = 2.5 meter * 2.5 meter
> > https://www.altium.com/documentation/knowledge-base/altium-
> designer/ <https://www.altium.com/documentation/knowledge-base/
> altium-designer/>
> > indicate-visual-cues-at-the-coordinate-limit-of-pcb-design-space-
> beyond-
> > which-objects-should-not-be-placed <https://www.altium.com/
> <https://www.altium.com/>
> > documentation/knowledge-base/altium-designer/indicate-visual-
> cues-at-
> > the-coordinate-limit-of-pcb-design-space-beyond-which-objects-
> should-
> > not-be-placed>
> > Allegro: I can't find any detail information, but I tried the
> software,
> > it seems still have limit. *Anyone know the board size limit for
> Allegro?*
> > *
> > *
> > *2. If we really want to solve this problem, there are options
> below.*
> > 2.1 Using software integer library, such as GMP;
> >        We can give an option to the user, let the user choose to
> enable
> > it or not.
> >        If enabled, Kicad can support a bigger board size, but
> software
> > will slow;
> >        If enabled, Kicad runs as usual.
> > **https://gmplib.org/ <https://gmplib.org/> <https://gmplib.org/
> processor- <https://stackoverflow.com/questions/2624973/why-doesnt-
> my-processor->
> > have-built-in-bigint-support <https://stackoverflow.com/
> <https://stackoverflow.com/>
> > questions/2624973/why-doesnt-my-processor-have-built-in-bigint-
> en.wikipedia.org/wiki/Binary-coded_decimal> <https://
> > en.wikipedia.org/wiki/Binary-coded_decimal <http://
> en.wikipedia.org/wiki/Binary-coded_decimal>>
> > 2.3 *Give the control of precision and board size to the user.*
> >        If a user wants to have a smaller board size, he/she will
> have
> > more precision location and something else;
> >        If a user wants to have a bigger board size, he/she will have
> > less precision location and something else;
> >
> > *@Mark what's your opinion? *
> > *
> > *
> > *@Seth,
> > *
> >  >Addressing this means reworking our internal coordinate system
> > Could you please kindly give me some location for those codes? so
> I can
> > dig into it.
> > *
> > *
> >
> > Sincerely
> > Liang
> >
> > On Tue, 26 Nov 2024 at 02:02, Mark Roszko <mark....@gmail.com
> <mailto:mark....@gmail.com>
> >     <mailto:lantian...@gmail.com
> <mailto:lantian...@gmail.com>>> wrote:
> >
> >         Hi Mark,
> >
> >         Thanks for your email.
> >
> >         Could you please explain more about the relation between
> "Change
> >         the measurement store from 32-bit to *64-bit*" and "128-bit
> >         integer math support in processors"?
> >         And why did Kicad choose integer as internal measurement
> resolution?
> >
> >          >mm is not adequate to express the resolution of
> position data
> >         required for a board design.
> >         How about this? use mm for internal measurement
> resolution, but
> >         use nanometer or *double(instead of integer)* for board
> design.
> >
> >
> >         Last, so that means there is no way to handle this issue?
> >
> >         On Mon, 25 Nov 2024 at 19:21, Mark Roszko
> <mark....@gmail.com <mailto:mark....@gmail.com>
> >         <mailto:mark....@gmail.com
> <mailto:mark....@gmail.com>>> wrote:
> >
> >              >This means it is possible to create boards up to
> >             approximately 4 meters by 4 meters
> >
> >             Yes, KiCad is limited to 4x4 meter boards currently.
> >
> >              >   Change the measurement store from 32-bit to 64-
> bit, so
> >             Kicad can support a larger board.
> >
> >             This is not an easy task in the slightest. Specifically
> >             because we can't get 128-bit integer math support in
> >             processors, and many compilers do not support 128-bit
> >             integers. I think gcc has some experimental support.
> >
> >              >    Change the resolution of all objects to mm
> >
> >             mm is not adequate to express the resolution of position
> >             data required for a board design.
> >
> >
> >
> >             Basically the bug here is we simply do not tell the users
> >             the DXF is beyond our board support limit.
> >
> >
> >             On Mon, Nov 25, 2024 at 5:07 AM Liang Jia
> >             <lantian...@gmail.com
> <mailto:lantian...@gmail.com>
> >             <mailto:lantian...@gmail.com
> <mailto:lantian...@gmail.com>>> wrote:
> >
> >                 Hi All,
> >
> >                 I am writing to inquire about the challenges we are
> >                 facing when importing DXF files which contain large
> >                 numbers into our system.
> >
> >                 I have noticed that when the number exceeds a certain
> >                 threshold(such as 4437 mm), the import process
> results
> >                 in an int overflow error.
> >
> >                 I did the search below:
> >                 1. Found that there was a ticket to track it, but it
> >                 seems *it still opens*.
> > https://gitlab.com/kicad/code/kicad/-/issues/12392 <https://
> gitlab.com/kicad/code/kicad/-/issues/12392>
> >                 <https://gitlab.com/kicad/code/kicad/-/
> issues/12392 <https://gitlab.com/kicad/code/kicad/-/issues/12392>>
> devlist+u...@kicad.org <mailto:devlist%2Bunsu...@kicad.org>
> >                 <mailto:devlist+u...@kicad.org
> <mailto:devlist%2Bunsu...@kicad.org>>.
> >                 To view this discussion visit https://
> groups.google.com/ <https://groups.google.com/>
> >                 a/kicad.org/d/msgid/devlist/
> CAE0Ak8bd%3DgDwW%3DDWVXH- <http://kicad.org/d/msgid/devlist/
> CAE0Ak8bd%3DgDwW%3DDWVXH->
> >                 TKj%3Dr4nsgW370aNqB6PbP7T8b2QU6A%40mail.gmail.com
> <http://40mail.gmail.com>
> >                 <https://groups.google.com/a/kicad.org/d/msgid/
> devlist/ <https://groups.google.com/a/kicad.org/d/msgid/devlist/>
> >                 CAE0Ak8bd%3DgDwW%3DDWVXH-
> >                 TKj%3Dr4nsgW370aNqB6PbP7T8b2QU6A%40mail.gmail.com
> <http://40mail.gmail.com>?
> >                 utm_medium=email&utm_source=footer>.
> >
> >             --
> >             You received this message because you are subscribed
> to the
> >             Google Groups "KiCad Developers" group.
> >             To unsubscribe from this group and stop receiving emails
> >             from it, send an email to
> devlist+u...@kicad.org <mailto:devlist%2Bunsu...@kicad.org>
> >             <mailto:devlist+u...@kicad.org
> <mailto:devlist%2Bunsu...@kicad.org>>.
> >             To view this discussion visit https://
> groups.google.com/a/ <https://groups.google.com/a/>
> > kicad.org/d/msgid/devlist/ <http://kicad.org/d/msgid/devlist/>
> >
>  CAJjB1qKoN689BoyB1uWpWYmDCpbaCRKCyW2qmnBOoG5Au_Nnfg%40mail.gmail.com <http://40mail.gmail.com> <https://groups.google.com/a/kicad.org/d/msgid/devlist/CAJjB1qKoN689BoyB1uWpWYmDCpbaCRKCyW2qmnBOoG5Au_Nnfg%40mail.gmail.com?utm_medium=email&utm_source=footer <https://groups.google.com/a/kicad.org/d/msgid/devlist/CAJjB1qKoN689BoyB1uWpWYmDCpbaCRKCyW2qmnBOoG5Au_Nnfg%40mail.gmail.com?utm_medium=email&utm_source=footer>>.
> >
> >         --
> >         You received this message because you are subscribed to the
> >         Google Groups "KiCad Developers" group.
> >         To unsubscribe from this group and stop receiving emails from
> >         it, send an email to devlist+u...@kicad.org
> <mailto:devlist%2Bunsu...@kicad.org>
> >         <mailto:devlist+u...@kicad.org
> <mailto:devlist%2Bunsu...@kicad.org>>.
> >         To view this discussion visit https://groups.google.com/
> a/ <https://groups.google.com/a/>
> > kicad.org/d/msgid/devlist/ <http://kicad.org/d/msgid/devlist/>
> >         CAE0Ak8bmAyB7ciCe6nrps8gw0meXgaj25r5Zq-
> >         o2Z9x_-8CFDA%40mail.gmail.com <http://40mail.gmail.com>
> <https://groups.google.com/a/ <https://groups.google.com/a/>
> > kicad.org/d/msgid/devlist/ <http://kicad.org/d/msgid/devlist/>
> >         CAE0Ak8bmAyB7ciCe6nrps8gw0meXgaj25r5Zq-
> >         o2Z9x_-8CFDA%40mail.gmail.com?
> utm_medium=email&utm_source=footer <http://40mail.gmail.com?
> utm_medium=email&utm_source=footer>>.
> >
> >     --
> >     You received this message because you are subscribed to the
> Google
> >     Groups "KiCad Developers" group.
> >     To unsubscribe from this group and stop receiving emails from it,
> >     send an email to devlist+u...@kicad.org
> <mailto:devlist%2Bunsu...@kicad.org>
> >     <mailto:devlist+u...@kicad.org
> <mailto:devlist%2Bunsu...@kicad.org>>.
> >     To view this discussion visit https://groups.google.com/a/
> kicad.org/ <https://groups.google.com/a/kicad.org/>
> >     d/msgid/devlist/
> >
>  CAJjB1qLDDND2JZpaBCOHZpoz9HvsVF%2Brn%3D5nSGAQVDzyrFFRBA%40mail.gmail.com <http://40mail.gmail.com> <https://groups.google.com/a/kicad.org/d/msgid/devlist/CAJjB1qLDDND2JZpaBCOHZpoz9HvsVF%2Brn%3D5nSGAQVDzyrFFRBA%40mail.gmail.com?utm_medium=email&utm_source=footer <https://groups.google.com/a/kicad.org/d/msgid/devlist/CAJjB1qLDDND2JZpaBCOHZpoz9HvsVF%2Brn%3D5nSGAQVDzyrFFRBA%40mail.gmail.com?utm_medium=email&utm_source=footer>>.
> >
> > --
> > You received this message because you are subscribed to the Google
> > Groups "KiCad Developers" group.
> > To unsubscribe from this group and stop receiving emails from it,
> send
> > an email to devlist+u...@kicad.org
> <mailto:devlist%2Bunsu...@kicad.org>
> > <mailto:devlist+u...@kicad.org
> <mailto:devlist%2Bunsu...@kicad.org>>.
> > To view this discussion visit https://groups.google.com/a/
> kicad.org/d/ <https://groups.google.com/a/kicad.org/d/>
> > msgid/devlist/CAE0Ak8awnYeEqbpz0SwNc7wAf_hmS1ybhDWNbRuyr7efEPUf-
> > w%40mail.gmail.com <http://40mail.gmail.com> <https://
> groups.google.com/a/kicad.org/d/msgid/ <https://groups.google.com/a/
> kicad.org/d/msgid/>
> > devlist/CAE0Ak8awnYeEqbpz0SwNc7wAf_hmS1ybhDWNbRuyr7efEPUf-
> > w%40mail.gmail.com?utm_medium=email&utm_source=footer
> <http://40mail.gmail.com?utm_medium=email&utm_source=footer>>.
>
> --
> You received this message because you are subscribed to the Google
> Groups "KiCad Developers" group.
> To unsubscribe from this group and stop receiving emails from it,
> send an email to devlist+u...@kicad.org
> <mailto:devlist%2Bunsu...@kicad.org>.
> To view this discussion visit https://groups.google.com/a/kicad.org/
> d/msgid/devlist/53def67c-3503-4980-aa8f-ae33764ce9c7%40electric-
> sheep.eu <https://groups.google.com/a/kicad.org/d/msgid/
> devlist/53def67c-3503-4980-aa8f-ae33764ce9c7%40electric-sheep.eu>.
>
> --
> You received this message because you are subscribed to the Google
> Groups "KiCad Developers" group.
> To unsubscribe from this group and stop receiving emails from it, send
> an email to devlist+u...@kicad.org
> <mailto:devlist+u...@kicad.org>.
> To view this discussion visit https://groups.google.com/a/kicad.org/d/
> msgid/devlist/
> CAE0Ak8aBa0Zt0G%2BKRfq4ZRMT9WiFVZO%2BBGHVdGLHWDJ%3D8f%2BzEQ%40mail.gmail.com <https://groups.google.com/a/kicad.org/d/msgid/devlist/CAE0Ak8aBa0Zt0G%2BKRfq4ZRMT9WiFVZO%2BBGHVdGLHWDJ%3D8f%2BzEQ%40mail.gmail.com?utm_medium=email&utm_source=footer>.

RigoLigo RLC

unread,
Nov 26, 2024, 3:58:10 AM11/26/24
to KiCad Developer Mailing List

Hi all,

I think we're missing the point of "what are we trying to fix by fixing dxf importer overflows".

The DXF file provided in #12392 has a board that measures 2 meters long so it's still in our representation limits. Issue is that people draw their graphics in whatever CAD program may place their stuff at arbitrary locations (DXF uses double precision floats, very likely AutoCAD internally uses it too) which makes coordinates easily go beyond our limits while our system is actually sufficient to support the overall graphics size.

IMO what we need is a normalization process in the importer, where we find the bounding box of the graphical elements, fail if the overall size overflows the internal representation, and "move" the whole graphics into our representation bounds before converting.


Current implementation just convert them immediately as the library parses the DXF file. This suggestion would result in a complete rewrite of DXF importer but I believe would make DXF importer significantly more robust.


Rigo


Liang Jia <lantian...@gmail.com> 于 2024年11月26日周二 下午4:20写道:

Mojca Miklavec

unread,
Nov 26, 2024, 6:09:17 AM11/26/24
to dev...@kicad.org
On Tue, 26 Nov 2024 at 06:06, Rafał Pietrak <sol...@electric-sheep.eu> wrote:
>
> Guys, have you ever considered going to "virtual dimensions"?
>
> What I mean here is that the entire design (that is the PCB of course,
> not the SCH) is based on an integer grid like "natural numbers indices
> to locations", while the grid size is provided for the entire PCB as a
> single float?

Please note that I'm not familiar with KiCad code, but I fail to see
how this could possibly work (other than introducing an unnecessarily
complicated workflow).
This might work well for art where you draw some nice graphic of an
animal, and you only decide how big the graphic should be when you
export it/save it/print it.

When you instead load a component footprint, you need to know its
exact dimensions. Let's say that a courtyard should for example be
precisely 1 mm = 1,000,000 nm wide.
If you suddenly decide that you need a PCB that is 7.5 m wide instead
of 5 m, so that a unit is 1.5 nm instead of 1 nm ... what do you do?
Do you just end up with all your components being 1.5 mm wide and with
the wrong pitch? Or do you keep transforming the coordinates every
time you change your mind about how big your scaling factor should be?
Should the courtyard then shrink to 1,000,000 / 1.5 = 666,667 units
(and you basically end up with something way worse than floating point
numbers)?

Mojca

Mark Roszko

unread,
Nov 26, 2024, 6:16:12 AM11/26/24
to dev...@kicad.org
>I think we're missing the point of "what are we trying to fix by fixing dxf importer overflows".

>Current implementation just convert them immediately as the library parses the DXF file. This suggestion would result in a complete rewrite of DXF importer but I believe would make DXF importer significantly more robust.

Nope, not a complete rewrite at all because they aren't converted to internal objects immediately like you said.
It's actually a trivial fix :P

Rafał Pietrak

unread,
Nov 26, 2024, 6:32:20 AM11/26/24
to dev...@kicad.org
Moja,

Just explaining:

there are two sides to this case. The one that you've noticed, when one
uses such feature to scale up/down the design, which is obviously not
the case for PCB artworks. But the other case is the control of the
design resolution, which in fact I had in mind. In short: whenever you
change the grid size, you keep the physical design size the same, but
influence the "rounding errors" of your artwork. ... and frankly, that's
exactly what I personally prefer.

-R

Mark Roszko

unread,
Nov 26, 2024, 9:52:52 AM11/26/24
to dev...@kicad.org
O derp.

A fix was applied to deal with out of bounds dxf last week to 8.0


--
You received this message because you are subscribed to the Google Groups "KiCad Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email to devlist+u...@kicad.org.
To view this discussion visit https://groups.google.com/a/kicad.org/d/msgid/devlist/338d9f47-d6ea-48b4-a682-b6241237f219%40electric-sheep.eu.

Liang Jia

unread,
Nov 26, 2024, 9:59:56 PM11/26/24
to dev...@kicad.org
Hi Rafał,

Thanks for your reply.

I tried to understand what you meant. Is the below assumption correct?
1. Kicad use integer as index without unit, for example, current GUI unit it mm, so all objects in the pcb board with display as mm and saved in file as mm
2. If user change the GUI unit from mm to mil, software need to change everythings from mm to mil(GUI display and file content)

I think that it's not a good idea to change file content every time, just as @Mojca said.

Sincerely
Liang 

To unsubscribe from this group and stop receiving emails from it, send an email to devlist+u...@kicad.org.
To view this discussion visit https://groups.google.com/a/kicad.org/d/msgid/devlist/b9e8a5b5-94a1-468a-b7a5-7025c22364dd%40electric-sheep.eu.

Liang Jia

unread,
Nov 26, 2024, 10:03:47 PM11/26/24
to dev...@kicad.org
Hi Mark,

Yes, you are right, I also found it yesterday.

Actually, we tried to discuss two problems in this email.
1. Suitable dxf file but with big coordination, It's already fixed in the latest branch.
2. Let Kicad support a larger board size as other software did.

Rafał Pietrak

unread,
Nov 27, 2024, 2:59:15 AM11/27/24
to dev...@kicad.org
Liang,

As I said - I was just wondering if you guys ever considered
implementation of virtual space for internal KiCAD "guts".

But your questions call for explanation, so this is what I mean:
1. current 4m by 4m limitation of KiCAD, if emerging from 32 bit
internal dimension representation, means that 1 bit is equal to
something like 1nm (nanometer).
2. for amateur designers like myself, this precision is way too fine. I
personally don't need to go anywhere below 0.1mil = 2,54micron, while
1mil/2mils is sufficient most of the time.
3. It wouldn't be reasonable to assume, that noone will ever use KiCAD
for designs at nanometer scale. So, there are sound reasons to support that.
4. (setting aside current issue of DXF imports) IMHO users that require
artwork larger then 4m by 4m may happen (like display walls), such
artworks would hardly need nanometer precision.

Surely enough, if KiCAD internally would use virtual grid, then changing
the size of that grid (while keeping the overall artwork size fixed)
would require recalculation of all the artwork locations (endpoints,
placements etc) and would result in introduction of "relocations" due to
rounding errors. But ... user setting the new grid size just
explicitly stated, that the design does not require better precision; so
I don't see a problem there.

The gain from having virtual dimension internally is that KiCAD could
potentially cover larger spectrum of users ... like nanometer designs
do require subnanometer precision :) ... or be able to import building
size DXF without an effort. BTW: having a building size single design
just to accommodate smaller interconnected components under common
umbrella is not so unthinkable.

Then again, this is not to push the design towards anything, just being
curious.

-R
PS: I had to lookup the "o derp". nice :)


On 27.11.2024 03:59, Liang Jia wrote:
> Hi Rafał,
>
> Thanks for your reply.
>
> > On Tue, 26 Nov 2024 at 13:06, Rafał Pietrak <solver@electric-
> sheep.eu <mailto:sol...@electric-sheep.eu>
> > <mailto:sol...@electric-sheep.eu <mailto:solver@electric-
> >     <https://www.cadence.com/en_US/home/tools/pcb-design-and-
> analysis/ <https://www.cadence.com/en_US/home/tools/pcb-design-and-
> analysis/>>
> >      > orcad.html#pcb-layout <https://www.cadence.com/en_US/home/
> tools/ <https://www.cadence.com/en_US/home/tools/>
> >     pcb- <https://www.cadence.com/en_US/home/tools/pcb- <https://
> www.cadence.com/en_US/home/tools/pcb->>
> >      > design-and-analysis/orcad.html#pcb-layout>
> >      > Altium Designer: 200 in. x 200 in = 2.5 meter * 2.5 meter
> >      > https://www.altium.com/documentation/knowledge-base/
> altium- <https://www.altium.com/documentation/knowledge-base/altium->
> >     designer/ <https://www.altium.com/documentation/knowledge-
> base/ <https://www.altium.com/documentation/knowledge-base/>
> >     altium-designer/>
> >      > indicate-visual-cues-at-the-coordinate-limit-of-pcb-
> design-space-
> >     beyond-
> >      > which-objects-should-not-be-placed <https://
> www.altium.com/ <https://www.altium.com/>
> <https://stackoverflow.com/questions/2624973/why-doesnt-my->
> >     processor- <https://stackoverflow.com/questions/2624973/why-
> doesnt- <https://stackoverflow.com/questions/2624973/why-doesnt->
> >     my-processor->
> >      > have-built-in-bigint-support <https://stackoverflow.com/
> <https://stackoverflow.com/>
> >     <https://stackoverflow.com/ <https://stackoverflow.com/>>
> >      > questions/2624973/why-doesnt-my-processor-have-built-in-
> bigint-
> >     support>
> >      > https://en.wikipedia.org/wiki/Binary-coded_decimal
> <https://en.wikipedia.org/wiki/Binary-coded_decimal> <https://
> > en.wikipedia.org/wiki/Binary-coded_decimal <http://
> en.wikipedia.org/wiki/Binary-coded_decimal> <http://
> > gitlab.com/kicad/code/kicad/-/issues/12392 <http://gitlab.com/
> kicad/code/kicad/-/issues/12392>>
> >      >                 <https://gitlab.com/kicad/code/kicad/-/
> >      >                      Change the measurement store from 32-
> bit to
> >     64-bit,
> >      >                 so Kicad can support a larger board.
> >      >                      Change the resolution of all objects
> to mm
> >      >
> >      >                 Looking forward to any comment or workaround.
> >      >
> >      >                 Sincerely
> >      >                 Liang
> >      >
> >      >                 --
> >      >                 You received this message because you are
> >     subscribed to
> >      >                 the Google Groups "KiCad Developers" group.
> >      >                 To unsubscribe from this group and stop
> receiving
> >     emails
> >      >                 from it, send an email to
> > devlist+u...@kicad.org
> <mailto:devlist%2Bunsu...@kicad.org>
> <mailto:devlist%2Bunsu...@kicad.org
> <mailto:devlist%252Buns...@kicad.org>>
> >      >                 <mailto:devlist+u...@kicad.org
> <mailto:devlist%2Bunsu...@kicad.org>
> >     <mailto:devlist%2Bunsu...@kicad.org
> <mailto:devlist%252Buns...@kicad.org>>>.
> >      >                 To view this discussion visit https://
> > groups.google.com/ <http://groups.google.com/> <https://
> groups.google.com/ <https://groups.google.com/>>
> >      >                 a/kicad.org/d/msgid/devlist/ <http://
> kicad.org/d/msgid/devlist/>
> >     CAE0Ak8bd%3DgDwW%3DDWVXH- <http://kicad.org/d/msgid/devlist/
> <http://kicad.org/d/msgid/devlist/>
> >     CAE0Ak8bd%3DgDwW%3DDWVXH->
> >      >
>  TKj%3Dr4nsgW370aNqB6PbP7T8b2QU6A%40mail.gmail.com
> <http://40mail.gmail.com>
> >     <http://40mail.gmail.com <http://40mail.gmail.com>>
> >     devlist/ <https://groups.google.com/a/kicad.org/d/msgid/
> devlist/ <https://groups.google.com/a/kicad.org/d/msgid/devlist/>>
> >      >                 CAE0Ak8bd%3DgDwW%3DDWVXH-
> >      >
>  TKj%3Dr4nsgW370aNqB6PbP7T8b2QU6A%40mail.gmail.com
> <http://40mail.gmail.com>
> >     <http://40mail.gmail.com <http://40mail.gmail.com>>?
> >      >                 utm_medium=email&utm_source=footer>.
> >      >
> >      >             --
> >      >             You received this message because you are
> subscribed
> >     to the
> >      >             Google Groups "KiCad Developers" group.
> >      >             To unsubscribe from this group and stop
> receiving emails
> >      >             from it, send an email to
> > devlist+u...@kicad.org
> <mailto:devlist%2Bunsu...@kicad.org>
> <mailto:devlist%2Bunsu...@kicad.org
> <mailto:devlist%252Buns...@kicad.org>>
> >      >             <mailto:devlist+u...@kicad.org
> <mailto:devlist%2Bunsu...@kicad.org>
> >     <mailto:devlist%2Bunsu...@kicad.org
> <mailto:devlist%252Buns...@kicad.org>>>.
> >      >             To view this discussion visit https://
> > groups.google.com/a/ <http://groups.google.com/a/> <https://
> devlist/> <http://kicad.org/d/msgid/devlist/ <http://kicad.org/d/
> msgid/devlist/>>
> >      >
> >
>  CAJjB1qKoN689BoyB1uWpWYmDCpbaCRKCyW2qmnBOoG5Au_Nnfg%40mail.gmail.com <http://40mail.gmail.com> <http://40mail.gmail.com <http://40mail.gmail.com>> <https://groups.google.com/a/kicad.org/d/msgid/devlist/CAJjB1qKoN689BoyB1uWpWYmDCpbaCRKCyW2qmnBOoG5Au_Nnfg%40mail.gmail.com?utm_medium=email&utm_source=footer <https://groups.google.com/a/kicad.org/d/msgid/devlist/CAJjB1qKoN689BoyB1uWpWYmDCpbaCRKCyW2qmnBOoG5Au_Nnfg%40mail.gmail.com?utm_medium=email&utm_source=footer> <https://groups.google.com/a/kicad.org/d/msgid/devlist/CAJjB1qKoN689BoyB1uWpWYmDCpbaCRKCyW2qmnBOoG5Au_Nnfg%40mail.gmail.com?utm_medium=email&utm_source=footer <https://groups.google.com/a/kicad.org/d/msgid/devlist/CAJjB1qKoN689BoyB1uWpWYmDCpbaCRKCyW2qmnBOoG5Au_Nnfg%40mail.gmail.com?utm_medium=email&utm_source=footer>>>.
> >      >
> >      >         --
> >      >         You received this message because you are
> subscribed to the
> >      >         Google Groups "KiCad Developers" group.
> >      >         To unsubscribe from this group and stop receiving
> emails from
> >      >         it, send an email to devlist+u...@kicad.org
> <mailto:devlist%2Bunsu...@kicad.org>
> >     <mailto:devlist%2Bunsu...@kicad.org
> <mailto:devlist%252Buns...@kicad.org>>
> >      >         <mailto:devlist+u...@kicad.org
> <mailto:devlist%2Bunsu...@kicad.org>
> >     <mailto:devlist%2Bunsu...@kicad.org
> <mailto:devlist%252Buns...@kicad.org>>>.
> >      >         To view this discussion visit https://
> groups.google.com/ <https://groups.google.com/>
> >     a/ <https://groups.google.com/a/ <https://groups.google.com/a/>>
> >      > kicad.org/d/msgid/devlist/ <http://kicad.org/d/msgid/
> devlist/> <http://kicad.org/d/msgid/devlist/ <http://kicad.org/d/
> msgid/devlist/>>
> >      >         CAE0Ak8bmAyB7ciCe6nrps8gw0meXgaj25r5Zq-
> >      >         o2Z9x_-8CFDA%40mail.gmail.com
> <http://40mail.gmail.com> <http://40mail.gmail.com
> devlist/> <http://kicad.org/d/msgid/devlist/ <http://kicad.org/d/
> msgid/devlist/>>
> >      >         CAE0Ak8bmAyB7ciCe6nrps8gw0meXgaj25r5Zq-
> >      >         o2Z9x_-8CFDA%40mail.gmail.com
> <http://40mail.gmail.com>?
> >     utm_medium=email&utm_source=footer <http://40mail.gmail.com
> <http://40mail.gmail.com>?
> >     utm_medium=email&utm_source=footer>>.
> >      >
> >      >     --
> >      >     You received this message because you are subscribed
> to the
> >     Google
> >      >     Groups "KiCad Developers" group.
> >      >     To unsubscribe from this group and stop receiving
> emails from it,
> >      >     send an email to devlist+u...@kicad.org
> <mailto:devlist%2Bunsu...@kicad.org>
> >     <mailto:devlist%2Bunsu...@kicad.org
> <mailto:devlist%252Buns...@kicad.org>>
> >      >     <mailto:devlist+u...@kicad.org
> <mailto:devlist%2Bunsu...@kicad.org>
> >     <mailto:devlist%2Bunsu...@kicad.org
> <mailto:devlist%252Buns...@kicad.org>>>.
> >      >     To view this discussion visit https://
> groups.google.com/a/ <https://groups.google.com/a/>
> > kicad.org/ <http://kicad.org/> <https://groups.google.com/a/
> kicad.org/ <https://groups.google.com/a/kicad.org/>>
> >      >     d/msgid/devlist/
> >      >
> >
>  CAJjB1qLDDND2JZpaBCOHZpoz9HvsVF%2Brn%3D5nSGAQVDzyrFFRBA%40mail.gmail.com <http://40mail.gmail.com> <http://40mail.gmail.com <http://40mail.gmail.com>> <https://groups.google.com/a/kicad.org/d/msgid/devlist/CAJjB1qLDDND2JZpaBCOHZpoz9HvsVF%2Brn%3D5nSGAQVDzyrFFRBA%40mail.gmail.com?utm_medium=email&utm_source=footer <https://groups.google.com/a/kicad.org/d/msgid/devlist/CAJjB1qLDDND2JZpaBCOHZpoz9HvsVF%2Brn%3D5nSGAQVDzyrFFRBA%40mail.gmail.com?utm_medium=email&utm_source=footer> <https://groups.google.com/a/kicad.org/d/msgid/devlist/CAJjB1qLDDND2JZpaBCOHZpoz9HvsVF%2Brn%3D5nSGAQVDzyrFFRBA%40mail.gmail.com?utm_medium=email&utm_source=footer <https://groups.google.com/a/kicad.org/d/msgid/devlist/CAJjB1qLDDND2JZpaBCOHZpoz9HvsVF%2Brn%3D5nSGAQVDzyrFFRBA%40mail.gmail.com?utm_medium=email&utm_source=footer>>>.
> >      >
> >      > --
> >      > You received this message because you are subscribed to
> the Google
> >      > Groups "KiCad Developers" group.
> >      > To unsubscribe from this group and stop receiving emails
> from it,
> >     send
> >      > an email to devlist+u...@kicad.org
> <mailto:devlist%2Bunsu...@kicad.org>
> >     <mailto:devlist%2Bunsu...@kicad.org
> <mailto:devlist%252Buns...@kicad.org>>
> >      > <mailto:devlist+u...@kicad.org
> <mailto:devlist%2Bunsu...@kicad.org>
> >     <mailto:devlist%2Bunsu...@kicad.org
> <mailto:devlist%252Buns...@kicad.org>>>.
> >      > To view this discussion visit https://groups.google.com/a/
> <https://groups.google.com/a/>
> > kicad.org/d/ <http://kicad.org/d/> <https://groups.google.com/a/
> kicad.org/d/ <https://groups.google.com/a/kicad.org/d/>>
> >      > msgid/devlist/
> CAE0Ak8awnYeEqbpz0SwNc7wAf_hmS1ybhDWNbRuyr7efEPUf-
> >      > w%40mail.gmail.com <http://40mail.gmail.com>
> <http://40mail.gmail.com <http://40mail.gmail.com>> <https://
> > groups.google.com/a/kicad.org/d/msgid/ <http://groups.google.com/
> a/kicad.org/d/msgid/> <https://groups.google.com/a/ <https://
> groups.google.com/a/>
> > kicad.org/d/msgid/ <http://kicad.org/d/msgid/>>
> >      > devlist/CAE0Ak8awnYeEqbpz0SwNc7wAf_hmS1ybhDWNbRuyr7efEPUf-
> >      > w%40mail.gmail.com?utm_medium=email&utm_source=footer
> <http://40mail.gmail.com?utm_medium=email&utm_source=footer>
> >     <http://40mail.gmail.com?utm_medium=email&utm_source=footer
> <http://40mail.gmail.com?utm_medium=email&utm_source=footer>>>.
> >
> >     --
> >     You received this message because you are subscribed to the
> Google
> >     Groups "KiCad Developers" group.
> >     To unsubscribe from this group and stop receiving emails from it,
> >     send an email to devlist+u...@kicad.org
> <mailto:devlist%2Bunsu...@kicad.org>
> >     <mailto:devlist%2Bunsu...@kicad.org
> <mailto:devlist%252Buns...@kicad.org>>.
> >     d/msgid/devlist/53def67c-3503-4980-aa8f-ae33764ce9c7%40electric-
> > sheep.eu <http://sheep.eu> <https://groups.google.com/a/
> kicad.org/d/msgid/ <https://groups.google.com/a/kicad.org/d/msgid/>
> >     devlist/53def67c-3503-4980-aa8f-ae33764ce9c7%40electric-
> sheep.eu <http://40electric-sheep.eu>>.
> >
> > --
> > You received this message because you are subscribed to the Google
> > Groups "KiCad Developers" group.
> > To unsubscribe from this group and stop receiving emails from it,
> send
> > an email to devlist+u...@kicad.org
> <mailto:devlist%2Bunsu...@kicad.org>
> > <mailto:devlist+u...@kicad.org
> <mailto:devlist%2Bunsu...@kicad.org>>.
> > To view this discussion visit https://groups.google.com/a/
> kicad.org/d/ <https://groups.google.com/a/kicad.org/d/>
> > msgid/devlist/
> >
> CAE0Ak8aBa0Zt0G%2BKRfq4ZRMT9WiFVZO%2BBGHVdGLHWDJ%3D8f%2BzEQ%40mail.gmail.com <http://40mail.gmail.com> <https://groups.google.com/a/kicad.org/d/msgid/devlist/CAE0Ak8aBa0Zt0G%2BKRfq4ZRMT9WiFVZO%2BBGHVdGLHWDJ%3D8f%2BzEQ%40mail.gmail.com?utm_medium=email&utm_source=footer <https://groups.google.com/a/kicad.org/d/msgid/devlist/CAE0Ak8aBa0Zt0G%2BKRfq4ZRMT9WiFVZO%2BBGHVdGLHWDJ%3D8f%2BzEQ%40mail.gmail.com?utm_medium=email&utm_source=footer>>.
>
> --
> You received this message because you are subscribed to the Google
> Groups "KiCad Developers" group.
> To unsubscribe from this group and stop receiving emails from it,
> send an email to devlist+u...@kicad.org
> <mailto:devlist%2Bunsu...@kicad.org>.
> To view this discussion visit https://groups.google.com/a/kicad.org/
> d/msgid/devlist/b9e8a5b5-94a1-468a-b7a5-7025c22364dd%40electric-
> sheep.eu <https://groups.google.com/a/kicad.org/d/msgid/devlist/
> b9e8a5b5-94a1-468a-b7a5-7025c22364dd%40electric-sheep.eu>.
>
> --
> You received this message because you are subscribed to the Google
> Groups "KiCad Developers" group.
> To unsubscribe from this group and stop receiving emails from it, send
> an email to devlist+u...@kicad.org
> <mailto:devlist+u...@kicad.org>.
> To view this discussion visit https://groups.google.com/a/kicad.org/d/
> msgid/devlist/
> CAE0Ak8ZZRVvtd94jzEjyU7CR5KP60CPFgcF_n%2BT8BMUxozUt%3DA%40mail.gmail.com
> <https://groups.google.com/a/kicad.org/d/msgid/devlist/
> CAE0Ak8ZZRVvtd94jzEjyU7CR5KP60CPFgcF_n%2BT8BMUxozUt%3DA%40mail.gmail.com?utm_medium=email&utm_source=footer>.

Liang Jia

unread,
Nov 27, 2024, 5:17:13 AM11/27/24
to dev...@kicad.org
Hi Rafał,

Thanks for your explanation. I got your point.

Let me conclude all the proposals to solve the board limit of kicad, in case we need to do more in the future.
1. Larger integers, such as 64bit integer; but it needs CPU and compiler to support 128-bit calculation efficiently.
2. Changing to a dual integer + fractional fixed point representation. from @Seth; It needs rework of internal measurement of Kicad.
3. Using virtual dimension, from @Rafał ; It needs rework of internal measurement of Kicad.

Sincerely
Liang

To unsubscribe from this group and stop receiving emails from it, send an email to devlist+u...@kicad.org.
To view this discussion visit https://groups.google.com/a/kicad.org/d/msgid/devlist/7e34e91b-5a27-46e7-87b8-a537d36e9bef%40electric-sheep.eu.

Kuba Ober

unread,
Nov 27, 2024, 6:00:15 AM11/27/24
to dev...@kicad.org
KiCad is used for circuit design. If you have a board larger than KiCad supports and you’re seriously considering manufacturing it, you are swimming in money and can afford to pay for development to fix it for you on your own fork. It will still be cheaper than most alternatives. That’s the benefit of open source. You can just hire someone to make it do exactly what you want, leveraging a huge and expensive code base.

Otherwise you have no need for any of it and I worry it’s some elaborate way to waste time and resources of the project.

Do you have a practical use case? Explain.

If all you want is to import a large DXF and scale it down during import, that can be done easily without reworking KiCad, just a change to the import plugin to add that option if it’s not there. Trivial stuff. But you didn’t ask about that. You asked to grow KiCad PCB size limits. That’s an important distinction. The latter is a monumental effort, the former is an afternoon’s worth of work. 

You can rescale the DXF down in Inkscape or AutoCad etc. before import as a workaround. 

I don’t speak for anyone else but myself, just to make it clear.

- Kuba

25. nov. 2024 kl. 11:07 am skrev Liang Jia <lantian...@gmail.com>:


--
You received this message because you are subscribed to the Google Groups "KiCad Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email to devlist+u...@kicad.org.
Reply all
Reply to author
Forward
0 new messages