LordOfBikes has quit [Remote host closed the connection]
Zauberfisch has quit [Quit: Zauberfisch]
Zauberfisch has joined #openscad
LordOfBikes has joined #openscad
qeed_ has joined #openscad
qeed has quit [Ping timeout: 260 seconds]
pa has quit [Quit: quit.]
pah has joined #openscad
pah has quit [Quit: quit.]
amahl has joined #openscad
pah has joined #openscad
pah has quit [Ping timeout: 260 seconds]
SamantazFox has quit [Ping timeout: 252 seconds]
peeps[zen] has joined #openscad
peepsalot has quit [Ping timeout: 265 seconds]
arebil has joined #openscad
califax has quit [Remote host closed the connection]
califax has joined #openscad
<InPhase>
Well. I suppose I got nophead's issue from "broken" and "impossible" into "ugly" and "I don't like it". I can't satisfy everyone's aesthetics, but I will consider that solved from a technical and engineering perspective.
<InPhase>
I happen to think the recommended solutions are much more aesthetically pleasing. I suppose a lot of that has to do with all the alarm bells I have going off whenever semantic dependencies are neither explicit nor localized.
<teepee>
Yes, that's a massive achievement. Still a bit worrying that the preference is "it looks strange" vs. it's a bad bug in some scenarios but maybe we can have some improvements in the future for that - not helping for the current situation though
<InPhase>
I think in terms of more ways to specify defaults, options we talked about that seem useful to me include the structured binding, object literals, and some variants of module literals that we talked about.
<InPhase>
While in that discussion it occurred to me that there's, awkwardly, no good way to set a common context for functions and modules with a single call.
<teepee>
yeah, Doug even tried to include the default overwrite into the object literals
<InPhase>
Since functions can't call modules, and modules can't call functions, of course. And there's no way to sort of... source a context, like one would with bash.
<teepee>
with the SetDefaults being the unchanged literal
<InPhase>
First I'll note I never liked the file-based nature of that proposal. But to this question, it differs because you can't set the built-ins like $fa and $fs in one call without a system to bring values back a level.
<InPhase>
Although I realize it's a bit convoluted, and peepsalot is probably going to raise an eyebrow about non-computability. :)
<teepee>
:)
<InPhase>
So I don't have a sense for how to do it yet. I'm just noting there's an opportunity for some method which is explicit, local, and also works identically between functions and modules.
<teepee>
being able to compute values would be nice
<teepee>
I guess the current hack is using include<> but that's not really a good solution
<InPhase>
Well the importance of a more flexible approach is it doesn't need to be file level. You can cherry pick defaults deeper in the hierarchy of calls.
<teepee>
I don't think the object literals as proposed are obvious enough, but I'm relatively sure it's not tield to file level
<teepee>
it's more the other way around. there's object literals that are inline and it's possible to get the same variable value by importing as script from a separate file
<InPhase>
Oh. Well, I guess that's okay then.
<InPhase>
Maybe that combined with structured binding would solve this cleanly enough.
<InPhase>
Then you explicitly declare what you're ripping from the object literal.
<teepee>
but what it can't do I think is directly assigning $variables as it's always a new object with a new scope
<InPhase>
Or... I'm actually not sure how to do that with structured binding. But, something binding like that means "rip these variables from the literal."
<teepee>
ah, right, that would be able to extract the values from inside the object and store in the current scope
<InPhase>
That keeps debugging straightforward. You know where to look for the values obtained. Also you don't have collisions between identically named variables, so you don't get a dependency clash.
arebil has quit [Quit: My keyboard has gone to sleep. ZZZzzz…]
SamantazFox has joined #openscad
califax has quit [Remote host closed the connection]
<teepee>
yeah, maybe. there's been earlier efforts but that did not produce anything other than some promising youtube videos
<teepee>
I'm not sure it will be possible to produce results good enough to base additional work on - which is at least in my mind the whole benefit of something like that
snakedGT is now known as snaked
lastrodamo has quit [Quit: Leaving]
amahl has quit [Ping timeout: 260 seconds]
LordOfBikes has quit [Ping timeout: 265 seconds]
<InPhase>
The old polyhedron call generator is pretty easy to write. I could probably make a full-featured one in under an hour. The meat of a useful one is compositional shape recognition.
<InPhase>
I've convinced myself that doing the composition shape recognition satisfactorially requires some decent AI.
LordOfBikes has joined #openscad
<teepee>
it's not just that. to make it useful when the output is OpenSCAD, it needs to be at least reasonably editable, otherwise there's not really any benefit compared to just using import("STL")
<teepee>
I can imagine it a bit easier for GUI CAD where it could provide some base shape that is then manually updated (e.g. fix size of holes, add chamfers, ...)