<InPhase>
teepee: I did! And finally got it setup properly, but haven't used it much yet.
mmu_man has quit [Ping timeout: 272 seconds]
<InPhase>
But I only just got it setup, and have some extra work to do yet this week.
LordOfBikes has quit [Ping timeout: 256 seconds]
LordOfBikes has joined #openscad
<sidilakies>
how do I get rid of the little syntax screen when I start typing a command like polygon, a little help screen comes up that says polygon([points]) and more, It gets in the way and I can't see what I'm typing. I looked in all the menues and preferences
<InPhase>
edit, preferences, editor, autocomplete at the bottom
<InPhase>
Also external editor usage is supported well if you have other preferences.
<sidilakies>
thanks so much that was driving me nuts, and that's good to know, I probably will switch to an external editor.
<sidilakies>
I was a big fan of atom and haven't found anything yet, I hav'nt looks, just been using nano, I don't code much, but with open cad thats going to change. any good recomondations for linux
<InPhase>
I've grown accustomed to using vim for all of my code editing. For OpenSCAD I have my vim terminal half-screen, and the display window for OpenSCAD half-screen, with the built-in editor window hidden.
<InPhase>
And with that automatic reload and preview option ticked, it previews every time I save in vim.
<InPhase>
So I primarily work in the editor and save to preview, then occasionally mouse over to rotate the view around.
J24k8 has quit [Ping timeout: 250 seconds]
<sidilakies>
thanks, I'll check out the article
J24k has joined #openscad
<J24k>
teepee this may be the uprising if AI could start conservations on their own
fling has quit [Ping timeout: 260 seconds]
fling has joined #openscad
greenbigfrog has quit [Ping timeout: 272 seconds]
greenbigfrog has joined #openscad
fling has quit [Remote host closed the connection]
<guso78k>
suppose, same would be possible using openscad functions ...
snakedGT has joined #openscad
snaked has quit [Ping timeout: 272 seconds]
mmu_man has joined #openscad
mmu_man has quit [Ping timeout: 256 seconds]
snakedLX has joined #openscad
snakedGT has quit [Ping timeout: 272 seconds]
mmu_man has joined #openscad
teepee has quit [Ping timeout: 260 seconds]
teepee has joined #openscad
J24k has quit [Quit: Client closed]
J24k has joined #openscad
cart_ has joined #openscad
snakedGT has joined #openscad
snakedLX has quit [Ping timeout: 246 seconds]
guso78k has quit [Quit: Client closed]
guerd87 has joined #openscad
J24k has quit [Quit: Client closed]
J24k has joined #openscad
JordanBrown has quit [Read error: Connection reset by peer]
guso78k has joined #openscad
mmu_man has quit [Ping timeout: 268 seconds]
guso78k has quit [Quit: Client closed]
erectus has quit [Remote host closed the connection]
mmu_man has joined #openscad
erectus has joined #openscad
snakedLX has joined #openscad
snakedGT has quit [Ping timeout: 260 seconds]
teepee_ has joined #openscad
teepee has quit [Ping timeout: 260 seconds]
teepee_ is now known as teepee
guso78k has joined #openscad
guso78k has quit [Ping timeout: 250 seconds]
pca006132 has joined #openscad
snakedLX has quit [Quit: Leaving]
pca006132 has quit [Ping timeout: 240 seconds]
kintel has joined #openscad
<kintel>
guso78 yes, with geometry as first-class objects a lot of that could be possible. We could of course do functions too as an interim step. Designing good APIs for an evolving situation is really hard though.
califax has quit [Remote host closed the connection]
califax has joined #openscad
kintel has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
guso78k has joined #openscad
guso78k has quit [Quit: Client closed]
guso78k has joined #openscad
<guso78k>
kintel, just let UserFunction be an derivative of AbstractNode , accept UserFunctions as module's children and check the pieces where's code missing ....
<teepee>
we already have functions as values, so that's not even needed
<teepee>
the only question is how to evaluate the function inside the geometry generation
<teepee>
I mean to try that for ages but did not find the time to really make it happen
<guso78k>
openscad accepts function names (literals) in the module's children's place(during parsing stage ) ?
<teepee>
no
<teepee>
linear_extrude(10, scale = function (x, y, h) h * [x, y]) square();
<teepee>
that is already valid code, but it does not know how to use a function as scale, right now only number or vector2 is supported
<teepee>
hmm, probably it's only function(h)
<guso78k>
this is great information. did not see this along tutorials ... but it helps me thinking ...
<teepee>
it's function literals
<guso78k>
I like lambda function syntax
<teepee>
*everywhere* where you can put in a number, you can put in a function literal
<teepee>
there's just no place where it's handled in the built-in code
<guso78k>
you could easily add a new function literal parameter to linear_extrude and render it in addition to its children when specified ...
<teepee>
why in addition?
<teepee>
children() gives the 2d shape
<teepee>
the function literal could define things like scale or rotation depending on height
<guso78k>
yes, but my intent is to make the 2D extruded shape more dynamic/powerful, not primarily scale and/or rotation
<teepee>
then linear_extrude seems the wrong thing
<teepee>
although just that would open a very interesting amount of possible shapes that are quite tricky right now
<teepee>
specifically chamfered extrusion
<teepee>
a separate way of generating 3d objects, maybe similar to the closepoints library from InPhase might be useful too
<teepee>
or something like generate 3d from polar coordinates
<guso78k>
I have been considering for a long time something like polar_extrude to create a 2D shape from a function literal .. but I was never convinced enough to start coding for that.
<guso78k>
generate_3d from polar coorrindates would need two angles, right ?
<teepee>
yep
<teepee>
for 2d it's not too complicated to just write it as function to push it into a polygon() call
<guso78k>
and generate_3d from polar coodinates would be tricky, because it would need a very dynamic algorithm to use variables fn, fa, fs correctly as the function is not known at compilation time.
<teepee>
3d is much more difficult as it needs both points and face list
<teepee>
yes, depending on the shape it's never going to be perfect, same as with text in 2d too
<teepee>
appying $fa/$fs for text is also just a bit heuristics
<teepee>
plus depends on the actual defintion of the font
<guso78k>
you could easily add 2 angle function literal parameters to sphere and overwrite "r" when specified.
<guso78k>
this would exactly match the polar_extrude idea mentioned before with little effort
TheCoffeMaker has quit [Ping timeout: 246 seconds]
TheCoffeMaker has joined #openscad
TheCoffeMaker has quit [Ping timeout: 260 seconds]
guso78k has quit [Quit: Client closed]
TheCoffeMaker has joined #openscad
extor has quit [Remote host closed the connection]
<teepee>
yes, but thats not the most important criteria
extor has joined #openscad
Smeef has joined #openscad
mmu_man has quit [Ping timeout: 252 seconds]
<InPhase>
guso78: Spherical coordinates is the one I never explicitly implemented as an input modality in any of my libraries, because I couldn't find a scenario where that was useful. And nobody complained yet. But cylindrical coordinates are super helpful.
<InPhase>
guso78: And I added routines to help with toroidal type generations in ClosePoints, for which I've found a bunch of applications.
<InPhase>
The coordinate input modalities are hiding in my other function plotting library, which makes some problems simpler. That one is only in need of updating for function literal support.
<InPhase>
It was written before this.
<InPhase>
It makes it work on the older codebases with hardcoded function names.
<InPhase>
Those names are then selected by index number.
TheCoffeMaker has quit [Ping timeout: 252 seconds]
TheCoffeMaker has joined #openscad
mmu_man has joined #openscad
Reisga2 has quit [Quit: Ping timeout (120 seconds)]
Reisga2 has joined #openscad
J24k has quit [Quit: Client closed]
J24k has joined #openscad
califax has quit [Remote host closed the connection]
califax has joined #openscad
califax has quit [Remote host closed the connection]
califax has joined #openscad
mmu_man has quit [Ping timeout: 255 seconds]
<t4nk_fn>
I've been dabbling with opengl a bit lately, I'm lousy at it of course ;)
<t4nk_fn>
just now I thought I could maybe load some models I made with openscad
<t4nk_fn>
when I launched openscad, I noticed how nice the view actually is.. especially compared to 'my work'
<t4nk_fn>
;)
<t4nk_fn>
I mean the rotation options and such.. I stumbled upon things I normally never touch too much, like setting the rotation center and such
<teepee>
well, everyone has to start somewhere, if you learn cool stuff, the OpenSCAD viewer has still lots of room for improvement too :)
<t4nk_fn>
I've been working on some kind of gcode viewer and sender tool for myself to help me make better pcbs in the end
<t4nk_fn>
heh, teepee .. I think I'll first have to steal openscad's stuff like mad to see how it's done :)
<teepee>
perfect start
<t4nk_fn>
nah, but I'll be having a look at how the rotations and such are done.. very nice
<teepee>
I like the mouse-centric zoom quite a bit
<t4nk_fn>
I recently got myself such a grafics tablet thingy, with a stylus, don't use it too much yet, but it also has its advantages
<t4nk_fn>
accuracy when selecting and such is greatly improved compared to a mouse
<t4nk_fn>
but yes, that is one of the things I thought about too, the mouse centric zoom is a really nice feature
<t4nk_fn>
but also being able to set the center of rotation
<t4nk_fn>
I started out by stealing stuff from the Candle or Candle2 project btw, but I didn't like it, so much stuff I had to include. so I decided to just start with an empty opengl window and take it from there
<t4nk_fn>
---
<t4nk_fn>
youknow, you'll probably think it indecent of me to even mention it..
<t4nk_fn>
but I've been working on being able to select my vertices and line segments with the mouse lately
<t4nk_fn>
that was a feature I missed in the candle2 project
<t4nk_fn>
but I've often thought about having such a feature for openscad too
<t4nk_fn>
mmm well.. it is there of course, in some form or other
<teepee>
that exists now
<teepee>
not for geometry changes but for measurement
<t4nk_fn>
I often used the right click on an object to get me to the right code
<t4nk_fn>
yeah, that's what I sort of meant perhaps, for geometry changes
<t4nk_fn>
and like translations and rotations perhaps
<t4nk_fn>
I absolutely opted to do it manually when I chose openscad of course, yet it is always still a bit of a drag to type that out over and over
<t4nk_fn>
(that was an unintended pun)
<teepee>
the point is you can't generally select an edge and drag that in openscad
<teepee>
it might be possible to do something like: find the translate/rotate and allow that to be modified
<teepee>
but even that can get impossible if it's not based on numbers but formulas
<InPhase>
t4nk_fn: Note that there are flaws in the OpenSCAD rotation logic as well. Specifically the way that we handle rotation, zoom out, rotate, zoom in, rotate, zoom out, rotate, and then things getting wildly out of control from this pattern.
<InPhase>
t4nk_fn: We learn to habitually handle this by resetting it. But it could be worth thinking of smarter ways to do this. :)
guso78k has joined #openscad
<guso78k>
InPhase thank you for your explainations. cylindrical coordinates are in fact helpful. My intent to implement something new does not come from the need to simplify some code. in most of the cases the item is something functional, technical (gears, holders, gadgets). My intent to implement "missing" functionality rather comes from the desire to
<guso78k>
code something "fancy" instead .... When driving home i had the idea not to specity 2 angles in 3d space but rather to specity a 3d unity vector and the user function would return the actual length vector in that direction(but this is almost SDF in that case)
<guso78k>
having a "generator function" which asks radius in cylindrical coorindates could create textures on cylinder like a fancy rolling pin e.g. also a function to wrap a plain face around a cylinder could be helpful while splitting straight lines into lots of segments (to maintain fs, fa) could also be useful to easily wrap letters around a cylinder
<guso78k>
e.g.
califax has quit [Remote host closed the connection]
califax has joined #openscad
<t4nk_fn>
InPhase, heh, funny indeed, I just tried it
<t4nk_fn>
it's gone absolutely bonkers, and my cube is long, long gone too
<t4nk_fn>
also funny how I never noticed any of this until I started my own canvas
teepee_ has joined #openscad
<t4nk_fn>
would also be nice to have the center of rotation tied to an object btw, not sure if that's already possible
teepee has quit [Ping timeout: 260 seconds]
teepee_ is now known as teepee
<teepee>
directly tied to an object no, but if you double click, that point gets centered
<t4nk_fn>
ah well, you can double cli..
<teepee>
well, most people can ;-)
<teepee>
I do know at least one exception where I failed to teach how that works
<teepee>
in the age of ipads, that not a big deal though, except the home-screen double-click
<guso78k>
teepee, i never used the double click until now, now i tried in orthogonal and perspective mode.
<guso78k>
tried it with my model centered in the origin. in perspective move repeated double clicks made the model zoom out independently from where i doubleclicked into the screen.
<teepee>
does that make a difference?
<guso78k>
in orthogonal mode my model immediately move out of sight
<teepee>
ah, right, distance behaves differently
<teepee>
wtf, it's like sitting in a ramstein concert here ;-)
<guso78k>
when i did not know about how this functionality is implemented, i would expect the model to move focused , centered right below the cursor ...
<t4nk_fn>
teepee, is that because of us, or your neighbours?
<teepee>
t4nk_fn: no because of a rammstein concert multiple kilometers away
<teepee>
you know, everyone now puts ear protection in, so they have to make it louder
<t4nk_fn>
how'd the weather in Dresden? ;)
cart_ has quit [Ping timeout: 268 seconds]
<guso78k>
ahh, they are playing again on 18. 5 . do they play near "Frauenkirche " ?
<teepee>
day was pretty warm and sunny, quite windy too
<teepee>
yeah, it's multiple concerts, 3 or so? I have not checked
<teepee>
someone told me location is "Flutrinne" which is some sort of river elbe overflow area to prevent flooding
<teepee>
but the internets says it's somewhere else, so actually not sure where it is :)
<InPhase>
guso78k: Yeah. It's worth scrolling down and taking a look at the reference example images I put on this page, if you haven't seen them: https://github.com/rcolyer/closepoints Changing the way you can specify shapes changes what you can implement.
<teepee>
ah, I see where the confusion is coming from. they call the location "Rinne" which I never heard before. but it's not the place called "Flutrinne"
<guso78k>
... is going to study closedpoints ...
<InPhase>
guso78k: This is another example, where my scad file is a whole lot shorter than you might think looking at the image. :) https://www.thingiverse.com/thing:2392509
<othx>
InPhase linked to "Double-Slit Experiment 3D Representation by rcolyer" on thingiverse => 1 IRC mentions
<InPhase>
guso78k: One of those you could imagine doing with some sort of cheap native-scad-code hack. But the one with the ripples... That needed the function plotter.
<othx>
InPhase linked to "Customizable Rippled Chalice / Vase by rcolyer" on thingiverse => 7 IRC mentions
<guso78k>
ahh you "project" a defined 2D x-section with a variable Eigen matrix which is created by extra utility functions to defined mesh ...
<InPhase>
guso78k: 50% of the complexity of that scad file is just giving it a smooth lip and hollowing it out. The pattern on the outside was extremely easy to implement.
<guso78k>
think i have to visually unterstand the difference between closedloop and closedloop
<InPhase>
I assume you mean ClosePoints vs CloseLoop?
<guso78k>
yep
<InPhase>
ClosePoints makes objects defined from one end to another. CloseLoop makes objects that wrap back into themselves.
<guso78k>
its a pity that openscad's builtin multmatrix does not work on vectors alone
<InPhase>
Topologically, ClosePoints can make any shape that has no holes. CloseLoop can make any object that has 1 hole.
<guso78k>
think i have to download it and simply replicate the examples
<InPhase>
Implementing the matrix bits wasn't too hard, and it gave me the chance to break them out into more humanized components. But yeah, few people have really understood the power of that approach.
<guso78k>
teepee, when using the middle mouse wheel, i can easily scroll in and out and everything works as expected
<guso78k>
but when i double click 3 times in a row to my model and try to scroll again, the numbers on the axis(skala) behave in a very strange way. i could create a video from that ...
<guso78k>
the area where scales are drawn shrinks un-naturally fast when zooming out
<InPhase>
teepee: lol. Those goat/boat responses. :)
<guso78k>
InPhase, i am able to run some of your demos. but they appear to be quite expensive in cpu load for my machine. ii have to click " wait" several times until the model finished rendering.
<guso78k>
the demo_gear_thing are 2 objects, right ?
mmu_man has joined #openscad
J24k has quit [Quit: Client closed]
J24k has joined #openscad
mmu_man has quit [Ping timeout: 255 seconds]
<InPhase>
guso78k: demo_gear is 1 object, and takes 1 second to render on my system.
<InPhase>
And 338MB. :)
<InPhase>
I think demo_roller_coaster2.scad takes a short time to preview but a very long time to render if you actually hit render on it on the last release of OpenSCAD. But it's 1/3rd of a second in the master branch / nightly.
<InPhase>
But that's just because that one has a train that CGAL has trouble merging with that smooth curvy path.
<InPhase>
demo_roller_coaster.scad without the train included takes under a second to render in both versions.
<InPhase>
If any of them other than roller_coaster2 take a long time, something is going wonky.
<InPhase>
Even demo_3D_art.scad is a single polyhedron call.
<InPhase>
So CGAL never even gets called.
<InPhase>
Now if you added a cube(1); to that file, it'd take a while in the last release. :)
mmu_man has joined #openscad
<InPhase>
((a < 6 || (a >= 180 && a < 186)) ? 7 : 5) In demo_gear_thing.scad, this is the bit of the code that creates the double-spirals around the toroidal shape. All it's doing is changing the radius. And then the GearRotXZ operation spirals those radius changes around the toroidal shape.
<InPhase>
The key to thinking about design when using that ClosedPoints library, is to think about shapes as much as possible in terms of transformations of transformations.
<InPhase>
It is analogous to the reasoning of SDFs, except that you're doing specification of surfaces, and transformation of those surfaces, instead of of volumes.
<t4nk_fn>
mm getting confused again.. I'm using glfw and glad
<t4nk_fn>
so .. glew replaces glad?
<t4nk_fn>
so I'm a bit confused about using things like glBegin and so, that's not available to me
<guso78k>
t4nk_fn, are you visualizing the coordinates in your brain which openscad's textual interface puts over serial wire ?
<t4nk_fn>
thank you, that's really useful, I hadn't thought of it like that yet ;)
<guso78k>
sorry, just kidding, probably my setup is not the best, instead ... running in a vm
guso78k has quit [Quit: Client closed]
<t4nk_fn>
I was actually sorting and building and reorganizing vertexdata before I joined here.. I'm getting distracted left right and center