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
J1A84862451 has joined #openscad
J1A848624 has quit [Ping timeout: 252 seconds]
teepee has quit [Remote host closed the connection]
teepee has joined #openscad
snaked has quit [Ping timeout: 248 seconds]
snaked has joined #openscad
linext has joined #openscad
ur5us has joined #openscad
castaway has quit [Ping timeout: 265 seconds]
castaway has joined #openscad
LoupGris is now known as Lycanthropy
Lycanthropy is now known as Haematophage
ur5us has quit [Ping timeout: 264 seconds]
castaway has quit [Ping timeout: 265 seconds]
castaway has joined #openscad
LordOfBikes has quit [Ping timeout: 265 seconds]
ur5us has joined #openscad
tachoknight has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
LordOfBikes has joined #openscad
ur5us has quit [Ping timeout: 244 seconds]
guerd87 has quit [Ping timeout: 246 seconds]
guerd87 has joined #openscad
epony has quit [Quit: QUIT]
teepee_ has joined #openscad
teepee has quit [Quit: bye...]
teepee_ is now known as teepee
paddymahoney has quit [Ping timeout: 260 seconds]
kwikius has joined #openscad
aiyion has quit [Remote host closed the connection]
aiyion has joined #openscad
GNUmoon has joined #openscad
J1A8486245143 has joined #openscad
J1A84862451 has quit [Ping timeout: 252 seconds]
paddymahoney has joined #openscad
<kwikius> ModuleLiteral PR. Have combined two of the module literal productions and  removed some linebreaks. Unfortunately I had to add a new productions for the optional arguments. Will leave it on a separate branch for now if that is OK, to keep things tidy https://github.com/kwikius/openscad/blob/WIP-module_literal_v3_1/src/core/parser.y#L388
ur5us has joined #openscad
kwikius has quit [Quit: Client closed]
milza has joined #openscad
ur5us has quit [Ping timeout: 250 seconds]
milza has quit [Quit: milza]
milza has joined #openscad
epony has joined #openscad
kwikius has joined #openscad
ToAruShiroiNeko has quit [Read error: Connection reset by peer]
kwikius has quit [Quit: Client closed]
ToAruShiroiNeko has joined #openscad
ur5us has joined #openscad
ToAruShiroiNeko has quit [Read error: Connection reset by peer]
ToAruShiroiNeko has joined #openscad
ToAruShiroiNeko has quit [Read error: Connection reset by peer]
ToAruShiroiNeko has joined #openscad
ToAruShiroiNeko has quit [Remote host closed the connection]
To_Aru_Shiroi_Ne has joined #openscad
ur5us has quit [Ping timeout: 244 seconds]
<gbruno> [github] t-paul pushed 1 additions 1 modifications (Merge pull request #115 from dinther/master Added Pathbuilder to single topic list.) https://github.com/openscad/openscad.github.com/commit/e53d79bde373be77f5caaed1120debece2421d21
milza has quit [Quit: milza]
teepee_ has joined #openscad
teepee has quit [Ping timeout: 258 seconds]
teepee_ is now known as teepee
califax has quit [Remote host closed the connection]
<gbruno> [github] kwikius edited pull request #4367 (ModuleLiterals: making openSCAD modules first class.) https://github.com/openscad/openscad/pull/4367
<gbruno> [github] t-paul pushed 1 modifications (Merge pull request #116 from dinther/master Added the missing libraries to sidebar menu.) https://github.com/openscad/openscad.github.com/commit/a03dfe2e0315733a1e97b8987bc9fa9c908efefe
califax has joined #openscad
tachoknight has joined #openscad
<gbruno> [github] t-paul closed pull request #4368 (Update Russian translation) https://github.com/openscad/openscad/pull/4368
<gbruno> [github] t-paul pushed 1 modifications (Merge pull request #4368 from podsvirov/update-russian-translation Update Russian translation.) https://github.com/openscad/openscad/commit/b98a6887a46ed012c208c899cbe00bc84a37ed94
kwikius has joined #openscad
<gbruno> [github] kwikius synchronize pull request #4367 (ModuleLiterals: making openSCAD modules first class.) https://github.com/openscad/openscad/pull/4367
tachoknight has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<J1A8486245143> WARNING: [fast-csg] Corefinement corefinement mesh difference #27 failed
<J1A8486245143> and with thrust corefinement #23  this is so not helpfull
<J1A8486245143> great the reason was a rotate([90])cylinder(150,d=2.0001,$fn=24);   //   i seen this now several times that certain sizes cause problems like 2 while 2.0001 works fine.  This need to be fixed  as this numbers may be a problem for float  but are very regular used sizes.
J1A8486245143 is now known as J1A84
kwikius has quit [Quit: Client closed]
kwikius has joined #openscad
<InPhase> J1A84: Do you have some very simple test cases that demonstrate it?
<InPhase> J1A84: It will be important to check for failure to follow the overlap rule, which will be easier in simple cases.
<InPhase> Or do you mean that one-liner does it?
<InPhase> I am currently not getting any rendering issues from this on the master branch with d=2
<J1A84> probably this happens when points in differnces coincident  like cutting a d=10 cylinder from a cube(10,center);
<InPhase> Yeah, that remains invalid as before, but it can be expected that the errors from it will differ between the two approaches.
<InPhase> I have seen a large number of cases where fast-csg handles overlap failures in the desired way where the traditional approach fails on them, but there are also cases the other way around. This is just because the internal math is different so the failures will manifest in slightly different cases. We'll need to still keep that as undefined behavior for a design.
<J1A84> in case of the cylinder it was indeed scratching the surface, but i had this also on other occasions with other modules - it is always solvable but the problem is you never know where the error is
<J1A84> so  difference #23 or whatever number  is impossible to find  - the error msg need to have a line number
<InPhase> It would be helpful if we could get better diagnostic information out of CGAL, but the authors of it do not value this as a principle. They view such inputs as pathological inputs and programmer errors. We appear to be one of the few applications of their library where non-specialists are providing the positioning of inputs, and they have been resistant to making the error handling appropriate to this
<InPhase> use case.
<J1A84> damn
<J1A84> so you need to run a analysis (render) every few lines so you know what code part causes the error
<J1A84> also getting a lot error if  $fs<.5
<J1A84> but those are roof related (iirc)
<J1A84> ..  or just change all values by  random e-12 values .. probably fixes these too (and may cause a bunch new errors)
<J1A84> echo (str(undef));   ↦  "undef"   wouldn't be ""  better ?
<JordanBrown[m]> No
<JordanBrown[m]> I keep wondering whether there is a way to get from CSG and our polyhedral to and from Nef polyhedral, because Nef polyhedral allow touching edges and we already do a lot of our work with them.
<JordanBrown[m]> DYAC all of those “polyhedral” should be polyhedra.
<JordanBrown[m]> (The “no” was with respect to str(undef).)
<J1A84> yeah but "undef" is also a defined string
kwikius has quit [Quit: Client closed]
teepee has quit [Ping timeout: 258 seconds]
teepee has joined #openscad
<JakeSays> hey who is the person who was writing a super slicer in haskell?
<InPhase> JakeSays: juri_
<JakeSays> InPhase: ah thanks
<JakeSays> juri_: hey how's your slicer progressing?
<InPhase> Last commit June.
<InPhase> juri_: Did you get one of those new job things? :)
<teepee> yeah, they really get into the way, those things
snaked has quit [Ping timeout: 260 seconds]
<JakeSays> yes they do
<JakeSays> InPhase: there's a branch that's been active in the past two days
<InPhase> Oh.
teepee_ has joined #openscad
teepee has quit [Ping timeout: 258 seconds]
teepee_ is now known as teepee
<gbruno> [github] t-paul edited pull request #4348 (Adds a fill() 2D operator) https://github.com/openscad/openscad/pull/4348
Trieste has quit [Ping timeout: 252 seconds]
<gbruno> [github] t-paul closed pull request #4348 (Adds a fill() 2D operator) https://github.com/openscad/openscad/pull/4348
<gbruno> [github] t-paul pushed 5 additions 7 modifications (Merge pull request #4348 from nickzoic/nick-outline-1 Adds a fill() 2D operator.) https://github.com/openscad/openscad/commit/761ffed229c851c926978635b79b8ff0f78be75b
<JakeSays> so what's new with openscad these days?
kwikius has joined #openscad
<teepee> well, the newest is just one line above your question :D
<kwikius> ModuleLiteral PR : So on the subject of context/scope , I think I need to store a ref to the scope where the ModuleLiteral is defined with the moduleLiteral to be used for evaluating default arguments https://github.com/kwikius/openscad/issues/3
<kwikius> Yeah congrats to nickzoic for that one!
<kwikius> ModueLiteral PR. Presumable this is a solved problem with FunctionLiteral though ?
<kwikius> (meaning defining context for default args)
<JakeSays> teepee: lol
<teepee> kwikius: yeah, first check looks good in relation to capture. I think I found an issue, but that's pretty likely not specific to the module literal changes
<teepee> it probably should capture also default values in the definition
<teepee> I think I had some issue when calling a function literal that returns a module literal
<kwikius> I'm looking  here and should be doing "something" like this https://github.com/openscad/openscad/blob/master/src/core/Expression.cc#L534
<teepee> not sure, I did not have time to have a very close look, first trying to check out the user facing side
<kwikius> Hokeydokey check that but will press on anyway So firstly I should grab Localscope off the top of the scope_stack, but not evaluate default args there since thing like $fn may be modified at the place the module literal is instantiated?
<kwikius> Anyway thankyou doxygen !
pbsds has joined #openscad
<gbruno> [github] t-paul pushed 1 modifications (Add fill() to cheatsheet.) https://github.com/openscad/openscad.github.com/commit/a81de5749af45d79e352e3c103956b63f676cae0
<gbruno> [github] t-paul edited pull request #4348 (Adds a fill() 2D operator) https://github.com/openscad/openscad/pull/4348
<gbruno> [github] t-paul closed issue #2206 (cheatsheet or part of documentation should be part of app to work in offline mode [$25]) https://github.com/openscad/openscad/issues/2206
<teepee> so this works: ff = function (x) function (y) x + y; echo(ff(3)(5));
<teepee> now the question is, should that work too: fm = function (x) module (y) cube([x, y, 2]); fm(3)(5);
<InPhase> teepee: Yes, for a module literal with that syntax.
<InPhase> teepee: However did you see our discussion the other night about how function literals are already module literals with some very minimal changes if we just have object literals working right? :)
<InPhase> function could become the "both" syntax.
<teepee> no, but that sounds promising, as that unification was also one of the goal in the openscad2 proposal
<InPhase> And in a non-breaking manner with some simple rules like "call old-school modules instead of function literals if they exist in the same scope at a module context."
<teepee> I *really* would like that as it seems a good path forward instead of solidifying the distinction originally introduced even with the different name spaces
<InPhase> We didn't write it out other than in the chat here, but we hammered it out and it seemed to work out okay as a concept.
<kwikius> In the expression, is  module (y) cube([x, y, 2]); fm(3)(5);   all one module literal ?
<teepee> yeah, we have that fallback for the function literals already I think, so maybe not perfect, but I guess a reasonable compromise for compatibility
<teepee> kwikius: no it ends at the ;
<teepee> fm(3)(5); would be the part that probably should yield the cube([3, 5, 2]);
<teepee> that could turn out to be tricky on the parser side though
pbsds has quit [Ping timeout: 265 seconds]
<kwikius> f0 = function (s) module cube(s);  // WARNING: Ignoring unknown variable 's' in file test.scad, line 1
<kwikius> m0 = f0(10);
<kwikius> m0();
<kwikius> f1 = function () module cube([5,10,20]);
<kwikius> m1 = f1();
<kwikius> m1(); //  graphical output of the cube from m1();
<kwikius>  I reckon that is baecause modules don't do lookup in function parameter scope, presumably because they never had to
<kwikius> Also you cant instantiate an r-value module reference
<kwikius> ar = [ module cube(10)];
<kwikius> m();  /// ok
<kwikius> ar[0]();  /// syntax error
<kwikius> should be an m = ar[0]; in there
<teepee> yes, at this point there's no expression on the left side or statement
<kwikius> For this  fm = function (x) module (y) cube([x, y, 2]); fm(3)(5);
<kwikius> I think is  same as
<kwikius> cube([10,20,30])(5);  // syntax error
<teepee> it should be a function returning a module reference
<teepee> and that seems to be the case
<teepee> minus the non-working passing of x it does work when assigning the function result to another variable
<teepee> so the returned values are fine, it's just that the parser only understands a single lookup on the statement part
<kwikius> I think it is a question of examining scope lookup for modules. I had a look and felt  it could be loosened from what it is.. some abstract base class somewhere
<J1A84> great(y)   is displayed as emoticon  thumbsUP ..   and i was wondering if now emoticons can be names Ü
<teepee> there's a big chance we need to use a different lexer for unicode support or maybe there's an official flex version doing that at some point
<teepee> also, actual emoji, no, never :P
<teepee> if we would start supporting more than boring ascii, that should be the codepoints classified as ID by the unicode spec
<teepee> well, ID-start and ID-cont
<J1A84> Ü=5;
<J1A84>  so  as  printing round edges  will create bad overhangs at bottom .. but chamfer is so edgy   so here the limited rounding https://imgur.com/a/nD7vH0I
<teepee> looks nicely printable
<J1A84> the intention was to create nice elongated holes ..
<kwikius> Are function parameters put on the scope stack ?
<teepee> uff, that design is really cool
<teepee> aww, even seems like an openscad model but no code
<kwikius> otherwise if this is a function then lookup in the function arguments might need to be added, to module arg lookup
<teepee> I think function parameters are in the evaluation context objects, but I might also remember that wrong
<kwikius> Could function args be put on ths scope stack. That would make it "right"  They would be a context just above the function body
pbsds has joined #openscad
<kwikius> context/scope   not quite sure which is which!
<kwikius> same for modules presumable, but this works ok
<kwikius>  m1 = module (m) { m();};
<kwikius>  m1(module cube([10,2,3]));
<kwikius> Not sure where that stands with children() though
<kwikius> I'll add this to the issues list !
Haematophage has quit [Ping timeout: 265 seconds]
Colere has joined #openscad
<InPhase> My 6 year old challenged me to make an F15 that "flies around" with OpenSCAD. I'd say I succeeded. :) https://bpa.st/FIOQ
Furor has joined #openscad
ur5us has joined #openscad
<gbruno> [github] kwikius synchronize pull request #4367 (ModuleLiterals: making openSCAD modules first class.) https://github.com/openscad/openscad/pull/4367
Colere has quit [Ping timeout: 252 seconds]
<InPhase> Oops, that's right. You do not all have my one-true color scheme yet. This has the color fully specified: https://bpa.st/ZEYQ
<teepee> InPhase: looks quite cool in my tomorrow color scheme already :)
<teepee> which had a dark blue cabin
<InPhase> :)
<InPhase> Perhaps someday I will be able to specify a glass canopy shader.
<InPhase> Looks like I can hit 50fps in animation with this.
<InPhase> (Timing to make sure it completes the full circuit in the specified time, since there is no "real" fps marker other than that.)
<J1A84> print and put on a ceiling fan
<InPhase> :)
<InPhase> I'm trying a printed copy at the moment. Although it will be needing supports, since the original F-15 design was not really planned as a printable shape.
<InPhase> I will need to submit a complaint to McDonnell Douglas later about this.
<J1A84> do you know the pip F14 with spreadable wings
<InPhase> I had not seen it. Perhaps I will try printing that one later.
<InPhase> Oh, I see, a vertical print.
<InPhase> I was wondering how you would do that and not fail horribly.
<InPhase> I'm not sure if my printer is still in good enough shape to handle it though. It is in desperate need of a recalibration, which I've been putting off because it's also about time to replace it with a better model.
<kwikius> Guy Fawkes night coming up in UK... if you need a motor for that
<kwikius> Wings in on the way up and pop out on the way down... would be nice!
teepee_ has joined #openscad
teepee has quit [Ping timeout: 258 seconds]
teepee_ is now known as teepee
kwikius has quit [Quit: Client closed]
ur5us has quit [Ping timeout: 248 seconds]
<InPhase> Low-res video version of the F-15 flying in circles: https://imgur.com/a/sSF95hf
<InPhase> (I'm going to have to sort out later how to make good webm videos that don't go low res like that.)
ur5us has joined #openscad
<linext> i ironed out register/confirm/forgot for 3dcustomizer.net and can finally get back to merging the demo into the main site
ur5us has quit [Ping timeout: 244 seconds]
<gbruno> [github] jbinvnt synchronize pull request #4330 (GSoC 2022: 3D Viewport Graphical Enhancements ) https://github.com/openscad/openscad/pull/4330
ur5us has joined #openscad
ur5us has quit [Quit: Leaving]
ur5us has joined #openscad
ur5us has quit [Ping timeout: 246 seconds]
<linext> is there a list of all the types of files that openscad can import/include?
<linext> i suppose TTF could be added to this list: https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/STL_Import_and_Export
ur5us has joined #openscad
<teepee> it's not really an import as such
<linext> if the ttf is in the same folder as the .scad, it will import the ttf if the .scad uses it
<teepee> no, font import works via fontconfig which has configuration for where fonts can be
<linext> for web assembly, that's how it works
<linext> there's a /fonts/ folder
<teepee> the use<font> is a bit misusing things by registering the font with fontconfig
<teepee> there has to be some font-config setup for that then