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
Jack21 has quit [Ping timeout: 256 seconds]
LordOfBikes has quit [Ping timeout: 252 seconds]
LordOfBikes has joined #openscad
ur5us has joined #openscad
whileone[m] has joined #openscad
ferdna has joined #openscad
<InPhase> teepee: "cannot install" seems a pretty critical bug to leave hanging for a while. :)
ferdna has quit [Quit: Leaving]
arebil has joined #openscad
arebil has quit [Quit: My keyboard has gone to sleep. ZZZzzz…]
Taneb has quit [Quit: I seem to have stopped.]
Taneb has joined #openscad
<gbruno> [github] thehans opened issue #3935 ("nef3_broken" test case broken with latest CGAL 5.3). https://github.com/openscad/openscad/issues/3935
<peepsalot> imagine a test with "broken" in the name being broken :-P
ur5us has quit [Ping timeout: 245 seconds]
arebil has joined #openscad
peeps[zen] has joined #openscad
peepsalot has quit [Ping timeout: 265 seconds]
lastrodamo has joined #openscad
peeps[zen] has quit [*.net *.split]
snaked has quit [*.net *.split]
Xeha has quit [*.net *.split]
Scopeuk has quit [*.net *.split]
castawayc has quit [*.net *.split]
TheCoffeMaker has quit [*.net *.split]
Azelphur has quit [*.net *.split]
little_blossom has quit [*.net *.split]
peeps[zen] has joined #openscad
little_blossom has joined #openscad
Scopeuk has joined #openscad
snaked has joined #openscad
castawayc has joined #openscad
Xeha has joined #openscad
Azelphur has joined #openscad
TheCoffeMaker has joined #openscad
ur5us has joined #openscad
peepsalot has joined #openscad
peeps[zen] has quit [Ping timeout: 252 seconds]
castawayc has quit [Remote host closed the connection]
castawayc has joined #openscad
mhroncok has joined #openscad
ur5us has quit [Ping timeout: 245 seconds]
aiyion has quit [Remote host closed the connection]
aiyion has joined #openscad
aiyion has quit [Remote host closed the connection]
aiyion has joined #openscad
arebil has quit [Quit: My keyboard has gone to sleep. ZZZzzz…]
Guest8647 has joined #openscad
Guest8647 has left #openscad [#openscad]
hisacro has quit [Ping timeout: 265 seconds]
nelson_ has quit [Quit: Leaving]
arebil has joined #openscad
gunnbr has joined #openscad
hisacro has joined #openscad
peeps[zen] has joined #openscad
peepsalot has quit [Ping timeout: 252 seconds]
peepsalot has joined #openscad
peeps[zen] has quit [Ping timeout: 252 seconds]
arebil has quit [Quit: My keyboard has gone to sleep. ZZZzzz…]
<peepsalot> umm, so on CGAL 5.3, Nef is 4-5x faster with CGAL::Epeck kernel, vs our current choice of Cartesian<Gmpq>
<peepsalot> but it also uses more than double the memory
<teepee> nice and ouch :)
<teepee> I'm not sure if Epeck was the one which caused the issues when someone tried to use it
ur5us has joined #openscad
<peepsalot> the thing i don't get is that with the variations of kernels I've tried, it never changes the CGAL cache size, but overall memory usage is noticeably different
<InPhase> Personally I'd love twice as fast for twice the memory, but that will clash with a lot of systems out there.
<InPhase> s/twice as fast/4 times as fast/
<peepsalot> i'm thinking that cgal cache size is not being calculated accurately, like its not accounting for allocated pointers or something?
<peepsalot> also amazed that CGAL could be more memory hungry
<peepsalot> InPhase: yeah and a system with slower ram might not even get significant speedup :/
<InPhase> It sounds like Epeck uses doubles most of the time, then redoes all the calculations exactly when it needs exact values. The notes say it is therefore sometimes slower.
<InPhase> Maybe that redoing is what results in twice the memory?
<peepsalot> i guess so
<peepsalot> class Epeck : public Type_equality_wrapper<Lazy_kernel_base< Simple_cartesian<Epeck_ft>, Simple_cartesian<Interval_nt_advanced>, Cartesian_converter< Simple_cartesian<Epeck_ft>, Simple_cartesian<Interval_nt_advanced> >, Epeck>, Epeck > {};
<peepsalot> interval is 2x doubles also
<InPhase> It would be nice if we knew where those exact values were actually needed. It must be in a sufficiently limited number of cases that you observed a massive speed-up. But if you saw some things with double the memory, I bet that means some individualized designs would be slower.
<peepsalot> i've been wondering if Nef could handle an inexact kernel, as long as we triangulate all faces before converting to Nef
Non-ICE has quit [Ping timeout: 265 seconds]
<peepsalot> because from what i've read, Nef depends heavily on faces being exactly planar (since eg a convex polyhedron is just an intersection of half-spaces, defined by planes)
<peepsalot> so if all our nef faces are triangles, maybe it wouldn't be able to get tripped up
<peepsalot> i was able to try a build with Epick kernel (inexact constructions) and it failed 189 tests
<teepee> I thought that CSG needs an exact construction kernel? did that change?
<teepee> but then I've never looked too deep into CGAL so that might be just me misremembering things
<peepsalot> well it can compile with inexact, but it doesn't particularly "work"
<gbruno> [github] t-paul pushed 1 modifications (Merge pull request #3936 from thehans/issue3935
<gbruno> [github] t-paul closed issue #3935 ("nef3_broken" test case broken with latest CGAL 5.3). https://github.com/openscad/openscad/issues/3935
Jack21 has joined #openscad
<teepee> hmm, interesting, I don't remember if it was supposed to fail at compiliation due to some kernel traits or if that was the same effect of just breaking the calculations
<Jack21> is there something like an empty array element? so if i have an array with 3 variables but one is empty i want that len(array) is only 2
<InPhase> len is always the true length. But you can make a custom length function that does not count undef elements.
<InPhase> I'd suggest deflen as a name. :)
<Jack21> is there a better way if i want a list of text in the customizer (as it only shows arrays with numbers)
<InPhase> Question unclear.
<teepee> you can create dropdowns with text entries if that's what you mean
<teepee> you can't edit arrays containing text as value
<Jack21> you could in older versions, so if i want an object with custom names on it i can not use a dropdown - so i could only make text1-text6 variables to be filled - but then i need to count them to get them arranged
<Jack21> so as inphase said i need a recursiv function to count all but empty fields in that array
<InPhase> Jack21: https://bpa.st/QUQA
<teepee> neat!
<teepee> legacy style :)
ur5us has quit [Ping timeout: 252 seconds]
<Jack21> was there a reason why text arrays are not editable within the customizer?
<InPhase> I recall a discussion where it was found to be complicated to implement and not a priority need.
<InPhase> The correct interface is also not obvious because text sizes could vary substantially.
<InPhase> Should it be suitable for editing a list of words, a list of sentences, or a list of paragraphs?
<Jack21> how many letters can be stored in a text string?
<InPhase> I don't think a limit exists.
<Jack21> for the customizer a list of text would mean to have a "+" button to add entries (or have the ["",""] written)
<InPhase> Well, 2147483647 letters probably. But that's hard to hit.
<InPhase> Right, and that's the other thing unclear. Should it be fixed length or vary in length? There are just too many open questions of how to make it fit every usage pattern.
<Jack21> if size is not he issue how does a list of words differ from a list of sentences (as a sentence is just a word with spaces as characters)
<InPhase> It differs in how the usable customizer interface would look.
<teepee> in totally unrelated news, oops, I'm not sure that's how one is supposed to park a car... https://twitter.com/saechsischeDE/status/1447525319859126272
<teepee> it's also a feature not supported by the thingiverse customizer, maybe it can come back in a better defined way once we have some native customizing setup
<InPhase> teepee: Yes, I hate when someone is only half in the parking space.
<Jack21> we really have a problem with older drivers in germany
<InPhase> Jack21: I don't think it's something impossible to add to the customizer, but it requires someone to do some deep thought on how this should look, considering a range of use cases that would be supported, and then drawing up a design that's not too complicated nor restrictive.
<InPhase> Jack21: There's always a temptation of "my use case needs this", but one needs to check that with all the other use cases for the same structure in order to not paint things into a corner.
<InPhase> Jack21: It's different if you can support say 80% of useful use cases, but I don't have clarity on what that would be for this.
<Jack21> at the moment you can edit text variables with a letter or a paragraph .. so it is just treating an array as multiple texts - or i take the textstring and devide it into single strings when hitting a ","
<Jack21> s/single/multiple
<InPhase> Jack21: Well if you're confident you can draw up a compelling proposal, that would be a good use case for a new github issue. A discussion might follow.
<Jack21> for me it is easier to work around .. but i wonder if others hit that issue when the option of text arrays were taken away - but if it issn't supportet in the thingyverse customizer it probably doesn't matter that much
<Jack21> i mean i only use that customizer thing to make my designs more appealing or easy to use for others
<Jack21> hmm seems i can't write an array with parts of a string.
ur5us has joined #openscad
mhroncok has quit [Quit: Leaving.]
<InPhase> I'm curious how much the embedded customizer actually gets used.
<InPhase> I setup a lot of designs for the thingiverse customizer. But once it's downloaded and in-program, I feel like the source is the primary interface. I only ever turn on the customizer briefly when discussing a bug with it. :)
<InPhase> But, that's coming from me being an implementer type personality. I'm curious what the intersection is for people who install and use the program, but remain more comfortable with using the customizer for other people's designs.
<InPhase> My personally preferred modality is to just copy the source code to a new file, and edit that saved under a filename that indicates the changes I made.
<Jack21> yes agree same for me, i have used the customizer for quick changing false/true variables (as using 0 and 1 isn't working anymore) but also as this is now locking all other variables there is no gain in that
<Jack21> usage statistics is really helpful for development - surveys
snakedGT has joined #openscad
snaked has quit [Ping timeout: 252 seconds]
<Jack21> would be easier if there is the opposite of "str()" i have a function that chopping a string at "," into an array but you need to manually write it for all possible length
<Jack21> and you can't use a loop for "str(var[i])" to create the data (at least i don't know how)
<peepsalot> being a purely functional language where variables are immutable; recursion is generally much more powerful than loops
<teepee> as for using customizer, there's no statistics, but I've seen it open/used in quite a number of twitter posts... like https://twitter.com/NekoplanetD/status/1447176744180531200
<Jack21> teepee: isn't that window automatically not hidden anymore - so maybe people just don't closed it?
<Jack21> peepsalot: how does that work - older versions didn't take it as functions didn't have a name and the newer paste the hole text of the function when i echo (split)
<teepee> if you look at the picture it has detailed descriptions for all the variables, so that's specifically added to each top level assignment
<Jack21> ok seem i need to name the function - but funny that echo didn't give an error
<peepsalot> Jack21: huh? as long as you are using a version which supports function literals, then just call split like any other function. echo(split("hello,this,is,a,test", ","));
<Jack21> peepsalot: ah now it is (wasn't familiar with that syntax) thanx!
<peepsalot> i wonder if a Lazy CGAL kernel like Epeck could be made to use variants, so that it doesn't keep both forms in memory, and just converts the representation on demand
lastrodamo has quit [Quit: Leaving]
KimK has quit [Ping timeout: 245 seconds]
snakedGT has quit [Ping timeout: 245 seconds]
ferdna has joined #openscad
<InPhase> float() should really be a built-in.
<InPhase> Now that we can do neat things like split with elegant interfaces, the lack of float() seems conspicuous.
<InPhase> One can of course implement it, but that's excessive.
<peepsalot> InPhase: as in string to float?
<InPhase> Yes.
<InPhase> String to int is trivial. String to float is doable but a bit of an unnecessary mess within OpenSCAD.
<InPhase> Handling all the +- extras and variations of decimal point or no decimal point plus e or E or not, would just be a mess of complication. :)
snakedGT has joined #openscad
<peepsalot> yeah
<dTal> what kind of horrid programming pattern in OpenSCAD requires string->float?
<InPhase> Well a csv parser obviously. :)
<InPhase> Not to worry. I declared it too hard to implement in OpenSCAD, thus nerd sniping myself. I'm almost finished.