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
<J1A8481> junxter you can model that in scad .. but i already find using bezier  very difficult when you need to enter all control points
<Junxter> J1A8481, I am thinking perhaps with a web based frontend helper tool for design capture
<Junxter> it in turn outputs scad file
<Junxter> could be very nimbly made, without having to change openscad program
<teepee> yep, beziers are not easy in code
<teepee> for some cases catmull-rom splines or similar should be much easier
<J1A8481> here is a bezier 3D with control points https://ibb.co/sRXJ88T
J1A8481 has quit [Quit: Client closed]
J1A8481 has joined #openscad
<InPhase> Junxter: I like how your animation has a blue guy hiding in the trunk.
<Junxter> J1A8481: ok thanks
<Junxter> InPhase: the powertrain ?
<InPhase> :)
<InPhase> Junxter: Yeah, it looks like a little blue guy hiding in the trunk when it first appears.
<Junxter> lol yeah
<J1A8481> the exhaust system
<Junxter> right
<J1A8481> InPhase  that beetle has a frunk  like porsche
<Junxter> yeah, rear engine rear wheel drive, like a porsche
<Junxter> i design the model car with same layout as its fullscale prototype
<Junxter> off topic from openscad, this is a test run: https://www.facebook.com/705048628/videos/344025791140912/
<linext> if anyone is going to be writing some openscad anyway, maybe you can test out the changes made to the 3dcustomizer.net editor: https://www.3dcustomizer.net/create/playground
<linext> some useful settings are turning off auto-rotate and turning on "Lock Camera/Position" under Viewer Settings
<linext> if you leave opacity at 0.75, it helps with not having # and %
<linext> (and edge lines turned on)
califax has quit [Remote host closed the connection]
califax has joined #openscad
<InPhase> Junxter: That's really cool. What's the exhaust substance?
<Junxter> InPhase, thanks. it's heated machine oil
<InPhase> So an inadvertent byproduct? Or did you have to rig it up to produce the exhaust?
<Junxter> there's a heating element dedicated to heating up the oil to produce smoke. the compressor is direct driven from main motor
<Junxter> the clutch allows the engine to rev without the wheels moving, like in a internal combustion engine
<Junxter> and the sound is also made directly from the motor, not a dedicated sound card
<Junxter> just modulated to sound more or less like a internal combustion engine
<Junxter> another clip showing the full operation: https://www.facebook.com/705048628/videos/1188684145023029/
<Junxter> the entire design is done with OpenSCAD, and manual or CNC machined
ur5us has quit [Quit: Leaving]
<linext> i'm starting to think that semi-opacity is a better default
<linext> and edges
<linext> you can see through the objects and see what's happening within the filled space
<InPhase> Junxter: I saw you change gears without using the clutch. :)
<InPhase> Junxter: Now you'll need to program it to grind the gears if someone does that, or stall out if the engine gets too slow while in gear.
ur5us has joined #openscad
<Junxter> :)
<linext> are the numbers returned by textmetrics actually numbers, or are they strings?
<linext> i'm trying to use translate with tm.size.position + # and it's not working
<linext> tm.size.position[0] + 5 doesn't work
<InPhase> What does echo(tm.size.position[0]) show?
<linext> undef
<InPhase> What does echo(tm.size.position) show?
<InPhase> Follow-up, what does echo(tm.size) show?
<InPhase> And if that fails, I bet you can guess the next follow-up. ;)
<linext> undef
<linext> tm.size works
<InPhase> Showing what?
<linext> oh i see
<linext> tm.size and tm.position
<linext> not tm.size.position
<InPhase> That'll do it.
<InPhase> (I did not know the answer. Wasn't trying to drag it out.)
<linext> is there a better way to do this? https://www.3dcustomizer.net/create/customization/82
<linext> instead of producing so many rotated texts
<InPhase> The site is still calculating away, but I'm looking at it locally and it's very pretty.
<InPhase> Let me see.
<linext> i suppose i could use a few hulls instead
<linext> hull 0 to 1, 1 to 2, 2 to 3 ...
<InPhase> linext: https://bpa.st/LHGQ
<InPhase> I guess to get your exact effect, change that 90 to a slightly smaller number.
<InPhase> The one in the rotate_extrude.
LordOfBikes has quit [Ping timeout: 260 seconds]
<InPhase> https://bpa.st/Z75A That does it nice.
<InPhase> Still takes a lot longer to do in the browser than locally, but it's down to 38 seconds for me, and comes out reasonable smooth in the browser as well with that.
<linext> strange
<InPhase> The back kind of has a weird moire effect going on in browser.
<linext> your code breaks Pacifico and RubikBubbles
<linext> Error: ERROR: all points for rotate_extrude() must have the same X coordinate sign (range is -0.38 -> 0.02)
<linext> ?
<InPhase> Oh. Blame JordanBrown[m].
<InPhase> Maybe.
<InPhase> I was trying to use those position values, and they didn't work so I swapped them. Maybe that was nonsense to do.
<InPhase> Right...
<InPhase> It needed to be the negatives.
<InPhase> https://bpa.st/26KQ That should work with your other fonts.
<InPhase> JordanBrown[m] is hereby absolved of blame.
<InPhase> (I had swapped them because I had a rotate, but I was doing the translate before the rotate, and wasn't paying attention.)
<linext> yep, works fine
<linext> i need to get around to adding a pastebin to 3dcustomizer.net
LordOfBikes has joined #openscad
<InPhase> And maybe a fork button.
<InPhase> Well RubikBubbles sure slows down the display. :)
<InPhase> But it works.
<InPhase> I suppose the z-offset needs tweaking as well, as now that they have the right offset, they're wedged into that platform.
<InPhase> linext: Bug report: Every time I edit the code, the parameters reset.
foul_owl has quit [Ping timeout: 248 seconds]
epony has quit [Remote host closed the connection]
<InPhase> linext: I'd think some persistence would be more often desired. Perhaps a more clever method can be used to pick up when parameters themselves are changed in the code.
<InPhase> It's particularly discernible here when I do something like change an offset, and the font alters. :)
epony has joined #openscad
<InPhase> linext: This gives a more nicely aligned result. translate([-tm.position[0],-tm.position[1]+0.99,0])
<InPhase> Oh, but then it's intersecting the bottom of the platform...
TheCoffeMaker has quit [Ping timeout: 268 seconds]
foul_owl has joined #openscad
<InPhase> linext: I have officially obsessed over the details enough. Now it sweeps back with an arc for a more aesthetically pleasing side-view, adjusts off of the bottom, and auto-adjusts the platform to account for the longer arc. :) https://bpa.st/PKXA
<InPhase> The subtlety of the effect is that it feels like it comes out of the platform with this approach, rather than like it's resting on top.
<InPhase> I bet this would make a nice desk nameplate.
<InPhase> :( The whole thing failed when I used a name with a y in it.
<InPhase> I mean, technically it works just fine... but it's floatin gin the air held up by the y.
<InPhase> Which is "correct" but less appealing.
<InPhase> I guess I just need to change the family last name. That's all.
Friithian has quit [Ping timeout: 268 seconds]
Friithian has joined #openscad
TheCoffeMaker has joined #openscad
TheCoffeMaker has quit [Ping timeout: 260 seconds]
Sauvin has quit [Ping timeout: 260 seconds]
TheCoffeMaker has joined #openscad
Sauvin has joined #openscad
<JordanBrown[m]> > translate([-tm.position[0],-tm.position[1]+0.99,0])
<JordanBrown[m]> better is translate(-tm.position + [0.99,0]) or translate([0.99,0]-tm.position)
<JordanBrown[m]> We've got this fancy matrix arithmetic stuff, might as well use it.
<JordanBrown[m]> InPhase
ur5us has quit [Ping timeout: 256 seconds]
<InPhase> I cannot bring myself to leave the z coordinate implicit.
<JordanBrown[m]> At that point you're in 2D; there is no spoon. Er, z coordinate.
<InPhase> Oh right.
<InPhase> Well, I can bring myself to omit the z coordinate for 2D. :) And should have.
<InPhase> But I have closed that file because I was messing with it too much. :)
<JordanBrown[m]> If we decide that you should always use 3D coords, textmetrics should return the z=0.
krab_mozga has joined #openscad
<JordanBrown[m]> But I don't think I would like that.
<JordanBrown[m]> Even if we didn't have a special 2D mode, I would be OK with the notion of omitting the z coordinate when *I'm* thinking in 2D.
<JordanBrown[m]> Or even omitting the y and z when I'm thinking in 1D :-)
<JordanBrown[m]> That does look cool. Looks like a bear to print, though.
<JordanBrown[m]> But maybe not if you drop it to 45° - then, I think, the max overhang is 45°
<JordanBrown[m]> It's a little low; the bottom of the characters is embedded in the surface.
krab_mozga has quit [Ping timeout: 260 seconds]
<JordanBrown[m]> You had a small bug. You translated the text by -tm.position to bring it down to the X and Y axes, but then you *also* translated the cube by tm.position. You double compensated.
J1A848188 has joined #openscad
krab_mozga has joined #openscad
J1A8481 has quit [Ping timeout: 260 seconds]
<krab_mozga> Hello
<krab_mozga> Is there any plumbing library?
<krab_mozga> Seems not so hard to implement given there's plenty of thread code out there
<JordanBrown[m]> Depending on what you need, I did something of a plumbing library a few years ago. My focus was not on making something printable, but rather on mocking up some sprinkler plumbing to make sure that I'd remembered all of the parts.
<krab_mozga> i want printable. An adapter, parametric. Inner/outer thread, from diameter, to diameter.
<JordanBrown[m]> Yeah, my stuff won't help you.
<JordanBrown[m]> But if you're curious: https://forum.openscad.org/Plumbing-td29639.html
<JordanBrown[m]> I would also not be too optimistic about 3D printed stuff being able to hold much pressure.
<krab_mozga> Seen it few minutes ago. You're on top for "openscad plumbing" in google
<JordanBrown[m]> which is exactly how I found it :-)
<krab_mozga> Regarding pressure and leaks that's expected
<krab_mozga> Just hold two things together would be ok
<krab_mozga> And there's printers that print metal I heard
<JordanBrown[m]> I haven't done anything with threading myself, but I know there are threading libraries. The rest seems like simple geometry.
<krab_mozga> :)
<JordanBrown[m]> well, yeah, but I've got to believe that getting something printed in metal is going to be more expensive than buying the adaptor, unless it's an adaptor that simply doesn't exist.
<JordanBrown[m]> InPhase here's what I tweaked it to: https://bpa.st/UQ5Q
<JordanBrown[m]> Ah, but the margin wasn't parameterized, and I didn't see the need for your magic height*0.8 adjustment to the Y size of the platform, and I was able to simplify the rotates a bit... https://bpa.st/LB6A
<JordanBrown[m]> OK, you're right, time to close that file :-)
<InPhase> See?!
<JordanBrown[m]> OCD R Us
<JordanBrown[m]> OCD ᴙ Us
foul_owl has quit [Ping timeout: 240 seconds]
ur5us has joined #openscad
krab_mozga has quit [Ping timeout: 260 seconds]
foul_owl has joined #openscad
GNUmoon has quit [Remote host closed the connection]
teepee has quit [Remote host closed the connection]
GNUmoon has joined #openscad
teepee has joined #openscad
ur5us has quit [Ping timeout: 260 seconds]
<JordanBrown[m]> Artemis I launch T-7m.
GNUmoon has quit [Remote host closed the connection]
GNUmoon has joined #openscad
<J1A848188> hm i have this "plumbing" adapter in my librarie  "Anschluss"
ur5us has joined #openscad
<Junxter> Artemis succesful !
TheCoffeMaker has quit [Ping timeout: 260 seconds]
TheCoffeMaker has joined #openscad
ur5us has quit [Ping timeout: 260 seconds]
lastrodamo has joined #openscad
foul_owl has quit [Ping timeout: 260 seconds]
foul_owl has joined #openscad
use-value has quit [Ping timeout: 256 seconds]
J1A848188 has quit [Quit: Client closed]
J1A848188 has joined #openscad
teepee has quit [Ping timeout: 255 seconds]
teepee has joined #openscad
snaked has quit [Ping timeout: 240 seconds]
buZz has quit [Ping timeout: 246 seconds]
J1A84818870 has joined #openscad
qeed has quit [Quit: qeed]
J1A848188 has quit [Quit: Client closed]
qeed has joined #openscad
Guest57 has joined #openscad
Guest57 has quit [Client Quit]
use-value has joined #openscad
use-value1 has joined #openscad
use-value has quit [Ping timeout: 252 seconds]
use-value1 is now known as use-value
buZz has joined #openscad
buZz is now known as Guest645
Guest645 is now known as buZz
qeed has quit [Read error: Connection reset by peer]
qeed has joined #openscad
Guest86 has joined #openscad
Guest86 has quit [Client Quit]
J1A84818870 has quit [Quit: Client closed]
J1A84818870 has joined #openscad
fling has joined #openscad
fling has quit [Remote host closed the connection]
fling has joined #openscad
califax has quit [Remote host closed the connection]
califax has joined #openscad
<linext> why does openscad print to stderr instead of stdout for Geometries in cache: 1, Geometry cache size in bytes: 2416, ..., Total rendering time: 0:00:00.014
<linext> is it to hide it from the command-line user?
<InPhase> I'm not sure it has been reasoned out too deeply, but there has been some division to facilitate better extraction of data for processing.
califax has quit [Remote host closed the connection]
teepee has quit [Ping timeout: 255 seconds]
<peepsalot> hot take: there should be an unlimited number of user defined streams beyond stderr
califax has joined #openscad
<Friithian> you can convince everyone to change :P
teepee has joined #openscad
<InPhase> peepsalot: I think they're called "log files". :)
<InPhase> But yeah, more structured streams could have merit. I've thought a bit about the notion of a vector of streams, or a dictionary of streams.
<InPhase> And not just for processes, but also in language design.
<Friithian> a vector of streams?
<Friithian> interesting
<Friithian> just write your own singleton class that mirrors std::cwhatever that outputs to a file :P
teepee has quit [Ping timeout: 255 seconds]
<JordanBrown[m]> Log files are easy. The problem is when you have N distinct streams that you want to present to the human *if* it's a human, but that the caller may want to divert in different directions.
califax has quit [Remote host closed the connection]
<JordanBrown[m]> You can do it with options, of course, but it would be nice to have a consistent mechanism like the stdout/stderr distinction.
<Friithian> you could do some hacky thing with a wrapper class that takes some option
<Friithian> but unless how processes work fundementally changes idk what can be done
teepee has joined #openscad
<JordanBrown[m]> Yes, too many programs have hardwired into them the notion that 0,1,2 are reserved and 3+ are open.
califax has joined #openscad
<JordanBrown[m]> The one I keep finding a need for is a "progress reporting" stream. Standard out is the data you want to process, standard error is, well, errors, and what do you do with "xx% complete" and "now doing this step" and things like that that are neither?
<Friithian> isn't it built into the kernel that processes automatically have fd 0 1 and 2 being in, out, and err?
<JordanBrown[m]> no
<JordanBrown[m]> Purely user-mode convention.
<Friithian> my systems programming prof is disapointed in my memory
<Friithian> disappointed
<JordanBrown[m]> I mean, who knows what assumptions people have put into various kernels over the years, but in the original stuff no, those streams are set up by the very first components in user-mode startup, and also by things like per-terminal login infrastructure and sshd that need to reassign them to different terminals, and of course the shells manipulate them.
<JordanBrown[m]> But for us probably the answer is options. In particular, the "-out foo.echo" mechanism should capture *only* echo output. (I might be misremembering the exact option; I'm not checking.)
<JordanBrown[m]> But we should also be careful that errors, and only errors, go to stderr. I think we get that wrong.
<Friithian> yeah stderr is used too much for non-errors
<JordanBrown[m]> and stdout is used too much for errors :-)
<Friithian> so, what you're saying is we need a new standard…
<Friithian> 927
<JordanBrown[m]> Yes, 927.
<JordanBrown[m]> I've occasionally thought about what it would take to add a fourth reserved file descriptor, and I think it ends up being that all programs everywhere have to change at the same time.
<Friithian> what's the max number for fds?
<JordanBrown[m]> System-dependent
<Friithian> heck
<JordanBrown[m]> Traditional UNIX, 20. But basically everybody has increased that.
<Friithian> yeah no real solution without a new standard that *everyone* will follow
<JordanBrown[m]> I know that in Solaris for a long time we had a wall at 256, because the field in the FILE structure was one byte and the FILE structure is burned into practically every executable everywhere.
<JordanBrown[m]> (because several of the important stdio functions are implemented as macros.)
<peepsalot> Friithian: "ulimit -n"
<Friithian> cat /proc/sys/fs/file-max gives 9223372036854775807␊
<Friithian> soft limit of 1024 for my user, hard of 1048576
<JordanBrown[m]> I don't think I believe that 9223372036854775807 is the actual limit.
<Friithian> yeah that seems a bit high
<Friithian> fs.file-max = 9223372036854775807
<Friithian> very odd
<JordanBrown[m]> Looks like 2^63-1.
<Friithian> looks like they just set it to the max on systems with memcg
<JordanBrown[m]> yep
<JordanBrown[m]> maximum int64_t
<Friithian> well that was an interesting bit of tagent I wasn't expecting but was fun
<Friithian> time to write a program to open fds until it breaks
peepsalot has quit [Quit: Connection reset by peep]
J1A84818870 has quit [Quit: Client closed]
J1A84818870 has joined #openscad
peepsalot has joined #openscad
ccox has quit [Ping timeout: 248 seconds]
ecraven has quit [Ping timeout: 246 seconds]
teepee_ has joined #openscad
teepee has quit [Remote host closed the connection]
teepee_ is now known as teepee
Junxter has quit [Read error: Connection reset by peer]
fling has quit [Ping timeout: 255 seconds]
fling has joined #openscad
fling has quit [Remote host closed the connection]
fling has joined #openscad
drfff has joined #openscad
drfff has quit [Remote host closed the connection]
drkow has quit [Ping timeout: 260 seconds]
ur5us has joined #openscad
ccox has joined #openscad
lastrodamo has quit [Quit: Leaving]
<linext> if the largest STL can have 2^32 triangles, what's the file size limit?
<linext> each triangle uses 15 bytes?
<linext> 14 bytes?
<linext> 56GB
<linext> hmm... if the triangle count is 2^32, i think i would ignore it and just keep reading adata
califax has quit [Ping timeout: 255 seconds]
ecraven has joined #openscad
califax has joined #openscad
califax has quit [Remote host closed the connection]
califax has joined #openscad
epony has quit [K-Lined]
LordOfBikes has quit [Remote host closed the connection]
LordOfBikes has joined #openscad
fling has quit [Remote host closed the connection]
fling has joined #openscad
califax has quit [Remote host closed the connection]
califax has joined #openscad
<Friithian> I finally got around to testing opening fds and after 1023 open(2) returns -1
teepee has quit [Remote host closed the connection]
<Friithian> yeah so it's hitting the soft limit and then going nope
teepee has joined #openscad