<UltimateCodeWarr>
Any reason why the main axis lines are not colored the same (RGB) like the axis control?
<UltimateCodeWarr>
Might be neat to see negative as a dashed line.
UltimateCodeWarr has quit [Quit: Client closed]
UltimateCodeWarr has joined #openscad
UltimateCodeWarr has quit [Client Quit]
UltimateCodeWarr has joined #openscad
Guest70 has joined #openscad
foul_owl has quit [Ping timeout: 276 seconds]
Guest70 has quit [Quit: Client closed]
myosotis has quit [Quit: myosotis]
foul_owl has joined #openscad
<pca006132>
kintel: I see, forgot why is it there, probably not intended
<pca006132>
looking at the blame and PR, I think the issue was that pstl is not supported on mac (yet), and we tried to use oneDPL's pstl implementation
<pca006132>
but we don't use pstl now, so it is no longer required
<UltimateCodeWarr>
It's working, I was looking at an older screen shot when making the comment.
<UltimateCodeWarr>
It was on a smaller monitor so the dashes were not as pronounced.
<UltimateCodeWarr>
But maybe like bright Green for +Y and a darker shade dashed Green for -Y on those axis lines
<UltimateCodeWarr>
When I am zoomed in, to a model, not always easy to tell directions.
<J24k82>
colors can also introduce confusion when having colored objects - and as long the grid is not part of the color scheme this would be a big change. But you can always create your own rulers
<J24k82>
https://imgur.com/a/60o8eBF i have this in my library ( because the grid number vanishes when zooming in)
<UltimateCodeWarr>
Maybe white or black outline around the tick marks on the rulers so long as there is no substantial peformancs hits.
<UltimateCodeWarr>
Beadahaulic. You must have been born with an abacus in your hand.
<UltimateCodeWarr>
Pretty cool. I'm using 1=mm, so the grid isn't to bad for what I am working on. Seldom do I split mm's.
<UltimateCodeWarr>
I do see what you are saying, seems like when I zoom in, sometimes, half the line is missing all the tick marks
<UltimateCodeWarr>
Like there is some bad 'bounding box' prohibiting the rendering
pca006132 has quit [Remote host closed the connection]
pca006132 has joined #openscad
<J24k82>
the grid only renders around the origin depending on the zoom - if you zoom in outside it is just gone. As the current view translation is not used for this
<UltimateCodeWarr>
What's the largest sized object you worked on in OpenSCAD? I'm bound to 225x225x225 mm, basically the X1C's maximum safe printable area.
<J24k82>
So if you make a 256mm object you can't zoom to mm grid on the outside
<J24k82>
But i already made a Solarsystem (to scale)
<InPhase>
UltimateCodeWarr: Sometimes the grid lines get into a wonky state. Reset the view with the buttons for this once in a while if navigating around.
<J24k82>
(well think i used km as 1 unit)
<UltimateCodeWarr>
That's pretty cool.
<InPhase>
UltimateCodeWarr: It's a known low priority issue.
<UltimateCodeWarr>
Like taking a real photo of earth :)
<InPhase>
J24k82: Did you animate it in realtime?
<J24k82>
It was to demonstrate that you see nothing in space and all films and diagrams are not to scale
<J24k82>
InPhase - you need to put in the proper date to get it correctly
<J24k82>
I did animate but i was never able to finde one planet again
<J24k82>
even with them in a straight line you can only find them with $vpt and known posisition
<InPhase>
J24k82: Yeah... I made a painting with a black hole, a deformed sun, the Earth, and the moon... I went as far as giving the black hole reasonably GR-correct light bending. But to make it not a really boring painting, the distances were wildly out of scale. ;)
<J24k82>
(or scaling them up - decreasing the orbit)
<guso78k>
I have a parameter mismatch and I don't get any error in my place. it this a bug or wrong usage ?
<guso78k>
i have seen this when compiling latest master branch
<J24k82>
you calling the module with an undef parameter - that should be possible
<J24k82>
you get a warning if you call the module with parameters that are not defined like mymodule(1,2);
<J24k82>
or mymodule(notDefParameter=0);
<guso78k>
ahh ok. mymodule() ;is equal to mymodule(undef);
<guso78k>
if yes, this is something new and i missed to read ;)
fling has joined #openscad
fling_ has joined #openscad
fling has quit [Ping timeout: 260 seconds]
fling_ is now known as fling
misterfish has quit [Ping timeout: 272 seconds]
misterfish has joined #openscad
fling has quit [Ping timeout: 260 seconds]
hyperair has joined #openscad
misterfish has quit [Ping timeout: 276 seconds]
misterfish has joined #openscad
<J24k82>
guso78 no not equal but with the same result. you can use module M(par=0); and then call M(); which is using the default par=0, So module (par) has par=undef as default
<J24k82>
calling M(undef) would assign par=undef not using the default
<guso78k>
yes, understood. But in my picture above, the parameter in my module does NOT have a default value. Did you take this into account ?
<J24k82>
So M() M(1) and M(1,undef,undef) or M(b=undef) would all have the same result but slightly different path for it
<guso78k>
OK, I learn that in OpenSCAD you can specify no parameters to a module whereas it accepts exactly one and you don't get a parameter mismatch. Even though it appears weird, I suspect this is to maintain compatibility with old code.
<guso78k>
This this "special" behaviour documented somewhere (maybe in a tutorial ) ?
<J24k82>
iirc Inphase made a PR how unnamed parameter are populated about a year ago
<guso78k>
interesting! There must be a strong reason why such features are merged. I feel I like to learn the reasoning behind.
<J24k82>
parameters
<J24k82>
Zero or more arguments. Parameters may be assigned default values, to use in case they are omitted in the call. Parameter names are local and do not conflict with external variables of the same name.
<J24k82>
it is kind of a prototype but with the advantage that you can change only one or a few parameters
XyecTop_565 has joined #openscad
<J24k82>
e.g. cylinder() has d and r and r1 r2 d1 d2 as parameters - but you only need to define one
<J24k82>
circle(d=10); or circle(r=5); is both working without a warning that the other parameters are not defined. And you have is_undef(d) as a function for such cases too
<J24k82>
also cube(); will result in a cube(1);
<J24k82>
while a cube(1) is a cube([1,1,1],false);
<J24k82>
guso78k so you most always call modules without defining all possible parameters
<J24k82>
some even have parameters that are obsolete like the file in linear_extrude
XyecTop_565 has quit [Quit: Client closed]
<J24k82>
and will result in a warning (not a parameter mismatch) DEPRECATED: Support for reading files in linear_extrude will be removed in future releases. Use a child import() instead.
<guso78k>
Yes , i understand default parameters and that their default value is used in case its not specified in the calling instance. But what still keeps me struggling is that I did *not* use default parameters in my example. i will search for a matching PR from InPhase later
<J24k82>
as i said circle() has d and r both as undef parameters (or at least one is)
<J24k82>
InPhase didn't introduced this - he sorted what happens when mixed numbers and named parameter are used
<J24k82>
having parameter "options" that are undef exist probably for a very long time
<J24k82>
however if you would use the parameter in your example - undef would probably cause an error
<J24k82>
either in calculations or in objects
<J24k82>
cube(undef); works but not translate()cube(undef); as translate(undef) will cause a vec3 error
<J24k82>
a warning as vec3 (vec2) need to be numbers
<guso78k>
I am not able to read the parsing code for a circle but I was able to write it down the module definition it would probably have only optional parameters . This is why circle can be called without arguments
<J24k82>
and most objects have a "failsafe" so circle(); is not causing a warning because undef but has a fallback to circle(1);
misterfish has quit [Ping timeout: 264 seconds]
misterfish has joined #openscad
aiyion1 has quit [Ping timeout: 260 seconds]
<InPhase>
guso78k: I think J24k82 is referring to peeps[zen]'s work improving default parameter parsing with named and unnamed parameters from a couple years back. I only remember discussing it at a high level with peeps, and endorsing the logic that was used. But I'm not sure if that's relevant to the issue at hand. Several of the built-ins have extra logic to support multiple call signature modes.
<guso78k>
InPhase, thanks for clarification. Without talking about any internal modules, i am just confused, that ...
<guso78k>
1st) define a module with module mymod(mypar) { ... }
<guso78k>
2nd) calling it with mymod() ;
<guso78k>
does not yield an error in my place (tested with my local compiled master)
<guso78k>
no error and warning here with your latest code
<InPhase>
Just the undef.
<guso78k>
ECHO: undef.
<InPhase>
That behavior has existed for as long as I can remember.
<guso78k>
This calling convention is just very different from many other languages which do have default parameters
<InPhase>
Yes it is.
<InPhase>
We have a strong lack of strictness in OpenSCAD.
<guso78k>
J24k82 and me were elaborating this morning if this was just an old relict , to maintain backward compatibility or if there is a very clever purpose behind that
<InPhase>
I actually can't think of a good purpose for it, except that some people might have written code depending on it with manual checking of undef values and different named parameters being assigned.
<InPhase>
If a warning were added it would not break any of my code, at least. I think I've always written as if that behavior should not exist. :)
snaked has quit [Quit: Leaving]
<InPhase>
One can (and should, in my view) always explicitly default assign undef when that behavior is wanted.
<guso78k>
yep
<InPhase>
And, undef propagation has gotten more toxic lately, as it kills performance harder than it used to on a relative basis, killing many recent gains in render performance.
<guso78k>
yes , logging undef to console wastes a lot of time :')
<InPhase>
So I think we have at least a rational basis for adding stricter warnings on such things. It would require some thinking and trying it to figure out if this disrupts anything out there.
aiyion1 has joined #openscad
<InPhase>
There would I think be an easy solution path for any code that gets warnings triggered from it. But sometimes people whine a lot about updates to OpenSCAD requiring updates to their code, even if they're not big ones. :) But we should still address some of the ones that risk huge damage from small errors.
<buZz>
its very unoften that syntax really breaks in openscad
Guest30 has joined #openscad
<guso78k>
confirmed, the authors make tremendous efforts to stay backward compatible
<pca006132>
for this kinds of questions, I'm wondering if we should put something like a loop-carried dependency analysis or something...
<pca006132>
just to warn the users they are probably doing something wrong
pa has quit [Ping timeout: 248 seconds]
<guso78k>
with big designs, you spend some time to render it. but once rendered, you can rotate and pan the result quite quickly. However if you preview it, with deep hierarchy it takes lots of GL Commands to display the result correctly, which could take way more time. and you experience this effect every time, when you change your view angle.
<guso78k>
pca006132, just use a language which allows for variable redeclaration, and people will not have such steep learning curve :) :)
<guso78k>
people will be able to continue, what they are used to...
<pca006132>
yes, but some people still want to modify existing code I guess
<pca006132>
I'm thinking what is the cleanest way to decouple openscad (the program) and the language, and its geometry backend
Guest30 has quit [Quit: Client closed]
<pca006132>
we want to somehow allow users to use openscad libraries in manifoldcad, which is a ts/js thing running in the browser, the current way we are thinking about is to write an interpreter/transpiler that mimics openscad language behavior
<guso78k>
i think someone compiled a JS binary of openscad. Its huge, but working. you could use this in the background to create stl from your "code with opescadlibs"
pah has joined #openscad
pca006132 has quit [Remote host closed the connection]
<pca006132>
yes but we want something better than that
<pca006132>
something that allows js to call openscad, and without all the unrelated stuff
<pca006132>
currently I'm slowly writing the interpreter...
<pca006132>
ideally that interpreter can be used in openscad as well, it handles unicode stuff correctly, has a simpler parser, should be much faster in performance
<pca006132>
openscad interpretation is known to be slow because of all those variable lookups through hashmaps, compiling into a simple bytecode should massively speedup the performance
<othx>
UltimateCodeWarr linked to YouTube video "Hilarious Boomerang Death in Mad Max 2" => 1 IRC mentions
misterfish has quit [Ping timeout: 248 seconds]
mmu_man has quit [Ping timeout: 246 seconds]
<UltimateCodeWarr>
I was thinking something like a parabolic sat dish or something like that.
<InPhase>
UltimateCodeWarr: I've done plenty of dish shapes with my libraries, but you can do most such round dish-like objects very trivially with rotate_extrude.
<UltimateCodeWarr>
So you would have to define a polygon in the X-Y plane, then rotate it about the X?
<InPhase>
UltimateCodeWarr: Here's my 60 second version of a parabolic dish: rotate_extrude() polygon([each [for (x=[0:0.5:40]) [x,(x/10)^2]], each [for (x=[40:-0.5:0]) [x*39/40,1+((4^2-1)/4^2)*(x/10)^2]]]);
<InPhase>
Add $fa=1; $fs=0.4; for quality
mmu_man has joined #openscad
<UltimateCodeWarr>
Close enough for government work
<InPhase>
I wasn't "careful" about the uniformity of thickness, but yeah, close enough. :)
<UltimateCodeWarr>
I like it, will probably use it at some point. One of the things on my punch list is an omni-directional microphone on the camera housing, would be nice to be able to pick up surround sounds, might be good to have an some sort of strategic array of dishes to be able to funnel sound into the microphone that's protected from the elements.
<buZz>
i dont get using a omnidirectional microphone directionally ;) but you do you
<UltimateCodeWarr>
lol. If you have a bunch of parabolic reflectors arranged in sphere, but there is a hole in the center of the sphere like shape, I'm hoping to grab sound from all direction but the microphone wouldn't be out in the direct sun and rain
<UltimateCodeWarr>
Well, the goal is just to pick up sound all around the camera. I think I got one with a 150deg field of view, but it's still nice to know about the gunshot that happened behind the camera rather than just getting the echo off the building in front of the camrea type of issue.
<UltimateCodeWarr>
JKs shape looks like a figurine stand, but could also be adapted like a ear hole.
<UltimateCodeWarr>
Yes, that shape reminds me of one of those novelty coin wishing wells that they park in the mall outside of candle stores so that dads can entertain the kids they are watching as mom does some shopping.
<UltimateCodeWarr>
A different kind of money sink. Coin bank for the mob.
<J24k60>
a simple cone cylinder(20,d1=0,d2=20); should work just fine
<UltimateCodeWarr>
In times past for Public Address systems they used something like this (now we have SMS Text).
<UltimateCodeWarr>
But wondering if in reverse it would work well for a Microphone
<buZz>
PA systems are still in used :)
<buZz>
in use*
<UltimateCodeWarr>
Did the police Helicopter BUzz your house recently
<UltimateCodeWarr>
Now Hear This, Freeze Criminal.
<UltimateCodeWarr>
I've seen ones you could buy for DJI drones.
<buZz>
the police HELICOPTER didnt UltimateCodeWarr my house, no
<UltimateCodeWarr>
(It was a joke, I know they have them on the bottom of the copters)
<buZz>
the clue?
<UltimateCodeWarr>
I've heard many stories from friends with motorcycles that were trying to outrun the cops that they tell them to pull over.
fling has quit [Quit: ZNC 1.8.2+deb2+b1 - https://znc.in]
fling has joined #openscad
guso78k has joined #openscad
kintel has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<guso78k>
pca006132, i got a small issue with the manifold version used in OpenSCAD right now . ( 22c66051dfdbcefa2012e30dd12c9b5a20f89a01).
<guso78k>
It won't work with OpenSCAD's MXE flow to create Windows executables.
<guso78k>
The bad line is Line 58 of CMakeLists.txt: target_link_libraries(${PROJECT_NAME} INTERFACE glm::glm)
mtm has quit [Read error: Connection reset by peer]
<guso78k>
cmake does not understand glm::glm word. If I just comment/delete the line, mxe worst fine. Now question is: do we still need that line, or: how can it be coded that my flow understands it
mtm has joined #openscad
guso78k has quit [Ping timeout: 256 seconds]
mmu_man has quit [Ping timeout: 252 seconds]
mmu_man has joined #openscad
mmu_man has quit [Ping timeout: 265 seconds]
mmu_man has joined #openscad
TylerTork has joined #openscad
<TylerTork>
does the right-click popup that displays information about an object have a name? I'm talking about this: https://prnt.sc/TA_RVhh9JX5F
<TylerTork>
I'm having a problem and want to make sure I'm searching for issues with the right words