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
<kintel> If you run OpenSCAD with --debug=boolean_utils - you'll get some decomposition statistics
<kintel> Essentially, minkowski works by decomposing the object into convex subparts, then pairwise hulling the operands and performing a giant union in the end
<kintel> ali1234 Btw., there is an experimental Pull Request for moving some of hull and minkowski to Manifold. It won't help if decomposition is the bottleneck, but could optimize other pieces.
<ali1234> i found a way to apply hull() without completely ruining it and it does help a lot
<nomike> I'm a bit confused now which version comes from where, but I'm certain the openscad-nightly is from flatpak and and I'm almost sure the other version I compiled from source. Anyway, the Flatpak nightly is missing the "Design-> 3D Print (F8)" option.
<nomike> And it doesn't matter what I configure in the preferences.
<teepee> oh, right
<teepee> it can't load the print services, the PR is not merged yet
<nomike> Ah..OK
<teepee> if you run with --share=network it probably works
<teepee> I have a PR that disables the remote print servives by default
<nomike> unrecognised option '--share=network'
<nomike> Or is this a parameter to flatpak?
<kintel> teepee right, that PR is probably good to go, unless it bitrotted
<teepee> yes, flatpak parameter
<teepee> kintel: I think it needs an update
<nomike> Doesn´t work with that parameter either. And also why does it need network access for the 3D print feature?
<teepee> it reads the setup for remote print services
<teepee> hmm, no idea why it does not work then
<teepee> ouch, that looks like a merge issue or something :)
<teepee> I can only find code disabling and hiding the menu entry
<teepee> but nothing to enable
<teepee> oops
stealth_ has quit [Remote host closed the connection]
stealth_ has joined #openscad
<kintel> teepee Any further opinions on https://github.com/openscad/openscad/pull/5750 - it's ready to merge from my POV
<teepee> the stack stuff might be obsolete now, probably from the days it was a macro
<teepee> but removing it should prove it's the case, not the other way around :-)
<ali1234> what code do you use for syntax highlighting on github?
<ali1234> in comments i mean
<ali1234> btw with hulling, minkowski is instant on the full 64k object
<teepee> kintel: no, I have not checked all the test cases but I don't see anything obvious against merging
<InPhase> ali1234: I got your model slightly down in runtime from infinity to 0.2s. https://bpa.st/DS6Q
<ali1234> okay but scaling like that also requires objects to be convex (not to mention at the origin)
<InPhase> ali1234: That's why I selected an appropriate origin point.
<InPhase> Through the center of the ear and nose.
<InPhase> Which works remarkably well if you look at head_shell() alone.
<ali1234> it's not guaranteed though, and even though it looks fine, the shell won't have uniform thickness
<InPhase> Yes, free ponies for everybody is better.
<ali1234> as i said to the person who is building this, the remaining problems are all GUI related
<InPhase> Switch to difference() { head_shell(); translate([-100, -100, -5]) cube(300); } to see the outcome.
<gbruno> [github] kintel closed pull request #5750 (Ranges where start is "after" end (whichever way that is) yield nothing. Fixes #5721.) https://github.com/openscad/openscad/pull/5750
<gbruno> [github] kintel pushed 10 modifications (Ranges where start is "after" end (whichever way that is) yield nothing. Fixes #5721. (#5750) * Ranges where start is "after" end (whichever way that is) yield nothing. Fixes #5721. * Fix tests for "backwards" range semantics changes. Review comment restoring comment.) https://github.com/openscad/openscad/commit/4b4d39e71d379180110dcf5454af9468935eea0f
<gbruno> [github] kintel closed issue #5721 (DEPRECATED: Using ranges of the form [begin:end] with begin value greater than the end value is deprecated...) https://github.com/openscad/openscad/issues/5721
<ali1234> the idea here is that the helmet has to perfectly conform to the person's head, because it's for medical use. so i don't like scale() here very much
<ali1234> but the bigger problem is capturing the "face cut" which is going to be different every time
<ali1234> it really need a custom GUI
<InPhase> I did not realize that model has a uvula inside. lol. When I switch from difference to intersection on that half-slice cube, the uvula shows up.
<ali1234> yeah, i noticed that before. it has a full inner mouth
<ali1234> in reality, this will be run on 3d scans of the patient
<InPhase> Well, only a bit, floating in there.
<ali1234> so you have all the usual problems like the scan being off centre or tilted etc
<InPhase> Ah, making form-fitting helmets?
<ali1234> yes
<ali1234> the existing implementation of this tool is in blender, and it nearly works. but it's like 2000 lines of code and horrible to use
<ali1234> openscad is of course equally horrible for the people who will be using it
<InPhase> We really just need that long wanted offset3d.
<ali1234> yes
<InPhase> As evidenced from the scale example, everything else would be fast for this model.
<ali1234> indeed
<ali1234> although there is a need to place a hinge on the top
<ali1234> but finding where the top is, is itself non-trivial
<ali1234> so also, introspection pls :)
<dTal> man, how hard can it be
<InPhase> dTal: offset3d? Usually easy. Occasionally pathologically challenging to define.
<ali1234> yeah its one of those things that looks easy but has a staggering amount of (literal) corner cases
<InPhase> I think this model would work with the easy case. You don't even need spherical fill-in, just average-normal-vectored outward expansion would suffice here.
<InPhase> You could probably even just make a python script to do that without too much work, since it's all the simple case.
<ali1234> probably
<gbruno> [github] kintel pushed 1 modifications (Added note about updated range behavior) https://github.com/openscad/openscad/commit/c4ee230dabc22610f507800f1ad6b1ea9aed89e3
<gbruno> [github] kintel opened pull request #5757 (Added note about updated range behavior) https://github.com/openscad/openscad/pull/5757
<ali1234> maybe i could even make an ear-detector to remove them automatically :)
<InPhase> Are you shaving the patients first?
<gbruno> [github] kintel pushed 1 modifications (Added note about updated range behavior (#5757)) https://github.com/openscad/openscad/commit/2c9f43c00749b58cda03031e261f2a8a125db15e
<gbruno> [github] kintel closed pull request #5757 (Added note about updated range behavior) https://github.com/openscad/openscad/pull/5757
<ali1234> InPhase: i asked that :) apparently it's not a problem if they have short hair. just reduce the padding a bit. for long hair they do two scans - hair up and hair down - and then merge them
<InPhase> :)
teepee_ has joined #openscad
mmu_man has quit [Ping timeout: 244 seconds]
teepee has quit [Ping timeout: 264 seconds]
teepee_ is now known as teepee
snaked has joined #openscad
dostoyevsky2 has quit [Ping timeout: 260 seconds]
dostoyevsky2 has joined #openscad
dostoyevsky2 has quit [Quit: leaving]
dostoyevsky2 has joined #openscad
dostoyevsky2 has quit [Client Quit]
dostoyevsky2 has joined #openscad
J25k58 has joined #openscad
J25k22 has quit [Ping timeout: 240 seconds]
Guest10 has joined #openscad
Guest10 has quit [Client Quit]
<gbruno> [github] jordanbrown0 opened issue #5758 (len(range) should return number of elements) https://github.com/openscad/openscad/issues/5758
<gbruno> [github] jordanbrown0 edited issue #5758 (len(range) should return number of elements) https://github.com/openscad/openscad/issues/5758
<gbruno> [github] jordanbrown0 edited issue #5758 (len(range) should return number of elements) https://github.com/openscad/openscad/issues/5758
<pca006132> kintel: yes
<kintel> thx!
<pca006132> ali1234: minkowski of a convex mesh is basically just a hull operation, so it is fast
snakedGT has joined #openscad
snaked has quit [Ping timeout: 268 seconds]
<gbruno> [github] kintel pushed 1 modifications (Merge pull request #152 from jordanbrown0/main Binary arithmetic.) https://github.com/openscad/openscad.github.com/commit/c99eeffd0acd645039ab95f05418b539cb1f82ec
<gbruno> [github] kintel edited issue #5753 (Bitwise operators release ready) https://github.com/openscad/openscad/issues/5753
<gbruno> [github] kintel closed issue #5753 (Bitwise operators release ready) https://github.com/openscad/openscad/issues/5753
kintel has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
J25k51 has joined #openscad
J25k58 has quit [Ping timeout: 240 seconds]
ccox has quit [Ping timeout: 252 seconds]
J25k51 has quit [Quit: Client closed]
J25k51 has joined #openscad
mtm has quit [Ping timeout: 252 seconds]
mtm has joined #openscad
ccox has joined #openscad
J25k51 has quit [Quit: Client closed]
J25k51 has joined #openscad
J25k51 has quit [Quit: Client closed]
J25k51 has joined #openscad
J25k51 has quit [Client Quit]
J25k51 has joined #openscad
stealth_ has quit [Quit: Leaving]
ccox has quit [Ping timeout: 260 seconds]
ccox_ has joined #openscad
J25k51 has quit [Quit: Client closed]
J25k has joined #openscad
othx has quit [Ping timeout: 260 seconds]
othx has joined #openscad
nomike_ has joined #openscad
nomike has quit [Ping timeout: 276 seconds]
hyperair has quit [Ping timeout: 252 seconds]
guso78k has joined #openscad
<guso78k> kintel, you recently mentioned that you aim to have some functions to nicely annotate edges in 3D space openscad. Do you have an idea/strategy  how to realize them in OpenGL ?
L29Ah has left #openscad [#openscad]
mmu_man has joined #openscad
L29Ah has joined #openscad
J25k has quit [Quit: Client closed]
J25k has joined #openscad
guso78k has quit [Quit: Client closed]
<church_> i've got (2d) projection of some side. offset is easy to make chamfer. but what should i do to round fillet instead? minkowski with halfsphere? on minimum thickness linear_extruded projection it shouldn't be too heavy?
L29Ah has left #openscad [#openscad]
snakedGT has quit [Remote host closed the connection]
J25k has quit [Quit: Client closed]
J25k has joined #openscad
GNUmoon has quit [Remote host closed the connection]
GNUmoon has joined #openscad
guso78k has joined #openscad
fling has joined #openscad
gehel has quit [Ping timeout: 276 seconds]
gehel has joined #openscad
drfff has quit [Ping timeout: 245 seconds]
TylerTork has joined #openscad
<TylerTork> Perhaps I'm misunderstanding how this is supposed to work, but could someone try this: %color("pink") cube(40);
<TylerTork> and tell me why the cube is still pink instead of ghost-gray?
califax has quit [Remote host closed the connection]
GNUmoon has quit [Read error: Connection reset by peer]
aiyion4 has quit [Remote host closed the connection]
TheAssassin has quit [Remote host closed the connection]
<church_> from my observations debug symbol # overrides specified color, % takes color formost, and transparent gray if you haven't specified color. from other useful tidbits, possibly this list might be handy to you https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#color and that it's possible to add transparency yourself with color(alpha=1 (or eg.=.1), or color("grey",alpha=.3)
TheAssassin has joined #openscad
califax has joined #openscad
aiyion4 has joined #openscad
GNUmoon has joined #openscad
<church_> also i'd be careful using % where not applicable, as while # prefixed part will still end up in rendered result, % is only shown, but won't be in rendered part
<church_> and among useful debug symbols prefixing with ! also is handy, to single out just that part/code block
TylerTork has quit [Quit: Client closed]
<gbruno> [github] damienmarchal opened pull request #5759 (FIX issue #5749) https://github.com/openscad/openscad/pull/5759
<gbruno> [github] damienmarchal edited pull request #5759 (FIX issue #5749) https://github.com/openscad/openscad/pull/5759
lastrodamo has joined #openscad
L29Ah has joined #openscad
guso78k has quit [Quit: Client closed]
J25k has quit [Quit: Client closed]
J25k has joined #openscad
nomike_ has quit [Quit: Leaving]
drfff has joined #openscad
stealth_ has joined #openscad
L29Ah has quit [Ping timeout: 260 seconds]
L29Ah has joined #openscad
guso78k has joined #openscad
hyperair has joined #openscad
TylerTork has joined #openscad
<TylerTork> Has someone written well about patterns for OpenSCAD coding? I'm using the term from the software development perspective, as techniques for coding in different situations that lead to less complex, better organized code.
dostoyevsky2 has quit [Quit: leaving]
dostoyevsky2 has joined #openscad
<InPhase> TylerTork: Many usage pattern examples are provided via the tutorial, the tips and tricks, the calendars, and so on.
<TylerTork> Calendars?
<InPhase> TylerTork: Along the left side here, 2019 through 2024 Advent Calendar: https://openscad.org/gallery.html
<InPhase> TylerTork: Many are art demonstrations, but mixed within a goal of the calendars has been usage pattern demonstrations.
<TylerTork> Speaking as a longtime software professional, I'd say the examples in the tutorial are... crude. They show how to use the features of the language, but I see no discussion of higher-level organization beyond just, "you can write modules!" I'll look at the advent calendar examples, and I might glean some things there, but an example is just an
<TylerTork> example. As a learning tool, it's handy to have someone analyze the example and discuss different ways it could have been organized, and why it make sense to do it this way rather than that way. Some of the examples I've seen are anti-patterns.
<TylerTork> As an example: what's the best practice for writing code to generate parts that have parts that need to be cut from another object as well as parts that need to be added? I'm not asking for an answer to that question here, but a place where I can find articles on that and similar topics.
<TylerTork> If I write some such articles, can I get some volunteers here to critique them? I'm inventing these techniques myself, and probably people who've been doing it for longer will have some better techniques.
J25k40 has joined #openscad
<stealth_> don't forget to include how to use Python to write OpenScad that will get lots of visitors.
J25k has quit [Ping timeout: 240 seconds]
<TylerTork> stealth_: I don't know how to do that so I'm probably not the best choice to write it
<stealth_> i see, maybe adding some basics will do as well, just to let people know there is that option.
mtm has quit [Ping timeout: 248 seconds]
mtm has joined #openscad
L29Ah has left #openscad [#openscad]
L29Ah has joined #openscad
Guest6 has joined #openscad
Guest6 has quit [Client Quit]
<ali1234> TylerTork: there aren't really any best practices for openscad :(
<ali1234> regular software development practices don't really make sense for it and don't help very much beyond the absolute basics
<InPhase> TylerTork: I'm happy to review and offer feedback on pedogogical content for OpenSCAD, and have spent time thinking about the topic. It is the case that no one has organized the more advanced principles and guidelines in a systematic manner. Effort so far has been focused on resolving an understanding of introductory principles and tips and suggestions for more advanced things.
<InPhase> TylerTork: I'd also suggest that such content should probably aim for a wikibooks approach, so that they can adjust with time and don't become dated.
<InPhase> TylerTork: So basically like the tutorial, but it can have a different topic.
<J25k40> honestly ? »Variable names starting with digits ("2D") will be removed in future releases«
<InPhase> J25k40: Yeah, that should definitely stay on the deprecated list. We can put off purging support, but there are risks to not deprecating it. :) There's a reason other languages don't support such things.
<InPhase> J25k40: It's just a ticking clock until we hit some case where support for that really needs to go.
<J25k40> i get about 50 warnings now
<InPhase> lol. Were you doing this a lot?
<J25k40> 2D is a common variable in my library to get 2D support
guso78k has quit [Quit: Client closed]
<InPhase> Ah. Well, if it's just the one, a mass search and replace could fix it at least.
<J25k40> except that it is used in projects and even if i replace this i need to keep it so older projects work
<InPhase> Well, this is the reason for warnings. It buys time.
<ali1234> i'm surprised that was ever allowed
<InPhase> ali1234: A bit of a planning blunder, yeah.
<J25k40> i understand you don't like numbers leading variables - but why isn't one character good as any other?
<InPhase> J25k40: 2E
<InPhase> J25k40: 2E1
<InPhase> Where's the borderline between variable and number?
<ali1234> 0xabcd
<J25k40> 2E1 is not working  so where is the problem
<InPhase> Also some languages have found merit adding text suffixes to numbers to specify numerical literal types. OpenSCAD currently has no numerical types, but need can arise for that in the future.
<InPhase> J25k40: Currently, 2i is processed as a variable. So is 2j. We don't have complex number support, and shot ourselves in the foot by marking all normal complex number notations as variables.
<InPhase> J25k40: Lots of geometric math gets easier with complex numbers.
<InPhase> J25k40: A recent PR was just putting up bitwise operator support. Although we do that currently with doubles. But if you sit there with bitwise operator support for long enough, somebody is going to want to express integers with a suffix sooner or later.
<J25k40> 3D and 2D should be allowed
J25k40 has quit [Quit: Client closed]
J25k has joined #openscad
<InPhase> J25k: One can get similar aesthetics perhaps with _3D and _2D
<InPhase> J25k: Although I'd really suggest something more like use2D, do2D, or as2D
<J25k> $2D works too but there is no option to make that change compatible
<InPhase> I'd advise against $2D, just to be careful about not hitting future issues. Although I do think that one is less hazardous.
<InPhase> Currently even $2 works as a variable.
<InPhase> Probably there are no issues with this going forward for a long while.
<church_> i wonder if "as in eg. bash", to ${varn} to explicitly mark that it's variable name .. though not seeing that much gains, and old code will need to be rewritten anyway
<J25k> it wouldn't be so bad if those warnings wouldn't slow down everything
<J25k> or if the management of warnings would be better  "show warnings"
<church_> oh, i know the pain. if there are many steps in some code loop, and warning pops up on some minor error .. it takes ages to wait end of output :(
<InPhase> J25k: I have sometimes noticed warnings making things laggy. Not sure why that happens.
<church_> i wonder if some "don't output more then X0 warnings per compile run" would make things better ..
<InPhase> They really shouldn't be slow, since that's just happening at parsing time.
<church_> maybe text rendering for warning output is slow?
<InPhase> J25k: Oh wait, are you doing "use" for your library?
<J25k> include
<InPhase> Okay, then it should happen only once.
<J25k> use doesn't support literals
<ali1234> InPhase: following up on the helmet from yesterday - blender can offset vertices by their normal very easily, and it works well, except it makes the ears bigger and then they get in the way. but blender's boolean ops are extremely numerically unstable so attempting to boolean first and then offset tends to explode
<J25k> evertime you preview F5 F6 it will display all warnings
<ali1234> but i managed to make this with geo nodes: https://imgur.com/PJRUFD6
<ali1234> it's fast but extremely unstable when changing parameters
<J25k> 152  https://bpa.st/X3TQ
<ali1234> blender is also much better at capturing the cut line - it can just be a curve you can drag around - but again actually dragging it around makes it explode too
<J25k> InPhase so guess openSCAD entered the "not usable after update"  software  .. sad
<J25k> InPhase and the "3D print" button is gone .. how does that work now?
<InPhase> J25k: Looks like the deprecation of variables starting with numbers was planned out and discussed in here 11 months ago, April 4th. I knew there was some sort of discussion about it.
<InPhase> The original impetus was about how it disrupted hex, binary, and octal support.
<J25k> you can configure what happens but you can't use the function anymore? who makes something like that
<InPhase> Although I'm also future-concerned about complex number support, but that did not come up at the time.
<InPhase> By the time we're done supporting hex, binary, octal, complex numbers, and floats, that's a whole lot of special casing of disallowed variables starting with a number, and in the manner of a set that changes with time as features are added.
<InPhase> J25k: What's the "3D print" button?
<J25k> preferences ↦ 3D print
<J25k> you can configure the slicer or print service or povray .. but without a button you can't trigger it
<InPhase> It's under Design.
<InPhase> I never noticed a button.
<InPhase> Although I don't have it configured, so maybe the button only shows up if you configure it?
<J25k> InPhase where? https://imgur.com/a/Cl4kb75
<InPhase> Well I didn't compile today...
<J25k> I had POVray configured .. now unusable
<InPhase> Does F8 trigger it?
<J25k> nah nothing
<teepee> IT'S STILL A DEV VERSION
<InPhase> J25k: Did you check the config file for new entries? I think that was being migrated to configurable.
<J25k> config file what?
<teepee> it looks like a merge bug or something
<TylerTork> InPhase Thanks -- can we connect in Signal -- I'm "Tyler Tork" there -- or let me know how to reach you?
TylerTork has quit [Quit: Client closed]
TylerTork has joined #openscad
<TylerTork> InPhase: Thanks -- can we connect in Signal -- I'm "Tyler Tork" there -- or let me know how to reach you?
<InPhase> TylerTork: I like to keep all of my OpenSCAD efforts here, so that they don't pop up on my phone on me while I'm working.
<InPhase> Notification management is a big challenge.
<gbruno> [github] MethylBromide opened issue #5760 (Ctrl+Shift+F doesn't work in Windows client) https://github.com/openscad/openscad/issues/5760
TylerTork has quit [Quit: Client closed]
TylerTork has joined #openscad
<TylerTork> If I mention your name you'll spot it later if you're not online?
<TylerTork> InPhase: that was for you
<InPhase> Yeah.
<InPhase> I log 24/7, and notice highlighted comments (with my name) pretty reliably.
<InPhase> I don't disconnect from IRC.
<InPhase> The computer I use for IRC has been running without a reboot for 2.2 years now. :)
<gbruno> [github] uski opened issue #5761 (x64 Linux AppImage missing libary) https://github.com/openscad/openscad/issues/5761
<gbruno> [github] uski edited issue #5761 (x64 Linux AppImage missing library libopengl0) https://github.com/openscad/openscad/issues/5761
<gbruno> [github] t-paul closed issue #5761 (x64 Linux AppImage missing library libopengl0) https://github.com/openscad/openscad/issues/5761
bertronika has joined #openscad
<church_> InPhase: .. and also w/o upgrades/updates to main libc & kernel, no? :) .. and certainly irc connection hadn't lasted w/o reconnets even 1/30 of that timeframe ..
Non-ICE has quit [Ping timeout: 252 seconds]
Non-ICE has joined #openscad
TheCoffeMaker_ has quit [Ping timeout: 245 seconds]
TylerTork has quit [Ping timeout: 240 seconds]
TylerTork has joined #openscad
guso78k has joined #openscad
TylerTork has quit [Ping timeout: 240 seconds]
Joel has quit [Quit: ZNC 1.8.2+deb2ubuntu0.1 - https://znc.in]
Guest4 has joined #openscad
Guest4 has quit [Client Quit]
Joel has joined #openscad
Joel has quit [Quit: ZNC 1.8.2+deb2ubuntu0.1 - https://znc.in]
Joel has joined #openscad
bertronika has quit [Quit: Konversation terminated!]
TylerTork has joined #openscad
lastrodamo has quit [Quit: Leaving]
TylerTork has quit [Quit: Client closed]
<InPhase> church_: It appears I was offline for 5 minutes on Dec. 5, and less than a minute on Jul 18. So 1/5th to 1/8th of that timeframe for brief disconnects. :)
TylerTork has joined #openscad
stefanct__ has joined #openscad
stefanct has quit [Ping timeout: 265 seconds]
stefanct__ is now known as stefanct
<gbruno> [github] damienmarchal synchronize pull request #5759 (FIX issue #5749) https://github.com/openscad/openscad/pull/5759