kintel has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
qeed has quit [Quit: qeed]
linext has quit [Ping timeout: 255 seconds]
fling has quit [Remote host closed the connection]
fling has joined #openscad
linext has joined #openscad
J24k30 has quit [Quit: Client closed]
J24k30 has joined #openscad
qeed has joined #openscad
fling has quit [Remote host closed the connection]
fling has joined #openscad
guso78k has joined #openscad
<guso78k>
I am just wondering, Does OpenSCAD code already provide an API like function to union a list of parts together while choosing the "Selected" backend engine (manifold, csg, FastCSG etc)
<guso78k>
if not, I feel we should have such one, what would be ideal place/name ?
TheAssassin has quit [Remote host closed the connection]
<Scopeuk>
it also looks like there is an opportunity for access to invalid pointer in the iff statement
<Scopeuk>
the .get at the end used to create the shared pointer is also bypassing lifetime protection if I remember the details of how that get works as well. get would return the raw pointer and lose the "owner" tracking data
<guso78k>
great, thanks Scope! I will check it ASAP!
guso78k has quit [Quit: Client closed]
guso78k has joined #openscad
teepee has quit [Remote host closed the connection]
teepee has joined #openscad
mmu_man has quit [Ping timeout: 272 seconds]
mmu_man has joined #openscad
J24k30 has quit [Quit: Client closed]
J24k30 has joined #openscad
pca006133 has joined #openscad
pca006132 has quit [Ping timeout: 255 seconds]
pca006133 is now known as pca006132
ccox_ has joined #openscad
ccox has quit [Ping timeout: 240 seconds]
TheCoffeMaker has quit [Excess Flood]
TheCoffeMaker has joined #openscad
TheCoffeMaker has quit [Excess Flood]
TheCoffeMaker has joined #openscad
guso78k has quit [Quit: Client closed]
snakedGT has quit [Quit: Leaving]
guso78k has joined #openscad
J24k30 has quit [Quit: Client closed]
J24k30 has joined #openscad
guso78k has quit [Quit: Client closed]
guso78k has joined #openscad
J24k30 has quit [Quit: Client closed]
J24k30 has joined #openscad
<guso78k>
Scopeuk, I was able to solve the error by changing unique_ptr to shared_ptr in the function prototype.
<guso78k>
I am wondering if there is a strong argument, why PolySetBuilder::build returns unique_ptr.
<Scopeuk>
not completely sure, the difference between the two is that a unique pointer has a single owner for life time management where as a share pointer has a collection of owners, I guess that makes unique pointers more performant but that is intuition rather than based on and solid data
<Scopeuk>
I guess it has been designed around the idea that we generate this and work with it but that the data should only ever need to be processed or held in more than one place at a time
<teepee>
any opinions on having "auto-reload and preview" as default = true? I'm not sure that's a good choice
<InPhase>
teepee: The hazard is that it embeds auto preview on load, which can trip people up who have a model with bugs that make preview go into some sort of freeze loop.
<InPhase>
teepee: This is trivial to resolve if you're an external editor user.
<InPhase>
teepee: I of course always turn it on as the first thing I set on a fresh config. :) But I think that hazard remains unless some upgrade made the editor and saving of changes user-responsive in all such scenarios.
<teepee>
yep, so I'm thinking of changing that to default = false
<InPhase>
Wait, do we default to true? I thought we already default to false.
<teepee>
well, that's the point, new config -> it's true by default
<InPhase>
Oh...
<teepee>
indeed, I'm a bit surprised too
<InPhase>
I wonder if that changed at some point...
<InPhase>
I don't reset configs very often. :)
<teepee>
yeah, same, but I've installed a number of raspis lately and included openscad which starts with that very messed up GUI
<teepee>
so I'm fixing that and along the way the slight surprise with the auto-reload-preview
<teepee>
hmm, 2021.01 release on raspi default to "true" too
<teepee>
so if that was changed by accident, it's been a while
<teepee>
ok, lets see if that's still his preference, I can take it out again
<teepee>
for now I've added that to the PR to not forget :)
<InPhase>
Seems rational enough. Although it's probably worth having true if we can actually get ourselves some proper threading or fully independent calculation and rendering processes.
<teepee>
yeah, if cancel works, it's not a problem anymore
<InPhase>
The fact that it has been such a continuous problem for so long under now multiple libraries, is probably a good sign that this should be in a separate process.
<InPhase>
That also puts a bit of a reliability wall up against fatal library bugs.
<InPhase>
Better for preview or render to fail than to sink the ship.
peeps has joined #openscad
peeps[work] has quit [Ping timeout: 260 seconds]
<teepee>
yeah, not surprising webbrowsers do that, much more important there
<Virindi>
has anyone ever had luck getting freecad to import a real life openscad model? everything, EVERYTHING I try that is nontrivial, freecad absolutely dies
<Virindi>
I would really like to be able to convert openscad models to some kind of format CNC people will accept but that seems to be not really possible?
<InPhase>
Virindi: I gave up on trying to use freecad many years ago when it died every time I looked at it funny. :)
<InPhase>
But I think they fixed up most of that wild crashing.
<Virindi>
I know. But my problem now is that, I am very experienced in openscad and I absolutely hate normal cad. BUT I cannot use the cad that I know to generate cnc files, the only technology I am capable of using is 3dp
<teepee>
supposedly it works, but I never tried anything complicated
<Virindi>
I can't get it to work for any of my models, only trivial ones
<teepee>
you can try to do the first step manually: "export->CSG"
<Virindi>
yep, did that.
<teepee>
and what's the result? just nothing?
<Virindi>
oh, I get a csg file which looks...dunno, reasonable I guess? when I try to open it in freecad it gives a million errors
<Virindi>
and it generates a geometry with like 4 cubes
<Virindi>
14:02:16 WARNING: Token 'DOT' defined, but not used
<Virindi>
14:02:16 WARNING: Token 'WORD' defined, but not used
<Virindi>
14:02:16 WARNING: There are 2 unused tokens
<Virindi>
14:02:16 obj [] has no Name & Shape
<Virindi>
14:02:16 obj [] has no Name & Shape
<Virindi>
14:02:16 obj [] has no Name & Shape
<Virindi>
14:02:16 obj [] has no Name & Shape
<Virindi>
etc
<Virindi>
looks like I have 0.21.1 and there is an 0.21.2
<Virindi>
I guess "csg" is kinda like a minified openscad? Seems that should be nice if freecad actually worked
L29Ah has joined #openscad
<InPhase>
Virindi: Does your design use new master branch features? Or is it last release compatible?
<Virindi>
I have no idea. I just develop stuff with nightly now
<InPhase>
Same, primarily. But I wouldn't expect freecad to be in synch with our frantic pace lately.
<InPhase>
So I'd recommend a check with last release first. At the very least if that's the issue you'd get better error messages. ;)
<Virindi>
does the latest release even have VBO preview, haha.
<Virindi>
that feature was the one biggest feature ever
<InPhase>
Uhm, working?
<Virindi>
I guess I just got used to release being super old
<InPhase>
What did the VBO preview change for you in practical terms?
<Virindi>
after that, I didn't need a supercomputer to get more than 1fps. Or wait 10 minutes for render()
muesli has quit [Quit: NO CARRIER]
<Virindi>
though render() is of course better now with manifold
muesli has joined #openscad
<Virindi>
VBO made me very happy because I could finally use openscad on my laptop :)
guso78k has joined #openscad
<InPhase>
I've had previews of designs that were slow, but it's pretty rare, and usually not on designs I'm actually working with. So I guess I never noticed anything tangible from the VBO work.
<InPhase>
But good to know it's valuable for some people. :)
<Virindi>
I also used to run $fn=5 all the time and everything looked horrible and it was hard to see how objects lined up
<Virindi>
I haven't encountered any issues with the new manifold fixes yet and I am running render() on everything and generating a lot of stls :)
<InPhase>
So about 7 years back on the laptop. At least it's not 10!
<Virindi>
I consider it a pretty uber laptop, for me :)
<Virindi>
and hey, my openscad models are older than that now :)
<InPhase>
I am thinking back to my 2017 laptop, and I do remember a lot of lag and waiting. I didn't even conceive of OpenSCAD animation as animation, but as a slow stepwise frame generator.
<Virindi>
I've never used animation
<Virindi>
for me it's just the ability to work on huge projects without the framerate being so bad that it is distracting
<Virindi>
it's the trailing comma in an argument list
<InPhase>
:)
<InPhase>
That'll do it.
<InPhase>
Maybe freecad turned that into something much worse than an early error.
<Virindi>
that would affect csg files?
<InPhase>
https://bpa.st/PR5Q Also, here's a simple animation to try. Use FPS: 30, Steps: 150. The test is whether or not it looks like the airplane is going a reasonable speed.
<teepee>
hmm, my trivial model does not import very well
<InPhase>
Well there are 3 things you can do on that trailing comma: 1) Accept it as valid. 2) Raise an informative error. 3) Fail horrendously without stopping and propagate deformed garbage along to a later stage of processing, and then hurl nonsense all over the output window at this point.
<Virindi>
what I mean is, if I use a trailing comma in my scad file, it somehow propagates to the csg??
<teepee>
and i can't see the error as freecad decided on a funny font making things unreadable :)
<InPhase>
Virindi: In case 3.
<teepee>
heh, CBM font :)
<InPhase>
Virindi: i.e., error handling in code is important, but it gets overlooked sometimes. And for freecode, this scad import is not their main usage flow, so I could imagine things getting ignored like this, and case 3 is my hyperbolic description of a possible outcome of this. :)
<teepee>
ok, linear_extrude import is broken with the latest snapshot of openscad
<Virindi>
we just need the ability to somehow, some way, generate something that the rest of the world considers to be a cad file output (not the 3dp world)
<Virindi>
building models in "real cad" is absolutely infuriating because it is so brittle
<teepee>
well, I tried convincing people that it would be nice to have the "freecad import" as separate or openscad export
<teepee>
making it more general
<teepee>
but people said, it's not possible that openscad can export step
<Virindi>
export step would be the dream for sure
<Virindi>
does step rely on traditional cad stuff like sketch+pad/pocket? like, totally incompatible paradigm
<teepee>
it would have a number of limitations, but if you design for it, it could work reasonable well I think
<teepee>
like no hull or minkowski
<Virindi>
I never use minkowski but I definitely use hull :\
<teepee>
I think freecad has some heuristics for some special cases, but normal BREP CAD does not do hull, specifically it's not in opencascade
<Virindi>
well if I had to work around lack of hull, it would still be better than nothing for sure
<Virindi>
hull is just super handy when you have two things which are parametric and you know they have to be close to each other and you want to connect them, but the exact angles could vary
<guso78k>
teepee can you shortly explain , whats the issue with linear_extrude now ?
<teepee>
it does not generate any height=<value> anymore
<teepee>
only v=<..>
<guso78k>
ahh. so in toString it shall create v and height, right ?
<teepee>
I wonder if it would be the correct way to actually always export the normalized v unless it's [0,0,1] and height as usual
<teepee>
yes, as that toString is used for CSG export
<teepee>
which in turn is used for example in FreeCAD to import OpenSCAD
<guso78k>
yes i know
<guso78k>
ahh, now i get it: its meant "import to freeCAd" not "import to OpenSCAD"
<teepee>
right now that breaks with an error h = float(p[3]['height'])
<guso78k>
teepee, you decide if 'v' shall export as normalized vector only or as full sized vector
<guso78k>
i believe either way will work out
<teepee>
we can check with kintel, but I think it's better if one parameter does only one thing
<guso78k>
ahh, so v shall be normalized and can even omit, when its [0,0,1] ?
<teepee>
I thought the discussion said, that v is always normalized
<teepee>
it would not be a huge deal if it's still written out, but it would look a bit nicer if it's omitted
<guso78k>
if there was not lots of ctests associated, i could even implement an in-place-PR :')
<guso78k>
other "v" PR is green now, curios about the associated discussion :')
<guso78k>
will look into the linextrude issue now
mmu_man has quit [Ping timeout: 268 seconds]
<teepee>
do you have some practical examples for the rotate extrude v?
<teepee>
threads?
<guso78k>
its mainly threads, this is why i have done it. but when playing with it s quite easy to create fancy shapes with it like "tassenhenkel" or post horn logo ...
<guso78k>
I have done it also to provide a counterpart to linear_extrude v"
<teepee>
right, valid point to have it on both
<guso78k>
i have had a hard time to realize, that "segments" is the 0-width separator between the pieces and not the pieces itself .. and Cos(alpha) is not actually used on X - Axis(not Y Axis anymore)
<guso78k>
does not make a difference for 360 degree revolutions, though ...
<guso78k>
.. and I believe, its self-intersection stable ...