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
<pca006132> hmmm, wonder if anyone is familiar with llvm
<JordanBrown1> I'm sure somebody is :-)
<pca006132> I was preparing a simple tutorial about binary search for a course, and found some weird performance issue with clang compared to gcc...
<pca006132> the binary produced by clang is 2x slower than that of gcc
<JordanBrown1> My kids have had iPhones for several years, and I haven't had to scrub malware off of them... but I did have to scrub it off of a friend's Android phone.
<pca006132> and llvm-mca (assembly analyzer) tells me that the gcc code is a lot worse
<pca006132> either I am misunderstanding llvm-mca output or its cost model is very wrong
<JordanBrown1> Is the function short enough that you could hand-analyze it?
<pca006132> yes
<JordanBrown1> that is, hand-analyze the resulting assembler?
<pca006132> yes, I planned to do so
<pca006132> but I probably need more coffee before that
<pca006132> analyzing these assembly cost is a pain even for something with ~10 instructions...
<JordanBrown1> I know that a lot of smart people have worked really hard on gcc. I know less about llvm.
J24k47 has quit [Quit: Client closed]
J24k47 has joined #openscad
<pca006132> from my understanding llvm is considered the more research/cooperate friendly compiler framework
<pca006132> and more modern
<JordanBrown1> Yeah, truly analyzing the performance is an enormous pain in the neck because you have to consider stuff like speculative execution.
<JordanBrown1> But you can at least look for overhead and dumbness.
<pca006132> I think the typical way is to analyze resource usage, latency, dependency, that kind of stuff...
<pca006132> and considering it is a loop, you have to repeat it several times to figure things out
<JordanBrown1> I'm sure it can be done right, and I'm sure I don't know how.
luqtas has joined #openscad
<pca006132> time to open the Agner Fog instruction table :)
<JordanBrown1> But it's easy enough to look at stuff like register use, loop unrolling, constant expression extraction, et cetera.
<luqtas> oie! how can i add "thickness" to an imported .DXF file?
<JordanBrown1> linear_extrude()
<JordanBrown1> linear_extrude(height=5) import("foo.dxf");
<luqtas> 55 would be 55 mm?
<JordanBrown1> As with all OpenSCAD units, they are dimensionless. But yes, they're normally interpreted as mm.
<JordanBrown1> Or, rather, at the top level of the model they are normally interpreted as mm.
<JordanBrown1> Since the top level is usually interpreted as mm, in "scale(25.4) cube(1);" the 1 is in inches.
<luqtas> *-*
<luqtas> interesting! same as Blender
<luqtas> i mean, the units being dimensionless
<JordanBrown1> I said "as with all OpenSCAD units"; I should have said "as with all OpenSCAD dimensions".
<luqtas> i'll cute this bit in Blender, as CAD is really alien tech for me
<luqtas> cute = cut
<JordanBrown1> linear_extrude() takes a 2D object and stretches it into the 3rd dimension.
<JordanBrown1> rotate_extrude() takes a 2D object and stretches it around a circle.
<JordanBrown1> Note: 2D objects are displayed as if they are one unit tall, but that is for display purposes only; they are really zero units tall.
<luqtas> interesting that .dfx "can't" be imported but if i drag and drop, the app does the import(); for me
<JordanBrown1> what do you mean by "can't be imported"?
<luqtas> JordanBrown1, yeah, that's why i was trying to figure out the extrude
<luqtas> File -> Open File doesn't show .dfx files
<JordanBrown1> Dragging and dropping a file onto the editor just does some typing for you; it doesn't actually import the file.
<JordanBrown1> Right. We can't "open" a DXF in any meaningful sense. We can bring one in as part of an OpenSCAD model.
<luqtas> it makes sense now, since it's treated as a 2D model
<luqtas> first time i ever heard of .dxf
<JordanBrown1> I believe it's AutoCAD's format.
<luqtas> hmm
<luqtas> autocad bad
<luqtas> :D
<luqtas> well that's what i got from a keyboard plate builder website
<JordanBrown1> Shrug. AutoCAD expensive. I assume that it's actually very good, if you need to do what it does. Otherwise, nobody would pay the big bucks for it.
<luqtas> yep... the industry standard, i believe
<JordanBrown1> Yes.
<luqtas> i mostly hate proprietary stuff as now i think everyone will mine models to later build AI models
<luqtas> but it's a blurry paranoia, who knows when we'll get 3D generation with AI
<JordanBrown1> Already.
ferdna has joined #openscad
<luqtas> is it good? i saw a paper from Nvidia and they looked like models with thousands of polygons for simple stuff
<JordanBrown1> No, it's lousy.
<JordanBrown1> I would give an example, but ChatGPT is taking forever to log in.
<luqtas> but i'm a rookie at Blender... i mostly work with super low-poly stuff... never touched the sculpting tool even working for a year with it
<JordanBrown1> Sculpting is art. I don't do art :-)
<luqtas> lol
<luqtas> i do art T.T
<luqtas> i get so horny on low-poly stuff
<luqtas> :D
<JordanBrown1> "write an openscad program that makes a house." -> https://bpa.st/DYVQ
<JordanBrown1> which looks kind of plausible until you try to run it and it uses a "vertex()" module that doesn't exist.
<JordanBrown1> must run
snaked has joined #openscad
buZz has quit [Ping timeout: 260 seconds]
buZz has joined #openscad
buZz is now known as Guest2970
Guest2970 is now known as buZz
<luqtas> the roof doesn't render for me
<luqtas> but yeah, that is extremely low-poly
<luqtas> literally the ideal?
<luqtas> :)
hyperair has joined #openscad
<luqtas> well, i gotta nap for hours, good-bye
luqtas has quit [Ping timeout: 255 seconds]
L29Ah has left #openscad [#openscad]
J24k20 has joined #openscad
J24k47 has quit [Ping timeout: 250 seconds]
guso78k has quit [Quit: Client closed]
LordOfBikes has quit [Ping timeout: 256 seconds]
epony has quit [Remote host closed the connection]
LordOfBikes has joined #openscad
mmu_man has quit [Ping timeout: 272 seconds]
omegatron has quit [Quit: Power is a curious thing. It can be contained, hidden, locked away, and yet it always breaks free.]
fling has quit [Remote host closed the connection]
fling has joined #openscad
fling has quit [Remote host closed the connection]
fling has joined #openscad
hyperair has quit [Read error: Connection reset by peer]
arebil has joined #openscad
arebil has quit [Client Quit]
arebil has joined #openscad
hyperair has joined #openscad
guso78k has joined #openscad
epony has joined #openscad
ferdna has quit [Quit: Leaving]
Bambukah has joined #openscad
<Bambukah> Good morning and have a nice day :)
teepee_ has joined #openscad
teepee has quit [Ping timeout: 255 seconds]
teepee_ is now known as teepee
epony has quit [Remote host closed the connection]
epony has joined #openscad
hyperair has quit [Read error: Connection reset by peer]
cart_ has joined #openscad
adigitoleo has quit [Ping timeout: 248 seconds]
adigitoleo has joined #openscad
noonien8 has joined #openscad
<J24k20> Bambukah you too
noonien has quit [Ping timeout: 256 seconds]
noonien8 is now known as noonien
mmu_man has joined #openscad
noonien9 has joined #openscad
noonien has quit [Ping timeout: 256 seconds]
noonien9 is now known as noonien
Guest89 has joined #openscad
Guest89 has quit [Client Quit]
GNUmoon has quit [Remote host closed the connection]
GNUmoon has joined #openscad
GNUmoon has quit [Remote host closed the connection]
<knielsen> teepee: Did you look at the 64-bit time bug on lib3mf (https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1062323) ? I'm not sure if we need to do something (on lib3mf, or package openscad which is a reverse dependency), or if the devs doing the transition will handle it all unless something unforeseen happens?
guso78k has quit [Ping timeout: 250 seconds]
mmu_man has quit [Ping timeout: 252 seconds]
mmu_man has joined #openscad
pbsds7 has joined #openscad
Reisga20 has joined #openscad
kahara has quit [Ping timeout: 276 seconds]
pbsds has quit [Ping timeout: 264 seconds]
Reisga2 has quit [Ping timeout: 264 seconds]
pbsds7 is now known as pbsds
Reisga20 is now known as Reisga2
kahara has joined #openscad
dostoyevsky2 has quit [Ping timeout: 276 seconds]
dostoyevsky2 has joined #openscad
L29Ah has joined #openscad
moonlight has joined #openscad
guso78k has joined #openscad
guso78k has quit [Client Quit]
mmu_man has quit [Ping timeout: 264 seconds]
snaked has quit [Remote host closed the connection]
califax has quit [Ping timeout: 255 seconds]
califax has joined #openscad
moonlight has quit [Ping timeout: 246 seconds]
mmu_man has joined #openscad
Bambukah has quit [Quit: Connection closed]
greenbigfrog has quit [Ping timeout: 260 seconds]
Bambukah has joined #openscad
greenbigfrog has joined #openscad
epony has quit [Remote host closed the connection]
fling_ has joined #openscad
fling has quit [Ping timeout: 255 seconds]
TheAssassin has quit [Ping timeout: 255 seconds]
aiyion2 has quit [Ping timeout: 255 seconds]
TheAssassin has joined #openscad
aiyion2 has joined #openscad
fling_ is now known as fling
To_Aru_Shiroi_Ne has joined #openscad
ToAruShiroiNeko has quit [Ping timeout: 276 seconds]
To_Aru_Shiroi_Ne is now known as ToAruShiroiNeko
kintel has joined #openscad
<kintel> Speaking of lib3mf, it looks like they managed to hire a contractor to do some development; at least some commits are trickling into the lib3mf devel branch: https://github.com/3MFConsortium/lib3mf/commits/develop
<kintel> Not sure how fun it would be to get lib3mf-2 into debian
<teepee> knielsen: I had that question yesterday too :) At first reading, I thought the NMU takes care of the issue
<teepee> kintel: yes, I saw that, no talk about debian packaging though (so far)
<teepee> problem is their use of the generator stuff, where I assume that has to be packaged first, so that's pretty annoying
mmu_man has quit [Ping timeout: 256 seconds]
mmu_man has joined #openscad
<kintel> Right, autodesk netfabb invented some custom IDL - looks messy to work with..
califax has quit [Ping timeout: 255 seconds]
califax has joined #openscad
califax has quit [Remote host closed the connection]
califax has joined #openscad
kintel has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
othx has quit [Ping timeout: 240 seconds]
othx has joined #openscad
TheCoffeMaker has quit [Ping timeout: 255 seconds]
TheCoffeMaker_ has joined #openscad
mmu_man has quit [Ping timeout: 276 seconds]
epony has joined #openscad
TheCoffeMaker_ has quit [Ping timeout: 264 seconds]
cart_ has quit [Ping timeout: 256 seconds]
TheCoffeMaker has joined #openscad
TheCoffeMaker_ has joined #openscad
TheCoffeMaker has quit [Ping timeout: 256 seconds]
<knielsen> teepee: right, let's see if it doesn't go by itself, the NMU is already in experimental. But I'll keep an eye on it and see if anything needs to be done
Bambukah has quit [Quit: Connection closed]
<teepee> yeah, date is 2024-03-16 so the transition should be done by then
<teepee> knielsen: how much do you know about golang packaging?
Braddo has joined #openscad
<Braddo> Hi, anyone home?
<Braddo> I have a question about how to do something that's hard to describe but I'm sure most have faced it...
<teepee> well, the is no way aound either describing it or giving some example code
<Braddo> Let's say I have two nexted boxes and I put a pin through to make a hinge so that the inner box can swing out of the outer box. Now the corners of the inner box will bind if they are not rounded off. That's what I'm trying to do - is there some special syntax or trick to round off the portion of that inner part that would otherwise hit the outer
<Braddo> one. I've needed to do this 100 times with moving pieces, whater the movement, somehow subtract away some of partB that partA will hit when it moves in a proscribed fashion.
<Braddo>  sorry took a bit to type it out
<Braddo> sorry meant to type "nested" boxes above
<teepee> there is plenty of time, it's not tiktok ;-)
<Braddo> I guess you can't see my dance moves in here
<teepee> I think I know what you mean but I have no catch-all idea for solving that
teepee_ has joined #openscad
<Braddo> In the hinge case it's not technically hard. I can figure the radius of the swing and difference a portion of a hollow cylinder from the box corner. Or I could have built a much more complicated box in the first place, but both methods are extremely tedious and I'll have junk code laying around with different sized portions of hollow cylinders. Is
<Braddo> there a better method to take than I'm describing (if even that makes sense)
teepee has quit [Ping timeout: 255 seconds]
teepee_ is now known as teepee
<J24k20> Braddo if your boxes are modules you can make a difference with a loop that rotates it
<J24k20> you also can make an inner fillet  that is substracted to  round the corner
<J24k20> Or build a round corner with a cylinder or sphere ..
<J24k20> paste! an image might help to give better advice
<J24k20> paste!
<othx> paste is https://www.3dcustomizer.net/paste for .scad files, https://bpa.st for text, https://pasteboard.co/ or https://imgur.com/ for images
epony has quit [Remote host closed the connection]
<Braddo> oh hi @J24k20 that sounds like an interesting option.
<Braddo> both suggestions. I'm not sure how to do an inner fillet, didn't know OpenScad supported that. I'll also have to investigate how to do a difference loop, sound promising.
<Braddo> At the moment I'm literally working with a couple of simple nexted boxes. Like this:
<Braddo> welp, guess I can't oaste an image?
<J24k20> use imgur.com and paste the link here
<J24k20> Braddo this will give you a fillet
<J24k20> difference(){cube([3,3,50]);cylinder(250,r=3,center=true);}
<J24k20> put this in a module and use it in difference with your cubes
cart_ has joined #openscad
<J24k20> there is also a nice tutorial for using scad
<J24k20> tutorial!
<othx> tutorial is The OpenSCAD tutorial is a great place to learn how to create designs in OpenSCAD, and can be found at: https://en.wikibooks.org/wiki/OpenSCAD_Tutorial
<Braddo> OK, here's the image I think https://imgur.com/gallery/KKZdX8q
<Braddo> I think the difference loop option will be best since there are three corners to round, each with a different radius
<Braddo> but I like the idea of having a fillet module around. I'm not super organized with my modules because I'm only episodically using OSCAD.
<J24k20> you can use a bigger gap  or create the box with rotate_extrude
<Braddo> I can imagine that differencing modules in a loop will chew a lot of memory. Probably needs to be used with a "render" statement, so as to do it only once.  Another function I never completely understood how to use
<Braddo> Yes, I can make the gap larger in any direction, and may need to so as not to severely truncate a box, but fo now, going for the smallest gap jlcpcb can print to see if I can print the whole mechanism in place. There will actualy be a third box as well - it's going to be a platform that can tilt in two directions.
<Braddo> thanks for the sketch
<J24k20> Kintel can you check why https://bpa.st/YGAQ has a tree that grows past 10000000 elements?  If you remove the render() command
<J24k20> hm it is not caused by manifold .. so maybe anyone else knows what is wrong here?
<J24k20> this looks like a bug for preview normalisation
<J24k20> i thought only intersection with differences are an issue - but differences with differences too ?
<knielsen> teepee: I don't any any experience with golang packaging
epony has joined #openscad
GNUmoon has joined #openscad
<teepee> knielsen: I suppose we need to package their generator from source, right? that said, I have not checked if the lib3mf build calls the binary generators or if they actually commit the generated source code too
<knielsen> yes, we probably need to run the generators as part of the build, Debian strongly prefers building all the way from primary sources, AFAIK
<knielsen> But if the generators are lib3mf-specific, then maybe they don't need separate packaging? If it's similar to a perl script run during the build or something like that?
<knielsen> But if it's separate programs used to generate lib3mf parts, like eg. bison/flex, then yes separate packaging could be needed, bundling unrelated sources in a package is referred to as "vendoring" and I think generally disliked in Debian
<peepsalot> J24k20: you can get an idea what is happening by viewing the CSG products: "Design" -> "Display CSG Products..." try it with just [0:2:2] then [0:2:4] etc. to see exponential terms. I think difference of difference maybe has the same sort of issue as intersection and difference.
<peepsalot> J24k20: i'm assuming you've seen the FAQ before https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/FAQ#Why_is_the_preview_so_slow?
<J24k20> yes that was my point - if this is also happening with differences alone we could/should mention it there too
TheCoffeMaker_ has quit [Quit: So long and thanks for all the fish]
TheCoffeMaker has joined #openscad
<J24k20> another thing is that you need to restart openscad after the warning pops up
TheCoffeMaker has quit [Quit: So long and thanks for all the fish]
TheCoffeMaker has joined #openscad
<peepsalot> J24k20: here is one of the replacement rules, so difference of a difference ends up inserting an intersection https://github.com/openscad/openscad/blob/master/src/glview/preview/CSGTreeNormalizer.cc#L203
<J24k20> oh ok - i have added a note in the FAQ
cart_ has quit [Ping timeout: 268 seconds]
TheCoffeMaker has quit [Ping timeout: 252 seconds]
pca006132 has quit [Ping timeout: 264 seconds]
adigitoleo has quit [Ping timeout: 248 seconds]
adigitoleo has joined #openscad
mmu_man has joined #openscad
pca006132 has joined #openscad
mmu_man has quit [Ping timeout: 272 seconds]
TheCoffeMaker has joined #openscad
mmu_man has joined #openscad