<t4nk_fn>
kintel, that's why I would chose startDetached instead of start for the QProcess.. because it kills the process otherwise
<t4nk_fn>
Starts the program set by setProgram() with arguments set by setArguments() in a new process, and detaches from it. Returns true on success; otherwise returns false. If the calling process exits, the detached process will continue to run unaffected.
<t4nk_fn>
... and you can clean up
snaked has joined #openscad
<t4nk_fn>
*choose
guerdy has joined #openscad
peeps[zen] has joined #openscad
guerd871 has quit [Read error: Connection reset by peer]
<t4nk_fn>
btw, apart from the alt key activating horizontal scrolling on linux here..
<t4nk_fn>
I'd almost want to use it, if it weren't for the fact that the current implementation makes the preview stutter and flicker and skip due to those timer calls I guess
<t4nk_fn>
there's the correction in void MainWindow::actionRenderPreview for when the gui was locked
<t4nk_fn>
that messes it up for me, can't live with it
<t4nk_fn>
would be nice to have some kind of feedback from that function, but I guess that's kind of hard to get when called from across the code
sinned69158 has quit [Ping timeout: 255 seconds]
<t4nk_fn>
setting up a default parameter like bRetrigger for that function and disabling it from the signal/slot connection almost makes it better for me
<t4nk_fn>
there's no flickering that way, though it may lag behind a tick sometimes if you moved too fast
<t4nk_fn>
it's pretty nifty, and I also like that you can extend to the right, adding decimal points as you scroll
<t4nk_fn>
would be even better if you could extend to the left too, adding another digit to the magnitude
kintel has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<UltimateCodeWarr>
Have you ever had a situation where OpenSCAD crashed when you were editing a file? Like you passed a function a bogus variable and the whole thing locked up so that you can't cancel the render, and can't edit the file? I don't get why rendering is not on it's own thread that can be canceled/aborted if something goes wrong and doesn't hose up
<UltimateCodeWarr>
the rest of the applicaiton.
<UltimateCodeWarr>
Would be nice if there was another 'watchdog thread' that could watch the render thread,, if it doesn't get a heartbeat,so often then it knows it's locked, and then it could auto terminate it.
myosotis has quit [Quit: myosotis]
<UltimateCodeWarr>
As a failsafe, the app should recognize that it couldn't render the file so that if you shut it down, and the reload the file, the next time around it could say "This file with MD5 of ..... wasn't able to render last time, we will not auto-render at startup to give you the chance to fix the source code, we think the error is on line: ...."
krushia has quit [Ping timeout: 252 seconds]
<pca006132>
there are many people talking about using a separate process, but so far it is not implemented
<pca006132>
maintainers have limited capacity, and I think a lot of the effort is directed to fixing geometry issues and stabilizing manifold
<UltimateCodeWarr>
Ok, I'm not the first one who noticed it either. That's god.
<UltimateCodeWarr>
Good
myosotis has joined #openscad
myosotis has quit [Client Quit]
<UltimateCodeWarr>
When making a gasket, is there any rule of thumb for sizing the gasket based upon the width of the lip of the material, as well as when you are routing the seat for it on both lips, like some sort of "Smoosh Factor" where the lips seat might only be 40% of the half width of the gasket, that way there is a 10% smoosh factor in order to seal
<UltimateCodeWarr>
properly?
UltimateCodeWarr has quit [Quit: Client closed]
UltimateCodeWarr has joined #openscad
<InPhase>
UltimateCodeWarr: The question has been brought up here many years back, and someone googled it and quickly found that there are in fact standard recommendations that are straightforward to follow. :)
<InPhase>
I'd recommend checking some of those.
<InPhase>
I suspect it would vary a bit by the material, so check for matching material to what you plan to use.
pca006132 has quit [Quit: pca006132]
pca006132 has joined #openscad
<UltimateCodeWarr>
TPU would be my first choice.
<UltimateCodeWarr>
TPU-HF for the bambu labs, the AMS can't print TPU, but I think TPU-HF is ok.
<InPhase>
That's much less squishy than a typical gasket material.
<UltimateCodeWarr>
Don't know if I can find a gasket the size I would want, this would be something around 6" in diameter. Don't want it to cost an arm and a leg easier.
<InPhase>
But, TPU does have a lot of nice properties, and might work for a gasket.
<UltimateCodeWarr>
I have been waffling between doing a gasket vs just a threaded seal and teflon taping it.
<InPhase>
Sems to be purchaseable at $5/piece
<UltimateCodeWarr>
Really trying to do a tool-less design, as being up on a ladder and fumbling around with a bunch of screws that drop into the gravel an disappear isn't ideal.
<UltimateCodeWarr>
$5 + tax/shipping and 2weeks. Vs Printing TPU in 30 minutes and 10c worth of TPU
<InPhase>
I'd also try a printed design first. The suitability depends on the application though.
<InPhase>
I haven't figured out yet what that design actually is that you're working on. :)
<pca006132>
what is the use of that gasket?
<pca006132>
printed gaskets are not smooth...
<UltimateCodeWarr>
Mainly a Rain Seal
<UltimateCodeWarr>
This is for a Raspberry PI enclosure, for an outdoor turret style camera
<InPhase>
UltimateCodeWarr: It's worth starting early with thinking about an enclosure design where the rain tightness doesn't depend on a gasket holding up.
<pca006132>
I don't think you can make a good seal with printed TPU gasket
<UltimateCodeWarr>
Both valid points, do shortcut the test-0fail-fix cycle.
<pca006132>
and in general, I think you may need some postprocessing for 3D prints to make them waterproof
<InPhase>
UltimateCodeWarr: Even with factory-made products, the best ones minimize dependency on gasket seals for rain tightness, and shield most of the rain away by solid material geometry.
<InPhase>
Waterproofing is pretty straightforward with good printer settings and potentially boosting the overfill a notch as a compensation.
<pca006132>
true, just something to keep in mind
<pca006132>
default settings will not work iirc
<UltimateCodeWarr>
That makes the most sense, but sooner or later you will have to have an enclosure that you have to work on parts inside of.
<InPhase>
And a good boost in waterproofing is available easily with polyurethane spray.
<InPhase>
Which comes in UV resistant outdoor variants.
<UltimateCodeWarr>
Lol, some submarine seal
<UltimateCodeWarr>
Bedliner
<pca006132>
ah yeah, and UV resistance...
<UltimateCodeWarr>
Well, I wanted to use ASA for UV sstabilization
<InPhase>
Well if you add polyurethane, you'll need that to also be UV resistant.
<pca006132>
ideally the gasket should not be exposed to sunlight?
<UltimateCodeWarr>
This is the lower part of the turret, I was contemplating putting a gasket to seal in where the raspberry pi (red brick) was being mounted.
<UltimateCodeWarr>
I've converted the main hull to a threadded screw so I can screw on the sides, maybe seal them with teflon tape
<UltimateCodeWarr>
This acts as a heat sink/shade so that the housing won't heat up
<UltimateCodeWarr>
(as much)
<UltimateCodeWarr>
Like a Saguaro Cactus, on half shades the other half
<UltimateCodeWarr>
Some ears will come down with some eyelets that those large frankenstein bolts will come through and tie it into a manual moving turret much like that of a vice grip that can be locked into position.
<UltimateCodeWarr>
Wanted something that was wind resistant, also big bird resistant as most times with those anorexic swivel joints, here comes a 5 lb owl swooping down and then the camera is off position.
<InPhase>
There are two ways to do water shielding for electronics. One is absolutely water and vapor proof sealing with non-porous materials. The other is to elevate off the ground, shield the top and sides really well so that all incident water runs around the outside, and add drainage to the bottom.
<InPhase>
The latter is actually the most common approach.
<UltimateCodeWarr>
Yeah, with cameras, there are another issue -- fogging up during high humidity as well.
<InPhase>
If you assume some water and moisture is going to get in, and just plan to deal with it without it building up into a problem, then this is the sort of approach that can last for potentially decades.
<InPhase>
If the whole plan depends on an absolute total seal, something often goes wrong.
<InPhase>
It takes exceptional construction quality to avoid that.
<UltimateCodeWarr>
I figure with threads, I might be better off, I mean I could always add teflon tape or get some tru blu thread sealant
<UltimateCodeWarr>
I figured most times, a turret will be aiming down about 45 deg, so If I put a few weep holes at the bottom, that should be good. Heat will rise, so I will need some sort of candy cane snorkel on the top that hot air can escape, but won't invite a driving rain in.
<UltimateCodeWarr>
It will look a bit wonky, but I am going for Function over Form here
<UltimateCodeWarr>
Most of these will be mounted under my eaves, so they will have a bit extra of protection, but some need to be out near the gate.
UltimateCodeWarr has quit [Quit: Client closed]
J24k77 has quit [Quit: Client closed]
J24k77 has joined #openscad
UltimateCodeWarr has joined #openscad
<UltimateCodeWarr>
Has anyone seen any sort of Gnurled / Texture / Radial Lines for adding to knobs / handles for grips. Would be great if it worked on cylinder.
<UltimateCodeWarr>
The Radial lines I am talking about are like intermeshing triangle lines that shoot out from central point so that you can have two parts intermesh together when there is a screw involved.
<UltimateCodeWarr>
For an exploded view of parts of your models, how many parts have you been able to model before OpenSCAD has become too processor bound to the point of being unwieldy for you and you need to split your design up?
<pca006132>
which version are you using?
<pca006132>
and did you enable experimental features?
<pca006132>
the library you mentioned takes 0.1s to render with manifold
guso78k has quit [Quit: Client closed]
<UltimateCodeWarr>
I did download a new version of nightly build of SCAD, would that have wiped out my mainfold settin?
<pca006132>
from my experience with manifold enabled, you either have to do minkowski (which often does thousands of boolean operations internally, plus the slow convex decomposition using CGAL) or do tens of thousands of boolean for things to grind to a halt
<pca006132>
(if you do several hundred booleans, where each mesh contains several hundred to thousand vertices, it will probably be slow as well)
<pca006132>
I think it should preserve the setting, but you should check to be sure
<UltimateCodeWarr>
I forgot where that was set. is there a call I can do like set_manifold(true);/
<pca006132>
no
<pca006132>
preferences
<pca006132>
Edit->preferences->features
<UltimateCodeWarr>
yeah, it's checked. Im on windows 11
<UltimateCodeWarr>
smooth=0 // percentage between 0 and 100
<UltimateCodeWarr>
);
<UltimateCodeWarr>
*/
<UltimateCodeWarr>
You can comment out the normal cylinders, and comment in the knurling on the left_screw() and right_screw() modules, or just one at a time.
<pca006132>
thanks, will have a look later
<UltimateCodeWarr>
The Truly bizzaro thing is, that Windows doesn't show any sort of CPU load on OpenSCAD.
<UltimateCodeWarr>
In task manager. But it's so bad, that I have to end task OpenSCAD
<UltimateCodeWarr>
It's hard to even do that.
<UltimateCodeWarr>
Once, I end task, my system starts performing normally. I have like a I7 6-core
<UltimateCodeWarr>
Laptop was top of the line like 3 years ago, so it's not some Dinosaur
<UltimateCodeWarr>
I have to keep a copy of the .SCAD open in Sublime Text so I can tweak it outside of SCAD before I attempt to load it back in. Otherwise system locks up like Rigamortus.
<pca006132>
I suspect it is related to preview, something related to the GPU
<pca006132>
at least on linux with the latest version, it renders in 3s
<pca006132>
and max out all my cores...
<pca006132>
well in total, including things like the interpreter time, it takes 7s in total
<pca006132>
another potential issue is RAM, how much RAM do you have (unused)?
<pca006132>
if it starts paging it will be incredibly slow
<UltimateCodeWarr>
In the GUI, it said it rendered it in like 16 seconds, which...was ok, but ... and I saw it rendered, but the whole system became Flakey-Jakey
<UltimateCodeWarr>
It's like it started to clean up, but in the process maybe freeing up handles that already have been reclained and used for something else/
<UltimateCodeWarr>
Didn't crash, but ... was really funkadelic behavior of the UI after the render and the whole OS too.
<UltimateCodeWarr>
So I got the command line generation working for the cylinders, took 13 seconds to render and generate stl
<UltimateCodeWarr>
Let me test the knurling
<UltimateCodeWarr>
WARNING: Viewall and autocenter disabled in favor of $vp*
<UltimateCodeWarr>
Geometries in cache: 42
<UltimateCodeWarr>
Geometry cache size in bytes: 89422368
<UltimateCodeWarr>
CGAL Polyhedrons in cache: 32
<UltimateCodeWarr>
CGAL cache size in bytes: 0
<UltimateCodeWarr>
Total rendering time: 0:00:13.363
<UltimateCodeWarr>
Top level object is a 3D object (manifold):
<UltimateCodeWarr>
Status: NoError
<UltimateCodeWarr>
Genus: -8
<UltimateCodeWarr>
Vertices: 556394
<UltimateCodeWarr>
Facets: 1112752
<UltimateCodeWarr>
Now for the Knurling:
<UltimateCodeWarr>
WARNING: Viewall and autocenter disabled in favor of $vp*
<UltimateCodeWarr>
Geometries in cache: 613
<UltimateCodeWarr>
Geometry cache size in bytes: 89925152
<UltimateCodeWarr>
CGAL Polyhedrons in cache: 46
<UltimateCodeWarr>
CGAL cache size in bytes: 0
<UltimateCodeWarr>
Total rendering time: 0:00:13.634
<UltimateCodeWarr>
Top level object is a 3D object (manifold):
<UltimateCodeWarr>
Status: NoError
<UltimateCodeWarr>
Genus: -8
<UltimateCodeWarr>
Vertices: 565620
<UltimateCodeWarr>
Facets: 1131204
<UltimateCodeWarr>
So ... is there some sort of import/export restriction on not being able to use something like the CryEngine or some other high performance rendering library?
<Scopeuk>
CryEngine is a game engine, game engines are optimised around speed, in order to achieve that they cheat, some of that is relying on pre-compiling assets, some of it is throwing "accuracy" away in the name of pretty. it's high performance in terms of nice lighting and moderately high frame rates but it is not the use case here where items are
<Scopeuk>
generally moving slowly and we are more interested in the objects exact form. all that being said you can always generate your mesh throw it into a 3d enviroment of your choice and crack on.
<pca006132>
well, if you can find a faster open source library than manifold, feel free to suggest it
<pca006132>
I think the slowness you experienced is likely just the shader struggling to render
<pca006132>
may be related to GPU or driver
<pca006132>
and 13s is not really slow your render to a crawl
<pca006132>
there are many examples taking minutes or hours to render...
<UltimateCodeWarr>
Would have thought that these Game Engine which Shade Polygons at 60-120 fps would be a dream come true for cad rendering.
<pca006132>
those polygons do not have 1M facets
<pca006132>
and rendering in 2D is not very useful when you need something in 3D
<pca006132>
I don't think it is even possible to perform boolean on meshes with millions of facets in 0.02s or something
<pca006132>
mesh processing is not that parallelizable, there are inadvertently something sequential
misterfish has joined #openscad
<Scopeuk>
game engines are placing pre-generated mini figs all over the table top quickly. the cad engine is generating those mini-figures from scratch. Very different problems. I had misunderstood and thought we were just looking at the display/physical render aspect not the initial geometry model
teepee_ has joined #openscad
teepee has quit [Ping timeout: 260 seconds]
teepee_ is now known as teepee
<UltimateCodeWarr>
A lot of times with a 3D model with many parts, you only modify one part. Why couldn't this engine cache the parts that weren't touched, so all that it has to do is re-render the part that was changed? Should be able to get a massive boost in rendering times from something like that?
<pca006132>
it has geometry cache, just not advanced enough to cache module outputs iirc
<pca006132>
and doing local modification is hard, requires a lot of tuning, e.g. collision detection using BVH can be modified locally, but at some point it is so suboptimal you might just want to rebuild it from scratch
<pca006132>
for mesh simplification, it is possible to do it locally only and only do more when needed
<pca006132>
but so far this is not yet implemented, because it is hard
<pca006132>
and there are more important things that deserve our attention
<pca006132>
if you are interested, feel free to give it a try
dalias has quit [Killed (NickServ (GHOST command used by dalias_))]
dalias_ is now known as dalias
pa has quit [*.net *.split]
voxpelli has quit [*.net *.split]
HumanG331 has quit [*.net *.split]
tcurdt has quit [*.net *.split]
tcurdt has joined #openscad
voxpelli has joined #openscad
cbmuser has quit [Ping timeout: 244 seconds]
mmu_man has quit [Ping timeout: 246 seconds]
cbmuser has joined #openscad
mmu_man has joined #openscad
pca006132 has quit [Remote host closed the connection]
pca006132 has joined #openscad
<teepee>
guso78: it works with prusaslicer --single-instance
<teepee>
it behaves like loading the file into the already running slicer
<guso78>
Great! Who can Test for Mac ? 🤣🤣
<teepee>
I would not mind merging even without that test as it's a completely new feature, so in case it's not working on macos we would not take anything away
<teepee>
we probably want to extend the settings a bit, but we can do that along the way too
<guso78>
Pr means offer and i am Not the owner . Your decision ...
<guso78>
One Idea ist that Export stl after running Slicer will Default to the temp filename to make Cura reload the Design in Case The loaded Design changes
<teepee>
yeah, that could be an option too
<teepee>
for initial state I think we should only check the temp file behavior
<teepee>
if deleteLater works, that would remove quite some extra code and global storage which is good
drfff has quit [Ping timeout: 248 seconds]
teepee_ has joined #openscad
teepee has quit [Ping timeout: 260 seconds]
teepee_ is now known as teepee
mmu_man has quit [Ping timeout: 255 seconds]
drfff has joined #openscad
kintel has joined #openscad
<kintel>
guso78 I tested on macOS. It works, but annoyingly Qt doesn't seem to understand app bundles, so I had to hunt down the cura executable (meaning select the correct file from a list of 600 files in the MacOS folder inside the Cura bundle).
<kintel>
Will comment more in the PR
drfff has quit [Read error: Connection reset by peer]
<teepee>
I would see that burden on macos not Qt
<t4nk_fn>
hehe.. yeah, you guys don't really understand Qt :b
<teepee>
meaning what exactly?
<kintel>
guso78 btw., didn't you buy a Mac a while back for testing?
<guso78>
Kintel yes, but still bloody beginner. Cought me 🤣
<kintel>
guso78 I found one possible workaround for macOS:
<kintel>
This will allow specifying an app bundle, and will support Cura running single instance mode (which is default on macOS)
<guso78>
Kintel thx ,i will blindly use in an ifdef 🤣
<kintel>
It even supports specifying just the app name, but it has to be exact, e.g. "UltiMaker Cura"
<kintel>
An even better UX could be to support well-known slicers and make best effort attempts at pre-filling the app name/path
<kintel>
..but that's significantly more work for us..
<kintel>
but file dialog would be a good start
<kintel>
oh, and if we could remember the selection in the print dialog that would be cool too
<kintel>
..to avoid re-selecting the same print service every time
<kintel>
I got tired of doing UI work - soo many detail to manage : /
<kintel>
Btw., on the topic of print service: I'm planning on adding PCBWay as a new print service soon. Just need to sign some paperwork for setting up sales commission + some upfront donation. All goes to our OpenCollective account. Details on request.
kintel has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
guso78k has joined #openscad
<guso78k>
teepee, did some googling. it appears the "deleteLater" involves a QTimer with a fixed delay. Do you really prefer this over the existing solution ? My feeling is that I will still need the QTempFile in the MainWindow later for the default value of the File->Export function.
<teepee>
no, there should not be any timer needed
<teepee>
it just registers the object with the main loop
<teepee>
question is if the "control returned to main loop" is too early or not
<guso78k>
i'd say its definiitely too early. In my computer Cura needs at least 10 seconds to startup (due to Java in background) and it might be worse on other computers)
<guso78k>
A safe Timer delay would at least be 30 secs, i would say
<teepee>
there is no timer at all
<teepee>
the question is only if the delete happens when the currently running events are all done and the event loop goes back to looping waiting for new events
<teepee>
or if it's on exit of the event loop
<guso78k>
i'll simply test it
<teepee>
it does sound like it's too early, e.g. when it goes back to idle
<guso78k>
when i press the "OK" button in the Print dialog, i see the main window in less than a second
kintel has joined #openscad
<teepee>
lets assume deleteLater is not late enough
<kintel>
When is it safe to delete though? On macOS, app launch is asynchronous, so OpenSCAD would return to the main loop immediately, even if the app takes 30s to launch
<teepee>
100% safe? never
<teepee>
closing the openscad window, maybe 98.3%?
<kintel>
just don't quit openscad while slicing?
<teepee>
well, don't close the window is the current state
<teepee>
but it could be changed to: don't close openscad i guess
<kintel>
I see one odd behavior though. With the current implementation, the file shows up in Cura, but Cura immediately thinks that the file has changed and asks me if I want to reload it
<teepee>
prusaslicer would have a "delete after loading" :-)
<teepee>
that probably means it's not closed before the start happens
<guso78k>
Aka James Bond, this message automatically deletes after reading
<teepee>
yep, that would be neat if supported everywhere, but that's obviously not the case
<teepee>
so a single (not per window) vector of unique_pointers should be able to take care of things?
<guso78k>
/ exportFile.setAutoRemove(false);
<guso78k>
exportFile.deleteLater();
<guso78k>
s|/|//|
<guso78k>
this does not work, cura sees the file already deleted
<teepee>
right, so the delete happens when it returns to the main loop, so it's only good for stuff handled inside a single event processing
<guso78k>
can anybody create a small snippet for me with the FileSelect Dialog included instead of the QLineEdit ? Issue is that I dont know how to use the GUI tools and i have always edited the text files.
<teepee>
I'd say leave that open and we have a look later.
<teepee>
I have to check if the qt gui stuff still works on my system, it did update to qt6 recently
<TylerTork>
There seems to be an issue with the editor in terms of coloring code: https://prnt.sc/_Kf6ioN3G4I6 -- is this known? I can't find an issue in github
myosotis has quit [Remote host closed the connection]
myosotis has joined #openscad
<teepee>
looks like it gets confused by the double \\