teepee has quit [Remote host closed the connection]
teepee has joined #openscad
snaked has quit [Quit: Leaving]
snaked has joined #openscad
Zauberfisch has quit [Read error: Connection reset by peer]
Zauberfisch has joined #openscad
fling has quit [Quit: ZNC 1.8.2+deb2+b1 - https://znc.in]
fling has joined #openscad
TheAssassin has quit [Ping timeout: 276 seconds]
TheAssass1n has joined #openscad
TheAssass1n has quit [Remote host closed the connection]
TheAssassin has joined #openscad
ur5us has quit [Ping timeout: 245 seconds]
ochafik has quit [Remote host closed the connection]
snakedGT has joined #openscad
snaked has quit [Ping timeout: 260 seconds]
ferdna has quit [Quit: Leaving]
ochafik has joined #openscad
snakedGT has quit [Ping timeout: 260 seconds]
snakedGT has joined #openscad
arebil has joined #openscad
default__ is now known as sublim8
ochafik has quit [Ping timeout: 260 seconds]
ur5us has joined #openscad
lastrodamo has joined #openscad
ochafik has joined #openscad
ochafik has quit [Remote host closed the connection]
ochafik has joined #openscad
ochafik has quit [Ping timeout: 246 seconds]
TheAssassin has quit [Quit: No Ping reply in 180 seconds.]
ochafik has joined #openscad
TheAssassin has joined #openscad
ur5us has quit [Ping timeout: 264 seconds]
linext has joined #openscad
ochafik_ has joined #openscad
ochafik has quit [Ping timeout: 260 seconds]
ochafik_ has quit [Remote host closed the connection]
aiyion has quit [Remote host closed the connection]
aiyion has joined #openscad
ochafik has joined #openscad
ochafik has quit [Remote host closed the connection]
ochafik has joined #openscad
ochafik has quit [Ping timeout: 246 seconds]
ochafik_ has joined #openscad
ochafik_ has quit [Remote host closed the connection]
Jack has joined #openscad
Jack is now known as Jack21
ochafik has joined #openscad
<Jack21>
https://bpa.st/FOBA - this confuses me .. I understand that the parent_module counts from where it was executed but not the $parent_module variable
<Jack21>
so to get this working i need to add 1 if called from B
<teepee>
hm? it's the nesting level, what do you mean by adding one?
<Jack21>
if call this from B i have to add 1 to the $parent_modules to get the same result
<teepee>
sure one more nesting level
<Jack21>
so if C is only display "v" - and the nesting level is higher when called via the c module why is not also $parent_module executed on that level of C with the number there
<Jack21>
it is taking the variable from level B but giving the list from level C
<teepee>
I guess it's evaluated in C
<teepee>
if you call it via v = pm(); C(v); it shows B
<Jack21>
but if i evaluate $parent_modules directly in C it is higher as when called in the call C(v) from B
<teepee>
yes because the call chain is B -> C
<Jack21>
sure so why is $paren_modules from B not from C when called within the function
<teepee>
it's not
<Jack21>
as the function is executed in C and give the list from C
<teepee>
it says the current level is C and the previous one is B which is correct
<Jack21>
in both cases it shows the list from C
<Jack21>
with C 0 but to see B in that list i need to call C(pm($parent_modules +1)); from B()
<teepee>
no, the problem is simply passing that function directly
<teepee>
assign it to a variable first so it gets evaluated at this point
<teepee>
B() { v = pm(); C(v); }
<Jack21>
yes this is only giving the list from B
<Jack21>
i want the full list from c but witout adding +1 so how can i know how much more i have to add to get the full list
<teepee>
that's the only odd part
<teepee>
then actually pass the function not the result
<teepee>
C(pm)
<teepee>
and call v()
<teepee>
echo(DispC=v())
ochafik has quit [Remote host closed the connection]
ochafik has joined #openscad
<Jack21>
v() is not defined in C .. C is only display text when called from multiple modules
<teepee>
sure it is, it's the parameter of the module
<Jack21>
i can pass a function - ok this is new .. does this only work with literals?
<teepee>
yes, passing old style function, you need to wrap in a literal
arebil has quit [Quit: My keyboard has gone to sleep. ZZZzzz…]
arebil has joined #openscad
<teepee>
it looks like the release handles that differently, so I tend to think the function evaluation is a bug, it feels a bit odd with the current result
<teepee>
not sure I agree with the release result tho :)
<Jack21>
this is good to know but i can not change the call in C() as then it wouldn't call text from other modules anymore as it expects always a function ( the real C is joining text strings )
<Jack21>
probably i have to use the variable in B so the function is working to display everything above B which is what i really care about.
<Jack21>
i just found it weird that the module for parents is listing more than the parents variable
<teepee>
it's probably due to the use of $parent_modules as default value
<teepee>
that seems like it's not a good idea
<teepee>
does not change the result in this case though
<teepee>
(in the nightly build)
ochafik has quit [Remote host closed the connection]
ochafik has joined #openscad
<teepee>
so now the question is what would be the actually really correct value :)
peeps[zen] has joined #openscad
peepsalot has quit [Ping timeout: 245 seconds]
ochafik has quit [Remote host closed the connection]
snakedLX has joined #openscad
ochafik has joined #openscad
snakedGT has quit [Ping timeout: 260 seconds]
ochafik has quit [Remote host closed the connection]
ochafik has joined #openscad
ochafik has quit [Remote host closed the connection]
<InPhase>
teepee: Easy. Neither behavior makes any sense...
<teepee>
agreed
<teepee>
it should be B only, for the first, right?
<InPhase>
I would think if anything.
ochafik has joined #openscad
<InPhase>
The manual gives an example which is nothing like this. It seems there is an ambiguous definition of "parent" here.
<InPhase>
The line 12 call treats parent as a module call stack trace. Line 6 in release treats a parameter evaluation as a child of the thing called with that parameter, which is very sketchy. And master ignores everything on line 6 and just makes up a nonsense C. :) We could say C has no parent because it's not A() B() C(); but then line 12 needs to return no parents too.
<InPhase>
Since we got no bug reports so far I presume very few people are using parent_module, so I'm uncertain what the use cases in use are.
<InPhase>
Jack21: Were you just playing or doing something real? If real, can you start by explaining what you were trying to do with it?
<Jack21>
inPhase: i had a function that is generating a parent list and i was using this in a module to check if a certain parent module calling it so the information text changes - the text is displayed by another module. So and i wondered why the last parent never showed in the list.
ochafik has quit [Remote host closed the connection]
<Jack21>
And is it was working great for changing the alignment when the module was called from a special one. Like rotate_extrude() changes the orientation but these modules doesn't show in the parents list - however when making a case where text changes it wasn't working until i add +1 - which caused issues "out of index" in the other module ..
ochafik has joined #openscad
<Jack21>
so it is working now but i wondered if this is how it should be
<Jack21>
I assume there is no way to pass a value to the parent directly which is calculated within a child object.
<InPhase>
Yeah, not really. It has to go only one way or the other with information, and there are already special variables passing down the stack.
<InPhase>
That establishes the compute stage execution order.
<InPhase>
So those two use cases are basically debug information on how something was called, which is reasonable, and a sort of hacky inspection for a rotate. The latter could have probably been more cleanly a special variable indicator of what behavior to take in the child object.
<Jack21>
i have a bezier curve and the control vectors are shown - so when rotate_extrude them i don't want them in xy but on xz so they align with the 3D object and sure there is a variable for this but as iam lazy as fuck i thought it would be nice if it automatically switch as long i didn't define the variable
<Jack21>
the other case is information about the tangential points of a 2D model which i needed in the extruded 3D model - and sure i could copy the whole calculations but then there wouldn't be the need to use that separate module - i mean there is most always a workaround and i better way and there i my way - and then i come here and learn something
<Jack21>
totally new which blow my mind and make me realize that i don't have a clue - Ü
<Jack21>
btw. since when you can duplicate lines of code with crtl+shift+arrow ? and what are markers for ?
<teepee>
no idea, maybe 2 years? github would know :)
<teepee>
uh, almost spot on, Sep 2019 :)
<teepee>
markers?
<teepee>
oh, the bookmarks? well, like in real books, mark it, go back to that place later
<Jack21>
ah so to jump between two code parts - i wish i learned this feature bit earlier - Ü
<teepee>
yeah, we really need some documentation about all those cool gui features that are not visible via buttons
<teepee>
also the ALT+CURSOR-UP/DOWN is probably not very well known
<Jack21>
this is so awesome but in the new version the ALT+CURSOR LEFT is broken as you can't jump 10 100 anymore when going through zero
<Jack21>
and i am used to check if something happens with bigger changes and then it stopps and i focus on the code and i passed Zero - bit anoying
<Jack21>
also you could switch alternative modules A1 A2 A3 but now you need a space before the number
<teepee>
yeah, I know, the current behavior needs to be improved
<teepee>
as discussed before, it's a tricky topic :)
<Jack21>
yeah and probably other like the scrolling ..
<Jack21>
always fun to see how it was designed and how users using it ( in general not only oSCAD)
<Jack21>
and in scad it is so much simpler - in all other CAD programs you need to read through books to know that only one workflow is working and you just can't do how you think it should work
<Jack21>
( or like gimp where every part of the program has another workflow different to the others and nothing a graphic designer is used to do)
<teepee>
now I will note down your name in case we need help for a potential OpenSCAD advent calendar 2021 :P
<Scopeuk>
I had been meaning to bring that up teepee. Get a head start compared to last year
<teepee>
I've discussed that with cadhub too, that would have reduced the number of designs if all 3 projects would participate, but not seeing any actions there
<teepee>
looking at the time it's probably too late for that one
<teepee>
I was thinking something 3d printable this year, some maybe in multiple parts :)
<Scopeuk>
I mean it would be cool to do a day by day print a day self assemble robot or similar https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQGp1YiWNp16Pc9j6zuCHsDHY_X7EpwkDtS4A&usqp=CAU
<teepee>
but I'm open to pretty much anything if that helps more people to participate
<Scopeuk>
Might be a bit of an ask though
<teepee>
yes, something along those lines, I always wanted some sort of toy train set - fully printable with optional electronics
<teepee>
way too late for this year, at least for me :)
<teepee>
I have 3 things that potentially could stretch to maybe 8 parts
<teepee>
bigger (like 30cm) christmas tree with slots for leds, simple case those cheap 20 led copper wire strips
<teepee>
extended version rgb leds with esp32 :)
arebil has quit [Quit: My keyboard has gone to sleep. ZZZzzz…]
<teepee>
otherwise something similar to the wooden heng lamp, and 3rd candle arch thingy (german: Schwibbogen :-)
<teepee>
summary: stuff with LEDs :D
<Scopeuk>
Would probably be fairly easy to print something that would clamp a basic led and a cr3032
<Scopeuk>
If you got fancy you could probably make something to push and pull one of the legs as a switch
<Scopeuk>
Fundamentally just a wedge
<teepee>
yeah, nothing wrong with instead of 3 bigger 8 day projects having a couple of small fun ones too
<teepee>
might be even better
ochafik has quit [Remote host closed the connection]