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
teepee_ has joined #openscad
teepee has quit [Ping timeout: 255 seconds]
teepee_ is now known as teepee
teepee has quit [Remote host closed the connection]
<phryk> all glory to default placement at [0,0,0]. currently playing around with a model of my room when adding a placeholder for my bedframe i noticed it perfectly fits opposite to the door without blocking it. :3
teepee has joined #openscad
<phryk> https://paste.xinu.at/YJU/ like. seriously. this too perfect not to put the planned loft bed there. :3
<InPhase> Is pink the door swing?
<InPhase> Because your model is missing baseboards and the fact that bed placement always needs to be a few centimeters away from the wall to not clunk into it repeatedly.
<InPhase> Also, when you cramp the door opening, it starts to get psychologically uncomfortable to go in and out in zig-zag form. An open entrance opens the whole room.
<InPhase> My children for unknown reasons were both obsessed for a stretch with rearranging their own furniture, so I've experienced an extremely wide variety of bedroom configurations. :)
<phryk> InPhase: pink is door swing + ~5-10cm buffer space.
<phryk> actually roundabout 16cm buffer, so with a 5cm frame around it i'll still have couple cm buffer between door and bed.
<InPhase> If you 90-degree rotate the bed, and place a nightstand adjacent to the wall between bed and door, the room will open up and there will be a nice place to set things when you walk in.
<InPhase> There's a lot to be said for a straight line vector from door to everything in the room.
<phryk> InPhase: but then i don't have the space for the platform without blocking the windows. this space is a bit… logistically challenging^^
<InPhase> Those are not in your drawing. :)
<phryk> i know. i'm still on it. just noticed the perfect fit by serendipity and had to share :P
<JordanBrown[m]> Printing your house and your furniture can let you move things around easily... https://www.thingiverse.com/thing:4264614
<JordanBrown[m]> It was also invaluable when we were planning remodel.
<phryk> i don't have any kind of printer tho :P
<phryk> mhh, is there a way to increase fov?
<InPhase> phryk: $vpd
<InPhase> Well, that zooms out.
<InPhase> I only work in Orthogonal mode, so this is the same thing.
<phryk> ah okay, except for the well defined views like front and top i always work in perspective mode because orthogonal is a brainfuck^^
aiyion1 has quit [Ping timeout: 255 seconds]
aiyion1 has joined #openscad
ur5us has joined #openscad
<teepee> $vpf
<phryk> teepee: thanks! so much better! wth is the default here? 30? o_O
ur5us has quit [Ping timeout: 255 seconds]
ur5us has joined #openscad
<phryk> dang, my plantform needs angles. :<
<InPhase> teepee: Oh, I forgot about $vpf...
<InPhase> Well... Perspective mode gets trippy real quick with a high $vpf value.
<InPhase> https://bpa.st/J7WL2 Compare Perspective mode to Orthogonal.
<InPhase> https://bpa.st/4Q2OG Animated version, extra trippy in Perspective mode.
<InPhase> Make sure the axes are turned on so you can watch them fly by.
J2383755 has joined #openscad
Lagopus has joined #openscad
J23837 has quit [Ping timeout: 260 seconds]
aiyion1 has quit [Ping timeout: 255 seconds]
aiyion1 has joined #openscad
<HimeHaieto> so...did I mess something up, or does openscad really not configure an install target?
<HimeHaieto> I seem to have built the whole thing just fine, but `make install` is a dead end...
<InPhase> It sets stuff up for that, and there's an install under Makefile. I've never tried running it though.
<InPhase> "make install" is a good way to clobber all over things awkwardly in a modern package-managed system.
<HimeHaieto> I get "make: *** No rule to make target 'install'. Stop." on tag openscad-2021.01
<InPhase> What directory did you build into? And are you in that directory?
<HimeHaieto> and thanks for the advice, but I know what I'm doing...I'm certainly not installing to a package managed hierarchy (does anyone really do something that crazy?)
<HimeHaieto> yes, I'm in that directory - an out of tree build (cmake path/to/repository/base; make; make install)
<InPhase> When you open the Makefile in there do you see the "install:" line?
<HimeHaieto> nope, there isn't one
<HimeHaieto> there's a preinstall, but not install
<HimeHaieto> in case you think I might have configured something weird, the full cmake line from a fresh, empty directory was `cmake -DCMAKE_INSTALL_PREFIX:PATH="$HOME"'/modules/openscad/2021.01' path/to/repo`
<HimeHaieto> that was all
<InPhase> When I checkout that tag I also don't get an install: line
<InPhase> Also, it doesn't build anymore for me due to a boost error.
<HimeHaieto> that seems problematic
<InPhase> Not really. I'd just have to downgrade stuff to old versions.
<InPhase> But I'm not going to, as that's not the development target anymore. We have that released already.
<InPhase> Not sure why the install line is missing. Maybe make install wasn't setup then?
<HimeHaieto> it's still the most recent stable release
<InPhase> All those install lines in the CMakeLists.txt in the current master branch are also missing back at 2021.01
<InPhase> So someone must have added this functionality later.
<HimeHaieto> how did anyone install it before?
<HimeHaieto> cp?
<InPhase> Looks like peepsalot added the "make install" functionality as a side-effect of supporting "CPack for windows builds".
<InPhase> Personally I just cp it from the build directory to the root of the repository and run my builds out of there.
<InPhase> There are a handful of subdirectories of the root of the repository that have the extra files like color schemes and scad libraries and such.
<InPhase> For releasing we use the CI.
<InPhase> Distributable generation is all automated.
<InPhase> For development purposes, running in place is more convenient.
<InPhase> https://bpa.st/2WSBG This is my full build script.
<InPhase> Then I just setup to run from whichever repository I want to run things from, so I can handle a large variety of versions.
<InPhase> The executables are kept linked to the code, so I don't have any confusion about what I'm actually running on a dev build.
<InPhase> I know exactly what I'm running down to the commit and every line of code.
<HimeHaieto> most people rely on install targets over cp precisely so they don't need to know what all files need to be copied where...
<InPhase> I do remember those days. :) I just haven't done that in a long while for anything.
<HimeHaieto> or keep around a particular repository checkout and/or build directory forever, for each version they may need, just so they can have a way to run it
<HimeHaieto> both are rather bad
<HimeHaieto> I don't want to have to research into every project I build and do some king of strange reverse engineering endeavour just so I can install and run it properly
<InPhase> Naturally. Although it takes a lot of trust to run "make install" without researching into it in the first place. I got burned by it enough times that I stopped doing it.
<InPhase> If you want to know the directories, they do happen to be listed out in the master branch CMakeLists.txt in all the install(...) commands
<HimeHaieto> what are you expecting one might find happen? an `rm -Rf ~/` in the install target?
<InPhase> Nah, more like stuffing a bunch of stuff into undesired directories and then having no mechanism to clean it up.
<InPhase> Like "Oh, I'll just copy all this into /usr/lib, good luck ever finding these 500 things in the future."
<InPhase> And meanwhile hoping none of those overwrote a system file.
<HimeHaieto> you can have make produce a list of all the actions it runs to produce a manifest
<HimeHaieto> also it's generally pretty safe if each project you `make install` vs producing and installing package for is given its own prefix, like how I do things
<HimeHaieto> also cmake can be used to more or less handle that for you as well when using that - it can produce a manifest too
<InPhase> Well, that behavior appears to be available for you on the master branch. No one saw need for it before 2022.
qeed_ has joined #openscad
qeed has quit [Ping timeout: 255 seconds]
<InPhase> Maybe it was around in qmake in the old days. I don't recall looking for it to see.
<HimeHaieto> also also you don't have any install() commands in 2021.01's CMakeLists.txt either >_<
<InPhase> HimeHaieto: Correct, that's what I was saying.
<InPhase> That was added early 2022.
<InPhase> If you want to do that process, I would say either try with the master branch which has this added now, or look at that list to see what you need to copy out. It's not really much stuff.
<InPhase> And all of that other stuff to copy is extra stuff.
<InPhase> Like for example, if you don't copy it out, the "Examples" entry is missing from the File menu, because there aren't any examples. The program should still work with just the executable file.
<InPhase> I think most of the color schemes are gone as well from the config, and so on.
<HimeHaieto> is any of that stuff used when not using the gui?
<HimeHaieto> does color schemes missing translate to "color(something)" transformations not working?
<InPhase> Sure, --colorscheme is a command line option, and MCAD is in the libraries directory, and thus missing, if you actually wanted to use MCAD.
<InPhase> I think MCAD doesn't get so much use these days. That was attempt 1 at a standard library, but it's pretty dated.
<InPhase> I am not sure if the fonts directory is just for gui or also for text()
<InPhase> So, yes, a few things are missing, but these are not breaking things. A person could legitimately choose to package up a different set of this stuff.
<InPhase> The master branch adds shaders to this pile.
<JordanBrown[m]> I always run my experimentals directly out of the build directory.
<JordanBrown[m]> b/OpenSCAD
<InPhase> Hmm. The master branch for Windows seems to carry along a mimalloc dll, which might be the only actual dependency.
<JordanBrown[m]> DYAC b/openscad
<JordanBrown[m]> I think that MSYS2 builds have a raft of shared object dependencies. ldd gives a long list.
<InPhase> JordanBrown[m]: Yeh, it's set to find all those folders when it's inside a nested build directory.
<InPhase> JordanBrown[m]: The main reason I have my build script copy the executable out, is that gives me an extra redundancy, where I retain my built copy even if I'm in the middle of a failing build.
<JordanBrown[m]> Makes sense
<InPhase> Also, the paths are shorter. :) ~/src/openscad-master/openscad
<InPhase> Every once in a while I'm typing that manually.
<JordanBrown[m]> I have start menu shortcuts to installed versions. Experimental builds I’m usually running because I’m working on them, so it’s just b/openscad.
<JordanBrown[m]> It’s a coin flip which version I’m running at any moment - 2021.01, the latest nightly that I’ve grabbed, or the objects experimental.
<JordanBrown[m]> For a three-sided coin, of course.
<InPhase> https://bpa.st/QP72K I keep a few of these around, to run various versions. That one is script name "masterscadvim" or "mas[TAB]"
<InPhase> I just swap out the directory there to do a different version. I keep a prscadvim or "prs[TAB]" around that I point at a PR I'm working on or looking at if it's for any stretch of time.
<InPhase> The log_scad_mem there is this: https://bpa.st/YSJCQ
<InPhase> I'm now up to 15 months worth of natural usage maximum memory consumption records, with 725 entries documenting the date, time, maximum memory consumed, which executable I ran, the filename, and the working directory.
<InPhase> This is either useless, or will someday be very handy.
<InPhase> But it's free. :)
<JordanBrown[m]> Yep
<InPhase> Some things are surprisingly heavy. I have a small smooth lunchbox tab that I designed to replace a broken tab on my kid's lunchbox that he likes. It takes 250MB. But somehow while designing it I ate 5GB at one point. No idea how. It has 15,000 facets and renders in under a second.
<InPhase> Oh. Maybe I did a minkowski for a try of one thing, and then changed my mind.
<InPhase> I note that overall, the vast majority of my designs are under 1GB in RAM usage. But then I have a bunch that are pretty and smooth things that go up to a few GB. I DO do some things that hit into the tens of GB, but it turns out that's pretty rare.
<InPhase> If I had to guess, I would guess I use more RAM than most users probably do, given the types of things I like to design. So that gives a pretty good sense of what the system requirements are for satisfying most usage. Even a 4GB system should usually work fine if you don't go crazy with it, and can accept losing access to a handful of nice designs.
<InPhase> 16GB of system RAM would work with almost anything other than extreme designs.
<HimeHaieto> here I was looking at 384 gb of ram and wondering how much of it would get eaten by firefox (probably about 360 or so)
<HimeHaieto> (just a joke taking a jab at how absurd firefox is, and the concern of openscad overhead in comparison)
<HimeHaieto> though...part of me wouldn't be surprised if it could somehow find a way some day...
guerd87 has joined #openscad
ur5us has quit [Ping timeout: 255 seconds]
ur5us has joined #openscad
ur5us has quit [Ping timeout: 255 seconds]
fling has quit [Ping timeout: 255 seconds]
fling has joined #openscad
milza has joined #openscad
ksq2114 has joined #openscad
ksq2114 has quit [Client Quit]
ved11x02\ has joined #openscad
ved11x02\ has quit [Client Quit]
tux72x has joined #openscad
tux72x has quit [Quit: Konversation terminated!]
L29Ah has left #openscad [#openscad]
ccox_ has joined #openscad
ccox has quit [Ping timeout: 252 seconds]
fling_ has joined #openscad
fling has quit [Ping timeout: 255 seconds]
fling_ is now known as fling
teepee_ has joined #openscad
teepee has quit [Ping timeout: 255 seconds]
teepee_ is now known as teepee
L29Ah has joined #openscad
paddymahoney has quit [Read error: Connection reset by peer]
Lagopus has quit [Ping timeout: 248 seconds]
<HimeHaieto> I'm feeling...disappointed
<HimeHaieto> module test() {if (is_undef(modified)) echo("foo");} module modification() {modified = true; test();} modification();
<HimeHaieto> module test() {} module modification() {module test() {echo("foo");} children();} modification();
<HimeHaieto> neither sort of above option, nor anything else it seems, can manage to get "foo" to output...and that makes me feel rather sad :(
<HimeHaieto> oops, inverted the is_undef I think...I think the idea gets across though
<HimeHaieto> oh, also the second should have ended with "modification() test();"...
<teepee> that's how $ variables are supposed to work. I think $modified should produce the expected result
<teepee> I have no idea how the second case is supposed to work
<HimeHaieto> I didn't even realise defining your own "$" variables was a thing...I thought that was something for a hardcoded limited set of values like $fn
<HimeHaieto> it looks like I can in fact see things like that when adding the $ before said vars
<teepee> I have the impression that was the original idea, but then code happened
<HimeHaieto> basically, the first case is allowing for alternate behaviour within select scopes by having a global or otherwise enclosing scope containing a module declaration that checks a value that gets created or changed only within those select scopes
<teepee> keyword is dynamic enclosing scope, e.g. the actual call chain when evaluating things
<HimeHaieto> the second case is attempting to allow for alternate behaviour within select scopes by having those select scopes "override" an enclosing scope's definition of a module that applies if that module is included as any of the children
<teepee> which is why "normal" variables are not dynamic, so just by looking at the static code you can see what happens
<teepee> I see what the code is trying to do in the second case, but it's scary to think of any language supporting that ;-)
<teepee> that said, I don't know if C++ ADL comes somewhere near that, it's certainly confusing enough
guso78 has joined #openscad
qeed__ has joined #openscad
qeed_ has quit [Ping timeout: 255 seconds]
trystero is now known as tristero
qeed__ has quit [Quit: qeed__]
snaked has quit [Ping timeout: 255 seconds]
qeed has joined #openscad
snaked has joined #openscad
<guso78> teepee, with my face Tracer, i was able already to "Walk"  a cube. altough the algorithm is intuitive, its still very error prone and its soo easy to get a vertex index , edge index or face index wrong ...
teepee_ has joined #openscad
teepee has quit [Ping timeout: 255 seconds]
teepee_ is now known as teepee
Bocaneri has joined #openscad
Bocaneri is now known as Guest3260
Sauvin has quit [Ping timeout: 252 seconds]
Guest3260 is now known as SenFache
R2robot has quit [Ping timeout: 246 seconds]
R2robot has joined #openscad
aiyion1 has quit [Ping timeout: 255 seconds]
aiyion1 has joined #openscad
TheAssassin has joined #openscad
TheAssassin is now known as Guest2769
Guest2769 has joined #openscad
Guest2769 has quit [Changing host]
Guest2769 has quit [Client Quit]
TheAssassin has joined #openscad
TheAssassin is now known as Guest317
Guest317 has quit [Changing host]
Guest317 has joined #openscad
Guest317 has quit [Client Quit]
TheAssassin has joined #openscad
snaked has quit [Ping timeout: 255 seconds]