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 or report bugs: https://goo.gl/lj0JRI | Tutorial: https://bit.ly/37P6z0B | Books: https://bit.ly/3xlLcQq | FOSDEM 2020: https://bit.ly/35xZGy6 | Logs: https://libera.irclog.whitequark.org/openscad | don't ask to ask
lastrodamo has quit [Quit: Leaving]
LordOfBikes has quit [Ping timeout: 260 seconds]
snakedGT has joined #openscad
snaked has quit [Ping timeout: 260 seconds]
LordOfBikes has joined #openscad
<gbruno> [github] t-paul pushed 1 additions 6 modifications (Add JSON import.). https://github.com/openscad/openscad/commit/461cf2a5a41a51e153814c1d2aab59e3587ce336
ferdna has quit [Quit: Leaving]
qeed__ has quit [Quit: qeed__]
qeed has joined #openscad
paddymahoney has quit [Ping timeout: 240 seconds]
paddymahoney has joined #openscad
califax- has joined #openscad
califax has quit [Ping timeout: 276 seconds]
califax- is now known as califax
TheCoffeMaker has quit [Ping timeout: 260 seconds]
TheCoffeMaker has joined #openscad
TheCoffeMaker has quit [Ping timeout: 252 seconds]
TheCoffeMaker has joined #openscad
paddymahoney has quit [Ping timeout: 252 seconds]
paddymahoney has joined #openscad
<gbruno> [github] martinbudden opened issue #3892 (Compatibility management). https://github.com/openscad/openscad/issues/3892
lastrodamo has joined #openscad
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.
<gbruno> [github] martinbudden closed issue #3892 (Compatibility management). https://github.com/openscad/openscad/issues/3892
<teepee> what do you mean with common context?
<teepee> as in global variables?
<InPhase> My thoughts are a little complex. I'll type a fake example.
<InPhase> I'm not proposing that "source " syntax, but as a bash-stolen placeholder for my thoughts.
<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> [$fa, $fs, bunny_count] = from(DefaultBonnyObj);
<InPhase> Or some similar magic.
<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]
califax has joined #openscad
arebil has joined #openscad
arebil has quit [Client Quit]
ferdna has joined #openscad
KimK has quit [Ping timeout: 260 seconds]
ur5us has joined #openscad
ur5us has quit [Client Quit]
ur5us has joined #openscad
<dTal> interesting and highly dubious
<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, ...)