Circles do not exist(nibblestew.blogspot.com)
nibblestew.blogspot.com
Circles do not exist
https://nibblestew.blogspot.com/2023/09/circles-do-not-exist.html
216 comments
I think the OP is really just frustrated with the idea that CAD will use PDF and, in that application, 0.03% deviation can be too much.
if being off by 3 units on a 10,000 unit circle actually matters, you have stricter requirements than most industry bodies. If you're fabricating parts that have tolerances measured in 1/10th of a thou, the machines you use absolutely don't ask for PDF, they ingest proper control code.
It absolutely matters. The type of fit you get between a shaft and a hole differs on the order of 5 - 10 microns [1]. A micron is 0.01% of a cm so 0.03% can consume a large portion of your tolerance budget.
For example, you can make a shaft that fits in a hole like a spring because it can slide freely but air can't get out and you can shave a few microns off and it will sink into the hole at a controlled rate. This is all easily achievable in a home machine shop on a manual lathe. With Wire EDM, you can achieve even tighter tolerances and it would be perfectly possible to generate a part that could fit but could not spin because of the PDF error.
[1] https://en.wikipedia.org/wiki/Interference_fit
For example, you can make a shaft that fits in a hole like a spring because it can slide freely but air can't get out and you can shave a few microns off and it will sink into the hole at a controlled rate. This is all easily achievable in a home machine shop on a manual lathe. With Wire EDM, you can achieve even tighter tolerances and it would be perfectly possible to generate a part that could fit but could not spin because of the PDF error.
[1] https://en.wikipedia.org/wiki/Interference_fit
>For example, you can make a shaft that fits in a hole like a spring because it can slide freely but air can't get out and you can shave a few microns off and it will sink into the hole at a controlled rate. This is all easily achievable in a home machine shop on a manual lathe.
I can tell from this statement that you do not have a home machine shop with a manual lathe. Home machine shops most certainly do ~not~ typically (or easily) achieve micron accuracy.
I can tell from this statement that you do not have a home machine shop with a manual lathe. Home machine shops most certainly do ~not~ typically (or easily) achieve micron accuracy.
In the category "using your hammer to screw in a rivet", you don't machine a shaft with a laser-cutter. As you point out: you use a lathe.
For "circular" work that you do use a laser cutter for, 0.03% tolerances are below the variance you get from the cutter itself. Expecting higher precision from the cutter that is somehow "messed up" by the deviation from the standard Bezier approximation of a circle, when the machine you're using can't give you that precision is using that proverbial hammer.
Of course, if that's really all you have access to (first of all: what are you even doing? look into buying a second hand lathe, or have everyone pitch in so your hobby space can buy one, they'll set you back less than a thousand bucks) the laser cutting is step one, you're not done after cutting, and you know you're not done after cutting because you know laser cutters are not high-precision machining tools like lathes or mills. You cut slightly oversized, and then you clean up the part and machine it down to final dimensions until your micrometer says you're within tolerance.
For "circular" work that you do use a laser cutter for, 0.03% tolerances are below the variance you get from the cutter itself. Expecting higher precision from the cutter that is somehow "messed up" by the deviation from the standard Bezier approximation of a circle, when the machine you're using can't give you that precision is using that proverbial hammer.
Of course, if that's really all you have access to (first of all: what are you even doing? look into buying a second hand lathe, or have everyone pitch in so your hobby space can buy one, they'll set you back less than a thousand bucks) the laser cutting is step one, you're not done after cutting, and you know you're not done after cutting because you know laser cutters are not high-precision machining tools like lathes or mills. You cut slightly oversized, and then you clean up the part and machine it down to final dimensions until your micrometer says you're within tolerance.
It doesn't matter. The error is 0.03% only with one of the most simplistic approximations of 1 Bézier curve per quarter circle. Bump this to 2 or 4 curves, and the error drops to 4.0e-6 or 6.2e-8 (https://pomax.github.io/bezierinfo/#circles_cubic)
You are going to have a really hard time finding an industrial application where a 6.2e-8 error matters.
In fact, check this out: the Epilog Fusion M2 40 laser machine that the author chooses to picture as the problem instance can engrave a circle of at most 28-inch diameter, and has a resolution of 1200 dpi. Therefore two (gasp!) Bézier curves per quarter circle offers far more precision (4.0e-6) than this machine's error (1/1200/28 = 3.0e-5).
Edit: or take the world's roundest object: a sphere made out of a single crystal of silicon-28 atoms, with a roundness delta of less than 50 nanometres over a 93.6 mm diameter (https://www.heason.com/news-media/technical-blog-archive/wor...) This is an error of 5.3e-7. Four puny Bézier curves per quarter circle (6.2e-8) are more perfect than this sphere.
You are going to have a really hard time finding an industrial application where a 6.2e-8 error matters.
In fact, check this out: the Epilog Fusion M2 40 laser machine that the author chooses to picture as the problem instance can engrave a circle of at most 28-inch diameter, and has a resolution of 1200 dpi. Therefore two (gasp!) Bézier curves per quarter circle offers far more precision (4.0e-6) than this machine's error (1/1200/28 = 3.0e-5).
Edit: or take the world's roundest object: a sphere made out of a single crystal of silicon-28 atoms, with a roundness delta of less than 50 nanometres over a 93.6 mm diameter (https://www.heason.com/news-media/technical-blog-archive/wor...) This is an error of 5.3e-7. Four puny Bézier curves per quarter circle (6.2e-8) are more perfect than this sphere.
That's the answer to a different question. I was just pointing out that, in most industrial applications, 0.03% tolerances are rarely seen but in the specific question of circular dimensions, it's a pretty common requirement.
And while it's possible to approximate with higher bezier curves, PDFs are auto generated with software libraries and it's going to be non-trivial to dive into the guts of a library of a library of a library and tweak the logic for generating circles for this one specific type of application.
And while it's possible to approximate with higher bezier curves, PDFs are auto generated with software libraries and it's going to be non-trivial to dive into the guts of a library of a library of a library and tweak the logic for generating circles for this one specific type of application.
When we're talking about a CO2 laser, the errors from taper, variations in laser power, rigidity, trueness of optical path, etc, etc, far exceed 0.03%.
If you want a circle that's better than a 0.03% tolerance, odds are you're not making it by tracing a circular path in g-code, but instead using something like a lathe.
> And while it's possible to approximate with higher bezier curves, PDFs are auto generated with software libraries and it's going to be non-trivial to dive into the guts of a library of a library of a library and tweak the logic for generating circles for this one specific type of application.
A lot of work on CO2 lasers you do with something like Coreldraw or Inkscape. You absolutely can pick the number of vertices with some slight work.
Lasers are a bit weird in that most of their work is for signmaking. Most end-user use cases are closer to a printer than that of a typical CNC machine. Indeed, it can be annoying to take something from CAD to lasers that want PDF, because you can end up with things like the resultant PDF not joining lines together properly into one shape and the laser "stopping" on each vertex. You end up pretty carefully picking tools and processes for this flow. Ideally you figure out how to give the laser a dxf...
If you want a circle that's better than a 0.03% tolerance, odds are you're not making it by tracing a circular path in g-code, but instead using something like a lathe.
> And while it's possible to approximate with higher bezier curves, PDFs are auto generated with software libraries and it's going to be non-trivial to dive into the guts of a library of a library of a library and tweak the logic for generating circles for this one specific type of application.
A lot of work on CO2 lasers you do with something like Coreldraw or Inkscape. You absolutely can pick the number of vertices with some slight work.
Lasers are a bit weird in that most of their work is for signmaking. Most end-user use cases are closer to a printer than that of a typical CNC machine. Indeed, it can be annoying to take something from CAD to lasers that want PDF, because you can end up with things like the resultant PDF not joining lines together properly into one shape and the laser "stopping" on each vertex. You end up pretty carefully picking tools and processes for this flow. Ideally you figure out how to give the laser a dxf...
Control code generated from a CAD model, not a .pdf.
Al you need to fix this is use rational Beziers - same thing but with weighted control points.
STEP files will remain the standard for CAD.
Al you need to fix this is use rational Beziers - same thing but with weighted control points.
STEP files will remain the standard for CAD.
> Al you need to fix this is use rational Beziers - same thing but with weighted control points.
Then it is settled, we'll use .TTF as our CAD interchange format.
Then it is settled, we'll use .TTF as our CAD interchange format.
> 1/10th of a thou
What is this unit?
What is this unit?
The standard industry term for a thousandth of an inch. Also called a mil.
https://en.m.wikipedia.org/wiki/Thousandth_of_an_inch
A 1/10th of a thou is 1/10000th of an inch, or 2.54 micrometers. It's insanely small.
https://en.m.wikipedia.org/wiki/Thousandth_of_an_inch
A 1/10th of a thou is 1/10000th of an inch, or 2.54 micrometers. It's insanely small.
> a thousandth of an inch. Also called a mil
Why, America... At that point, if it's inventing new units to decimalise USC units, why not just use micrometres?
Why, America... At that point, if it's inventing new units to decimalise USC units, why not just use micrometres?
Electronics manufacturing uses both with about equal frequency, often without unit names attached, and it's confusing as all hell, at least as a hobbyist. E.g. a 0603 footprint can mean 0.6×0.3 mm or 60×30 mils.
https://eepower.com/resistor-guide/resistor-standards-and-co...
https://eepower.com/resistor-guide/resistor-standards-and-co...
Because at the time of the invention and adoption of this term of this term in the late 1850s, the metric system didn’t have widespread adoption at all. The treaty of the meter wasn’t until 1875.
So the metric system and decimalization of the inch are roughly contemporaneous and “just use this othe, also brand new system” isn’t an obvious choice at that point.
So the metric system and decimalization of the inch are roughly contemporaneous and “just use this othe, also brand new system” isn’t an obvious choice at that point.
Fair enough.
I think the real question is... Why is such a unit still being used? I was under the impression that any serious ultra-precise CAD and machining was done in milli, micro, and nanometres. I thought pretty much any serious science or engineering had been metricated...
But then again I shouldn't be surprised; Americans measure the volume of lakes in 'acre-feet'...
I think the real question is... Why is such a unit still being used? I was under the impression that any serious ultra-precise CAD and machining was done in milli, micro, and nanometres. I thought pretty much any serious science or engineering had been metricated...
But then again I shouldn't be surprised; Americans measure the volume of lakes in 'acre-feet'...
I mean, a "thousandth" of an inch is also a decimalised USC unit.
Don't try to logic how Americans measure things.
Don't try to logic how Americans measure things.
Or they could stick with binary and introduce a name for 1/1024th of an inch. Borrow a meme from the “almost SI” prefixes kibi, mebi, gibi etc., and call it a mibi, perhaps? ;-)
What the hell are kibi and gibi?
They are IEC prefixes, complementary to the SI prefixes, and they only are defined for positive exponents.
This leads to a lot of conflation, mess, and misreporting by vendors and OS authors. Windows is an egregious example. A 1 TB (terabyte, 10^12) disk is reported in Windows as 931.7 GB. It ought to be 931.7 GiB, which is what Linux does. macOS uses the correct number but SI prefixes, so 1 TB is reported as 1 TB.
kibi : ki : 2^10
mebi : Mi : 2^20
gibi : Gi : 2^30
tebi : Ti : 2^40
...
Conveniently, these numbers are fairly close to 10^3, 10^6, 10^9, and 10^12 respectively (but with increasing error: 2^40 is almost 10% larger than 10^12, whereas 2^10 is only 2.4% larger than 10^3).This leads to a lot of conflation, mess, and misreporting by vendors and OS authors. Windows is an egregious example. A 1 TB (terabyte, 10^12) disk is reported in Windows as 931.7 GB. It ought to be 931.7 GiB, which is what Linux does. macOS uses the correct number but SI prefixes, so 1 TB is reported as 1 TB.
I think it's hard to call it misreporting when they've been reporting it the same way since before the standard you'd rather they use existed.
Wait, does MacOS report file sizes in base 10 as well, or just disks?
File sizes too.
Kibibyte: 1024 bytes. Gibibyte: 2^30 or 1,073,741,824 bytes. The -bi suffix is intended to signify “binary”.
[deleted]
Using a PDF where 0.03% matters is insane no?
Yes, that's the point.
1. PDF is to become a standard CAD interchange format.
2. Using PDF where 0.03% matters is insane.
3. If CAD requires 0.03% tolerance, then using PDF as a standard CAD interchange format is insane.
I would imagine you generally want arbitrary precision for CAD.
1. PDF is to become a standard CAD interchange format.
2. Using PDF where 0.03% matters is insane.
3. If CAD requires 0.03% tolerance, then using PDF as a standard CAD interchange format is insane.
I would imagine you generally want arbitrary precision for CAD.
Absolutely!
I cannot imagine a CAD system that can't symbolically represent what is actually desired. The model and its spec should be one and the same.
Approximations also open the door to different precision versions. Not helpful when different parts from different sources need to be consistent.
Models that approximate/vary from the ideal spec, created intentionally to match manufacturing limitations, are ok.
I cannot imagine a CAD system that can't symbolically represent what is actually desired. The model and its spec should be one and the same.
Approximations also open the door to different precision versions. Not helpful when different parts from different sources need to be consistent.
Models that approximate/vary from the ideal spec, created intentionally to match manufacturing limitations, are ok.
Drawings for parts should have tolerances called out. I did mechanical inspection for a manufacturer for several summers. Every dimension had a plus/minus value listed. Holes and screw threads had go/no-go gauges
But is PDF really the standard CAD format for communicating with machines?
For laser cutting, I prefer to use SVG, as it's easier to generate. I had not really thought about precision, but SVG can represent circles directly.
For laser cutting, I prefer to use SVG, as it's easier to generate. I had not really thought about precision, but SVG can represent circles directly.
Using PDF as a standard (for anything) is insane. I mean it was nice before Adobe backpedaled and tried to milk it for everything and now the format is anything but portable.
But could the CAD use more than 4 control points to approximate the circle better?
[deleted]
Seems like the real actual data would just be embedded inside the pdf.
Hopefully anyway.
Hopefully anyway.
I don't think you can represent arbitrary data in a pdf AND have pdf viewers actually render it. If the pdf format screws precision (and I'm not surprised it does, it screws paragraphs and often only contains metadata to reconstruct lines of text), it should not be used as a data interchange format.
Pdf is for print and human eyeballs. It's brilliant for those 2 things and not much else.
Pdf is for print and human eyeballs. It's brilliant for those 2 things and not much else.
If I was dead set on using pdf as an interchange format, I'd make the standard that the pdf content was a drawing of the data and then also embed a better representation of the data. So a well formed file can be previewed with any pdf reader, but no problems with data quality when you go to use it for something.
Of course the drawing could then be out of step with the data, but so what.
Of course the drawing could then be out of step with the data, but so what.
> I don't think you can represent arbitrary data in a pdf AND have pdf viewers actually render it.
You can have both in parallel, and have the editing software regenerate the rendered form from the source data form when anything changes. It’s not completely uncommon to use PDFs as a data carrier that way.
You can have both in parallel, and have the editing software regenerate the rendered form from the source data form when anything changes. It’s not completely uncommon to use PDFs as a data carrier that way.
If a Bézier-based circles with four nodes are too rough, I suppose a circle with 16 or 24 or 128 nodes can be made smooth enough to exceed the laser cutter's margin of error.
If you want to produce a highly regular circle in Inkscape, draw a polygon with many nodes (say, 24), convert it to path, then make all nodes smooth and symmetric.
If you want to produce a highly regular circle in Inkscape, draw a polygon with many nodes (say, 24), convert it to path, then make all nodes smooth and symmetric.
The actual formula is O(n^6) scaling, and for circles it's very easy to achieve that. So a circle divided into 16ths has 4096 times less error than one in quarters and one made of 128 nodes is a (binary) billion times better.
This is true for curve fitting of arbitrary curves, not just circles, though arbitrary curve fitting is a bit tricky (it requires solving quartic equations). I personally think you can take this as evidence that cubic Béziers are "good enough" for all practical tasks requiring curve representation, though for specific applications there might be other representations that work better.
This is true for curve fitting of arbitrary curves, not just circles, though arbitrary curve fitting is a bit tricky (it requires solving quartic equations). I personally think you can take this as evidence that cubic Béziers are "good enough" for all practical tasks requiring curve representation, though for specific applications there might be other representations that work better.
Like floating point errors, the representation can (in theory) be as precise as we like but that's not something most users are willing/able to adjust.
Or just use the ellipse (E) in Inkscape, set the start/end to 0, and hold down ctrl. Then inkscape will generate a `<circle>` svg element.
But the SVG in Inkscape is not a PDF on a machine that accepts PDF CAD drawings.
When you print to PDF, the circle will have to be approximated, which is what the article is talking about.
When you print to PDF, the circle will have to be approximated, which is what the article is talking about.
The article was about postscript, but the comment I was replying to was about how to approximate a circle in Inkscape, so I suggested a better approach.
> most people can't accurately eyeball a perfect circle anyway.
https://lessonstream.com/the-story-of-mr-os-circle/
https://lessonstream.com/the-story-of-mr-os-circle/
The first "better" approximation, while having a better "max distance" (0.019608% vs 0.027253%), has a _worse_ span between min and max (0.039216% vs 0.027253%), which probably matters for some applications.
> The only way to create a proper circle is to have a raster image like the one above.
The raster image won't be a circle, it'll be a circle projected onto a square or rectangular grid. But, just like with the Bezier curves, nobody will notice. I remember the first week of Geometry, they told us that the drawings of squares and circles and whatnot printed in the textbook are not intended to be accurate, so don't bother measuring them to get the answer. The circle represents a circle, it is not a circle.
Wait til I tell you about this painting of a French pipe I saw one time.
The raster image won't be a circle, it'll be a circle projected onto a square or rectangular grid. But, just like with the Bezier curves, nobody will notice. I remember the first week of Geometry, they told us that the drawings of squares and circles and whatnot printed in the textbook are not intended to be accurate, so don't bother measuring them to get the answer. The circle represents a circle, it is not a circle.
Wait til I tell you about this painting of a French pipe I saw one time.
> I remember the first week of Geometry, they told us that the drawings of squares and circles and whatnot printed in the textbook are not intended to be accurate, so don't bother measuring them to get the answer.
I considered, and to this day consider, inaccurate figures in textbooks to be sloppy job by lazy people. Sure, measuring the solution off a drawing is (in math classes) missing the point of the exercise, but at the same time, humans process knowledge holistically, so inaccurate drawings will interfere with gaining an intuitive understanding of a problem space.
I mean, if you were using software to chart some data you want to "get a feel for", would you be fine with software introducing arbitrary errors just because "Ceci n'est pas une pipe" or whatever?
I considered, and to this day consider, inaccurate figures in textbooks to be sloppy job by lazy people. Sure, measuring the solution off a drawing is (in math classes) missing the point of the exercise, but at the same time, humans process knowledge holistically, so inaccurate drawings will interfere with gaining an intuitive understanding of a problem space.
I mean, if you were using software to chart some data you want to "get a feel for", would you be fine with software introducing arbitrary errors just because "Ceci n'est pas une pipe" or whatever?
> inaccurate figures in textbooks
Sometimes it's not about being accurate, sometimes it's about the figures in the textbook representing unrepresentable, impossible situations on whatever geometry you're operating on. say euclidean geometry. Casual things like triangles where the sum of internal angles doesn't match π. Triangles where the sum of length of the two smaller sides is larger that the larger side.
Being able to reason about what are supposed to be the constraints of a otherwise impossible system is valuable in itself.
Sometimes it's not about being accurate, sometimes it's about the figures in the textbook representing unrepresentable, impossible situations on whatever geometry you're operating on. say euclidean geometry. Casual things like triangles where the sum of internal angles doesn't match π. Triangles where the sum of length of the two smaller sides is larger that the larger side.
Being able to reason about what are supposed to be the constraints of a otherwise impossible system is valuable in itself.
I do agree with that, and I understand there are many things that just plain cannot be represented accurately on paper - whether through drawings or symbolically. But once you draw an illustration of some thing, I'd expect everything about the drawing to be depicting the real thing as accurately as possible, unless explicitly marked otherwise. If you're not doing that, you may as well skip the illustration entirely, because it confuses things more than it helps.
Looking back as a grown-up, I'm sure the teacher just said this to head off anyone considering cheating by making them think it would be a waste of time. The illustrations did look pretty close to accurate to me.
what if someone told you the painting's subject matter is not a Belgian pipe
Clarifying that the non-pipe is a Belgian non-pipe and not a French non-pipe reminds me of the joke with Sartre:
Jean-Paul Sartre was sitting in a cafe when a waitress approached him: "Can I get you something to drink, Monsieur Sartre?" Sartre replied, "Yes, I'd like a cup of coffee with sugar, but no cream". The waitress left, but returned a few minutes later and said, "I'm sorry, Monsieur Sartre, we are all out of cream -- how about with no milk?"
Jean-Paul Sartre was sitting in a cafe when a waitress approached him: "Can I get you something to drink, Monsieur Sartre?" Sartre replied, "Yes, I'd like a cup of coffee with sugar, but no cream". The waitress left, but returned a few minutes later and said, "I'm sorry, Monsieur Sartre, we are all out of cream -- how about with no milk?"
Ceci n'est ... perhaps?
There was a Greek bloke who had a thing about perfection and geometry. Eclad or something similar (OK: Euclid).
At what point does the perfect approach reality or vice versa?
The pipe in question might not be French - the painting was painted by a French person but you cannot imply the country of the pipe itself on that basis without additional evidence!
There was a Greek bloke who had a thing about perfection and geometry. Eclad or something similar (OK: Euclid).
At what point does the perfect approach reality or vice versa?
The pipe in question might not be French - the painting was painted by a French person but you cannot imply the country of the pipe itself on that basis without additional evidence!
Euclid with diagrams is modernism! The original texts didn’t have them.
PDF for CAD is silly. The problem is that laser cutters tend to take 2D vector image data as input, rather than G-Code like real CNC machines. You can definitely express a circular path in G-Code, and you expect a milling machine to cut one accurate to the precision of the mechanical parts of the machine. But laser cutter software is to some extent derived from printer technology. You can raster scan a picture onto a surface with a laser cutter.
Agreed. PDF for CAD has its place, but its place is shop drawings read by humans, not as a machine interchange format. Many laser cutters will accept other vector formats, like DXF, which do have precise representation for circles.
DXF seems to be reasonably common for laser cutters. It at least supports arcs!
I don't think many laser cutters use raster scanning, though. That's going to leave some really nasty artifacts. You really want to cut continuous lines like, well, lines.
I don't think many laser cutters use raster scanning, though. That's going to leave some really nasty artifacts. You really want to cut continuous lines like, well, lines.
Laser engraving is usually raster scan, and most laser cutters can do both line cutting and raster scanning.
> This is a laser cutter that takes its "print jobs" as a PDF file and uses its vector drawing commands to drive the cutting head. This means that it is impossible to use it to print a wheel. You'd need to attach the output to a lathe and sand it down to be round so it actually functions as a wheel rather than as a vibration source.
Respectfully, I don't think you're limited by the PDF format if you're talking about a laser cutter. And... Circular motion doesn't spring forth naturally from gantry CNC laser cutters -- they're rectilinear in design. It's circles not existing all the way down.
Using it as a CAD format with inherent fundamental shapes missing seems kind of funny, though.
Respectfully, I don't think you're limited by the PDF format if you're talking about a laser cutter. And... Circular motion doesn't spring forth naturally from gantry CNC laser cutters -- they're rectilinear in design. It's circles not existing all the way down.
Using it as a CAD format with inherent fundamental shapes missing seems kind of funny, though.
Epilog claims (up to) 1200dpi resolution. Another comment mentioned the "standard bezier curve representation" is accurate to 0.03%. This means errors should start being observable with a circle as small as 3in. These are probably wildly optimistic assumptions, but it's still 10x smaller than the bed of their largest unit, and there's nothing to stop people from creating arcs of circles with radii even bigger than that!
Observable is pushing it. Technically observable, sure, but ~1dpi misplaced is… unlikely to be noticeable.
Plus, if that level of accuracy is required simply adding more nodes improves accuracy exponentially.
Not least, the “standard” approximation really should be updated in software, as modern 4-node approximations are down to 0.005%, almost an order of magnitude better.
Plus, if that level of accuracy is required simply adding more nodes improves accuracy exponentially.
Not least, the “standard” approximation really should be updated in software, as modern 4-node approximations are down to 0.005%, almost an order of magnitude better.
If you are misplaced by 1dpi, then your "1200 dpi" is actually 600 dpi.
If you got a machine that's accurate to 1200 dpi presumably you want 1200 dpi and not 600.
If you got a machine that's accurate to 1200 dpi presumably you want 1200 dpi and not 600.
That’s not true in this case. It would still be 1200 dpi but the approximation of one curve is off by 1 dpi in some dimension.
If all the lines were off, then yes, kinda. Ish.
If all the lines were off, then yes, kinda. Ish.
Oh, I completely agree! "Observable" is pushing the limits of the word past absurdity. 1200dpi would put the resolution of the system at just twice the wavelength of their laser. I feel like that's about the limit of what's possible due to physics [citation needed]. I'm fairly confident their actual performance is less.
> simply adding more nodes improves accuracy exponentially
According to another comment, it actually improves at O(n^6).
According to another comment, it actually improves at O(n^6).
I stand corrected! Polynomial..ly
Last time I used one, Epilog’s software was pretty terrible. It seemed to designed around a workflow in which you either design your cuts in CorelDraw and then print to a Windows print driver.
I sincerely hope that the upcoming Windows third-party print driver deprecation kills this.
(Also, what’s wrong with them? Even ignoring cost, I would rather have a Chinese printer that had a publicly known control interface and supported Lightburn than a “nice” American laser printer that was only operable with bad proprietary software.)
I sincerely hope that the upcoming Windows third-party print driver deprecation kills this.
(Also, what’s wrong with them? Even ignoring cost, I would rather have a Chinese printer that had a publicly known control interface and supported Lightburn than a “nice” American laser printer that was only operable with bad proprietary software.)
The 1200DPI resolution is for engraving using rasterization, so, not really the same thing.
When you're cutting things on a laser, there's myriad sources of error. Odds are the optical path isn't completely square, so there's some cross coupling between axes. There's drive belts. The laser is often pulsed. There's taper.
When you're cutting things on a laser, there's myriad sources of error. Odds are the optical path isn't completely square, so there's some cross coupling between axes. There's drive belts. The laser is often pulsed. There's taper.
The shape is there. postscript(and I assume PDF) has an arc primitive. however it is rasterized(drawn) in the reference implementation using bezier curves.
Now the postscript to servo control program(g-code?) interpreter might use the same bezier curve approximation, but it might not. I think if it were a formal complaint they would have to positively assert that their machined circles are following an inferior profile rather than just assume they are.
g-code sort of sucks as a language. It is very primitive. I always thought it would be cool to have a postscript dialect that supported more than two axis to use as a low level language on computer driven machine tools.
Now the postscript to servo control program(g-code?) interpreter might use the same bezier curve approximation, but it might not. I think if it were a formal complaint they would have to positively assert that their machined circles are following an inferior profile rather than just assume they are.
g-code sort of sucks as a language. It is very primitive. I always thought it would be cool to have a postscript dialect that supported more than two axis to use as a low level language on computer driven machine tools.
I ran into this when trying to make a vector version of the Smith chart [1] - which has a lot of circles. It turns out the inaccuracy from a 4-segment Bezier "circle" is significant when you need precisely intersecting arcs at the scale of a full letter/A4 page [2][3]. Ultimately, you can just increase the number of Bezier segments and make the error arbitrarily small; doubling to 8 segments was enough to eliminate the error on the chart even at extreme magnification.
[1] https://www.penpapernomographic.com/pdf/smith-chart.pdf
[2] https://github.com/pgf-tikz/pgf/issues/817
[3] https://camo.githubusercontent.com/0cc44db2e367356629d897c10...
[1] https://www.penpapernomographic.com/pdf/smith-chart.pdf
[2] https://github.com/pgf-tikz/pgf/issues/817
[3] https://camo.githubusercontent.com/0cc44db2e367356629d897c10...
I thought the article would go further and posit that Circles do not exist in reality as they are approximations of a mathematical ideal. But the author does present the raster image as a bonafide circle, rather than the approximation that it truly is -- more resolved than others or not. A zoomed in excerpt of the author's rasterized circle approximation clearly shows that scale is key in perception of reified ideals: https://ibb.co/P1KwLDm
That's true in a sense, but you've got to go way down. At a fine enough level --- say, at the level of atoms --- all material things are granular, and circular or spherical things are built stepwise from material building blocks, as though from pixels. Thus even very "smooth" things are rough and granular.
Further: There are no circular (2D) molecules; nature prefers hexagons and other polygons for that. Even the proton isn't perfectly spherical. Whether the electron and other subatomic particles are perfectly spherical cannot, as yet, be determined. (The electron seemingly has a diameter far below the Planck Length.)
There are no very large circles or spheres, either. All astronomical bodies are somewhat flattened.
So I dare say perfect circles and spheres do not really exist, save as idealized mathematical objects.
Further: There are no circular (2D) molecules; nature prefers hexagons and other polygons for that. Even the proton isn't perfectly spherical. Whether the electron and other subatomic particles are perfectly spherical cannot, as yet, be determined. (The electron seemingly has a diameter far below the Planck Length.)
There are no very large circles or spheres, either. All astronomical bodies are somewhat flattened.
So I dare say perfect circles and spheres do not really exist, save as idealized mathematical objects.
I wouldn’t have believed you until I started looking into how spheres are made with various materials. All of them require immense amounts of iterations from rough cutting to polishing. Generally they are formed by reducing from a larger piece of material, sometimes inflated. It is never a cheap process to make a sphere and against nature is to achieve it. In the collection of gravities the earth and its inhabitants are subject to, straight lines are rare. A perfect sphere demands infinite straight lines of equal length from one point in space and for those to persist over time. A tall order for mere matter. Buckyballs are good enough for me.
Lead shot is typically spherical without any trimming from a larger piece. The traditional method is called a shot tower, and involves dropping molten lead so it forms small drops that cool as they fall, until they impact into a water bath. This works because drops of liquid are spherical below a certain size dependent on the material. The classic depiction of a rain drop is entirely false.
But isn't the nature of attractive forces, like gravity, to squish everything into perfect spheres? The matter wants to resist, but that's another topic. The main issue is that pesky rotation - angular momentum is a blemish on the otherwise perfect equations of the cosmos.
[deleted]
>The electron seemingly has a diameter far below the Planck Length
According to what? We have nothing that can measure anything close to that. The standard model doesn't predict any radius on the electron, just defining it as point-like.
> Whether the electron and other subatomic particles are perfectly spherical cannot, as yet, be determined.
How can we ever determine something to be perfectly spherical? Any measurement comes with finite precision, and maybe the thing is actually not a sphere if we measured with more precision?
All measurements we have done on the electric dipole moment of the electron suggests that it could be zero. (The standard model predicts it to be non-zero, but very very very small.) This suggests that the charge distribution of the electron is spherical (or very very very close to).
According to what? We have nothing that can measure anything close to that. The standard model doesn't predict any radius on the electron, just defining it as point-like.
> Whether the electron and other subatomic particles are perfectly spherical cannot, as yet, be determined.
How can we ever determine something to be perfectly spherical? Any measurement comes with finite precision, and maybe the thing is actually not a sphere if we measured with more precision?
All measurements we have done on the electric dipole moment of the electron suggests that it could be zero. (The standard model predicts it to be non-zero, but very very very small.) This suggests that the charge distribution of the electron is spherical (or very very very close to).
Is similar not also true of Lines, and Points?
That is: every real, non-theoretical Point must have a size, a resolution; and every non-theoretical straight Line is surely not a true straight line if we zoom far enough down into sub-atomics.
That is: every real, non-theoretical Point must have a size, a resolution; and every non-theoretical straight Line is surely not a true straight line if we zoom far enough down into sub-atomics.
Large black holes are the most spherical things in the relative sense, not in an absolute sense; although more so than pico-black holes, which are not very spherical.
Light cones/the 4d-radii of causality are* perfectly spherical.
Light cones/the 4d-radii of causality are* perfectly spherical.
Aren't they warped by the curvature of space/time that they are spreading over?
How big a factor is the rotation of the black hole? Maybe look for a large black hole not rotating too much if you want to be sure. :-)
What about orbits?
That statement is just one of a million in the "calculus does not exist" realm, and is not nearly as interesting as this article was.
EDIT: apologies for the tone; came off very snide on second read.
EDIT: apologies for the tone; came off very snide on second read.
I don't think the statement attempted to invalidate the article, there are many gems inside, such as the idea that human perception elongates the vertical axis, etc.
You wouldn't happen to have a link handy about that vertical axis perception thing would you, I l'm super curious about it.
I haven't been able to find anything corroborating the claim. But I, perhaps gullibly, shared the perception. Did find this somewhat related white paper during my short search: https://www.sciencedirect.com/science/article/pii/S004269890...
As someone who's spent a decent amount of time writing "output to pdf" routines, I would never in a million years choose pdf as an interchange format for anything at all.
PDF/A is the required format for delivering and archiving the final CAD drawings in many major civil engineering projects I've been involved in,
Right, I like to joke that pdf is where data goes to die. But management loves them, so we continue making them.
As clarification, once the data goes in to a pdf it is a pain to get out again for further processing. Not impossible, but the format is clearly designed to put shapes on paper. anything more and you have to fight for it.
As clarification, once the data goes in to a pdf it is a pain to get out again for further processing. Not impossible, but the format is clearly designed to put shapes on paper. anything more and you have to fight for it.
Unfortunately PDF is, like, one of the most reassuring file formats.
https://xkcd.com/1301/
What would you put at the top?
.PS is pretty fancy, although, just because it is probably saying “this is basically a PDF but from the olden days.”
https://xkcd.com/1301/
What would you put at the top?
.PS is pretty fancy, although, just because it is probably saying “this is basically a PDF but from the olden days.”
That comic is about what file types people choose to put what types of information (e.g. PDFs don't often get used for memes, and gifs don't often get used for scientific research papers). It's not even trying to make a point about the quality of the file formats themselves.
(I assume when you wrote "most reassuring" you were instead interpreting it as a comic about the file types' ability to accurately hold the information a user wants them to hold, because "reassuring" as pertains to the comic's actual meaning would be completely irrelevant to this topic of whether or not PDF makes a good interchange format.)
(I assume when you wrote "most reassuring" you were instead interpreting it as a comic about the file types' ability to accurately hold the information a user wants them to hold, because "reassuring" as pertains to the comic's actual meaning would be completely irrelevant to this topic of whether or not PDF makes a good interchange format.)
Yeah but that chart is saved as a PNG which is like, pretty low on the scale. I don't think we can trust anything on there.
i think that comic is from an earlier time when making PDFs was harder.
The first programming language I learnt to program in was Logo, namely IBM/LCSI PC Logo. It too did not have any command to draw curves or circles. However, we were taught to draw a "circle" using code like this:
Screenshot: https://susam.net/blog/fd-100.html#circles
REPEAT 360 [FD 1 RT 1]
But alas, circles did not exist! It is easy to realise that the above code does not attempt to draw a circle. These instructions specify a triacosiahexeacontagon instead.Screenshot: https://susam.net/blog/fd-100.html#circles
Article says “Furthermore, the human vision system is a bit weird and perfect circles look vertically elongated. You have to make them non-circular for people to consider them properly circular.”
Anyone have a reference for this?
Anyone have a reference for this?
https://www.piotrlukaszkiewicz.pl/05_vertical-horizontal/?la...
From reading this, the error with circles appears to be <1%.
Also, obligatory mention whenever horizontal-vertical illusion comes up: https://www.nippon.com/en/japan-topics/c12403/
From reading this, the error with circles appears to be <1%.
Also, obligatory mention whenever horizontal-vertical illusion comes up: https://www.nippon.com/en/japan-topics/c12403/
Real world manufacturing machines (CNCs) are using G codes. Like most laser cutters and engraves, Ex. LaserGrbl software for laser machines.
G codes in fact have command for arcs.
G02 establishes a mode for clockwise circular arcs. G03 establishes a mode for counter-clockwise circular arcs.
G codes in fact have command for arcs.
G02 establishes a mode for clockwise circular arcs. G03 establishes a mode for counter-clockwise circular arcs.
I think the OP's concern was that they couldn't upload G-Code, they could only upload PDFs. And because PDFs don't encode circles, a mechanistic translation to G-Code can't convert it into a G-Code circle, only a curve that emulates a circle.
So... you know... note to self... when designing a laser cutter, allow the user to upload G-Code.
So... you know... note to self... when designing a laser cutter, allow the user to upload G-Code.
This is true for almost every machine tool I've ever used (CNC mills, 3d printers, CNC plasma cutting, & water jet), but every laser cutter I've ever used (and I've used the kind that runs on 3-phase power and has no safety enclosure) speaks some variant of PCL. The one exception being a $300 home-brew tabletop laser running the aforementioned LaserGrbl...
That said, apart from a handful of misconfigurations, I've never had a problem getting any of them to cut out nice circles.
That said, apart from a handful of misconfigurations, I've never had a problem getting any of them to cut out nice circles.
Time Cube's ineffable Truth.
'Cubeless Word' is not Truth.
Word justifies all human evil.
Time Cube is a test for Truth.
Circle measure is slop bucket.Tacking on another quote-for-amusement:
> "This is why you're taking less field work? Because you're reading 'On Circles, Volume 12'?"
> "I wrote it."
> "Unsurprising."
> "I have to rewrite it. All twelve volumes [...] our physics framework was completely wrong!"
> "Even about, like, circles?"
> Ikora turns to look Chalco in the eye. "Especially about circles."
[0] https://www.ishtar-collective.net/entries/vesper-of-radius
> "This is why you're taking less field work? Because you're reading 'On Circles, Volume 12'?"
> "I wrote it."
> "Unsurprising."
> "I have to rewrite it. All twelve volumes [...] our physics framework was completely wrong!"
> "Even about, like, circles?"
> Ikora turns to look Chalco in the eye. "Especially about circles."
[0] https://www.ishtar-collective.net/entries/vesper-of-radius
But did you know that one of the cases PDF is being considered (and, based on Internet rumors, is already being used) is as an interchange format for CAD drawings? Now it suddenly starts mattering.
Not really? It's considered as an interchange format, not as the interchange format. If you have CAD/CAM work for parts that need precision machining measured in tenths or less, you're not using machines that accept PDF to begin with.If you play the game Quake 3 Arena, which was, I think, the first game to use bezier curves in 3d rendering, so that a column or arch could dynamically adjust how many polygons are used depending on view distance, the columns are visibly not round!
Not something most people notice unless they are looking for it.
Not something most people notice unless they are looking for it.
And these days GPUs have programmable tessellation shaders so they can semi-automatically make up more geometry as needed.
I remember the Q3A Beziers were advertised as if the game rendered actual Beziers (which would in principle be possible in software but not on hardware… of the day, anyway), rather than just doing dynamic LoD approximation with your bog-standard triangles!
I remember the Q3A Beziers were advertised as if the game rendered actual Beziers (which would in principle be possible in software but not on hardware… of the day, anyway), rather than just doing dynamic LoD approximation with your bog-standard triangles!
But the OP mentioned it EXPLICITLY matters in his use case. Telling someone their use case doesn't matter is sort of a reddit thing to do.
> The only way to create a proper circle is to have a raster image like the one above.
facepalm. A raster image can't express a circle either - it's also just an approximation.
Same thing with a printout, for that matter. Maybe you could claim some kind of radial plotter is a true circle, but even there we're talking about pigment being absorbed along individual paper fibers.
In reality, all the mathematical shapes are just abstractions to be approximated.
facepalm. A raster image can't express a circle either - it's also just an approximation.
Same thing with a printout, for that matter. Maybe you could claim some kind of radial plotter is a true circle, but even there we're talking about pigment being absorbed along individual paper fibers.
In reality, all the mathematical shapes are just abstractions to be approximated.
You completely missed his point. Pick a DPI, make a raster circle - it's accurate to the DPI you pick. Now use a Bezier to make that circle (and rasterize it to that DPI). It's not accurate to that DPI.
I don't see the conceptual difference between approximating a circle as a set of raster points, and approximating a circle as a Bezier curve. Also, it was the author's choice to frame the article in edgy universal terms "Circles do not exist" rather than something like a more pedestrian "Circles don't exist in PDF".
> I don't see the conceptual difference between approximating a circle as a set of raster points, and approximating a circle as a Bezier curve.
One approximates the circle to the limit of the chosen resultion, the other simply has an error. A small error, but an error nontheless.
One approximates the circle to the limit of the chosen resultion, the other simply has an error. A small error, but an error nontheless.
Neither rectangular pixels nor Bezier curves are bases capable of perfectly/natively representing a circle. Either one can approximate a circle to within some arbitrarily chosen amount of error, based on increasing the number of pixels or the number of Bezier curve segments.
For a given circle and DPI, one can figure out the minimum number of Bezier curves necessary to represent the circle such that rendering those Bezier curves out to pixels will get you the exact same result as having rendered the circle in pixels directly.
For a given circle and DPI, one can figure out the minimum number of Bezier curves necessary to represent the circle such that rendering those Bezier curves out to pixels will get you the exact same result as having rendered the circle in pixels directly.
The article is arguing mathematical inaccuracy, you're arguing the limitations of compressing an infinite abstract concept on a finite field.
You're not wrong, but it's like someone showing proof that a person can't fly unassisted and then responding with "well dogs can't meow".
You're not wrong, but it's like someone showing proof that a person can't fly unassisted and then responding with "well dogs can't meow".
But the mathematical inaccuracy is caused by the limitations of compressing an abstract concept on a finite field (of a different base abstraction). So no, it doesn't seem like your wacky analogy at all.
No, the Bézier inaccuracy has nothing to do with rasterization. Did you even read the article?
They're saying that your arc for your circle will be incorrect before it's ever put into a concrete implementation. In other words, there's a base level inaccuracy and then your rasterization brings a whole new, different inaccuracy into play.
So yes, my "wacky analogy" is exactly apropos here.
They're saying that your arc for your circle will be incorrect before it's ever put into a concrete implementation. In other words, there's a base level inaccuracy and then your rasterization brings a whole new, different inaccuracy into play.
So yes, my "wacky analogy" is exactly apropos here.
You seem to be asserting some categorical difference between Bezier curves and pixels, likely because most output devices work in terms of pixels. But they're actually both just drawing primitives, and neither one is capable of representing perfect circles.
> the Bézier inaccuracy has nothing to do with rasterization
Obviously, because rasterization refers to pixels and has nothing to do with Bezier curves. On the other hand, that inaccuracy has everything to do with Bezierization.
> there's a base level inaccuracy and then your rasterization brings a whole new, different inaccuracy into play.
Yes, stacking two inexact transformations will result in more inaccuracy than a single one.
Since you seem to be attached to your analogy - it's more like a person making the argument that humans can't fly unassisted, while showing a picture of a pig as an example of flying, and I'm pointing out that pigs can't fly either.
> the Bézier inaccuracy has nothing to do with rasterization
Obviously, because rasterization refers to pixels and has nothing to do with Bezier curves. On the other hand, that inaccuracy has everything to do with Bezierization.
> there's a base level inaccuracy and then your rasterization brings a whole new, different inaccuracy into play.
Yes, stacking two inexact transformations will result in more inaccuracy than a single one.
Since you seem to be attached to your analogy - it's more like a person making the argument that humans can't fly unassisted, while showing a picture of a pig as an example of flying, and I'm pointing out that pigs can't fly either.
You can post as large a wall of text as you like, your point is inaccurate regardless.
no, you
> Furthermore, the human vision system is a bit weird and perfect circles look vertically elongated. You have to make them non-circular for people to consider them properly circular.
Does any one have a link to a perfect circle, I'd love to see if it has the proposed effect on me.
Does any one have a link to a perfect circle, I'd love to see if it has the proposed effect on me.
Yeah, I don't know what effect he is talking about here. SVG has <circle> which I would assume is normally rasterized to pixel-level accuracy (as opposed to approximated with beziers), so there are lots of "perfect" circles to be found. https://developer.mozilla.org/en-US/docs/Web/SVG/Element/cir...
Look at a coffee cup.
How can I distinguish between errors of perception, errors in manufacturing, and errors of perception of the designer who eyeballed circles on a computer screen with non-square pixels?
With a coffee cup, you should be able to take a micrometer (or a piece of string) and verify roundness of the base object to whatever arbitrary precision your heart desires (and your reality will allow).
I don't think I've ever seen a coffee cup that would let me do that. As I said earlier, I don't really trust their roundness, and that's on top of them usually being made of some kind of ceramic and thus having grain.
(Maybe a cheap, single-use plastic cup would be smooth enough and stiff enough and round enough, given the production process.)
(Maybe a cheap, single-use plastic cup would be smooth enough and stiff enough and round enough, given the production process.)
"The only primitives they have are straight line segments, rectangles and Bézier curves. The only way to create a proper circle is to have a raster image like the one above."
Is this really an accurate conclusion? Just because there are no primitives for a circle – postscript is still a programming language so you can also plot a proper circle with trigonometry?
Is this really an accurate conclusion? Just because there are no primitives for a circle – postscript is still a programming language so you can also plot a proper circle with trigonometry?
> Just because there are no primitives for a circle…
Is a 360° arc not a circle?
Is a 360° arc not a circle?
%!PS
/newpath
100 100 50 0 360 arc
stroke
showpageIf I put that through ps2pdf and remove compression, I can see:
stream
q 0.1 0 0 0.1 0 0 cm
/R7 gs
10 w
0 G
1500 1000 m
1500 1276.14 1276.14 1500 1000 1500 c
723.859 1500 500 1276.14 500 1000 c
500 723.859 723.859 500 1000 500 c
1276.14 500 1500 723.859 1500 1000 c
S
Q
endstream
i.e PDF has no arc command, it was converted to "c" bezier curves.That appears to be a rendering/conversion artifact since PDF also supports 360° arcs. My question is, mathematically, is a 360° arc not a circle? (I understand that once a circle is rendered or physically manifested, it's an approximation.)
Do have a reference for PDF supporting circular arcs? I'm looking at the PDF reference manual and do not see it under list of path construction operators.
> Do have a reference for PDF supporting circular arcs?
No, I could've sworn PDFs supported arcs but I was wrong. :) So when rendering/converting PostScript to PDF, circles/360° arcs must be converted to béziers.
No, I could've sworn PDFs supported arcs but I was wrong. :) So when rendering/converting PostScript to PDF, circles/360° arcs must be converted to béziers.
Yes, but as someone else commented the arc is internally based on bézier curves. How accurate thee circle would be by plotting is probably dependent on the trigonometric table built in to the postscript interpreter, but at least it would be mathematically possible to make an accurate circle where it's actually not even possible to express a perfect circle with bézier curves.
In theory you could, when you were converting from PS to G-Code NOT emulate the arc with bezier curves, but convert them into g-code circles. This would likely cause the laser cutter to cut something that looked SLIGHTLY different than the rendered PDF. But anyone who's worked in the field long enough knows that WYSIWYG is a lie (albeit a very useful lie.)
Don't get me wrong. I'm not questioning the usefulness of béziers. I'm questioning the authors notion that postscript inherently is incapable of expressing accurate circles just because the language don't have built in primitives for them. :)
Also, I'd wager that you could get something closer to a circle with a naive bezier implementation than with a naive raster implementation, as long as you were willing to spend as much resources on storing curve nodes as you would on raster data. I mean, it's not like a rastered circle would make a good wheel either considering that technically every line on it is orthogonal.
I was under the impression that the postscript in a pdf isn't a programming language. It is pre-executed so that only drawing primitives remain. But I could be wrong.
Nowadays PDF has JavaScript so sky's the limit.
I recommend anyone who finds this topic interesting watch the video The Continuity of Splines. It's a detailed discussion of how you derive Bèzier and higher-order curves to serve your purposes.
https://www.youtube.com/watch?v=jvPPXbo87ds
https://www.youtube.com/watch?v=jvPPXbo87ds
Sorry for not just quoting the bit about the straight line not existing in nature, but I could not bring myself to reduce it all to just that.
https://www.sfu.ca/~andrewf/MOULDINESS_MANIFESTO.htm
In 1952 I spoke of the civilization of make-believe, the one we must shake off, myself, the the first of all! I spoke of columns of gray men on the march toward sterility and self-destruction.
The same year I used the term "transautomation" to show the way beyond the rationalism of technocrats toward a new creation in harmony with the laws of nature.
In 1953 I realized that the straight line leads to the downfall of mankind.
But the straight line has become an absolute tyranny.
The straight line is something cowardly drawn with a rule, without thought or feeling; it is a line which does not exist in nature.
And that the line is the rotten foundation of our doomed civilization.
Even if there are certain places where it is recognized that this line is rapidly leading to perdition, its course continues to be plotted.
The straight line is the only sterile line, the only line which does not suit man as the image of God.
The straight line is the forbidden fruit.
The straight line is the curse of our civilization.
Any design undertaken with the straight line will be stillborn. Today we are witnessing the triumph of rationalist knowhow and yet, at the same time, we find ourselves confronted with emptiness. An aesthetic void, desert of uniformity, criminal sterility, loss of creative power.
Even creativity is prefabricated.
We have become impotent. We are no longer able to create. That is our real illiteracy.
- Friedensreich Hundertwasser, "Mouldiness Manifesto: Against rationalism in architecture"https://www.sfu.ca/~andrewf/MOULDINESS_MANIFESTO.htm
>Furthermore, the human vision system is a bit weird and perfect circles look vertically elongated. You have to make them non-circular for people to consider them properly circular.
Just like how cows don’t look like cows on film![0]
[0] https://www.youtube.com/watch?v=KbkNul4wQH0
Just like how cows don’t look like cows on film![0]
[0] https://www.youtube.com/watch?v=KbkNul4wQH0
>>one of the cases PDF is being considered (and, based on Internet rumors, is already being used) is as an interchange format for CAD drawings? Now it suddenly starts mattering. If you have any component where getting a really accurate circle shape is vital (like pistons and their holes), suddenly all your components are slightly misshaped. Which would not be fun.
Holy forking shirtballs - NO!
The article rightly make a nice concise case against it.
I'd add from my experience: perhaps PDF people think this would be a cool way to make more money, but only because they have not done any CAD/CAM/CNC work. Since I do CAD/CAM/CNC as a regular part of my work, and have spent time with PDF back to it's early days, that is a hard NOPE.
But definitely a good nominee for the Bad Ideas Hall Of Fame, at least honorable mention.
sheesh.
Holy forking shirtballs - NO!
The article rightly make a nice concise case against it.
I'd add from my experience: perhaps PDF people think this would be a cool way to make more money, but only because they have not done any CAD/CAM/CNC work. Since I do CAD/CAM/CNC as a regular part of my work, and have spent time with PDF back to it's early days, that is a hard NOPE.
But definitely a good nominee for the Bad Ideas Hall Of Fame, at least honorable mention.
sheesh.
That's pretty interesting. I'll now be doubting every circle I walk by, questioning if it's even real or just some approximation.
Perfect shapes do not exist on a physical level, so they're all approximations
https://factmyth.com/factoids/there-are-no-straight-lines-or...
https://factmyth.com/factoids/there-are-no-straight-lines-or...
Circles also don't exist in the core geospatial data library GEOS. You have to approximate them with a polygon that has a lot of vertices.
The fact that postscript(and by implication pdf) encodes circles via bezier curves is an implementation detail, "arc" is a primitive of the language, there is no reason your PS to g-code interpreter would not use circles for arcs.
On that note, circles are rare on machine tools as well, if it is not a lathe(or rotary table) it will have to approximate a circle via a set of linear movements. Nothing wrong with this, modern machine tools can generate very good circles, often better than the rotary table, due to the additional error introduced by having another axis.
On that note, circles are rare on machine tools as well, if it is not a lathe(or rotary table) it will have to approximate a circle via a set of linear movements. Nothing wrong with this, modern machine tools can generate very good circles, often better than the rotary table, due to the additional error introduced by having another axis.
Not really related to the article but this reminded me of a beautiful quote I’ve had in my notes for many years:
"To travel a circle is to journey over the same ground time and time again. To travel a circle wisely is to journey over the same ground as it is for the first time. In this way, the ordinary becomes extraordinary, and the circle, a path to where you wish to be. And when you notice at last that the path has circled back into itself, you realize that where you wish to be is where you have already been ... and always were."
"To travel a circle is to journey over the same ground time and time again. To travel a circle wisely is to journey over the same ground as it is for the first time. In this way, the ordinary becomes extraordinary, and the circle, a path to where you wish to be. And when you notice at last that the path has circled back into itself, you realize that where you wish to be is where you have already been ... and always were."
Doesn't PS have "arc"?
I was curious, so I looked up arc in the PostScript Language Reference [1]. It contains the following (p. 530):
> The arc is represented internally by one or more cubic Bézier curves (see curveto) approximating the required shape. This is done with sufficient accuracy to produce a faithful rendition of the required arc. However, a program that reads the constructed path using pathforall will encounter curveto segments where arcs were specified originally.
[1] https://www.adobe.com/jp/print/postscript/pdfs/PLRM.pdf
> The arc is represented internally by one or more cubic Bézier curves (see curveto) approximating the required shape. This is done with sufficient accuracy to produce a faithful rendition of the required arc. However, a program that reads the constructed path using pathforall will encounter curveto segments where arcs were specified originally.
[1] https://www.adobe.com/jp/print/postscript/pdfs/PLRM.pdf
> The arc is represented internally by one or more cubic Bézier curves…
But that's a rendering implementation detail, no? Isn't the precision and accuracy of any digital or physical manifestation of a circle limited by implementation details and physics?
But that's a rendering implementation detail, no? Isn't the precision and accuracy of any digital or physical manifestation of a circle limited by implementation details and physics?
I was expecting this to be another "They have played us for absolute fools" meme.
This surprisingly less philosophical than I was expecting. There is no such thing as a perfect circle, it's a platonic ideal and lives in the Nous.
That we can conceive of mathematical ideals like perfect circles that are never actually realized or encountered in the concrete, physical world (even if it is the case that they are possible in principle, in practice we arguably never encounter such things) suggests something very interesting about the nature of the human intellect.
And, in fact, even if they did exist physically, the very fact that the concept or predicate of Circularity exists in the intellect (and this concept must be Circularity as such or else we could not speak of circular things) and applies to many things despite their diversity, also suggests something about the intellect, namely, that it is not physical, as the physical is always concrete, instantiated, singular, this-and-not-that, not ideal.
And, in fact, even if they did exist physically, the very fact that the concept or predicate of Circularity exists in the intellect (and this concept must be Circularity as such or else we could not speak of circular things) and applies to many things despite their diversity, also suggests something about the intellect, namely, that it is not physical, as the physical is always concrete, instantiated, singular, this-and-not-that, not ideal.
Depends on your definition of existence, i suppose, which greek ontology is notoriously bad at tackling.
Greek, yes (owning to their paganism, which had trouble dealing with existence; it is not possible to conceptualize existence), but we see very deep insights in the medieval period, most notably in Thomas Aquinas. In the 20th century, we saw a particular brand of Thomism called existential Thomism that emphasized and expounded on Thomas' understanding of existence to help better appreciate it.
But I am not certain that is your criticism, or that this applies here? Platonism posits a third realm of ideas, one which Aristotle denies and attacks (and which Plato acknowledged), instead locating universals in things and in the intellect that grasps them. However, you can restore a kind of realm of ideas by interpreting it as (the mind of) God. So, universals exist in all three cases, though the manner in which they exist varies (e.g., in things as concrete instantiations, vs. in the human intellect as concepts abstracted from the concrete).
But I am not certain that is your criticism, or that this applies here? Platonism posits a third realm of ideas, one which Aristotle denies and attacks (and which Plato acknowledged), instead locating universals in things and in the intellect that grasps them. However, you can restore a kind of realm of ideas by interpreting it as (the mind of) God. So, universals exist in all three cases, though the manner in which they exist varies (e.g., in things as concrete instantiations, vs. in the human intellect as concepts abstracted from the concrete).
I think the point of Plato's endless yammering wasn't that they don't exist, but that you can't prove they exist and no one seems to have found one.
I would suggest more respect for Plato, frankly.
But I don't think that is right. He argued that matter existed in a relation of participation in the forms, that making such things like shadows or approximations of ideas. Aristotle deployed the third man argument to attack this notion. Plato conceded his view was problematic.
But I don't think that is right. He argued that matter existed in a relation of participation in the forms, that making such things like shadows or approximations of ideas. Aristotle deployed the third man argument to attack this notion. Plato conceded his view was problematic.
I thought his point was that the forms are memories of the divine because the material world does not provide such forms. You leave the cave when you stop being dominated by your senses and use your reason to apprehend universals.
Especially if space is quantized
> There is no such thing as a perfect circle
A spinning movement has to be a perfect circle, no?
A spinning movement has to be a perfect circle, no?
I have a copy of the Postscript language reference manual from 1985, and it has an `arcto` operator for drawing proper circles. You can see it in the PLRM 3rd ed. on page 191 https://www.adobe.com/jp/print/postscript/pdfs/PLRM.pdf
[deleted]
Correct me if I'm wrong but PDF (and SVG for that matter) have a circle/arc primitives that can be translated G02/G03 commands when fed to a laser cutter/plotter/CNC?
fact: circles are actually squares that have successfully deceived you. You have been bested by a shape.
That's a well known conspiracy theory that has been proven wrong long ago. You can't square the circle.
Don't be so irrational.
Don't be so irrational.
But squares are really just diamonds which have been squished a bit.
A topologist once told me "square" and "circle" are synonyms.
They're all just superellipses.
circles exist with NURBs, iirc. Now at some point you have to turn on individual pixels, so ....
but until then, figuring out micron level tolerances over meters can be done with perfect circles using Non Uniform Rational B(Basis)-Splines.
Not if you use a vector display!
I could be completely incorrect here; but I don't know of a vector display that can do anything but arbitrary lines. Circles are usually rendered with sublinears to the command resolution (and trace runs) you're willing to sacrifice.
An oscillating display can do curves, but only in a wave/ linear sequential fashion.
An oscillating display can do curves, but only in a wave/ linear sequential fashion.
You're probably right, but I don't think there's any fundamental obstacle to controlling a CRT electron beam to trace arbitrary curves – there's vertical control and horizontal control and you can arbitrarily modulate them over time, can't you?
I didn't say it wasn't theoretically possible, I said there are no (that I know of) concrete implementations of this idea.
Yes, this is theoretically possible. I imagine it wasn't done due to processing limitations during the time vector displays were common; but my limited knowledge in the realm doesn't give me certainty.
Yes, this is theoretically possible. I imagine it wasn't done due to processing limitations during the time vector displays were common; but my limited knowledge in the realm doesn't give me certainty.
Ironically, Bézier curves were invented for use in CAD. [0]
[0] https://www.bricsys.com/en-us/blog/the-bezier-curve-how-car-...
[0] https://www.bricsys.com/en-us/blog/the-bezier-curve-how-car-...
On a tangential note, TIL there's a field of mathematics called "digital topological groups": https://doi.org/10.1016/j.topol.2023.108644
I very like this kind of blog posts: simple, clear, to the point. I don't need to summarize it myself, I dont need to wonder if the preamble, history, anecdata, midjourney pics and diagrams are really necessary to understand the main topic.
Please note that most pistons and cylinder bores are also not circles ;-)
...and haven't been for at least 76 years: https://news.ycombinator.com/item?id=15397926
(Original page seems to have moved; it is now here: https://www.web.imperialclub.info/Repair/Lit/Master/003/inde... )
(Original page seems to have moved; it is now here: https://www.web.imperialclub.info/Repair/Lit/Master/003/inde... )
Very aggressive claim for solely talking about bezier representation.
I always figured one couldn’t verify a circle if they saw one because there is no way to compare anything to pi exactly.
All we have is approximations right?
All we have is approximations right?
Not really buying this. There are the other comments about how this is wrong, but also -- there's no side-by-side comparison!
That laser cutter might take PDF files as input, but it certainly isn't the case with all laser cutters.
I doubt that laser takes PDF natively, but probably converts from PDF using a custom print driver on the controlling PC. It is extremely likely this driver can also digest other formats.
Is this true for Adobe Illustrator too (which has arc and ellipse tools)? Even if saved to .ai format?
Technically, you can procedurally rasterize a circle using a bitmap brush image from within Postscript.
[deleted]
If your laser cutter only works with PDF files, switch to a setup that works with Lightburn.
All the more reason to use SVGs! SVG has <circle> and <ellipse> elements.
For 3d printing.
Lathes do circles all the time. But it would be difficult to rotate either the head or the bed around an arbitrary axis in order to print a proper circle.
Lathes do circles all the time. But it would be difficult to rotate either the head or the bed around an arbitrary axis in order to print a proper circle.
The article has nothing to do with 3d printing.
Do you think there's a fundamental difference between how CNC, 3d printing, and laser cutting equipment behaves?
Yes, several.
Okay, well, that was informative. And explains why my point doesn't hold because I said a wrong word that has little to do with the point.
Thanks for your efforts.
Thanks for your efforts.
I don't know what you were trying to imply and I have no dog in this fight. But there are definitely fundamental differences between additive vs subtractive technologies, 2-axis vs 3-axis or multi-axis machining, and more niche machine-controlled manufacturing technologies, as well as very real differences behind the driving algorithms of most 3d printers/CNC machines vs most commercial laser cutters. (3d printers and other CNC tools have a pedigree stretching back to the original g-code developed in the 50s whereas laser cutters/engravers descend from more modern laser and inkjet printing technologies developed in the late 70s and 80s.)
CNC and 3d printing typically use G-code, which has dedicated arc commands (G2, G3), and the laser cutter in the article uses PDF, which (apparently) does not, and is the main point of the article.
Of course any physical machine is only making an approximation of a circle (even a lathe doesn't turn perfectly round, there is no such thing), but at least for CNC and 3d printing you can specify a perfect circle. In PDF you can't.
(Yes, it is also true that a typical 3d print comes from an STL file, which can only specify triangles, so STL files also can only specify approximations of circles. But it is still true that most 3d printers run G-code, not PDF.)
Of course any physical machine is only making an approximation of a circle (even a lathe doesn't turn perfectly round, there is no such thing), but at least for CNC and 3d printing you can specify a perfect circle. In PDF you can't.
(Yes, it is also true that a typical 3d print comes from an STL file, which can only specify triangles, so STL files also can only specify approximations of circles. But it is still true that most 3d printers run G-code, not PDF.)
The PDF format was intended to be an explicit per page device independant description of text, line path, and image layout subject to clipping with no "program running" elements to it.
It followed PostScript which was a programming language that was intended to be directly undertood and runnable by Postscript enabled printers.
Postscript could easily do the job here, it had "arc" drawing primitives that described circles (both full and partial).
The 'failure' of Postscript was that as a programming languge a bad .ps job could crash a printer and a 1,500 page .ps document had to be internally fully rendered just to print out page 73 only (potentially code on any 'page' could loop back or forward and generate image elements on any page).
As a not-quite PostScript simplified 'other' the PDF formal languaage spec only allows the drawing of lines and 'curves' and curves are explicitly 3rd order bezier splines.
See: Path Operators (Page 95)
Portable Document Format Reference Manual (230 pages)
https://opensource.adobe.com/dc-acrobat-sdk-docs/pdfstandard...
It followed PostScript which was a programming language that was intended to be directly undertood and runnable by Postscript enabled printers.
Postscript could easily do the job here, it had "arc" drawing primitives that described circles (both full and partial).
The 'failure' of Postscript was that as a programming languge a bad .ps job could crash a printer and a 1,500 page .ps document had to be internally fully rendered just to print out page 73 only (potentially code on any 'page' could loop back or forward and generate image elements on any page).
As a not-quite PostScript simplified 'other' the PDF formal languaage spec only allows the drawing of lines and 'curves' and curves are explicitly 3rd order bezier splines.
See: Path Operators (Page 95)
Portable Document Format Reference Manual (230 pages)
https://opensource.adobe.com/dc-acrobat-sdk-docs/pdfstandard...
SVG would likely be a better target today.
> even a lathe doesn't turn perfectly round, there is no such thing
You don’t have to look for long on YouTube to find videos showing lathe tolerances of ten mil or lower.
And things like bearing races, where imperfections are a common failure mode, are turned for polishing if nothing else.
You don’t have to look for long on YouTube to find videos showing lathe tolerances of ten mil or lower.
And things like bearing races, where imperfections are a common failure mode, are turned for polishing if nothing else.
[deleted]
== does not exist
The human eye is not capable of seeing the difference, and, as the OP mentioned, most people can't accurately eyeball a perfect circle anyway.
This post shows the math behind that, and then shows that it could be made even better with a few different choices.
https://spencermortensen.com/articles/bezier-circle/
P.S. of course, a display intended for the human eye has much looser tolerances than a gear or wheel.