<willmore>
Is there a way to tell openscad that a bunch of parts don't intersect, so don't waste time trying to do anything complex with them? I have a design that has a whole bunch of separate parts (hundreds) and they don't touch at all, but it takes a long time for openscad to render them. I assume it's doing some kind of expensive intersection tests or something.
<willmore>
It's all the same shape, just two different rotations of it and a *lot* of translations.
<willmore>
Is there some way to say "this basic shape needs optimized, but once you do that, the rest of this is just non-intersecting tranlations and rotations"?
<peeps[zen]>
willmore: there is an experimental feature called "lazy union" if you download and a "development snapshot" from openscad.org, and enable it under Preferences -> Features tab
<peeps[zen]>
this will avoid calculating the union of objects in most cases, unless union() is explicitly invoked
<peeps[zen]>
however, its also not 100% complete and there are cases where implicit union still occurs. but the main implied top level union usually takes the longest, which is avoided with lazy-union
<willmore>
Is that the 999/1000 step that takes forever?
<willmore>
I really like not having the implied top level union(). I actually had to learn that they did that. I had one explicitly in my code when I wanted it.
<peeps[zen]>
yeah, kinda. there may also be independent issues with the progress bar calculation though
<willmore>
No arguement here!
arebil has joined #openscad
<InPhase>
peeps[zen]: I spent a good portion of an evening redoing the progress bar calculation in numerous ways. Unless we pierce inside of CGAL with some sort of callback there is no hope of fixing it to something sensible and scalable.
<InPhase>
peeps[zen]: What you get when you waste an evening on trying to adjust this is that you end up with designs that go to the 1% completed mark and then sit there until they jump to 100%, which is frankly no better. :)
<InPhase>
At least freezing on 999/1000 offers some clarity of what's happening, in comparison to the adjustment options.
<peeps[zen]>
yeah, lack of cgal callbcks makes it difficult, but i think there is still some possible improvement without that. iirc, the total count gets mixed up and actually over counts during progress updates, but the display is limited to ignore >=100% progress
<peeps[zen]>
i had some of my own changes i was working on, in one of my 30 or so openscad clones that I never finalized
<InPhase>
It might be true that it overcounts in some cases, but the limiting factor on the heavy designs is the long time period with no calls to the progress bar update.
<InPhase>
I managed to get some low-complexity designs that display a little nicer with a well-balanced progress bar that just jumps a little, but then as soon as you ramp up the design, it goes into that bad mode of looking like it crashed at the beginning.
<InPhase>
We could always make 999 the new 1000 and setup a spinning unioning graphic or something. :)
GNUmoon has quit [Remote host closed the connection]
GNUmoon has joined #openscad
arebil has quit [Quit: My keyboard has gone to sleep. ZZZzzz…]
ochafik has quit [Remote host closed the connection]
<Jack22>
pah binary .. what about monary IIIIIIIII
<teepee>
are you sure that works?
<Jack22>
well not without an end to determine the lenght
<Jack22>
I.IIIIIIII..I.
<teepee>
you could do the old meta trick from code golfing that solved that topic once and for all :)
<teepee>
oi! that's binary :P
<teepee>
meta-nonary?
<Jack22>
no it isn't binary also has an encoding frame .. if you need an flexible frame you ran into problems
<teepee>
ah, so more reverse run length encoding :)
<Jack22>
i didn't said it would be usefull - Ü
<teepee>
i'm almost sure UTFU-8 is also not meant to be useful, more a reaction to some sort of discussion about the moe editor (or it's author) denying the usefulness of UTF-8
<Jack22>
imagine we get transistor that can work with more states than 0 and 1 .. but then our neurons also have that threshold
<teepee>
to split some hairs, transistors are pretty analog
<Jack22>
yes i think it is the resistance that didn't allow to calculate 0.2v to 0.8 v = 1 v
<Jack22>
when in the end after leakage and loss you only get .9volt out
<teepee>
no idea how they did that in analog computers, might be an idea to look for some videos about that topic
<Jack22>
probably using higher voltage so the loss is negligible to determine the value
<teepee>
but then 0.2 + 0.2 is rarely 0.4 looking at normal computer languages :)
<Jack22>
also analog computer still using binary or?
<teepee>
or was that 0.2 * 0.2 != 0.04? maybe both
<teepee>
no analog computers really do analog, which makes them pretty complicted to both build and use from what I've heard
<Scopeuk>
Jack22 my understanding is most analog computers we fully analog
<Scopeuk>
a lot of the electronic versions are opamp based
<Scopeuk>
using opamps to perform time based integration and filtering
<Jack22>
yes just checked they used mechanic or pneumatic /hydraulic etc.
<Scopeuk>
yup the older ones definately were
<Scopeuk>
go look up the old fire computers for navy ships
<teepee>
right, that was probably the reason, with digital integration being slow or not possible yet
<Scopeuk>
integration by spinning disk and the like
<Jack22>
Scopeuk: yeah there is that nice YT video about mechanical firesolution
<Scopeuk>
yeh that is a a mechanical analog computer
<Scopeuk>
I suppose that arguably an analog synthesiser is an analog computer
<Scopeuk>
just like most of them very much application specific rather than trivially "reprogrammed" as we are now accustomed
<Jack22>
so probably every analoge clock can be seen as computer
<Jack22>
or every gear
<Jack22>
or pendulum
<Scopeuk>
I mean technically probably yes but they are the "micro controller" level of it
<Scopeuk>
something like a signal box is probably a better example
<Jack22>
when neighbors call the police because you compiled the kernel (№) at night
<teepee>
right, noise reduction mode, only one digit at a time, full screen refresh rate, about an hour :)
<Jack22>
only refresh changed numbers
<teepee>
I've seen those display printed, but probably more than 4 for a clock gets too big of an effort
ochafik has joined #openscad
<Scopeuk>
hmm I'd have expected most of the work to be the flaps which you should be able to print more conventionally on card or stensil onto mettal/plastic sheet
<Scopeuk>
I'm old enough to remember home electronics with thse
<Scopeuk>
vfd's are satisfying on a viceral level lcd's and standard severn segs just don't match
<Jack22>
i still have these on my amp
<Scopeuk>
I have a colleague wit ha hand held calculator with one for its primary display
<Scopeuk>
although the damn thing does work in rpn so not all good
<Jack22>
i assume the flip dot/disc is not as loud as there are no surfaces in parallel contact
<Jack22>
but you have more of them .. so
<Scopeuk>
I wonder if it might be slap newspaper to desk vs rainfall
<Scopeuk>
with a flip dot you do still have an end stop
<Scopeuk>
although I suppose there is nothing stopping massive overkill and doing that magnetically, although that's heading rapidly towards macro scale eink
<Jack22>
i wonder if a DMD ( dlp) is also loud on a micro level
<Scopeuk>
hmm dlp only has a small movement range (electro static iirc) I guess a macro level one would be done differently
<Jack22>
dynamic discobowl for 360 dome projection
ochafik has joined #openscad
ochafik has quit [Ping timeout: 240 seconds]
stonkey has quit [Ping timeout: 268 seconds]
Guest56 has joined #openscad
Guest56 has quit [Client Quit]
Guest51 has joined #openscad
Guest51 has quit [Client Quit]
ochafik has joined #openscad
ochafik has quit [Ping timeout: 268 seconds]
fling has quit [Quit: ZNC 1.8.2+deb2+b1 - https://znc.in]
fling has joined #openscad
arebil has quit [Quit: My keyboard has gone to sleep. ZZZzzz…]
ochafik has joined #openscad
ochafik_ has joined #openscad
ochafik has quit [Read error: Connection reset by peer]
ochafik_ has quit [Remote host closed the connection]
ochafik has joined #openscad
stonkey has joined #openscad
ochafik has quit [Ping timeout: 240 seconds]
ochafik has joined #openscad
ochafik has quit [Ping timeout: 240 seconds]
ochafik has joined #openscad
othx has quit [Ping timeout: 250 seconds]
<teepee>
lol, just got shipping confirmation for a reichelt order with one mosfet not included and shipping target 31.12.2022
othx has joined #openscad
ochafik has quit [Ping timeout: 256 seconds]
<Scopeuk>
thats feels like it should have come with an "are you sure?" dialog
johnkh has joined #openscad
linext has quit [Read error: Connection reset by peer]
ochafik has joined #openscad
ochafik has quit [Remote host closed the connection]
<johnkh>
I made an item for a project in SCAD, now wish I had made it twice as big. CURA is what I have been using to produce the article itself, but does not seem to have the ability to change scale. Is there something to add to CURA or another program to replace it?
<peepsalot>
if you made it in scad, you can just wrap the whole thing in: scale(2) { ... }
<Jack22>
johnkh: you can scale in cura and in OpenSCAD scale(2);
<willmore>
As just a user commenting on the progress bar: I don't really need to know how much longer the whole thing is going to take, but I would like to see an indication that *something* is going on. It can look like the Sims(tm) loading screen for all I care, but I just want to see that something is going on.
<willmore>
If it can have some kind of meaningful status messages like "doing final union()", that's nice as well.
stonkey has joined #openscad
stonkey2 has joined #openscad
stonkey has quit [Ping timeout: 256 seconds]
stonkey2 has quit [Remote host closed the connection]
stonkey has joined #openscad
stonkey has quit [Remote host closed the connection]
mhroncok has quit [Ping timeout: 268 seconds]
mhroncok has joined #openscad
linext has joined #openscad
TheAssassin has quit [Remote host closed the connection]
TheAssassin has joined #openscad
<lf94->
can openscad do super large geometry
<lf94->
1e466
<lf94->
I want to print a planet
<teepee>
sure, just declare units as km
<peepsalot>
not with values that large, double precision is limited to 1e308 or so
<peepsalot>
where do you get that value from anyways?
<peepsalot>
measuring in planck lengths or something?
<Jack22>
modeled our solar system once (in km) totally useless as there is so much space that you never see anything in the preview without different scales
<peepsalot>
hrm, no.. earth is only on the order of 8e41 planck lengths so...
<peepsalot>
diameter
<peepsalot>
hell, the observable universe is only about 5e61 planck lengths, so you might wanna reconsider your values
<Jack22>
lf94-: sphere(r=6000000000); you could just try or?
<dTal>
I'm suddenly curious where 1e466 *does* come from
<dTal>
what calculation could possibly yeild such a large value
ali1234 has quit [Remote host closed the connection]
ali1234 has joined #openscad
<peepsalot>
Jack22: i'm assuming because you enabled lazy union?
<Jack22>
oh lazy union makes the difference if it is only one polyhedron?
<peepsalot>
well, no, if that's all one polyhedron, then it doesn't have to go through cgal to compute anything, so no cgal errors
<peepsalot>
add a cube(); to the scene and then see if it renders. (if lazy union enabled, then you'll have to explicitly union your polyhedron with the cube)
<Jack22>
just tried without lazy union same result and i didn't get any errors when checking the geometry
<InPhase>
teepee: You missed the question where I asked if the background should be darker. I can probably PR that later tonight after you go to bed, but wanted your feedback first as you're apparently more of a daylight theme fan. :)
johnkh has joined #openscad
<InPhase>
The current version fits my impression of the way daylight theme fans like to be blinded with flashlights in their eyes.
<Jack22>
you can see in the image that there is an intersection but it is filled ..
<InPhase>
But imagine the axes are darker. I already tweaked that part, just didn't re-generate the image.
GNUmoon has joined #openscad
<peepsalot>
Jack22: did you read my response?
<Jack22>
peepsalot: also adding a cube doesn't change that (but makes it slower) and the cube wouldn't change the resulting geometry only that SCAD could show an error or?
<peepsalot>
my point is that rendering a single polyhedron doesn't go through any CGAL operations (which is where all the strict manifold/closed mesh etc errors come from)
<Jack22>
peepsalot: sure but normaly the geometry shows error later - and in the past intersection at least caused voids
<johnkh>
Why will the program refuse to save a program I have been working on most of the day?? Just who is responsible for giving permission?? (I always thought it was ME!)
<Jack22>
johnkh: where do you want to save it ? is the file write protected?
<peepsalot>
root/administrator is responsible for setting directory write permissions
<Jack22>
i am creating a spiral path and orient a circle along the path to generate the points .. in preview i see voids in the intersection ( i can look through the model not into a void)