Commenting off of you since I wrote all of this and then realized it's basically exactly what you're saying. But to +1 everything you just said in my own words:
I love OpenSCAD. I've been 3D printing for a while, but I never really got to a place where I could design interesting parts until I started to get the precision of doing models in code. Sometimes it is slower, for sure.
Every time I've used as a CAD GUI program I would get to this point where I would need to alter a single dimension by 0.25mm and realize that _all_ of my fastener holes, cutouts, etc have to be nudged with the keyboard or mouse to accommodate it. The input devices lack precision for that kind of task, and having to repeat the operation dozens of times (or bulk select) gave me a terrible sinking feeling, and I'd often just step away and give up on the design at that point out of frustration. I try to approach everything in OpensSCAD in a way that means I never have to experience that feeling again.
I will also say that doing everything from scratch in OpenSCAD would be it's own special kind of hell. Libraries like [BOSL2](https://github.com/BelfrySCAD/BOSL2) provide a good set of core ideas and preferences that help set you on a good path. A good example: BOSL2 shapes tend to have a "center origin" by default, which is different than the OpenSCAD default, but makes doing transforms later way easier.
Anyway, happy to see OpenSCAD getting some attention here :)
> Every time I've used as a CAD GUI program I would get to this point where I would need to alter a single dimension by 0.25mm and realize that _all_ of my fastener holes, cutouts, etc have to be nudged with the keyboard or mouse to accommodate it.
There seems to be some fundamental misunderstanding of CAD here. I can't imagine how you could even design something in CAD in a way that you would end up in this situation.
I wonder if he's using TinkerCAD or something similar? I often use that, 'cos it's quick for simple things that are one-offs, but it has exactly this issue as it's not at all parametric, just primitives and booleans (though it does have some basic sketch capabilities now)
When I'm doing something more sophisticated I use SolveSpace, but I'm a lot slower with that.
yeah, op here: it's exactly that. I've used most of the free or open source software options and it seemed like none of them are parametric. I know I could buy fusion or something like that, but I found OpenSCAD before I got to that point and feel like it fits the bill for me.
It's not about parametric functionality being obvious, it's that you can't draw something that isn't parametric in the sense described. At least I don't think I would be able to if I tried.
>Every time I've used as a CAD GUI program I would get to this point where I would need to alter a single dimension by 0.25mm and realize that _all_ of my fastener holes, cutouts, etc have to be nudged with the keyboard or mouse to accommodate it.
What.
This makes no sense. This isn't PowerPoint; your holes and cutouts are supposed to be parameterized. How are they even supposed to be at the proper position in the first place?
As a CAD user, this is like e.g. a coder seeing someone write code with global variables everywhere.
I think I'm realizing that openscad was probably just the first time that parametric design options were given to me in a context where it made sense to me (in code). Maybe some of the software I've used has supported parametric positioning, but it wasn't made obvious to me. In OpenSCAD it's parametric by necessity. I said this in another comment, but the other programs I've worked with in GUI are most certainly not high end pieces of software: tinkercad, freecad, sketchup.
I'm not doing complex character model designs, I'm usually building functional prints like enclosures or cases. It certainly sounds like there are features of better CAD software that makes parametric the default?
I think I understand this — I mean, OpenSCAD was my brief gateway to parametric CAD, and then I got to FreeCAD via brief stepping stones of CadQuery and other packages.
But OpenSCAD isn't really parametric CAD. It's a programming language; it's parametric for that reason. But it's not really CAD, at another level, in the sense that it does nothing to "aid" your design work. It has no interim abstraction for generated geometry; everything must be explicitly described.
FreeCAD, though, is profoundly parametric, through and through, and really always has been. Indeed the parametric aspects are the main thing that made it workable before the TNP mitigations were added. It is not a limited CAD package, by any means. It's just a somewhat unfriendly one with a CAD kernel that has some limitations. Really it's almost better understood as a 3D IDE with some workflow affordances.
If you are stuck trying to get your head into how FreeCAD works, there are now three really good ways on Youtube: the Mango Jelly Solutions videos are incredible, the Shawn Hymnel/Digikey FreeCAD and 3D Printing course is good, and there are great recent videos by Deltahedra.
But what you will be able to make with it, once you get your head into it, is night and day different to what is possible with OpenSCAD. Because your parametric work in FreeCAD (or other CAD packages) can operate on the geometry of the result of previous operations.
Give it a try in the New Year with FreeCAD 1.1 when it is released.
If you want another stepping stone from OpenSCAD to FreeCAD or any other package, I really recommend you look at CadQuery/Build123D. This will give you a similar coding approach but it will introduce you to operations on the true faces, edges and vertexes of the output of other operations.
(FWIW I would not say that Sketchup is not high end, either. It's not to my tastes but it is quite powerful)
The one thing which I need to see in FreeCAD to be successful with it is an interface option which doesn't require a multi-button mouse, but which will work with a trackpad, or better still a tablet and stylus --- I spend 5 days a week essentially chained to a desk using a mouse (sometimes a Trackpoint) and evenings/weekends I prefer to sit somewhere more relaxing than a desk and to use a different sort of pointer.
Dune 3D seemed quite promising, but very limited --- is there a set of options for the UI in FreeCAD which will create a similar interface?
That mode works OK on touchscreens, in the sense that any app with tiny buttons to click does. I have tried using a tablet with a pen but it is a heavily modal UI so it feels a little bit like old fashioned light pen territory, as much CAD does. Not like an iPad app; they need designing differently.
Quite a lot of progress on macOS FreeCAD crashes because they changed an exception handling strategy for exceptions outside the Qt loop, if I remember right. Some crashing in 1.1RC that is being fixed. In general it crashes a whole lot less than it did in 0.20, say. But if you can reproduce them, definitely report them.
I didn’t like Dune3D; its interface is clumsy even if the 3D constraints thing is interesting.
(Which is not to say that I am not pleased to see more open source CAD packages taking different approaches. Dune3D is interesting, Blobfish's Cadseer is very interesting to a coder I'd have thought, and SALOME has obvious value)
The one small tweak I would suggest for FreeCAD is to use the tab bar workbench selector rather than the dropdown version. It’s such a small change but it helps flow between things in a way that feels like the various functions are more closely integrated. That, combined with custom panels if you want them, makes it more fluid.
(I am not making any particular claims for FreeCAD's usability; I do though think it is much better and much more learnable than the average HN perspective of it, which seems to often come across more as TUI-exceptionalism or "but I don't wannnnnaaa learn a guuuuuuuiiii". GUI CAD isn't intrinsically some inferior, imprecise, unformalised thing.)
> OpenSCAD isn't really parametric CAD. It's a programming language; it's parametric for that reason. But it's not really CAD
Maybe this is pedantic, but why wouldn't OpenSCAD qualify as CAD exactly? It's still "Computer-Aided Design"? Sure, the UI/UX is different, but is there some qualifier to CAD around the UI/UX?.
It's me being picky about the meaning of the word "aided".
CAD is software to help people make complex things without having to do complex geometry/trig/general maths.
OpenSCAD doesn't really "aid" you much with this. It's a 2D/3D shape generator with boolean operations, but because it doesn't let you do constraint operations on 2D geometry, and it doesn't let you do further operations on the fundamental geometry (faces, edges, vertices) of the generated 3D solids either, it never liberates you from most of the difficult work.
I'm not even sure how much it aids you with "design": it doesn't support chamfers or fillets, it offers no tools for adding drafts or making truly uniform thicknesses. And it only generates meshes.
OpenSCAD is useful. I'm not saying it's not. But it is useful mostly for drawing strongly geometric or mathematically-derived solids and producing a mesh from it.
FreeCAD is definitely parametric but I hear you that the interface doesn't make it obvious. It might be worth another look particularly since it's interoperable with OpenSCAD and can work on CSG trees within the interface
At least you've inspired me to try it and see if it's "worth writing home about"
If you're doing enclosures, check out Dune3d! Has been featured here as well (it's how I found it). It's pretty easy to use and feels intuitive for prints you'll only have to make once or twice. It's missing some things here or there but nothing fundamental (except trimming edges i.m.o.)
I often switch between FreeCad and Dune3d now, Freecad for things I know how to design properly and Dune when I'm in 'claying' mode. E.g. export a .step part when I get stuck in FreeCad, import it into Dune, make some progress and vice versa so I don't walk away from the project
Oh, it is not that software like freecad is not parametric by necessity; it is just that in a parametric design process, you don't set all the parameters at once. Why? Because a) you don't overconstraint a design, and b) your parameters rely on references (a point, a line, the side of another object, a tangent), and you may want to change which reference you choose.
For example, if you put a hole in a box, do you want to reference the center of the sides of the hole? And do you want to place them relative to the left side or right side, and front or back? You never say "it's x mm from the left and y mm from the right and my box is w mm wide" - because the relationship x+y=w is always here! You only define 2 out of 3. But it may happen that you picked the wrong 2 - and a parametric CAD makes it very easy to do so in a few clicks, while a programmatic CAD like OpenSCAD is a large rewrite with calculation you have to do yourself on the side.
My example is silly but start doing big designs, large assemblies, and you "chains of cotations" may need to be redone again and again - especially when tolerances begin to add up.
A properly parameterized model shouldn't have the issue with having to nudge everything manually after a trivial change.
I had the change the height of an entire enclosure to accommodate a taller than anticipated PCB, and simply edited the sketch at the top of my design tree that defined the overall dimensions.
It took about 5 minutes to adjust the odd broken fillet and change some mates in assembly and it was done. No fidgety mouse movements. I actually do a lot of mech design on a laptop with a trackpad, arrow keys for view changes and numeric dimensioning for 95% of everything else.
> Every time I've used as a CAD GUI program I would get to this point where I would need to alter a single dimension by 0.25mm and realize that _all_ of my fastener holes, cutouts, etc have to be nudged with the keyboard or mouse to accommodate it.
I am just starting to learn CAD and FreeCAD - also dabbled a bit in OpenSCAD. But I do know that FreeCAD has Spreadsheets [1] and Configuration Tables [2] which allows you to define your model parameterically and changes values as needed.
It’s a fantastic feature and works really well, my problem is I can never invest the required time to learn the interface. It all falls apart when I need to switch modes to move something or whatever. With scad can usually knock whatever I want together pretty quickly without having to relearn how to use the tool.
Spreadsheets are really slow in FreeCAD. I'd suggest you look into Varsets [0] if you don't need some of the fancier capabilities that spreadsheets provide.
Yes, VarSets are definitely better (more granular dependency recalculations).
The little-known Configuration Tables aspect of Spreadsheets is absolutely worth using, though, and has no equivalent in the VarSets scheme at this point. Once you get that set up it is great fun.
> Every time I've used as a CAD GUI program I would get to this point where I would need to alter a single dimension by 0.25mm and realize that _all_ of my fastener holes, cutouts, etc have to be nudged with the keyboard or mouse to accommodate it.
I can see how you would end up in that position
You need to add constraints to your sketches. In other words tell it that the hole needs to be x distance from certain lines.
If you don't do that what you get is the equivalent of hard coding a hole location in OpenSCAD. I guess OpenSCAD just forces you to think parametrically.
Also in fusion 360 make sure timeline editing is on.
I sometimes think that "parametric" is not the right description or the word is used in the wrong way.
As an example, consider a bar with a constrained length, e.g. 1000mm. I want holes in the bar every 100mm (not a strange requirement). Now I change the length constraint to 800mm. Consequently, the number of holes should change. But this seems not possible in a "parametric" modeler. Maybe I'm missing something, though.
> I would get to this point where I would need to alter a single dimension by 0.25mm and realize that _all_ of my fastener holes, cutouts, etc have to be nudged with the keyboard or mouse to accommodate it
Thats surprising! Last time I used software like this (Inventor, back in ~2005-2006) constraints meant that I didn't need to do this at all
Sunshine is a great open source game streaming stack, and has client applications for tons of platforms, usually under the name "moonlight". Bazzite makes setting that up on a host (machine running the game) dead simple.
Ah, so I see we've entered the "normalizing the end of presidental term limits" part of the downward spiral. Maybe I need to accelerate my plans to get the fuck out of here.
We're already past the point where there is no meaningful notion of "normal" that actually impacts what happens in government. Normalizing things doesn't matter that much if people care so little that they elect someone who's done what Trump did his first time.
I mean he's selling the hats and I've seen some talking heads on the news say they'll look at ways for him to do it. The two term limit is a kinda recent precedent all things considered, so...
Are there any bookies for that? Seems like an easy way to get rich betting against that happening. If not, then I would instead wager the "market sentiment" is that Trump isn't actually serious about a 2028 bid or that he won't actually be able to overcome 22A.
Yep, the 1964 earthquake that occurred in the area is to this day the most powerful earthquake recorded in North America and the second most powerful in the entire world. The region is insanely seismically active, even compared to the west coast of the continental US.
I grew up in coastal AK and I can't remember more than one time that we faced evacuation orders. We had weekly tests of our tsunami alarm system, but I only ever heard them operated in a non-test that one time. I still keep a close eye on it every time there is an earthquake in the area that triggers a warning because I have family there.
In the last few years there has been a significant uptick in the number of alerts that trigger sirens, orders to evacuate to higher ground, etc. Talking to people back home, it seems like they're "warning-ed out" as you say and are beginning to tune it out.
A 7.3 magnitude quake absolutely can trigger a tsunami big enough to threaten your life, so the NTWC is 100% doing the right thing. I also agree that they need to be careful about perception, and careful about stoking panic. A few years ago, a pedestrian in my home town was struck and killed by a car driving to higher ground during a tsunami warning. There wasn't any tsunami activity that day, but the pedestrian is still dead.
It's impossible to completely attribute the death to the state of alarm/evacuation, but it's not hard to see how a driver and a pedestrian in that situation might be less than completely attentive due to the loud sirens, increased traffic to unusual areas, etc.
I don't know who the provider is, but the attack was almost certainly not targeting the provider, but a site hosted on their platform. Many hosting companies upsell their customers into stuff like providing Cloudflare DDoS prevention. The target site was probably something political or controversial. I work at a hosting provider and we deal with this type of thing constantly.
That's fine, but bodybuilding is recreational with the exception of a very small number of people who are professional bodybuilders. Human beings don't _need_ to have 200g of protein per day. Assuming you're not a professional or don't have a job where large muscle mass is an absolute requirement, the excess protein intake is something you _want_ so that you can enjoy your hobby.
To be clear, you should continue to eat as much meat as you want - it's your life! There are tons of advantages to strength training and bodybuilding, and I am not trying to diminish any of that.
But what I can't agree on is that it's ethical to consume that much daily protein unless you truly need it. That level of meat consumption has very real impacts - it is literally unsustainable for a significant number of people to consume excess protein entirely from meat.
You point out that this behavior is unethical and in the same breath you say they should keep doing it. I'm having trouble reconciling these two statements, or thinking of examples of when unethical behavior should be encouraged[0]. Perhaps it should be "you *can* continue to eat as much meat as you want" instead of "you should [...]"? That way it acknowledges their agency and our inability to prevent their actions, without condoning them.
[0] so far the closest I've come is "perhaps in retaliation against an earlier injustice"
I get about 80 grams from protein powder (whey), another 20 from eggs, another 20-50 from yoghurt, and another 50-60 from a chicken breast/fish (200-300g worth). I get all my eggs and meat locally as I live in the boonies. You are being deliberately obtuse assuming I get 200 grams from only meat. This would wreck my bowels.
Cheers for the lecture though, I think I'll up it to 300 grams just from your comment alone.
>it is literally unsustainable for a significant number of people to consume excess protein entirely from meat
When the billionaires give up their profits I'll trade in my single daily unsustainable chicken breast.
I live at ~64 deg latitude in the USA (Alaska) and 100% agree with everything you said. The timing of sunset has such a profound effect on when you consider the day "done". In Dec it's painful to haul myself outside at 5 or 6 PM since it's "night time" already. Meanwhile in June, at 11PM/23:00 when it's still bright out I have to remind myself to home and go to bed so I'm not a tired wreck at work the next day :)
I think what's fascinating about it is the daylight changes you experienced in the 20 deg latitude change you experience from Orlando to Seattle are dwarfed by the changes from a ~15 degree latitude change from Seattle to Anchorage. By the time you're getting close to the pole, you can see huge differences in solstice minimum/maximum sunlight by moving just a few hundred miles north or south.
I live just a couple hundred miles south of the arctic circle, and personally I hate the time of year where we "accelerate" into the equinoxes (equinoxii?). The rate of change is just too fast and too disruptive, and you _really_ see its effects on people. And then DST comes in and makes it even worse.
The difference as you climb in latitude is really shocking. Even just another 3-400 miles south of here, the rate of change is way less severe.
Anyway nice work and cool article! I've done some of these rough calculations myself before to plot out the change just to verify that I'm not insane for hating this time of year, and you did a way better job than I ever did :)
I grew up here, so it's "home" so to speak. Well, technically my childhood home was a few hundred miles further south than where I am now (Fairbanks, Alaska). It's definitely an extreme climate to live in, but there are a ton of things to do outdoors, and although the daylight changes are very extreme, the excessive summer daylight makes that part of the year truly amazing.
I do think the extreme polar opposites in daylight and temperature for summer and winter solstices contribute to people here being a little...unbalanced. But for a lot of people, the unique landscape, low population, and abundance of outdoor activities make it worthwhile.
I love OpenSCAD. I've been 3D printing for a while, but I never really got to a place where I could design interesting parts until I started to get the precision of doing models in code. Sometimes it is slower, for sure.
Every time I've used as a CAD GUI program I would get to this point where I would need to alter a single dimension by 0.25mm and realize that _all_ of my fastener holes, cutouts, etc have to be nudged with the keyboard or mouse to accommodate it. The input devices lack precision for that kind of task, and having to repeat the operation dozens of times (or bulk select) gave me a terrible sinking feeling, and I'd often just step away and give up on the design at that point out of frustration. I try to approach everything in OpensSCAD in a way that means I never have to experience that feeling again.
I will also say that doing everything from scratch in OpenSCAD would be it's own special kind of hell. Libraries like [BOSL2](https://github.com/BelfrySCAD/BOSL2) provide a good set of core ideas and preferences that help set you on a good path. A good example: BOSL2 shapes tend to have a "center origin" by default, which is different than the OpenSCAD default, but makes doing transforms later way easier.
Anyway, happy to see OpenSCAD getting some attention here :)
reply