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
Guest80 has joined #openscad
othx has quit [Remote host closed the connection]
othx has joined #openscad
Guest80 has quit [Quit: Client closed]
milza has quit [Quit: milza]
<gbruno> [github] jordanbrown0 opened pull request #4478 (Objects, geometry as data, module references) https://github.com/openscad/openscad/pull/4478
<gbruno> [github] jordanbrown0 edited pull request #4478 (Objects, geometry as data, module references) https://github.com/openscad/openscad/pull/4478
aiyion1 has quit [Remote host closed the connection]
<JordanBrown[m]> Woof. teepee, InPhase, anybody else... it would be nice to get more eyes and alpha testers on that. The biggest question is whether to use two separate syntaxes for objects and geometry, { name1:val1, name2: val2, ...} and {{ cube(); }}, yielding two different data types (object, geometry), or one syntax, temporarily {( name1=val1; name2=val2; ...; cube(); )}, would be permanent as { ... }.
aiyion1 has joined #openscad
<JordanBrown[m]> The latter "hybrid" syntax always yields objects, which have a semi-hidden geometry component.
<JordanBrown[m]> "hybrid" syntax is in some ways cleverer, but has rough edges if you want to operate on the geometry data separate from the name-value data.
<gbruno> [github] jordanbrown0 synchronize pull request #4478 (Objects, geometry as data, module references) https://github.com/openscad/openscad/pull/4478
othx has quit [Ping timeout: 272 seconds]
teepee_ has joined #openscad
teepee has quit [Ping timeout: 255 seconds]
teepee_ is now known as teepee
othx has joined #openscad
<teepee> not sure where the polyset.h -> PolySet.h is coming from, that should have failed locally too
<teepee> oh wait, unless you run on Windows which does not care?
<InPhase> Yep, that was a windows development.
<InPhase> Windows compilers should probably be issuing at least warnings about that.
<InPhase> It's an all-too-common error scenario.
peepsalot has quit [Remote host closed the connection]
peepsalot has joined #openscad
<JordanBrown[m]> yes, I run on Windows.
<JordanBrown[m]> If I need to do some Linux diagnosis I can fire up a VM, but I don't normally use it.
SamantazFox has quit [Killed (NickServ (GHOST command used by SamantazFox_))]
SamantazFox_ has joined #openscad
<JordanBrown[m]> pushed that fix
<gbruno> [github] jordanbrown0 synchronize pull request #4478 (Objects, geometry as data, module references) https://github.com/openscad/openscad/pull/4478
<JordanBrown[m]> InPhase note that the compiler that we support for developer user is an MSYS2 compiler, which is only sort of a Windows compiler.
<JordanBrown[m]> I should note that although I've run a few programs on this build, I haven't run the test suite... so there's always the possibility that I've subtly broken something. I figured that the PR processing would run it for me, and probably faster than I could run it locally.
<teepee> ubuntu 22.04 almost finished building
<JordanBrown[m]> started tests... cool
<teepee> tests starting but I'm seeing a number of fails scrolling by
<teepee> we'll see :)
gunnbr has joined #openscad
<teepee> cgalpngtest_module_literal_extrusion3d
<teepee> cgalpngtest_module_literal_extrusions2d
<JordanBrown[m]> I see a couple of textmetrics echo tests failing... no surprise, I changed the string format of an object.
<teepee> well, we probably dont want dumptest-examples_modlitexamples_member_access ?
<JordanBrown[m]> The module_literal tests are kwikius's. I assume that they worked in his build, but I haven't tested them in mine. I did strip out several of his features.
<teepee> or is that for the case where access is wanted?
<JordanBrown[m]> And yes, the member access stuff he removed before I grabbed it.
<InPhase> JordanBrown[m]: Mingw in msys2 is precisely the compiler I'd think would benefit the most from doing those case sensitivity checks under Windows, to ensure it will build across the gcc lines. I just think it's odd that's not an existing feature. (And yeah, using the first PR build to catch the cross-platform stuff is what it's there for.)
<JordanBrown[m]> InPhase but does the compiler even know that it's running under Windows?
<InPhase> Well I would hope so. How else would it build an exe file? :)
<JordanBrown[m]> Compiler doesn't build exe files...
<JordanBrown[m]> linker does
<JordanBrown[m]> but indeed the linker would need to know.
<InPhase> But also it's reporting the platform to the things it builds, so that information is in there.
<JordanBrown[m]> True.
<teepee> right most of the fails are just syntax errors
<teepee> but I would assume there's more to that
<teepee> that *could* be a config thing
<teepee> different echo syntax
<teepee> = vs. :
<JordanBrown[m]> right.
<JordanBrown[m]> If you want an example of using some of these features, you can look at the train program at https://bpa.st/OVLBQ
<JordanBrown[m]> It's not designed as a demo for those features, so the object and geometry stuff is buried in among other things.
<JordanBrown[m]> WRT those tests... I'll look at what's failing, but my inclination is not to fix the str(obj) errors until we decide which object literal syntax we like.
<teepee> yeah, that should not be a problem, circleci builds AppImage and Windows binaries if someone wants to give those a try
<teepee> oh my
<teepee> someone let elon into the twitter server room again
<JordanBrown[m]> my local test runs are all failing instantly :-(
<teepee> hmm, that sounds like it might not find the executable
<teepee> maybe run a single one ctest -R <testname>
<teepee> and see what the log says
<teepee> like one of the echo tests
<JordanBrown[m]> it's trying to find openscad.com directly in the build directory.
<teepee> on the plus side, there's now mastodon to post that twitter is down :D
<JordanBrown[m]> It's actually in <bld>/winconsole
<teepee> hmm, that's copied at some point
LordOfBikes has quit [Ping timeout: 268 seconds]
<JordanBrown[m]> not, it seems, in my build.
<JordanBrown[m]> (and of course I didn't change anything anywhere near there)
<teepee> not sure we even have official msys2 tests right now
<teepee> yeah, maybe just put the exe files there manually for now
LordOfBikes has joined #openscad
<JordanBrown[m]> Some of the tests are failing because they are relying on his syntax that I did not carry forward. Some seem to be failing because my implementation adds a layer of group() in the CSG tree that the test doesn't expect. (IMO, the group() is correct because it mirrors what you get with conventional modules.) Some seem to be just totally broken, expecting broken results. I'm not sure because there was some merging in that area of the
<JordanBrown[m]> CMakefile that I might have gotten wrong, but it looks like he missed a few entries in the "experimental tests" list, and captured the failing results as the expected results.
J236 has joined #openscad
J23 has quit [Ping timeout: 260 seconds]
<JordanBrown[m]> How exciting. On my system, it appears that all of the PNG export tests fail. Investigating, starting with trying them on a clean build.
<InPhase> There's an install needed...
<InPhase> Some... thing. What was that.
<JordanBrown[m]> opengl32.dll?
<InPhase> For the image comparisons.
<JordanBrown[m]> nah, this is OpenSCAD failing.
<JordanBrown[m]> SIGSEGV.
<InPhase> Ah.
<InPhase> Well, that's not great. :)
<JordanBrown[m]> openscad foo.scad -o foo.png, where foo.scad is cube();, gets a SIGSEGV.
<InPhase> Try svg.
<JordanBrown[m]> But since I didn't touch anything in that area, I have to expect that it's a problem with the build rather than with my changes.
<JordanBrown[m]> I'm doing a clean build to test.
<JordanBrown[m]> svg is fine.
<JordanBrown[m]> except of course that it needs to be a square() rather than a cube().
<InPhase> I guess we don't have a second image export for 3d...
<InPhase> I was trying to get libpng out of the equation. I guess svg is the closest test of that.
<InPhase> I suppose you can still do png of square.
<InPhase> Then at least it's a controlled test.
Guest52 has joined #openscad
Guest52 has quit [Client Quit]
TheCoffeMaker has quit [Ping timeout: 256 seconds]
<JordanBrown[m]> fails if opengl32.dll is in the directory... which used to be required for the tests to work.
<InPhase> Perhaps the wrong version?
TheCoffeMaker has joined #openscad
aiyion1 has quit [Ping timeout: 255 seconds]
aiyion1 has joined #openscad
<gbruno> [github] jordanbrown0 synchronize pull request #4478 (Objects, geometry as data, module references) https://github.com/openscad/openscad/pull/4478
snaked has quit [Ping timeout: 246 seconds]
<JordanBrown[m]> Dunno, but removing it (or, rather, not copying it in) made all the tests work.
<JordanBrown[m]> (after a bunch of changes to the tests in my wad, that is)
snaked has joined #openscad
gunnbr_ has joined #openscad
gunnbr has quit [Ping timeout: 272 seconds]
<peepsalot> InPhase: were you referring to needing imagemagick? i think it should be able to fall back to diffpng even if IM not found
<peepsalot> the windows tests do at least
<InPhase> I was, and only didn't follow-up because I figured it out a split second after the SIGSEGV revelation.
<InPhase> I was not aware of the diffpng fallback however.
ur5us has joined #openscad
ur5us has quit [Remote host closed the connection]
califax has quit [Remote host closed the connection]
califax has joined #openscad
L29Ah has joined #openscad
wed has quit [Remote host closed the connection]
e2k has joined #openscad
teepee_ has joined #openscad
teepee has quit [Ping timeout: 255 seconds]
teepee_ is now known as teepee
<Scopeuk> The opengl32 dll thing was to use the software opengl renderer on a system with a GPU you won't need it
Guest3267 is now known as buZz
aiyion1 is now known as aiyion
<teepee> yep, using the real gpu driver is much better. it still shold not crash though
<Scopeuk> We've seen strange behaviour from the Mesa driver recently though
<Scopeuk> We had a whole bunch of crash issues on the ci server
<teepee> yes, something is bad there, which is a bit sad. it was so much easier when it was just a single DLL
tachoknight has joined #openscad
tachoknight has quit [Quit: Textual IRC Client: www.textualapp.com]
Guest30 has joined #openscad
Guest30 has quit [Quit: Client closed]
teepee_ has joined #openscad
teepee has quit [Ping timeout: 255 seconds]
teepee_ is now known as teepee
Kalov has quit [Quit: Kalov]
<gbruno> [github] dwightkelly opened issue #4479 (error compiling on macOS ) https://github.com/openscad/openscad/issues/4479
epony has quit [Read error: Connection reset by peer]
pa has quit [Ping timeout: 264 seconds]
pah has joined #openscad
Guest94 has joined #openscad
Guest94 has quit [Client Quit]
<JakeSays> hey have any of you worked with POM filament?
epony has joined #openscad
Guest8236 has joined #openscad
Guest8236 has quit [Client Quit]
<teepee> I have not seen that name before
kintel has joined #openscad
<peepsalot> POM == acetal == Delrin afaik. never heard of filament in that material though
<gbruno> [github] kintel closed issue #4479 (error compiling on macOS ) https://github.com/openscad/openscad/issues/4479
pah is now known as pa
<JakeSays> i've only found one vendor that makes it
<JakeSays> at least on amazon
<JakeSays> it looks interesting
extor has joined #openscad
kintel has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
KimK has quit [Read error: Connection reset by peer]
kintel has joined #openscad
<JakeSays> so.. what are the chances that a stepper motor manufactured in 1984 will work after sitting idle for 20 years?
<J236> pretty high .. if it wasn't in humid conditions
<J236> peepsalot - i have POM filament ..  adheres to nothing but itself, i am printing this on a pom sheet (with stripes)
<J236> small parts are fine .. bigger parts warp without heated enclosure
<gbruno> [github] kwikius closed pull request #4367 (ModuleLiterals: making openSCAD modules first class.) https://github.com/openscad/openscad/pull/4367
<JakeSays> J236: i read that people use thick paper on their beds to hold it
<JordanBrown[m]> I don't understand that - if it adheres well to paper, how would you get the paper off? PLA adheres OK to my Kaptan, but the Kaptan adheres *better* to the bed. Paper doesn't adhere all that well to *itself*; it seems like it would shred when you tried to remove it.
<J236> you have high forces so it will bend any paper or rip the surface,  and it didn't work for me
<JakeSays> yeah the idea is to let the paper bend to keep the part from warping
<JakeSays> or something like that
<J236> that sound stupid
<gbruno> [github] kwikius closed issue #4351 (Feature request : Extend array syntax to allow indices to be generally accessible via '.' syntax by allowing optional names for elements) https://github.com/openscad/openscad/issues/4351
<gbruno> [github] kwikius closed issue #4349 (Feature Request : Module literal) https://github.com/openscad/openscad/issues/4349
<J236> a 5mm pom sheet works great - just need a chisel to remove it .. i put polyvinyl stripes on it to reduce adhering surface
<gbruno> [github] kwikius closed issue #4451 (Feature request: Module expressions for more expressive code with less typing) https://github.com/openscad/openscad/issues/4451
<JakeSays> it sounds like a good material for gears
<J236> polyimide not polyvinyl
<J236> it is great for a lot of things that move as it has a low friction
<JakeSays> right
<InPhase> How is it for stringing though, if there's high self-adhesion?
<InPhase> Among the custom modifications to my printer is a PLA cylinder that freely rotates in a PLA hole as a stabilizer, with lithium grease as a lubricant. This has run for over 6 years with no issues and no need for maintenance. https://www.thingiverse.com/thing:1701256
<othx> InPhase linked to "Z-Axis Top Bracket with Bearing Stabilizer, HICTOP Prusa i3 by rcolyer" on thingiverse => 4 IRC mentions
<InPhase> So I see value in filament-on-filament low friction.
<InPhase> But one of my only moderately successful designs was this PLA bearing which prints fully assembled. The stability of the bearing is determined by the proximity you can give the two PLA pieces when they print together, which in turn is a strict factor of the stringing tolerance before you cannot work it loose anymore in the conditioning step. https://www.thingiverse.com/thing:1686372
<othx> InPhase linked to "Idler Pulley Bearing, Prints Fully Assembled by rcolyer" on thingiverse => 3 IRC mentions
<JakeSays> InPhase: i read that it's a pain to get dialed in (including stringing) but once it's there it's pretty cool
pah has joined #openscad
pa has quit [Ping timeout: 260 seconds]
<J236> wouldn't use it for print in place as it is very tough and already tiny connections fuse so you can't break loose
<J236> it also is heat resistant over  100°C
<J236> just be carful as overheating it will dissolve into formaldehyde
<J236> around 230°C iirc
<Scopeuk> InPhase that's cool 0.5mm clearence either size, I like it
Guest10 has joined #openscad
gunnbr has joined #openscad
epony has quit [Ping timeout: 268 seconds]
<Guest10> Hi OpenSCAD peeps, where we can share our designs and work? post screenshots, etc
epony has joined #openscad
e2k has quit [Quit: reboot]
e2k has joined #openscad
<teepee> Guest10: biggest place without direct openscad support is prusaprinters.com
<teepee> ahem printables.com
<Guest10> ok, ill take a look, thank you
<teepee> linext here is working on a site with integrated customizer but it's really a new thing
<teepee> but if you want to be like user number 10 it has some interesting stuff
<teepee> 3dcustomizer.net/
<linext> yes, it's similar to thingiverse customizer but loads in the browser instead of waiting for the thingiverse server
<JordanBrown[m]> The mailing list is another good place, depending on whether you're interested in short-term discussion or long-term archiving.
<JordanBrown[m]> teepee, InPhase: with that object stuff wrapped for now and waiting for people to look at, I thought I'd take a look at implementing "methods", where if you say obj.f(), the function gets access to the object via a magic variable like $this. The intent is akin to JavaScript's "this". And I think I've got it working, but as I try to write examples I'm finding that in many or most cases the fact that the function captures its
<JordanBrown[m]> defining scope makes the mechanism unnecessary. If the function is defined in the same scope as the object, then it has (in the scope) all of the information that went into the object.
<teepee> othx: share is https://www.printables.com/ (no OpenSCAD support but big site by PrusaPrinters) or https://www.3dcustomizer.net/ (with customizer cupport) or putting the scripts in a repo at https://github.com/ or https://gitlab.com/
<othx> teepee: Okay.
<JordanBrown[m]> teepee did you just teach the bot a new thing?
<teepee> yes
<teepee> I hope so :)
<teepee> share?
<othx> share is https://www.printables.com/ (no OpenSCAD support but big site by PrusaPrinters) or https://www.3dcustomizer.net/ (with customizer cupport) or putting the scripts in a repo at https://github.com/ or https://gitlab.com/
<JordanBrown[m]> share?
<othx> share is https://www.printables.com/ (no OpenSCAD support but big site by PrusaPrinters) or https://www.3dcustomizer.net/ (with customizer cupport) or putting the scripts in a repo at https://github.com/ or https://gitlab.com/
<JordanBrown[m]> Cool.
<teepee> botsnack!
<othx> YUM! This is why I love #openscad.
<JordanBrown[m]> What's the difference between ? and ! ?
<teepee> none as far as I know
<JordanBrown[m]> share!
<othx> share is https://www.printables.com/ (no OpenSCAD support but big site by PrusaPrinters) or https://www.3dcustomizer.net/ (with customizer cupport) or putting the scripts in a repo at https://github.com/ or https://gitlab.com/
<JordanBrown[m]> Hmm. It repeats back the "share" part, which is presumably where it got the name of the macro, but in the botsnack case there's no botsnack in the text.
<teepee> othx: hai is <reply>karpfen
<othx> teepee: Okay.
<teepee> hai!
<othx> karpfen
<JordanBrown[m]> Ah.
<JordanBrown[m]> It is tempting to teach it silly things. But I will try to resist.
<teepee> othx: forget hai
<othx> teepee: I've forgotten about hai
<teepee> yeah, only important stuff like
<teepee> mush!
<JordanBrown[m]> what is the name of the bot?
<JordanBrown[m]> Maybe it will tell me.
<JordanBrown[m]> othx?
<othx> othx is a bot run by gunnbr. othx supports factoids, seen, and tell. Email gunnbr@gthx.net if there are any problems.
pie__ has joined #openscad
<teepee> yeah, the actual name is gthx.net
<teepee> which is the #reprap version / database and can be found on github
teepee_ has joined #openscad
teepee has quit [Ping timeout: 255 seconds]
teepee_ is now known as teepee
gunnbr has quit [Quit: Leaving]
gunnbr_ has quit [Read error: Connection reset by peer]
pah is now known as pa
<gbruno> [github] kintel pushed 1 additions 1 modifications 3 removals (Upgraded dependencies for macOS) https://github.com/openscad/openscad/commit/b488225e1b8a9a9746c5e94144bb45db9bdfc25e
castaway has quit [Ping timeout: 260 seconds]
Guest10 has quit [Quit: Client closed]
kintel has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<InPhase> JordanBrown[m]: The use case would be an object with a function or module which passes itself to another module or function. as a parameter.
<InPhase> JordanBrown[m]: Like MakeTenCopiesOf($this);
epony has quit [Ping timeout: 268 seconds]
<InPhase> JordanBrown[m]: I'm not sure if that's a use case worth having, as I anticipate a few unintended complications from even trying to support a magic $this. i.e., there could be some surprise footguns in this. But, I think that's how it would be most useful if we had one.
<InPhase> JordanBrown[m]: Example surprise footgun... It follows objects, and thus it introduces a new functionality difference between modules and functions returning objects before we even get started on the option of trying to make these comparable.
kintel has joined #openscad
<kintel> Does anyone know how to manually trigger a scheduled job on CircleCI?
<teepee> in theory via the API but after the latest changes on their side it failed the build due to different names of the build run compared to the github trigger
<kintel> I had hoped for a UI action as I only want to run this once: https://github.com/openscad/openscad/blob/master/.circleci/config.yml#L284
<teepee> which job?
<kintel> (just to force a snapshot build before I push a larger dependency upgrade)
<JordanBrown[m]> InPhase it still might be appropriate simply to make the "object model" be sort of similar to other languages - notably, JavaScript.
<teepee> kintel: retrigger of the same repo state should be possible in the web interface
<kintel> yeah, but I want today's master, not the one from 4 days aho
<kintel> (macOS builds only happen on Mon, Tue and Fri)
<kintel> Anyway, not a big deal, I can go ahead and test my dependency upgrade from scratch by changing the cache key
<teepee> hmm, is it running now?
<teepee> I think it's running now
<kintel> I tried to rerun it 25 minutes ago, and I just realized it ran the exact same git hash as the previous build
<teepee> see PM
<kintel> ah, you started a new one. Thx! :)
<teepee> that's with a generated token, I think it did create a new run
<kintel> looks good!
<kintel> Btw., did anyone try Qt6 yet?
<teepee> I did not as the last time I looked it was still missing some modules
<gbruno> [github] kintel pushed 1 modifications (Set cache ID manually while testing) https://github.com/openscad/openscad/commit/3c43372f073d47bcf1891ae596ade39d5c7c9ef2
<gbruno> [github] kintel opened pull request #4480 (Upgraded dependencies for macOS) https://github.com/openscad/openscad/pull/4480
<kintel> teepee: What about Lib3MF V2 - do you think that is going anywhere soon, or should we keep all the official builds on 1.x for now?
<teepee> problem is that it's in none of the official repos
<teepee> but I guess at some point we could just use an OBS build like for other stuff too
<JordanBrown[m]> It would be nice if we could get the MSYS2 build working with some version of lib3mf. It is always bothersome that that part of the build gives warnings.
<kintel> #include "lib3mf_implicit.hpp"
<kintel> ..without a path. That's not how Lib3MF's pkg-config installs stuff
<kintel> Unless I'm mistaken it should be #include "Bindings/Cpp/lib3mf_implicit.hpp"
<teepee> the install was broken multiple times, I've not followed the v2 stuff too closely
<teepee> without official packages it's just a bit random
<kintel> Thx, that's a good place to look for a somewhat sane practice ;)
<teepee> I have not seen miro here, but he's still doing packaging and discussing on github