I know that I can use "projection(cut = true)" to slice through an object,
but is there a way to then just get the perimeter line of that object?
I have designed a quick-release jig and plate for my laser cutter, but I
would also like to add an engraved ruler. The original OpenSCAD is
embedding the engraving into the object, and I am trying to get them both
to output to a colored SVG file.
As a note, "projection(cut = true)" does not work in pythonscad.
EBo --
Hi John,
thats not completly true.
Look at this code:
from openscad import *
a=cube(10).projection(cut="cut")
print(a.mesh())
a.show()
Yes, the parameter cut="cut" is weird, and its wrong, but I will fix that
In any case, its possible to retrieve the points of the cut, then its easy
to calculate the perimeter
On Mon, May 12, 2025 at 10:09 PM John David via Discuss <
discuss@lists.openscad.org> wrote:
I know that I can use "projection(cut = true)" to slice through an object,
but is there a way to then just get the perimeter line of that object?
I have designed a quick-release jig and plate for my laser cutter, but I
would also like to add an engraved ruler. The original OpenSCAD is
embedding the engraving into the object, and I am trying to get them both
to output to a colored SVG file.
As a note, "projection(cut = true)" does not work in pythonscad.
EBo --
OpenSCAD mailing list
To unsubscribe send an email to discuss-leave@lists.openscad.org
What 's "the perimeter line"? You can difference away an offset of your
original shape to produce a shape which is the perimeter. If you want to
extract the actual points on the perimeter then no, that's impossible. If
that's what you want you can do it in BOSL2 with projection() if you have
your object as a VNF.
On Mon, May 12, 2025 at 4:09 PM John David via Discuss <
discuss@lists.openscad.org> wrote:
I know that I can use "projection(cut = true)" to slice through an object,
but is there a way to then just get the perimeter line of that object?
I have designed a quick-release jig and plate for my laser cutter, but I
would also like to add an engraved ruler. The original OpenSCAD is
embedding the engraving into the object, and I am trying to get them both
to output to a colored SVG file.
As a note, "projection(cut = true)" does not work in pythonscad.
EBo --
OpenSCAD mailing list
To unsubscribe send an email to discuss-leave@lists.openscad.org
On 12.05.25 22:08, John David via Discuss wrote:
I know that I can use "projection(cut = true)" to slice through an
object, but is there a way to then just get the perimeter line of that
object?
Do you mean that?
fill() projection(cut = true) ...
ciao,
Torsten.
both projection(cut="cut") and <obj>.mesh() is working.
On Mon, May 12, 2025 at 4:23 PM Torsten Paul via Discuss <
discuss@lists.openscad.org> wrote:
On 12.05.25 22:08, John David via Discuss wrote:
I know that I can use "projection(cut = true)" to slice through an
object, but is there a way to then just get the perimeter line of that
object?
Do you mean that?
fill() projection(cut = true) ...
ciao,
Torsten.
OpenSCAD mailing list
To unsubscribe send an email to discuss-leave@lists.openscad.org
Adrian Mariano wrote:
You can difference away an offset of your original shape to produce a shape which is the perimeter.
Like this?
https://lists.openscad.org/empathy/thread/6VOTPBG26BHWADP7GNR4I3GRIP3HG7CR
To get the true outline, you need to cover a positive offset with a negative offset rather than the original.
This gives an opaque 2D shape, which is required in some cases. For a pure outline, where you can see through the middle, difference a negative offset from a positive offset:
difference()
{
offset(1)
square(20);
offset(-1)
square(20);
}
Slight cosmetic problem: sharp corners are rounded.
On 20.05.25 21:31, Caddiy via Discuss wrote:
Slight cosmetic problem: sharp corners are rounded.
offset(delta = 10) square(10);
No rounding.
ciao,
Torsten.
Torsten Paul wrote:
On 20.05.25 21:31, Caddiy via Discuss wrote:
Slight cosmetic problem: sharp corners are rounded.
offset(delta = 10) square(10);
No rounding.
ciao,
Torsten.
Hey! That’s great!