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.
<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]>
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.
<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
<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.
<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.
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>
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.