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
SamantazFox has quit [Ping timeout: 246 seconds]
rogeliodh has quit [Quit: The Lounge - https://thelounge.chat]
rogeliodh has joined #openscad
J2230 has joined #openscad
LordOfBikes has quit [Ping timeout: 260 seconds]
J22 has quit [Ping timeout: 252 seconds]
ur5us has joined #openscad
LordOfBikes has joined #openscad
<linext_> it would be cool to have a feature where i could use a slider to cut and hide part of the model
<linext_> kind of like the g-code hosts do when you what to show a range of layers
ur5us has quit [Ping timeout: 260 seconds]
average has joined #openscad
average has left #openscad [WeeChat 3.0]
dalias has quit [Ping timeout: 276 seconds]
dalias has joined #openscad
dalias has quit [Ping timeout: 256 seconds]
dalias has joined #openscad
dalias has quit [Ping timeout: 256 seconds]
<J2230> linext_  i have a module for that .. called  Cut()
<J2230> if you use Cut([0,0,1],z=z) and define z=0;//[0:20]     you have the slider as customizer
dalias has joined #openscad
dalias has quit [Ping timeout: 248 seconds]
dalias has joined #openscad
aiyion has quit [Remote host closed the connection]
GNUmoon has quit [Write error: Connection reset by peer]
aiyion has joined #openscad
GNUmoon has joined #openscad
dalias has quit [Ping timeout: 260 seconds]
dalias has joined #openscad
dalias has quit [Ping timeout: 248 seconds]
J2230 is now known as J22
<J22> So made some test with doxygen and well  https://pasteboard.co/QKUMPifZeAOT.png
<J22> the main problem is that *.scad files are parsed but not shown if not named *.h
<J22> and modules called function
<J22> But i think this would be a very importand step to have a library help in SCAD
dalias has joined #openscad
<J22> no scad files are read but not parsed
SamantazFox has joined #openscad
<Scopeuk> It must be possible to tell doxygen to parse and arbitrary extension. Surely "no one would make a parser that brain dead"
<Scopeuk> Looks like it can be done through config files, https://www.doxygen.nl/manual/config.html#cfg_file_patterns and https://www.doxygen.nl/manual/config.html#cfg_extension_mapping to set parse .ext and treat .ext as know format y
Joel has quit [Read error: Connection reset by peer]
Joel has joined #openscad
ur5us has joined #openscad
<J22> Scopeuk nice  that worked Thanks
<J22> not sure what the best option is .. i am mapping  scad=C
<J22> I see here a lot of potential to make libraries easier to understand and use
<J22> even without  doxygen comments  all variables modules and functions  are extracted  - i think https://ochafik.com/openscad/ is also using something to extract available variables for a function or module
ur5us has quit [Read error: Connection reset by peer]
ur5us_ has joined #openscad
ur5us_ has quit [Ping timeout: 240 seconds]
<Scopeuk> https://www.doxygen.nl/manual/faq.html#faq_pgm_X suggest that what you have is the best option without writing a scad parser for doxygen
<Scopeuk> If we can get 95% "for free" using the c parser then that's almost certainly a great starting point
<teepee> question is, if doxygen is the way to go. to me it seems like the dinosaur with most people having moved on
<J22> afaiu  it treats modules as function
<J22> doc++ seems to work too with doxygen but is much more limited in syntax
<J22> and there is a lot of converter tools https://www.doxygen.nl/helpers.html
<J22> and it is GPL2.0
<teepee> I guess the biggest competition is Sphinx
<teepee> regarding formats, doxygen seems to have quite some more options
<J22> regarding text format it seems sphinx  is more versatile - so far i have only found 1 (ONE) color that can be changed in doxygen .. not sure about fonts
<teepee> so far I've liked the read-the-docs theme and it looks like Sphinx can generate that
qeed has quit [Quit: qeed]
rvt_ has quit [Quit: rvt_]
qeed has joined #openscad
Guest80 has joined #openscad
<J22> from what i have seen sphinx need a lot of additional stuff,   while  doxygen has everything within the  code.  I don't think sphinx can be integrated into one scad file to create documentation as possible with doxygen  ( but as always iam new here)
fling has quit [Ping timeout: 240 seconds]
<J22> seems you need https://en.wikipedia.org/wiki/ReStructuredText  files to get sphinx working
fling has joined #openscad
SamantazFox has quit [Remote host closed the connection]
SamantazFox has joined #openscad
trashbird has quit [Quit: Ping timeout (120 seconds)]
trashbird has joined #openscad
milza has joined #openscad
Guest80 has quit [Quit: Client closed]
neur0 has quit [Remote host closed the connection]
neur0 has joined #openscad
Notkea has quit [*.net *.split]
ABSHK has quit [*.net *.split]
ABSHK has joined #openscad
Notkea has joined #openscad
milza has quit [Read error: Connection reset by peer]
milza has joined #openscad
<InPhase> J22: Good plan. Doxygen would really spruce up ub.scad
<J22> lot of work to get all comments in .. but then it should be easier to maintain ..  still wondering as when i search i get the function/module but without the  comments - which i only find at the beginning  with a link to its code ..
Guest43 has joined #openscad
<Guest43> Hi, I'm new to OpenSCAD (but have some amount of experience using FreeCAD and other "traditional" CAD software for 3D printing). I really like the idea of doing things programmatically and decided to try to re-create a simple shape I made earlier in FreeCAD as a learning exercise. However I'm really struggling with chamfers. I managed to deal with
<Guest43> convex external chamfers reasonably using hull(), though my solution is not generic (but specific to my shape). However, internal or convex chamfers just seem silly complex. I assume I'm missing something basic here.
<Guest43> I uploaded the code I wrote so far (which works, but seem needlessly complicated) to a github gist, in case anyone can take a look at it and offer some suggestions for what I should have done instead: https://gist.github.com/VorpalBlade/ff941cb400cce6a8ddeebd465692979f
* InPhase clicks.
<Guest43> There is a link to the part I recreated in a comment at the top of the file (with pictures of it). I'm not trying to slam on OpenSCAD (since I really like the idea of programmatic CAD), but this part was one sketch, one extrude and one chamfer operation in FreeCAD. And honestly, OpenSCAD was just as easy up until I tried to add the chamfer. I
<Guest43> couldn't get that working for the holes using a 2D+extrude workflow, but ended up using 3 cylinders to define that.
milza has quit [Quit: milza]
<InPhase> There are a couple different ways to do this sort of thing. Let's see.
<Guest43> Awesome, I look forward to being educated.
<J22> 90° chamfer are very easy Ü
<J22> looks nice .. where is the problem?
<Guest43> J22 Hah! Unfortunately I was going for 45 degrees. And I really need a chamfer (or fillet, but that is more difficult to get good results with when 3D printing) in this application to prevent the rope running over it from fraying
<J22> I assume you don't want a lib when you try to learn this
<Guest43> I see two problems with my solution: 1) Is that it seems needlessly complicated (compared to a traditional CAD software). This would be fine if it could be abstracted into a library module that I could reuse (I searched for this and found a few for fillets, but nothing that mentioned chamfers). 2) I could not come up with a good generic solution to
<Guest43> do this in a generic way that could handle concave shapes.
<Guest43> Impressive, but a lot of fillets rather than chamfers mostly. I understand that minkowski can be used for fillets (though apparently lots of people complain in forums that it is slow?), but it doesn't really seem suited to chamfers. Also it enlarges the shape which I guess just means you first need to do a negative offset() to compensate for it.
<J22> each fillet becomes a chamfer when fn=4
<Guest43> Hm, can you set $fn locally so that you can still have an over-all round hole with a chamfered edge?
* Guest43 goes to look at the documentation for $fn again
<Guest43> Ah, they are scoped apparently. Well that helps.
<J22> chamfer on a cube  works great with minkowski  with $fn=4  as this fits with the edges
<Guest43> Hum, interesting. Now the question is if I can figure out how to do the sort of hour glass shape my hole needs to be with this for the difference() operation to work.
<J22> wenn using a linear_extrude  scale you need to calculate the scale with the radius (atan) to get the proper angle
<Guest43> Sorry, you lost me there. Why would I use a linear extrude scale? That only works for radially symmetric shapes. I tried that early on before I realised that scale != offset (it created very strange base shape in my case). That is why I ended up with the three differently scaled objects for the base and then a hull() instead.
<Guest43> (Sure it works for the simple circular hole.)
<Guest43> Okay, yes, that is a clean and neat solution for the hole. No problem there.
<J22> scale can be [.7,.3]  so it works for rectangles too
<J22> also always the question how perfect the chamfer needs to be so it can be used for  triangle
<Guest43> ah, didn't know you could have asymmetric scaling. Neat.
<J22> But there is a experimental feature that makes things very easy - called roof .. but it is only in the dev snapshots and needs to be activated first
<Guest43> Ah okay. Something to look forward to in the next release I guess?
<J22> you can use a difference with minkowski  a negative of your object  -  but this is slow -  minkowski gets problems in concave situations
<InPhase> Guest43: This is the approach I would use: https://bpa.st/O65A
<J22> i am using the snapshots all the time - so many improvements , no need to wait
<Guest43> Hm, right. Yeah, I really like openscad so far except that applying chamfers to non-trivial shapes seem nedlessly complicated. I would preferably like an easy method (possibly using a library) to just say "chamfer all 90 degree convex edges of this object by cutting away material", and "chamfer all 90 degree concave edges by adding material".
<Guest43> Are there any precomplied AppImages or such for the snapshots? Sure, I'm on Arch and my day job used to be as a C++ software engineer. That doesn't mean I enjoy compiling though.
<InPhase> And yes, there's a nightly release appimage.
<J22> You can see InPhase uses a very elegant way by creating a polygon
<Guest43> InPhase Huh, reading though it atm.
<InPhase> Guest43: The chamfering to existing shapes can indeed be a little tricky. But that's because OpenSCAD works in the reverse from many other CAD approaches, building up from the bottom. So notice the chamfer is the very first thing I wrote, and I built around it.
<Guest43> Oh, rotation extrusion. Yeah that would have simplified the hole. Why didn't I think of that heh...
<InPhase> There are of course ways to modify existing shapes, so you can certainly cut chamfered holes in things, and hack chamfered outsides off of things. But when you want the elegant solutions, you usually have to think like code and build up from low level components.
<J22> The main fun in openSCAD is the puzzle how to do it ..
<Guest43> Well, that puzzle is there to some extent with traditional CAD too.
<InPhase> And the chamfer on an arbitrary shape is one of the lowest level pieces, because it gets wrapped out all along the contour of the shape.
<J22> and as you will always need these "hourglas" shapes - you will write a module for it and put in a lib
<InPhase> So, that is what I did with rotate_extrude, and did code-reuse on the edge when I recognized it was identical.
<J22> the problem in CSG is you can not access edges
<Guest43> Hm. Yeah I guess it is a different mindset.
<InPhase> But yes, you can also do a module for hourglass holes, and just reuse that a lot. It's a common thing to want.
<J22> don't worry your mind will adapt by using it - also to the functional language and recursions
<InPhase> modules can operate on their children, so you can make a PutHourglassHoleAt([x,y,z]) MyThing();
<Guest43> @J22 I don't have a problem with functional. I know Haskell :P
<InPhase> With dimensions passed.
<J22> great ( when i heard C++ engineer i thought - he will not like that)
<Guest43> InPhase Sure, that might be a bit cleaner than difference() { BaseShape(); translate(...) hole(size...); translate(...) hole(size...); ... }
<Guest43> @J22
<Guest43> oops
<Guest43> @J22 Former job. Now I'm a PHD student. And I spent a lot of the last week writing Prolog code. Now THAT is a mindscrew language.
<InPhase> Guest43: Yeah, the difference in a big nesting pile can get a little messy. My threading library has a ScrewHole module designed like this to help manage the mess.
<J22> when you have chamfers on curves that have a second dimensional bend you have not much choice but using some polyhedron and path to generate those
<Guest43> InPhase Edge() function you used is a bit weird. Maybe it is just the name throwing me off. But it depends on both "global variables" and parameters and end up creating either convex or concave shapes.
<InPhase> Yes, there's a little hackery in the negative parameter for Edge. I take advantage of the fact that rotate_extrude accepts polygons all x>=0 or all x<=0, and put the internal chamfers as negative inputs for radius.
<InPhase> This is just so that the r-chamfer is subtractive or additive. This is a cheap hack. :) You could spell it out more explicitly.
<J22> you know the cheatsheet?  and  ! , #  and * modifier?
<Guest43> J22 Hm when you said path... Is there something like a morphing extrude along a path. What FreeCAD would call a loft or pipe? I don't remember seeing that in the wikibook so far.
<InPhase> Guest43: No, not really. But there are libraries that can do such things: https://github.com/rcolyer/closepoints
<J22> there are lib that can do this
<Guest43> I have been using the cheatsheet a lot. I have not yet internalised the modifiers, I keep forgetting that they exist.
<InPhase> Guest43: Scroll on that github link to see the roller coaster gif in the middle.
<Guest43> Oh cool. How long did it take to render though?
<Guest43> (not the animation, I mean for openscad to render the base shape)
<InPhase> Well animation takes a while. The track takes 0.2 seconds.
<Guest43> Not bad
dalias has quit [Ping timeout: 248 seconds]
<Guest43> Well, this has certainly helped. Big thanks to both of you!
<J22> when you create points and a polyhedron .. there is nothing to calculate for oSCAD  you already made the object
<InPhase> My recent complex designs are usually pretty fast, while my early complex designs would often take 30 minutes or more to render. It varies by approach, and I got better at approach, so they got much faster. :)
dalias has joined #openscad
<InPhase> Guest43: As a functional programmer you might appreciate that the fast approach for that track is basically just nested functions defining the operations to make the track along the path.
<InPhase> And some matrix operator sequence building, abstracted out as functions.
<Guest43> I am wondering how I would go about creating certain shapes though, but yeah it will be like a puzzle. And probably traditional CAD makes more sense for certain objects. Take something like this I made earlier: https://www.printables.com/model/86577-subaru-legacy-outback-2011-4th-gen-trunk-cover-sup The shaft part of that shouldn't be hard (It is
<Guest43> just shaft with a shape for some tabs cut through and then the tabs extended a bit out. But the "thing" at the end of the shaft might be a pain to do with all rounded corners.
<J22> with roof()  (the experimental feature)  this https://imgur.com/a/gkyr2bx  is  very easy to make
<InPhase> Guest43: Rounded corners examples: https://github.com/rcolyer/smooth-prim
<InPhase> Guest43: Note one of the features there is "ChamferHole", which is your hourglass shape that you fought for.
<Guest43> Neat
<InPhase> (I forgot that was in there.)
<Guest43> Okay, I absolutely need to have a look at that roof thing
<J22> using  offset ±  and otherway around you can round polygons
<InPhase> J22: Oh. Maybe a roof/mirror/roof example of Guest43's initial problem would be pretty compact.
<Guest43> hm yes, a 2D sketch with the holes and roof, and a mirror to below. I see what you mean
<J22> InPhase yes with my lib this is one line of code  Ü  ok  3 normal lines
dalias has quit [Ping timeout: 248 seconds]
* InPhase chuckles.
dalias has joined #openscad
<Guest43> Your lib being the smooth-prim one you linked earlier?
<J22> na that is InPhase
<Guest43> (ah sorry, this web UI thing libera has displays J22 and InPhase in the same colour and you were mentioning InPhase at the beginning of the line)
<J22> The funny thing  -  at some point  all general libs have the same objects - because all struggle with the same problems when making objects for 3d-printing
<Guest43> True, and even for other subtractive manufacturing processes, you usually want similar shapes
<J22> A very nice  journey is to check out the advents calendar   because  there a lot of  "show off" can be seen
<Guest43> Though the fact that you can't do a STEP file export from OpenSCAD does cause a problem if you want to do traditional CAM.
<J22> you have 3mf  so the mesh is there  and you can have the CSG export  ( FreeCAD can import oSCAD)
<J22> https://openscad.org/advent-calendar-2019/   and counting  2020 2021
<Guest43> Except I ran into an issue with that. I use the LinkStage3 branch of nightly built AppImage of FreeCAD. And openscad from my system. The AppImage bundles an older Qt version than my system openscad is linked against. And messes with LD_LIBRARY_PATH. So yeah that doesn't work.
<Guest43> Should work if I use the AppImage of OpenSCAD as well I guess
<Guest43> That tree in 24 is really impressive. I wouldn't think about using CAD for such models (rather I would assume something like Blender would be better, but I have no artistic skill and never used Blender, so who knows).
<InPhase> Guest43: I was inspired by a video I had seen a bit ago about procedural generation of video game landscapes. And I figured module recursion would work just fine for this. :)
<Guest43> You made that one? Congrats on your skill!
<InPhase> Yep. I did the wreath first in 16, then upgraded to the tree.
<InPhase> Also the Santa in 23, but that one was all just manual arrangement of pieces.
dalias has quit [Ping timeout: 248 seconds]
<Guest43> Okay the 2021 24 is pretty cool too
<InPhase> The train tracks in 10 for 2019 were mine as well. That was a printable toy for my kid, compatible with the Thomas trains.
<InPhase> 18 was partly mine. That was a group effort in here. peepsalot figured out the light cone part.
<Guest43> looking at that wiggling cube for 2021... How does that even work? Specifically where is the part where it wiggles?
<InPhase> :)
<InPhase> J22 made the wiggly sheet thing, and I stole that and made it into a cube that rips apart.
<Guest43> Oh is it basically built of many small blocks approximating the sheet?
<InPhase> Yep.
<InPhase> So a 2D for loop of blocks of varying color, and functions for the position that depend on $t the animation time parameter.
<J22> you can't give faces of polyhedra different colors .. so you need to use small blocks
<Guest43> A think J22 said above made me think: "The funny thing  -  at some point  all general libs have the same objects - because all struggle with the same problems when making objects for 3d-printing". Maybe that means those things should go into a bundled OpenSCAD standard library? The standard library of OpenSCAD seems really minimal compared to
<Guest43> something like, lets say, Python.
<InPhase> Well we try to keep as much as possible in external libraries.
<Guest43> Well, different design decision I guess. There are both pros and cons to having a large standard library
<J22> there are soma "official external" lib
<InPhase> So we've instead expanded out things like adding function literals (first class functions) and other such features to make the external libraries more capable.
<InPhase> What we really need is better standardized library packaging going forward. Like pip
<peepsalot> many people want a standard library with everything in it, not many people volunteer to maintain that library though
<J22> and when you use more lib from different people - you need to hope they used different names
<Guest43> With all due respect to pip. It has terrible issues. Probably looking at npm is a better option. It handles conflicting versions of the same dependency much better
<InPhase> peepsalot: More importantly, people want a standardized library with the things important to them, and designed the way they want to use it. :)
<J22> also turned out one big lib is not ideal as it slow down a bit
<Guest43> hm, that would be an issue with the parser presumably, and putting everything in one file. If a library could be split into multiple files and lazy loaded that wouldn't be an issue.
<Guest43> or preparsed/compiled to bytecode
<Guest43> (or you could just load the files you want)
<InPhase> I went and made a very efficient threading library, because threads are a super common need. Maybe 25% of the comments I get about it are something like, "Where are tapered npt threads?" or "How do I do double-start threads?", features that are not in there. There are an infinite variety of variations of threads you could need. This is why standardized libraries are probably not the ideal approach to
<peepsalot> openscad doesn't use bytecode (not a VM)
<InPhase> these sorts of problems. The right answer is, people should probably use one of the other dozens of threading libraries out there.
<InPhase> There are other programming problem domains where this is a bit different, but 3D modeling has very diverse needs I think.
<Guest43> Well someone has implemeted 4-start threads at least. Prusa uses openscad and my Prusa i3 Mk3s has 4-start lead screws. So I presume they modelled the interfacing parts somehow
dalias has joined #openscad
<J22> you also just have so different "customer"   one  want a module  "Washer(dia=50, hole=20,h=2) ..  and is not happy when you tell him he can use "Ring(r1,r2,h)"
<InPhase> Yeah, there are libraries for it. I think J22's library also does multi-start, although with some other pro/con tradeoffs. That's the nature of it.
lastrodamo has joined #openscad
<J22> Prusa uses openscad?  .. he didn't answered  teepee
<Guest43> That seems like a good rationale to it yes. But yes, a good library & dependency manager would be nice (but is also quite a bit of work to implement, plus a library registry like pypi, ...)
<InPhase> When we get ourselves an easy method to auto-grab libraries, then we will make these almost as transparent as a standardized library would be.
<Guest43> I remember seeing a git repo with openscad files for the Mk3s at least
<Guest43> Not sure if they use openscad for the mini as well
<peepsalot> openscad was used for prusa printers up to i2 afaik, but i didn't think i3 kept with it
<InPhase> Since OpenSCAD modules do not run executable code, there should be no hazard in just automatically getting needed libraries.
<InPhase> (i.e., not a security risk)
<Guest43> That contains scad files?
<Guest43> Don't know if they used openscad for the non-printed parts though
<InPhase> J22: I think Prusa used to do his printer designs on OpenSCAD but switched away from it at some point to a proprietary solution, for some reason. We need to lure him back to the land of open source. :)
<Guest43> The MMU2 is there too in a different branch. The mini is not
<J22> he can design his printers with whatever .. but should get the customizer in printables
<Guest43> Nor the resin one (forgot the name of it)
<J22> i think a voron  with scad would be difficult as it is full of 3D surfaces
<InPhase> OpenSCAD is pretty close to the perfect system for designing printer parts, with everything parametric.
<Guest43> Yeah the mini is in https://github.com/prusa3d/Original-Prusa-MINI which uses some other format (.ipt, don't know what that is)
<J22> oh an answer Ü
<juri_> yeah, it's sad when people resort to other tools.
<J22> obviously  printables didn't understood  WASM
<Guest43> J22 if you can do those wiggling sheets, then I don't see why you couldn't do arbitrary 3D surfaces. Might be annoying if they are not mathematically simple I guess
<InPhase> teepee: Sounds like a "sounds like a lot of work, but maybe if you make it easy" response.
<teepee> InPhase: yep, and I sort-of like that solution better anyway
fling has quit [Ping timeout: 240 seconds]
<J22> guest43  yes you can write a complete  CAD system in openSCAD
<Guest43> Is there any good reason why you couldn't use wasm to run openscad as a library in the browser?
<teepee> considering their tendency to fork and create separate software, it might be better that way
<InPhase> teepee: The truth is nearly all users benefit from it, because adjusting designs was a very popular feature on thingiverse. Not all design makers will take advantage of it, but the bulk of users are downloaders, not uploaders.
<teepee> Guest43: you can https://ochafik.com/openscad/#
<J22> peepsalot  has done that  (functional where every module is available as points)
<teepee> there's a couple of issues, e.g. the geometry engine uses stuff that is not available in WASM, but most of the worst problems now have at least a workaround
<teepee> InPhase: yeah, I'm not sure I get that part of the response considering the view on Thingiverse issues, but who knows, they might be too focused on their "we need to distribute g-code" strategy :)
<J22> there are  10 people  those how use SCAD and those who don't
<J22> i think an printables are a lot 360er
<Guest43> I have never had great luck finding the parts I need on thingiverse/printables. But then I mostly make replacement parts for something that broke, and the chance of someone else already having that exact part break, making a model and uploading it, and you knowing what the part is called ("the round hinge thingy on the no-name brand thingie"?) it
<Guest43> is not great.
<teepee> but I'd prefer an open source solution usable by anyone "just" integrated even better than a partially closed solution they provide
<teepee> that said, I have not checked if their website is open source
LordOfBikes has quit [Ping timeout: 246 seconds]
<Guest43> by the way, since openscad is functional, I notice that it only seem to be using one CPU core during rendering. Shouldn't it be theoretically easy to parallelise it, since in a difference() for example you could evaluate the sub-parts individually and them merge them afterwards. Looks like a classic map-reduce to me. Of course, it might be hard to
<Guest43> guess which operations would benefit from such splitting, but you could just expose that to the user and let them figure it out where to add a parallel()-modifier or such
<Guest43> (of course, I realise the actual code base implementing the rendering might not be written in a functional way making this infeasible in practise)
<juri_> parallelizing SCAD is a Hard problem. too many libraries involved.
<teepee> Guest43: it's not so much the language the problem is the geometry engine that did not easily support multithreading
<Guest43> ah
<peepsalot> J22: i wouldn't call it "complete"... missing boolean ops makes it unfortunately too limited for most people to bother with it
<teepee> the newer stuff seems to open much more opportunities now, we'll see
<teepee> Guest43: actually there's 2 different approaches people have tried with the older geometry stuff, one even using full data serialization
<J22> the future is an AI creating parts with GANs
<teepee> who knows, maybe if the bounty goes up even more :-)
<teepee> multithread is still more scary than $1000 :D
<Guest43> teepee Oh like multiprocessing in python (as opposed to the threads)?
<juri_> teepee: much more so. ;)
<peepsalot> isn't latest CGAL supposed to be multithread friendly?
<Guest43> I mean, if your code base has global state, just using separate processes is a workable approach
<J22> https://openai.com/dall-e-2/   ⇐  this  but with scad
<teepee> Guest43: yes, using actual processes having the interesting benefit to be able to safely cancel just any time which is hard to impossible with thread going into long running stuff in external libraries
<Guest43> J22 That but in 3D alone would be pretty cool. Unfortunately there are many hurdles to overcome with that. And I don't see a NN approach ever reliably doing precise dimensions and mechanical fits (source: my research field is on combining AI and reasoning),
<teepee> peepsalot: not in general and not all the "old" NEF boolean as far as I can tell, even though there's a promising statement in one of the release notes (5.4 I think?)
<teepee> peepsalot: but I believe ochafick mentioned the corefinement is much better prepared
<J22> i have seen demos where AI using 3D approach to identify objects in an image to draw from a different side
<teepee> and for that matter, the Manifold library is so much more impressive even :)
<J22> and you just need give some controle points like in generative design
<Guest43> teepee Hm, yes. Assuming you do manual memory management (not GC, not even smart pointers) cancelling would indeed be hard otherwise.
<teepee> yep
<Guest43> J22 sure, I could be wrong. And I believe it can be done, just not reliably. Adversarial examples is still a big unsolved problem.
<teepee> yeah, I don't see an AI designing the thing I'm currently printing
<teepee> it needs to fit the ikea lack table for holding an hdmi matrix switch + the remote :)
<teepee> giving all those measurements might be easier in the openscad script
<Guest43> To be fair, I wouldn't have seen something like dall-e-2 as feasible 10 years ago. So who knows.
<teepee> lets see if the web version can handle that
<J22> i think this is about input and if your  fruit phone has a laser scanner  the app will now the dimensions
<J22> photometry is getting so much improvements
<Guest43> I haven't tried the fruit laser scanner (I have robot phone). I have tried LIDARS for robot navigation, but they lack the resolution for this purpose (but are reasonably accurate as long as you don't involve glass, or hit right on the corners). I have tried photogrammetry, but that was nowhere near the required accuracy in my test.
<J22> meshroom (alicevision) is  already doing a great job with images alone
<Guest43> really? things must have changed in the last couple of years then. I think it was 3 years ago I tried meshroom. Sure it would work fine in a game engine, but not for printing a copy.
<J22> there are laser scanner in industry .. just bit expensive for private  but  that gap is shrinking
<Guest43> That is true
<J22> and if you have higher res images and more computing power - results improve
<Guest43> I did use my smartphone camera, but modern smartphones have pretty good cameras.
<othx> J22 linked to YouTube video "Apple LiDAR scanning - Accuracy and App testing" => 1 IRC mentions
<othx> J22 linked to YouTube video "3D Scanning for Free" => 1 IRC mentions
<Guest43> It is good, but notice how flat surfaces are not perfectly flat, but wavy. And internal sharp corners are rounded. If you want to scan a mechanical part and print a copy that would need postprocessing to clean up. Also it has trouble with thin rods for example
dalias has quit [Ping timeout: 248 seconds]
<J22> they already using photometry to check parts in industry
<Guest43> I'm watching the second video now. I'm impressed.
<J22> sure a CMM is better but  if printing is at .1 accuracy .. you don't need  more  - sure for cnc machining you want  at least 10μm
<Guest43> In that example it will still require cleanup though, you presumably would want to print a part that is not cracked and broken. No way around that (unless you can get AI to do that?) Also the part had perfect texture to make it easy to scan. I understand smooth and uniformly coloured parts are much harder to scan with photogrammetry.
<J22> and with money you get into that 20μm domain www.creaform3d.com
<J22> the trick is they not using laser to scan or images .. but projecting a pattern and record the distortion
<J22> (what also the fruit phone does)
<Guest43> hm I tried a Intel RealSense camera that did that once (for robot navigation purposes). It wasn't great for my needs (it overheated if it ran for too long, and the range was too short).
<J22> if you can scan something and the give control points .. like  holes 5mm  20 appart  and with these restrains  either run generative optimization  or  just correct the object
<J22> with the self driving cars   ( mercedes has now level 3)  and we are getting phase array scanner chips -  also some just using cameras and AI
dalias has joined #openscad
<J22> soon you will get a scanner for 100 ¥€$  that can give that precision  -  also in theory a 3D printer with a probe would be able to make a good copy - just haven't seen anyone  doing the software
<J22> or look at the ToF cameras
<juri_> I like looking forward to the future as much as anyone. now, implement the change that's required to get there. :)
<Guest43> with regards to probes, I have seen that done using metal mills. Same idea would indeed work for a 3D printer.
<juri_> bonus points if you can make the tools we have today integrate well with the ever advancing hardware. I'd love a good scan-and-print system.
<J22> https://www.pro-4-pro.com/en/product/34924-lucid-vision-labs-helios2-time-of-flight-camera.html    sub mm on 1m distance .. less than warping of some prints Ü
<Guest43> Still, if you want to take a scan of an imperfect real world object and turn it into a mathematically perfect and smooth step file. Well, maybe that too can be automated or heavily assisted in the future. I think I saw something about Autodesk trying to do that recently
<J22> juri_  the question is what would you pay for it
<juri_> I already pay for it with my time. :)
<J22> Guest43 the will always be meshes or voxel - if you don't have some "recreation"
<Guest43> Indeed. The big question is if or to what degree that recreation can be automated.
<Guest43> And taking it one step further: Lets say I scan a *broken* part. Now I want to print a non-broken replacement part. That requires some 3D modelling of some sort. To what degree can that be assisted?
<InPhase> Guest43: The AI technology that gives us paragraphs or essays when we feed it a prompt, and the ones that produce image renders from a prompt, indicate that we should be able to AI generate scad source code with some reasonable reliability when fed an image or a prompt.
<InPhase> Guest43: General source code would be out of scope, but scad is a restricted enough subdomain that I think this is already technically possible, it would just be a major undertaking to get working.
<juri_> you might be able to steal some algorithms from https://github.com/uwplse/reincarnate-aec/ , which has a primitive STL -> SCAD engine.
<Guest43> I would not say general source code is out of scope, consider https://copilot.github.com/
<linext_> teepee: he writes that printables has grown 2.5x in 6months
<linext_> a customizer would easly make it 10x growth
<Guest43> I haven't tried it myself, so I don't know how it works in practise
<linext_> i mean, isn't the point to beat thingiverse?
<InPhase> Guest43: Yeah, I suspect that's going to have a lot of fails, help some of the time, and be in the way or give wrong solutions many other times.
<Guest43> Probably. I also heard people complaining about it copying code verbatim from GPL projects. How does the license work with that? As a user, you have no reasonable way of knowing that. But arguably "I fed it through a NN" should not be a valid way of getting rid of copyleft either.
<InPhase> A court will likely still find that infringement.
<linext_> i wonder if prusa would be ok with providing a server for customizer development and having a hybrid team of volunteers and paid workers
<teepee> linext_: not sure, there might be a feedback loop not happening now with no customizer = less interest in people uploading scad
<linext_> lots of scad get uploaded to printables.com, but some people don't download the software / web app to get the STL rendered
<dalias> "AI" is an utter fraudulent garbage fire. nothing more
<dalias> including copylto
<dalias> copylot
<linext_> some don't like modifying text files rather than filling out a form
<teepee> I'd be interested in having a standalone solution everyone can use but could be integrated into printables
<linext_> i'd be willing to help you with that
<InPhase> When I went to check printables for stuff I saw a lot of projects that said in their description that it worked in customizer. I poked around a bit looking for the customizer, but these were copy/pastes from thingiverse.
<teepee> cool, hopefully ochafik will be back too
<linext_> InPhase, yes, there's a process to batch import all your thingiverse models
<InPhase> That explains it.
<InPhase> I didn't try making an account, since it didn't have one.
<J22> every time you see the blue rendered images
<InPhase> Which I guess goes to teepee's feedback loop notion.
<Guest43> Does anyone know if there is some sort of project to mass-archive thingieverse? I can't imagine thingieverse will be around for more than at most a couple of years given the parent company's disinterest. Would be a shame to loose a lot of models.
<linext_> you could scrape the site
<linext_> i recommend using Google Puppeteer on Node.js
<Guest43> Sure, but I assume that would take a large amount of disk space. Not something I could personally do.
<Guest43> That seems promising
<InPhase> Guest43: This is one of my designs that I know I never put anywhere other than thingiverse, but for which this text does not exist elsewhere on google. So this is also a list of all the sites that are grabbing all the stuff they can off of thingiverse and mirroring it: https://www.google.com/search?q=%22customizable+drywall+anchors%252C+auger-style%22
<InPhase> Oops, that link paste didn't work right.
<Guest43> yeah some sort of fail with the URL encoding
<InPhase> google.com/search?q="customizable+drywall+anchors%2C+auger-style"
<InPhase> 4th time is the charm.
<teepee> :)
<InPhase> But basically, that's a lot of random sites I've never heard of that are just taking advantage of the "free" content.
<InPhase> So as long as the licenses permit it (and maybe even if they don't), the stuff is all copied all over already.
<teepee> yeah, I heard creality cloud may have you covered too :)
<teepee> uh, that 3dmixers site even has the attribution card included
<J22> seen several uploads on printables  where people upload models from other peoples things  .. some as remix (without change) some also mention that it is not their design
<teepee> that's a very annoying trend these days, with pretty much all content
<teepee> even worse when people try to make money based on that
<InPhase> Oh, actually when I check the details most of those are just front-end sites that are linking to thingiverse.
<InPhase> So I guess that's not so many places really having the content.
<teepee> yeah, stlfinder is just a search engine I think
<InPhase> Only 3dmixers actually has it.
<teepee> but that 3dmixers seems to actually own the downloads
<InPhase> There were so many links I thought lots had done this. (I had checked searches like that before, but didn't actually follow the links.)
<teepee> InPhase: nice portfolio https://3dmixers.com/user/rcolyer/portfolio
<InPhase> teepee: lol. That's a nicer display than the one on thingiverse that I put those on.
<InPhase> Maybe I need a 3dmixers account.
<othx> teepee: Okay.
<linext_> how about www.customzier.3d
<J22> there is that crypto scam running with  send us crypto we send double back  ..   ich checked the wallet ,  so easy to make money today
<teepee> linext_: nope, don't like the typo :P
<teepee> what for?
<linext_> you could have an iframe / API
<linext_> so having control over the SCAD to STL
<teepee> yes, although CORS is fun
<InPhase> teepee: Weird... Those designs all have ratings on a 5 star system, but where did they get the ratings from? 3dmixers does not appear to have a login or registration system, and I don't think thingiverse has a 5 star rating system.
<InPhase> 3dmixers also doesn't have a rating system that I can find.
<teepee> haha, maybe it's on dowload or so?
<teepee> speaking of typos...
<InPhase> Doesn't seem to be.
<teepee> strange
<teepee> maybe they even copied from somewhere between thingiverse and themselves
<InPhase> Or they just made up the ratings? They're pretty weird. Fabric Weave is 5 stars, which doesn't make sense. It's clever but not even remotely useful.
<InPhase> The combs on the other hand have near universal satisfaction from what I've previously gathered.
<J22> like to get downvoted stars because someone think he has already seen something like this so it is not unique and doesn't deserver 5 stars
fling has joined #openscad
ur5us_ has joined #openscad
la1yv_b has quit [Read error: Connection reset by peer]
la1yv_b has joined #openscad
rvt_ has joined #openscad
la1yv_b has quit [Read error: Connection reset by peer]
la1yv_b has joined #openscad
<gbruno> [github] t-paul pushed 1 additions 1 modifications (Add book Simplifying 3D Printing with OpenSCAD.) https://github.com/openscad/openscad.github.com/commit/d3d31e2c4cd31541aa0291bd105dfcd821bb0bf6
LordOfBikes has joined #openscad
ur5us_ has quit [Ping timeout: 240 seconds]
<Guest43> So I just tried the nightly AppImage. Unlike the system installed openscad it doesn't pick up my dark theme.
<Guest43> That is weird
<Guest43> Ah, this is why: QApplication: invalid style override 'kvantum' passed, ignoring it. Available styles: Windows, Fusion
<teepee> yeah, I have no idea how to make it pick up system styles, it might be impossible as it ships it's own Qt
<Guest43> Would be nice to have a dark theme though that wasn't eye searing. Even if it is not the standard system theme that I use.
<teepee> I tried to add one and failed so far
<Guest43> oh okay
<teepee> there's a ticket for that :)
<teepee> it should be possible though
<Guest43> Couldn't you just bundle the files for one, say kvantum (which is quite configurable). That should in theory just work, right?
<teepee> in theory, yes
<gbruno> [github] t-paul closed issue #4202 (Error compling for Ubuntu 20.04.2) https://github.com/openscad/openscad/issues/4202
<gbruno> [github] t-paul closed issue #4154 (Customizer Presets don't save) https://github.com/openscad/openscad/issues/4154
milza has joined #openscad
milza has quit [Ping timeout: 276 seconds]
milza has joined #openscad
Guest43 has quit [Quit: Client closed]
milza has quit [Client Quit]
milza has joined #openscad
milza1 has joined #openscad
milza1 has left #openscad [#openscad]
milza has quit [Client Quit]
<gbruno> [github] Gregor-Gregor edited issue #4254 (Feature request: (Editor) mark unused code) https://github.com/openscad/openscad/issues/4254
dalias has quit [Ping timeout: 260 seconds]
dalias has joined #openscad
juri__ has joined #openscad
juri_ has quit [Ping timeout: 276 seconds]
<linext_> so the lawnmower handle i made broke
<linext_> the captive m8 nuts were pulling on the 3d print when everything was tightened up
<linext_> so the nut really needs to be pushing from the back, not pulling from the front
<gbruno> [github] Gregor-Gregor opened issue #4255 (Feature request: is_empty(geometry) function to test for empty geometry) https://github.com/openscad/openscad/issues/4255
<teepee> yeah, makes sense
ur5us_ has joined #openscad
lostapathy has quit [Ping timeout: 276 seconds]
<InPhase> linext_: Yeah, you want dispersive opportunities for all the stress points like that. The metal piece needs to be in the upper portion of the big knob mass.
<linext_> good to know i have a way to take the captive nuts out
<InPhase> lol, snap it?
<linext_> yea, instead of having to burn the piece
<InPhase> You can almost always break PLA with bolt cutters, good pliers, or a hacksaw for the worst pieces.
<InPhase> A hacksaw is a low cost extremely versatile tool. I went for too long in my life without keeping one around.
<InPhase> They come with the little tiny kind that just project the blade forward, and you can cut just about anything in existence with that if you just have a little patience. We lost a key to one of our bike locks, for example, so I just hacksawed it off right through the hardened steel. Took 5-10 minutes of moderate exercise.
lostapathy has joined #openscad
<InPhase> linext_: As for the model, the version I did the other day was imagined for one of those square-notch bolts, but I made sure to keep the pressure points of the square elevated upward into the main mass. This was motivated from having broken a lot of printed pieces. When it's down low, you both create a compression on the bottom plastic, and create a twisting torsion between the rod and the upper knob
<InPhase> mass. If the metal is in the knob mass, that torsion is just out to in distributed in a very thick piece.
<gbruno> [github] Gregor-Gregor edited issue #4255 (Feature request: is_empty(geometry) function to test for empty geometry) https://github.com/openscad/openscad/issues/4255
ur5us_ has quit [Ping timeout: 240 seconds]
lastrodamo has quit [Quit: Leaving]
ur5us_ has joined #openscad
<linext_> anyone here want to test out my web app? http://askjbc.com/
<linext_> it's for answering questions that anyone might have on some topics