Results 105 comments of coryrc

> Yours doesn't look like mine - screenshot from the wrong app? I was on my phone so used the web link https://ochafik.com/openscad from https://openscad.org/downloads.html#snapshots-WASM :-) But here's it from...

Okay, here's the actual "error" volume: ``` module s(s) linear_extrude(h=30, scale=[1/20,20], slices=s) scale([1,0.1]) rotate(45) square(10, center=true); difference() { union() { // low_slices=($t*steps); low_slices=0; difference() { s(low_slices+1); s(40);} difference() { s(40);...

More accurately, it's most inaccurate at 1/2 slice height, or `30/slices/2` in this case. Here we get the cleanest visualization; I recommend fps=4 and steps=10: ``` module s(s) linear_extrude(h=30, scale=[1/20,20],...

So the current algorithm finds the vertex which is displaced the most, uses the magnitude of that vector with the height of the extrusion as two sides of a right...

> It's actually doing the opposite in this case: it's setting the _maximum_ size of a line segment. This is wrong. Well... I guess it's both. It is setting the...

Here is slices=5, 10, 15, and 20: The error (measure the thickest part of the error projection: inner triangle point to base): | slices | fs | error | |---------|-----|---------|...

Always picking the center or adjacent slice: ``` linear_extrude(h=1) projection(cut=true) { low_slices=($t*steps)+1; translate([0,0,low_slices%2==1? -15 : -15+30/low_slices/2]) union() { difference() { s(low_slices); s(40);} difference() { s(40); s(low_slices);} } } ``` |...

My previous posts had a big mistake: I'm looking at the *scaled output* of linear_extrude() to measure its error.

> My previous posts had a big mistake: I'm looking at the _scaled output_ of linear_extrude() to measure its error. Oh wait, the scale is to the square. Duh.