teepee changed the topic of #openscad to: OpenSCAD - The Programmers Solid 3D CAD Modeller | This channel is logged! | Website: http://www.openscad.org/ | FAQ: https://goo.gl/pcT7y3 | Request features / report bugs: https://goo.gl/lj0JRI | Tutorial: https://bit.ly/37P6z0B | Books: https://bit.ly/3xlLcQq | FOSDEM 2020: https://bit.ly/35xZGy6 | Logs: https://bit.ly/32MfbH5
To_Aru_Shiroi_Ne has quit [Ping timeout: 265 seconds]
ToAruShiroiNeko has joined #openscad
teepee has quit [Remote host closed the connection]
teepee has joined #openscad
Lagopus has joined #openscad
yubbo has joined #openscad
<yubbo> I managed to make my machine
<yubbo> I must send it for printing at once!
aiyion has quit [Remote host closed the connection]
califax has quit [Remote host closed the connection]
califax has joined #openscad
aiyion has joined #openscad
ToAruShiroiNeko has quit [Ping timeout: 246 seconds]
ToAruShiroiNeko has joined #openscad
<yubbo> when I export as .stl I assume it's in millimetres, is this assumption correct?
kintel has joined #openscad
<kintel> guso78: Did you figure out your question about tessellatePolygonWithHoles() ?
<InPhase> yubbo: Strictly speaking there is no unit on an stl file. But there is an almost universal global consensus in the 3D printing community that the unit is mm, and most slicers will assume this.
<yubbo> ah I see
Lagopus has quit [Read error: Connection reset by peer]
aiyion has quit [Remote host closed the connection]
aiyion has joined #openscad
yubbo has quit [Ping timeout: 260 seconds]
yubbo has joined #openscad
GNUmoon2 has quit [Ping timeout: 255 seconds]
GNUmoon2 has joined #openscad
J23 has quit [Quit: Client closed]
J23 has joined #openscad
<lf94> Howwould you make this shape
banachtarski has quit [Remote host closed the connection]
<gbruno> [github] kintel pushed 1 modifications (Minor refactor: Use create_offscreen_context_common() for CGL) https://github.com/openscad/openscad/commit/0f5edbec5641fdfef8210e7f8232ac1f1315c462
banachtarski has joined #openscad
<gbruno> [github] kintel opened pull request #4548 (Minor refactor: Use create_offscreen_context_common() for CGL) https://github.com/openscad/openscad/pull/4548
J2399 has joined #openscad
J23 has quit [Ping timeout: 260 seconds]
<JordanBrown[m]> lf94: I would try to stitch together Bezier patches, but I can’t say I’ve done anything like that.
yubbo has quit [Ping timeout: 246 seconds]
ur5us_ has quit [Ping timeout: 252 seconds]
<gbruno> [github] kintel pushed 3 additions 10 modifications (Add support for GLAD) https://github.com/openscad/openscad/commit/d4687a04ebbcecb77e0d9a8d49cfbfe087fcd84e
<gbruno> [github] kintel opened pull request #4549 (Add support for GLAD) https://github.com/openscad/openscad/pull/4549
kintel has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
ur5us_ has joined #openscad
use-value has quit [Remote host closed the connection]
use-value has joined #openscad
ur5us_ has quit [Ping timeout: 250 seconds]
Lagopus has joined #openscad
ur5us_ has joined #openscad
guso78 has joined #openscad
<guso78> kintel, yes question is solved. the name of the function is "tessellatePolygonWithHoles" absolutely correct. it can only tessellate one polygon at once.
<guso78> The face that you specify a polygon list does not mean that it can handle many polygons, but that you can specify its holes ....
<guso78> face -> fact
jonasbits has quit [Remote host closed the connection]
jonasbits has joined #openscad
aiyion has quit [Remote host closed the connection]
aiyion has joined #openscad
castaway has joined #openscad
<teepee> oh, nice! GLAD support \o/
Vasiliy475 has joined #openscad
ur5us_ has quit [Ping timeout: 252 seconds]
Vasiliy475 has quit [Ping timeout: 260 seconds]
L29Ah has quit [Read error: Connection reset by peer]
<guso78> is it created with hull ?
<J2399> no lin and rot extrudes of a curve
<guso78> did you specify the curve as polygon ?
<J2399> you always need a polygon for  the extrusion
<guso78> no there are other 2d primitives ...
<J2399> which are polygons
<guso78> import DXF also yields input for extrusion ...
<guso78> and projection ...
<J2399> you import a polygon.. projection creates a polygon
use-value has quit [Quit: use-value]
<J2399> and if you union circles squares difference them and offset them or creating points is the same ( the points probably require less calculations)
use-value has joined #openscad
<gbruno> [github] gsohler synchronize pull request #4515 (Yet another Path-Extrude) https://github.com/openscad/openscad/pull/4515
<guso78> ok understood.  but my intial question was rather if you used "polygon" primitive or other option  to create your extrusion input:)
use-value has quit [Client Quit]
<J2399> my 2D objects are almost always polygons from points.  But i can do the same with squares and circles .. just not effective and you get jagged edges due to the fragments
<J2399> you also could use a bezier curve as input .. i used fix radii for the edges
omegatron has quit [Remote host closed the connection]
L29Ah has joined #openscad
dTal_ is now known as dTal
teepee_ has joined #openscad
teepee has quit [Ping timeout: 255 seconds]
teepee_ is now known as teepee
use-value has joined #openscad
guso78 has quit [Ping timeout: 260 seconds]
use-value has quit [Remote host closed the connection]
use-value has joined #openscad
guso78 has joined #openscad
Vasiliy475 has joined #openscad
<guso78> real nice algorithm to find out if a point lies inside a polyehdron
Vasiliy475 has quit [Ping timeout: 260 seconds]
<lf94> J2399: genius. yes: revolution of a curve. <3
<lf94> So question: if OpenSCAD cant output STEP files, I'm guessing it cant really be used to send off to inject mold manufacturers?
<lf94> Another question: is it "easy" to create a program that only unions meshes into a manifold?
<lf94> doesnt have to difference
<teepee> freecad can import openscad and export step
<teepee> unfortunately people say it can't be implemented in openscad directly
<Scopeuk> doing a "dumb" step is probably relatively straightforward of just kicking out the mesh, creating some bidirectional component mapping in and out of scad would be awesome but likely incredibly taxing. if someone fancies a phd however
<lf94> I meant a real step file, not just "thing is a mesh in a step file" :p
<lf94> Surely there's a way we can make the b-rep equivalent of all operations b-rep can do
<lf94> in csg
TheAssassin has quit [Ping timeout: 255 seconds]
TheAssassin has joined #openscad
fling has quit [Remote host closed the connection]
fling has joined #openscad
kintel has joined #openscad
<kintel> teepee: You mentioned once some limitation of glew. Do you remember what that was?
<gbruno> [github] kintel converted_to_draft pull request #4549 (Add support for GLAD) https://github.com/openscad/openscad/pull/4549
GNUmoon2 has quit [Ping timeout: 255 seconds]
Guest9059 has joined #openscad
GNUmoon2 has joined #openscad
Guest9059 has quit [Client Quit]
pfla has joined #openscad
<gbruno> [github] kintel edited pull request #4549 (Add support for GLAD) https://github.com/openscad/openscad/pull/4549
<gbruno> [github] kintel edited pull request #4549 (Add support for GLAD) https://github.com/openscad/openscad/pull/4549
<gbruno> [github] kintel edited pull request #4549 (Add support for GLAD) https://github.com/openscad/openscad/pull/4549
<kintel> teepee: Related to this, do you think we can kill off OpenGL < 2 support now?
guso78 has quit [Ping timeout: 260 seconds]
<teepee> lf94: that is real step file, when there's no minkowski or hull
<lf94> I thought a real step file is a set of instructions (usually mimic those of brep tools)
<teepee> yes, and the *.csg file output of openscad is exactly that
teepee_ has joined #openscad
teepee has quit [Ping timeout: 255 seconds]
teepee_ is now known as teepee
<lf94> really? :o how does it know what a fillet is? iirc step files specify stuff like that, and curves, and other edge/surface stuff
<gbruno> [github] kintel pushed 1 modifications (Remove support for OpenGL < 2) https://github.com/openscad/openscad/commit/1f5c79e15351d55aacdb13b6db79b2b711d7d138
<gbruno> [github] kintel opened pull request #4550 (Remove support for OpenGL < 2) https://github.com/openscad/openscad/pull/4550
<gbruno> [github] kintel edited pull request #4549 (Add support for GLAD) https://github.com/openscad/openscad/pull/4549
<InPhase> lf94: "Support step files" has never been a clear thing because they seem to do all sorts of different things. Also good luck finding a complete specification somewhere.
<lf94> ahhh, gotchya
<lf94> is it just bs then about what manufacturers need?
<lf94> is there a legitimate reason to use step or no
<JordanBrown[m]> lf94:InPhase Looking at the Wikipedia page, STEP appears to be a fantastically complex format with many, many options that can include many many sorts of data. Do we know which step "parts" these service providers need?
<lf94> (I honestly dont know)
<lf94> maybe this is some carry-over from past "practices"
<InPhase> lf94: What's best is to talk to a given manufacturer if you are actually at that point.
<JordanBrown[m]> STEP part 52 is "Mesh-based topology"; it might be easy to support that but useless if that's not what the vendors want.
<InPhase> lf94: If it's CNC stuff, they'll need a file they can feed into whatever CNC software they have. If humans are doing it, they need something the humans can process. And this sort of thing repeated in other variations.
<gbruno> [github] kintel edited pull request #4549 (Add support for GLAD) https://github.com/openscad/openscad/pull/4549
<lf94> Gotchya
<JordanBrown[m]> I suspect based on the "boundary representation" page on Wikipedia that they're talking about Part 42 "Geometric and topological representation".
<lf94> so pretty much "human see step, human put in step"
<JordanBrown[m]> There's also Part 238 - "STEP-NC Application interpreted model for computerized numerical controllers", which is a way to encapsulate something similar to gcode.
<JordanBrown[m]> https://en.wikipedia.org/wiki/List_of_STEP_(ISO_10303)_parts gives a list of STEP parts. 237 is "Fluid dynamics".
Lagopus` has joined #openscad
Lagopus has quit [Read error: Connection reset by peer]
<JordanBrown[m]> I'm not at all familiar with this area, but resources like the Wikipedia pages seem to think that CSG and boundary representations are peer concepts. That doesn't seem clear to me at all. "boundary representation" doesn't tell you what tools you have available for representing the boundary. A triangle mesh is *a* boundary representation. I'm sure there are others with built-in support for curves, for instance, but unless you
<JordanBrown[m]> qualify with what mechanisms you're looking for, saying "boundary representation" doesn't say much. The same is true of CSG; you could have a CSG system that had spheres as its only primitive and it would still be CSG. What primitives do you have? Having polyhedra is very general, but you could certainly imagine a CSG system that offered primitives based on Bézier surfaces.
<JordanBrown[m]> Note also that you can convert a CSG representation into a boundary representation, but the converse is not true - at least based on the descriptions that I've found.
To_Aru_Shiroi_Ne has joined #openscad
ToAruShiroiNeko has quit [Ping timeout: 246 seconds]
To_Aru_Shiroi_Ne is now known as ToAruShiroiNeko
KimK has quit [Ping timeout: 248 seconds]
pfla has quit [Quit: Client closed]
Lagopus` has joined #openscad
Lagopus` has quit [Changing host]
<lf94> True
L29Ah has quit [Read error: Connection reset by peer]
Vasiliy475 has joined #openscad
Petar has joined #openscad
<Vasiliy475> Good day. I wonder , if it exists a way to generate separate dxf files in the openscad? I get common dxf file, but local plasma cutting company demands separate files. Here what I got.
<Vasiliy475> I assume , It should be like import() function, but revers. Lets to save in ,for example,  dxf format.
<Vasiliy475> I asked today that question, but didn't find it in log, so , asking again.
guso78 has joined #openscad
<Petar> doing the following:
<Petar> on the following mesh:
<Petar> results in openscad freezing
<Petar> file too large?
<Petar> is anyone else able to run this without issue?
<Petar> if so, could someone be kind enough to share exported SVG with me?
<JordanBrown[m]> You *are* doing a 101 projections of a large file. Are you sure it's frozen? It might just be still working on it. How much RAM do you have? Does one projection work OK? Can you do one at a time, or a few at a time?
<lf94> Petar: I think there's more efficient ways to organize that
<lf94> I don't know the behavior of import exactly, but might be a good idea to assign the import outside the loop
<Petar> yeah, outside loop seems smart
<JordanBrown[m]> There is no way to "assign the import outside the loop".
<Petar> without knowing ins and outs of this language
<Petar> someone suggested putting import in module
<lf94> And I don't know anything about the stl, but maybe make sure the topology is simplified (small amount of faces / triangles)
<JordanBrown[m]> Won't make any difference if the import is in a module.
<Petar> ah, ok
<lf94> Projection does what again? Like a shadow cast and turning it into a 2D shape?
<JordanBrown[m]> wrapping it in a render() might help because of caching, but I have never really looked into how that works.
<JordanBrown[m]> I modified it to do one slice, and it's not done yet and is about to cross 4G.
<JordanBrown[m]> Yes, by default. With cut=true, it takes a slice at Z=0 and turns it into a 2D shape.
<JordanBrown[m]> My one-slice experiment took 5m17s on my antique computer.
<JordanBrown[m]> So (a) it wouldn't be shocking if doing a hundred slices took a ton of RAM, and (b) it wouldn't be shocking if it took several hours.
Petar has quit [Quit: Client closed]
<JordanBrown[m]> Actually, I meant to edit that to say that it wouldn't be at all surprising if it took several hours.
<JordanBrown[m]> I would write a shell script to iterate through the layers, running OpenSCAD non-interactively, and just let it run.
<JordanBrown[m]> That also has the advantage of getting you progress reporting, at least on an every-few-minutes cadence.
<lf94> You did it on an arbitrary stl? How complex was its surface
<JordanBrown[m]> I did it on the STL that Petar supplied.
<lf94> Oh, didnt see
<JordanBrown[m]> It's a ~20MB STL.
<lf94> Yeah, that's big
<lf94> I see it now
<lf94> This could be simplified for sure
<lf94> They need to run it through meshlab
<lf94> Also...I think this would be faster with intersection...
<lf94> From what I understad they're just cutting it up
<JordanBrown[m]> Probably. The question is whether it will take more time to figure out how to simplify it, or to just run the script overnight.
<lf94> It'll take about 10 minutes maybe
<lf94> lol
<lf94> The script is pretty simple
<JordanBrown[m]> I don't know beans about the performance characteristics of projection.
<JordanBrown[m]> Its ~400K facets.
L29Ah has joined #openscad
<JordanBrown[m]> * It's ~400K facets.
qeed__ has joined #openscad
<JordanBrown[m]> Well, I did a quick tweak to intersect it down to a one-unit slice before projecting it, it's not running instantly...
<lf94> Im so damn rusty
<lf94> How do you union in a loop
<JordanBrown[m]> Uh... by using for()?
<lf94> So it's already union'ing right
<lf94> Should this not be unioning a bunch of intersections together
<JordanBrown[m]> yes
qeed_ has quit [Ping timeout: 250 seconds]
<lf94> It's running instantly but not showing anything lol.
<JordanBrown[m]> Yes.
<JordanBrown[m]> But note that you're moving the cube around, but not moving the model around.
<lf94> Yes
<lf94> Shouldnt that still work
<JordanBrown[m]> Most of your intersections are intersecting the STL with a cube that's somewhere else.
<lf94> ayyy it worked a tiny bit
<lf94> when switching them around
<JordanBrown[m]> Limit it down to one slice: set z_min and z_max to 10 (and change the z_min on 9 to -z_min), and then put # in front of the cube and the import.
<lf94> It's practically instant but my computer is struggling moving around
<JordanBrown[m]> Doing anything with that big STL is a chore.
<JordanBrown[m]> But note: intersection doesn't solve Petar's problem if the goal is an SVG. It *might* be part of an optimization before projection() - but my experiment that's still running suggests not.
<lf94> Yea.
<lf94> I unioned the "cubes" and they dont look right either
<JordanBrown[m]> So, either: simplify the STL, or run it non-interactively overnight.
<lf94> eh, I think simplifying + intersections + projection will be fast and still simple enough to do in < 1 hour
<lf94> It's possible they'll need to re-run this also multiple times
<JordanBrown[m]> Do all of your experiments with a simpler figure :-)
<JordanBrown[m]> Only run with the big figure when you've got the process nailed.
<lf94> B)
<JordanBrown[m]> Time for lunch. Later.
Lagopus` is now known as Lagopus
L29Ah has quit [Read error: Connection reset by peer]
<JordanBrown[m]> My intersection variation finished. It took 10m.
<JordanBrown[m]> (That's for preview, not F6 render. This might be a case where F6 is faster.)
Vasiliy475 has quit [Ping timeout: 260 seconds]
<lf94> Nice. Yeah, that's plenty faster.
<gbruno> [github] kintel edited pull request #4549 (Add support for GLAD) https://github.com/openscad/openscad/pull/4549
<gbruno> [github] kintel edited pull request #4549 (Add support for GLAD) https://github.com/openscad/openscad/pull/4549
califax has quit [Remote host closed the connection]
califax has joined #openscad
<teepee> kintel: glew at least as of 2.2.something did not support both GLX and EGL in one binary, e.g. Debian ships GLX and there's no way to do EGL with that
ur5us_ has joined #openscad
<teepee> kintel: GL < 2 support seems broken at least on Windows, it might be even a good idea to go to whatever the first core spec is (3.2 or so?)
<JordanBrown[m]> lf94: um, to be clear, that was 10m for *one* slice.
<JordanBrown[m]> vs 5m for the simple projection implementation.
L29Ah has joined #openscad
L29Ah has quit [Read error: Connection reset by peer]
<lf94> Oh, misunderstood
L29Ah has joined #openscad
kintel has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<lf94> OctoPrint is ... amazing
<lf94> This is like the missing universal interface to printers
Guest46 has joined #openscad
Guest46 has quit [Client Quit]
germ has quit [Ping timeout: 255 seconds]
abff has quit [Ping timeout: 276 seconds]
abff has joined #openscad
Chmarr has joined #openscad
germ has joined #openscad
Chmarr has quit [Client Quit]
<linext> repetier host is also good
GNUmoon2 has quit [Remote host closed the connection]
GNUmoon2 has joined #openscad
TheAssassin has quit [Remote host closed the connection]
TheAssassin has joined #openscad
TheAssassin has quit [Remote host closed the connection]
TheAssassin has joined #openscad
kintel has joined #openscad
<kintel> teepee: OpenGL: Yeah, ideally, OpenGL 3.2 Core would be awesome, but that means first porting away from immediate mode. Getting rid of OpenGL 1.x is a baby step, but next would be getting rid of immediate mode OpenGL 2, then the step to 3.2 Core (or GLES2) would be small.
<kintel> PS! The challenge with going directly to OpenGL 3+ is that Apple (of course it's Apple) doesn't support compatibility profiles, but pretty everyone else does.
<kintel> glew: Looking at glew/glad, challenge there is that OpenCSG needs glew and since we use it as a library, it needs its own instance of whatever we use, meaning it would need to be bundled with glad and we have to do some context initialization. ..unless we bundle OpenCSG and link it into OpenSCAD
kintel has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
castaway has quit [Ping timeout: 268 seconds]
teepee_ has joined #openscad
teepee has quit [Ping timeout: 255 seconds]
teepee_ is now known as teepee
GNUmoon has joined #openscad
GNUmoon2 has quit [Ping timeout: 255 seconds]