teepee changed the topic of #openscad to: OpenSCAD - The Programmers Solid 3D CAD Modeller | This channel is logged! | https://openscad.org/advent-calendar-2021/ | 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
russnelson has joined #openscad
<russnelson> Hey folks. I want to do a complex animation, where one part moves for time $t=0 to $t=0.2, then it stays still and another part moves for $t=0.2 to $t=0.4, etc.
<russnelson> Has anybody done something like this before (I expect so), and can you point me to their .scad file?
<teepee> russnelson: https://openscad.org/advent-calendar-2020/ doors 6 and 24
<russnelson> My first thought (possibly naive) is to have a time controller module, which splits the time up into chunks, and so when you call this module and give it the sequence number, it returns a time between 0 and 1 .... which stays at 0 until the sequence begins, and then stays at 1 until it ends.
<russnelson> Thanks, teepee.
<russnelson> Wow, that code is sublime.
<InPhase> russnelson: Door 6 was teepee's, door 24 is mine. We both went with the general strategy of calculating a motion segment fraction from 0 to 1 like that. I think it's the simplest way to manage multi-motion approaches, although clearly there are a variety of ways to prepare it and handle it. teepee's anim module with the dynamic $a variable is a particularly clean way to segment it if you can divide
<InPhase> displaying systematically as in and out. The problem I faced in painting is that half of the behaviors needed to be transient (the different types of brush motion) while half needed to be persistent (the paint).
<InPhase> Probably you could do something like anim but with negatives instead of undef, and then have it also receive an optional parameter for an activation range, and trigger on that instead of the is_undef approach. That might have been a smarter way to do the painting.
califax has quit [Remote host closed the connection]
califax has joined #openscad
Jack2287 has joined #openscad
Jack22 has quit [Ping timeout: 256 seconds]
ferdna has joined #openscad
LordOfBikes has quit [Ping timeout: 240 seconds]
LordOfBikes has joined #openscad
califax- has joined #openscad
califax has quit [Ping timeout: 276 seconds]
califax- is now known as califax
snaked has quit [Quit: Leaving]
snaked has joined #openscad
Colt has joined #openscad
RockClimb has joined #openscad
<RockClimb> Hello
<RockClimb> I was in a few days ago with a problem with openscad being very sluggish on a multiple video card multiple monitor system when typing. The temporary fix came down moving it to another monitor.
<ccox_> were you able to figure out why the second monitor was slower?
<RockClimb> I just wanted to report back that I found the issue  in case you all should see it again. I had one of the smaller monitors set as "primary display" I turned that off it it works great on all 4 now. As for why, I do not know.
<ccox_> ok. Still sounds like a bug in the video card driver software, though.
mitte has quit [Quit: WeeChat 3.4]
<RockClimb> could very well be. I am running rather old hardware. In my testing I found other apps that were also affected but not as bad as openscad. Turning off the primary monitor setting has fixed all of the issues
<RockClimb> I think the issue has been there since I switched to manjaro but it was not really noticeable unless you were looking for it..... until I ran openscad
<gbruno> [github] kintel pushed 5 modifications (Fix crash issue; exceptions thrown when permissions deny access to files opened (#4061)
<RockClimb> openscad is now 100% responsive and usable on both cards and all 4 monitors
<gbruno> [github] kintel pushed 2 modifications (Build x86_64 first as that will install compatible helpers, e.g. msgfmt). https://github.com/openscad/openscad/commit/c061f54bb902344c205438914ec95bf5a0055e51
<RockClimb> I know I will likely forget this fix in a week or 2 but hopefully you younger folks will be able to remember it and be able to help others
<RockClimb> I am glad to have it fixed though. I was notified yesterday that I have my 2nd part design on the way in a few days. :D
RockClimb has quit [Quit: Client closed]
ferdna has quit [Quit: Leaving]
foul_owl has quit [Ping timeout: 250 seconds]
Guest46 has joined #openscad
Guest46 has quit [Client Quit]
foul_owl has joined #openscad
califax- has joined #openscad
califax has quit [Ping timeout: 276 seconds]
califax- is now known as califax
lastrodamo has joined #openscad
la1yv has quit [Read error: Connection reset by peer]
la1yv has joined #openscad
califax has quit [Remote host closed the connection]
califax has joined #openscad
arebil has joined #openscad
aiyion1 has joined #openscad
aiyion has quit [Ping timeout: 276 seconds]
Guest2943 has joined #openscad
Guest2943 has quit [Client Quit]
fling has quit [Quit: ZNC 1.8.2+deb2+b1 - https://znc.in]
TheAssassin has quit [Remote host closed the connection]
TheAssassin has joined #openscad
Guest2914 has joined #openscad
Guest2914 has quit [Client Quit]
arebil has quit [Quit: My keyboard has gone to sleep. ZZZzzz…]
arebil has joined #openscad
arebil has quit [Client Quit]
ferdna has joined #openscad
epony has quit [Quit: QUIT]
la1yv has quit [Read error: Connection reset by peer]
la1yv has joined #openscad
<peepsalot> teepee: where do the windows dev snapshots come from? is it the circle-ci actions on master?
epony has joined #openscad
<teepee> peepsalot: yep
<teepee> not quite up-to-date but overview is in https://github.com/openscad/openscad/wiki/CI-Setup
rawgreaze has quit [Quit: ZNC 1.8.2 - https://znc.in]
stonkey has joined #openscad
la1yv has quit [Read error: Connection reset by peer]
la1yv has joined #openscad
splud has quit [Ping timeout: 250 seconds]
stonkey has quit [Ping timeout: 256 seconds]
TheAssassin has quit [Remote host closed the connection]
TheAssassin has joined #openscad
ChanServ has quit [shutting down]
ChanServ has joined #openscad
<veverak> let's say I have one-file model
<veverak> is there some online viewer I can share it with?
<veverak> something more than just png
<teepee> cadhub?
<othx> cadhub is https://cadhub.xyz/draft/openscad (needs login) or just have it fetch an externally stored script via https://cadhub.xyz/draft/openscad#fetch_text_v1=<URL>
<veverak> that looks nice
<veverak> but timeouts on my model :/
<teepee> I guess that new thingiverse viewer has no direct access
<buZz> https://gist.github.com/buzztiaan/b48d593f3e3fe9cf96d44bf1bb1e9108 <-- some superuseful hook if you have these kinds of shelvingsystem
<peepsalot> teepee: it seems like mimalloc didn't override correctly on windows builds, i didn't see any notable performance difference, and can't get the MIMALLOC_VERBOSE environment variable to print stats to console etc.
<buZz> pretty strong too but i havent measured or put my own weight on it :) its not strong sideways
<peepsalot> I think I might have to link via DLL, as that is the recommended way to do it for windows, i was just avoiding that since I didn't want to have to deal with install/packaging of additional dll
<teepee> yeah, normally the build is targetting a fully static exe
<peepsalot> i'm also not sure if there's anything special that would need to be done for the .com vs .exe setup we have. i know the .com basically just calls out to the .exe but not sure if that interferes with the override methods in any way
<teepee> the com is really separate and just runs the exe with stdout redirection
<teepee> so that should not need anything
<InPhase> veverak: imgur + bpa.st links are pretty reliable while these other viewer options are in intermediate dev states (cadhub) or broken (thingiverse).
<peepsalot> yeah i just don't understand how the malloc override/redirection works or if that could possibly cause conflicts
<teepee> I'm not 100% sure, my understanding is the exe is a GUI app so no stdin/out connected normally
<teepee> where the com is a command line app which has stdin/out available
<teepee> but that's all some crazy windows magic I don't really want to know much details about
<veverak> well, I decided to use pictures
<veverak> anyway, my rack prototype for kallax is ... well ready to be prototyped
<InPhase> teepee: I've never needed a .com to get stdin/stdout connected on Windows.
<InPhase> teepee: Is the problem because we're missing the WIN32 flag on add_executable?
<teepee> the com is only a trick to have both named openscad I believe
<teepee> the actual difference is the exe type. I'm not even sure it's *actually* a com file
<InPhase> Typically one is supposed to do add_executable(OpenSCAD WIN32 ...sources...)
<InPhase> That tells it to use regular main() as entry, but don't open a console and treat it like a gui app. But stdin/stdout are still connected if it's launched from the command line.
splud has joined #openscad
<InPhase> I've never even once launched OpenSCAD under Windows, but I do Windows builds at work, and it works fine on a direct exe launch with this expected behavior.
<teepee> $ file openscad.*
<teepee> openscad.com: PE32+ executable (console) x86-64 (stripped to external PDB), for MS Windows
<teepee> openscad.exe: PE32+ executable (GUI) x86-64 (stripped to external PDB), for MS Windows
<InPhase> So then is openscad.com just a wrapper to open a cmd.exe window before launching the gui?
<teepee> yep
<InPhase> Ok.
<InPhase> But the exe will still output to stdout if it is run from an existing terminal?
<peepsalot> no, the .com will
<peepsalot> but if you just call "openscad" from command line, apparently .com is resolved before .exe
<teepee> yep, that's part of the trick I suppose
<peepsalot> running the gui exe from terminal immediately returns io to terminal
<InPhase> But I don't understand why openscad.exe would not already output to stdout if launched from the command line.
<peepsalot> because windows hates developers
<teepee> I think that's just how windows gui apps are defined
<InPhase> But I do this all the time. :)
<teepee> it's not a GUI app then
<InPhase> Well it does the gui thing, of opening a gui and no terminal when run by clicking on it.
<teepee> probably same as java.exe and javaw.exe
<peepsalot> you have to choose when compiling whether the app uses the window subsystem or console
<InPhase> I'm aware of the "open a console or don't" thing, but I never encountered failing to route stdout/stderr to an existing console that a program is launched from.
<InPhase> Am I always doing something different from whatever our build process is for Windows, or are we talking past each other and not discussing the same thing?
<peepsalot> dunno, got an example app that just works the way you say?
<InPhase> Well I haven't fired up the Windows vm on this laptop since I switched laptops. Let me see.
splud has quit [Ping timeout: 240 seconds]
<InPhase> Well... Turns out this vm is in a pretty sorry and badly functional state... That's what I get for trying to avoid home Windows use for years.
Guest79 has joined #openscad
<peepsalot> you running windows updates for the next 8 hours?
Guest79 has quit [Client Quit]
<InPhase> lol. We'll see if it will even do that.
<InPhase> That would go better if the network connection still worked.
splud has joined #openscad
<Scopeuk> InPhase it looks like under msvc there is a switch to set /subsystem:Console to switch the console behaviour
stonkey has joined #openscad
<Scopeuk> it looks like gcc under msys has some similar switches
splud has quit [Ping timeout: 256 seconds]
<InPhase> I primarily work under mingw on Windows. Although I've done the same under MSVC, but it has been long enough ago that I wouldn't remember if I had to waste time on a special setting.
rawgreaze has joined #openscad
rawgreaze has quit [Changing host]
rawgreaze has joined #openscad
<Scopeuk> more than fair
splud has joined #openscad
<InPhase> Well the libvirt docs (the thing that broke on my VM) have gotten truly abysmal. Paraphrased: "How to set it up: We can verify it is setup with this command. Now, moving on..."
<InPhase> "A: For extra help see B. B: For extra help see A."
GNUmoon has quit [Ping timeout: 276 seconds]
<JakeSays> what are you guys talking about?
<teepee> mostly strange windows stuff
walterwhip has joined #openscad
<JakeSays> i spent the better part of 4 decades working with weird windows stuff
GNUmoon has joined #openscad
<Scopeuk> this is all rooted in the replacement maloc (mimalloc) that was recently integrated
<Scopeuk> the replacement function does not overide if directly linked against an exe on a windows application as it does for osx and linux
<Scopeuk> but it can overide inside a dll
<Scopeuk> that led on to a potential issue with the windows cli handler (openscad.com) and indirect invocation implications for the dll methos
<JakeSays> hmm. wonder how chrome does it
<gbruno> [github] t-paul pushed 1 additions 2 modifications (Add EGL context creation for offscreen framebuffer.). https://github.com/openscad/openscad/commit/434255c9f8828180e9e5374a96aef1c757ae37db
<ccox_> 2048x2048 surface image in 2021.01: 31 seconds
<ccox_> 2048x2048 surface image in dev snapshot with mimalloc: 9.7 seconds
<peepsalot> does the mxe cross-compile count as WIN32 to cmake?
<teepee> hmm, I'm not sure, it has a separate flag for MXE_CROSS
<teepee> I'm also a bit confused about: target_compile_definitions(OpenSCAD PRIVATE OPENSCAD_OS="Mac OS X")
<teepee> ah, it's just used in the NULLGL code
ferdna has quit [Quit: Leaving]
walterwhip has quit [Quit: My MacBook Air has gone to sleep. ZZZzzz…]
walterwhip has joined #openscad
lastrodamo has quit [Quit: Leaving]
stonkey has quit [Ping timeout: 256 seconds]
snaked has quit [Ping timeout: 240 seconds]