<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]
<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>
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
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 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.
<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>
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?
<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. :)