When The Right Tool Is Wrong

I’m a firm believer in using the right tool for the job. And one of the most fantastic things about open-source software tools is that nothing stops you from trying them all. For instance, I’ve been going back and forth between a couple, maybe three, CAD/CAM tools over the past few weeks. They each have their strengths and weaknesses, and so if I’m doing a simpler job, I use the simpler software, because it’s quicker and, well, simpler. But I’ve got to cut it out, at least for a while, and I’ll tell you why.

The first of the packages is FreeCAD, and it’s an extremely capable piece of CAD/CAM software. It can do everything, or so it seems. But it’s got a long shallow learning curve, and I’m only about halfway up. I’m at the stage where I should be hammering out simple “hello world” parts for practice. I say, I should be.

Fortunately/unfortunately, some Hackaday readers introduced me to KrabzCAM through the comments. It’s significantly less feature-full than FreeCAD, but it gets the job of turning your wife’s sketches of bunnies into Easter decorations done in a jiffy. For simple stuff like that, it’s a nice simple tool, and is the perfect fit for 2D CAM jobs. It’s got some other nice features, and it handles laser engraving nicely as well. And that’s the problem.

Doing the simple stuff with KrabzCAM means that when I do finally turn back to FreeCAD, I’m working on a more challenging project — using techniques that I’m not necessarily up to speed on. So I’ll put the time in, but find myself still stumbling over the introductory “hello world” stuff like navigation and project setup.

I know — #first-world-hacker-problems. “Poor Elliot has access to too many useful tools, with strengths that make them fit different jobs!” And honestly, I’m stoked to have so many good options — that wasn’t the case five years ago. But in this case, using the right tool for the job is wrong for me learning the other tool.

On reflection, this is related to the never-try-anything-new-because-your-current-tools-work-just-fine problem. And the solution to that one is to simply bite the bullet and stick it out with FreeCAD until I get proficient. But KrabzCAM works so well for those small 2D jobs…

A hacker’s life is hard.

76 thoughts on “When The Right Tool Is Wrong

  1. It seems to me that these problems would go away if FreeCAD would just “be more like solidworks” when it comes to interface. Everything that’s quick to do just takes too many steps. It’s hard to create a component, sketch, dimension, manage/create equations, extrude, etc, because it seems like everything has a completely different interface, and none of it is intuitive. It also doesn’t help at all that the menus/buttons have no text whatsoever, so I’m just fumbling though icons that, again) bear no resemblance to that of other CAD suites.

    I would literally rather spend $4000 on Solidworks instead of bother with FreeCAD because of it’s interface alone — I feel like my 10 years of CAD experience is reduced to almost nothing.

    1. That is part of your problem though – you have 10 years of using tools you know, as a relative newcomer to CAD with no eons of different practices to unlearn I didn’t find freeCAD problematic at all.

      In the same when when I went from using a very old photoshop to gimp it felt awful, even though gimp was by then way more feature rich, stable, faster, just better in every way than the old photoshop… Still took a very long time to actually like GIMP at all, as had to learn the new interface, icons etc..

      Or for that matter using linux’s over whichver variety of windon’t you learned, have huge time sunk into.. There is a reason everyone hated windoze 8… and it wasn’t that it was actually worse than its predicessor, as it wasn’t, just the GUI was too different and made no sense for normal computer and the standard HIDS…

      1. I had a similar experience when I tried GIMP for the first time, having previously used Corel Draw, [ or just good old Paint ] for pretty much every picture editing job. GIMP has so many features it’s hard to know where to begin for a new user. But I guess that’s why the “I’m feeling lucky” option on Picasa was so popular.

      2. > even though gimp was by then way more feature rich, stable, faster, just better

        On many important features though, GIMP is still behind Photoshop 8 which is now 18 years old. I’m looking at the selections, manipulations and transformations tools, photographic filters, color handling, brushes… also some little things like the user interface and view manipulation. It’s quite clunky still. They like to pile up on features based on lists of what other programs have, but often have little regard in how these features actually work and how the user can fluidly access them.

    2. @Anthony: You have stated the “I don’t want to use any other software than the one I know” issue. It’s something we all feel, but I think it’s also something that’s good to call by its proper name. Why doesn’t everything work just like X? Who moved my cheese?

      I’m not saying that this concern is invalid, either. You’ve got lots of muscle memory invested in some of those keystrokes.

      But compared to some of the art-focused 3D modeling tools out there, the basic sketch-in-2D, dimension, extrude/pad/pocket/surface workflow of FreeCAD is pretty much the same, no? (I have never even smelled the box that Solidworks comes in. Above my pay grade.)

      So yeah. If you’ve got 10 years of design experience using a particular tool, and you’re not interested in trying out other stuff, you certainly don’t have to. But when you do, you have to clear your mind of the “the way things should work” trap.

      1. It’s not so much about “how things should work” so much as “this doesn’t make sense.” Fusion 360 for example changes some traditional workflows (top-down vs bottom up), and has a curve that goes along with it. I’ve used Fusion, Alibre, Inventor – with some overlap. However, FreeCAD’s workbenches seem more of a programmer convenience than a user-oriented one, it’s just less productive, imo. Which makes me resistant to learning it – my *time* is valuable. Some open-source tools with entrenched commercial alternatives simply won’t gain traction until they “get” that – like GIMP, Blender (which eclipses Softimage XSI, it’s amazing), and even KiCAD did. Being free (as in beer) isn’t enough to drive adoption.

        In summary, I don’t want to invest time in *learning* a tool, I want to *use* the tool – and not at a loss of productivity. If I can’t use it, even with an understanding of how it should work – that’s a design failure. Not wanting to trade away capability and productivity doesn’t make me a luddite – if a tool has advantages I’ll switch (almost too readily) – I just value productivity more. To me, FreeCAD is offering “Free, but you’ll struggle to learn it, and it won’t be as powerful either.”

        1. Hmm. True for Kicad. When CERN threw some programming muscle behind it everything seemed to click in place better.

          It’s been a while but I remember things being odd the first time I used it (3.x?). Then after a few of their newer releases the whole package seemed to mesh together.

          I still find the parts libraries a bit wonky. But it all works, so I just get used to the things that seem oddly organized (to me).

          1. Kicad still has parts (I recall making a schematic part, placing the pins) where it MOVES THE MOUSE POINTER. It does so “conveniently” but I’ve NEVER seen another program that did that (which wasn’t some sort of UI prank/joke). I consider this a major interface flaw.

        2. Not to mention that FreeCAD has some confusing naming conventions, like calling an assembly a “part” and, and then having a part editor workspace which does not work on parts, but on “bodies” which are actually parts for your assembly. If you look at the hierarchical relationship chart of what things are, it’s like… yeah.


          How it works, you just watch the tutorial and memorize which buttons you’re supposed to press without trying to understand it. Then you can repeat the motions, and if you should want to do something different, don’t try to figure it out, simply watch another tutorial.

          1. From the horse’s mouth:


            “the Std Part is not used for modelling, just to arrange different objects in space, with the intention to create assemblies.”

            Alright, so then why call it a part and not an assembly or a group etc. like everyone else does?

            This looks like they started out with the semantic of a “part” as a collection of primitive solids behaving as one object, with the intention to model just the one object. Then instead of making a new top level concept for assemblies, they made parts able to nest within parts to have a collection of objects with all the same abilities. Then, to make more complex shapes than primitives, they added the PartDesign workbench which as the name does not suggest creates “Bodies”, which are hierarchically equal to the primitives, and the Bodies and primitives then took on the role of parts.

            In contrast, let’s say Inventor, you have an assembly, which contains parts, which consist of bodies derived out of a list of procedural operations. This makes intuitive sense. FreeCAD’s parts within parts but also bodies and primitives which are hierarchically the same as parts, but not… doesn’t. It looks like some hierarchical programming paradigm that someone back in the day liked very much because it’s “powerful” by allowing you to mix and match things recursively, but it isn’t exactly conductive for the business at hand and simply complicates things.

    3. And when you win against the interface, you get the unbeatable boss: Topological naming problem and all your carefully crafted .fcstd castles fall down to a huge mess of errors.

  2. “… the never-try-anything-new-because-your-current-tools-work-just-fine problem.”

    And this, in itself, is problematic for an engineer. For over 20 years, I have made it a point to become familiar with at least one new programming language, build tool, and/or EDA tool per year. This was after I went through the 80s doing everything in Fortran, and most of the 90s doing everything in C.

    As for EDA stuff, I try to use something different whenever possible if the client/employer has someone that is available and familiar with the system. I currently prefer SolidWorks and Mentor stuff. Monday morning I will using FreeCAD and KiCAD; so whatever.

  3. I recently stumbled through a series of switching between CAD programs as I’ve tried to find the best/easiest/most-intuitive program to work with. I used to be OpenSCAD because it was free and unencumbered. Then I watched a bunch of videos and saw some of the things you could do with Fusion 360 and switched to that. Then they changed the licensing (which affected me very little, frankly) and tried to switch to FreeCAD but couldn’t figure it out. So I stuck with Fusion 360 until I saw a friend using OpenSCAD to do some really cool things…

    My wife (who is a photographer) comments to me sometimes that people ask what kind of equipment she has. The assumption is “If I want a picture that good, I should get that camera”. It’s true to a degree, but ultimately it is the user of the tool that produces the product. Who understands application of light, framing, etc.

    There are undoubtedly some tools that support features or accomplish a task better than another is capable of, but I favor the tool I can use effectively

    1. And the true master photographer/machinist/programmer can use a complex and fully featured tool to its fullest. Where that same tool would cripple the work quality and speed of the occasional use novice/hobbiest, so sometimes its best to use the MS paint, point and shoot smartphone – the more primitive and easy tool for you to use, as you have no interest or need to master this element.

        1. Also true, but you can’t take a true IR deep sky photo without the modded camera and right filters etc – Sometimes the complex tool isn’t just because you have it, but an absolute requirement.

  4. “And one of the most fantastic things about open-source software tools is that nothing stops you from trying them all. ”

    Well time, and that disparaging saying relating the two.

  5. I’d think the problem is sort of with FreeCAD.
    I can work reasonably well with making 2D sketches, extruding them into 3D objects and make some complicated thing out of a lot of those (Been using FreeCAD for a few years now), but each new workbench is a struggle.

    Maybe the “draft” workbench would be the part of FreeCAD to use for a 2d Bunny, but I’ve sort of stayed away from it. I’m still not sure if it is good & usable workbench, or if it’s half obsolete or partially working.

    I’m also interested in the “robot workbench” for FreeCAD, but it looks like it’s been stuck in some early stage for multiple years now. I like FreeCAD & Open Source software, but unfortunately progress in FreeCAD is a tad slow and there are still some reasons why recently a new official 0.19 has been released instead of 1.0

  6. Adaptive modular workflows are resilient to many use cases. As a corollary, we must note that vendor lock-in schemes will use legal encumbrances to restrict how a ecosystem is used regardless of its specific function.

    Likewise, parametric modeling languages can solve design problems that are unfeasible to implement or maintain in a GUI. In some cases, proprietary low-level macro languages in the linuxCNC gcode dialect can trivially solve tool-path problems that assuredly will cause even the most expensive commercial CAD/CAM packages to implode (a good senior engineering prank.)

    Solidworks adds value to a workflow, and FreeCAD will continue to evolve… with an API defined by intelligent users solving real world challenges.

    “GUIs make simple things trivial, and difficult things impossible.”
    This is the way it has always been. ;-)

    1. FreeCAD seems to be designed under the assumption that my time is free. It’s not. If I’m doing serious design work, a tool that was made by people who weren’t serious about designing it isn’t something I need to waste my time with.

      I’m tired of people giving free software the best edit of the doubt. Some software is just lousy.

      1. Much of modern commercial engineering software has focused on the user-experience rather than functional workflow. Thus, one often may find themselves struggling outside of a proprietary vendor approved experience. It just “feels familiar”, and thus less annoying every time something glitches. Admittedly, Microsoft also sold screensavers as a different OS for 15 years and few noticed. ;-)

        FOSS is also terrible given there are often no real standards, but the ecosystem adapts like Darwinian evolution models. This means useful applications get features as needed (rather than guessing what someone may need), become popular _if_ they are useful/secure, and communities will collaborate to improve the quality over time (as most have a personal stake in making things better).

        I think Solidworks+Mastercam is the standard FreeCAD should try to improve upon from a utility perspective. Now I also like OpenSCAD in many ways, but the geometry it creates can be a far from accurate STL export. The file formats is the problem in many ways as .stp/.igs/.iges are only partially available to the FOSS community, and lossless exchange with commercial packages is challenging. Yet outside of a commercial setting, FreeCAD will eventually dominate the hobbyist projects anyway given the functionality it brings.

        I refuse to discuss the shenanigans Autodesk has pulled over the years, as they are no longer relevant for most projects. ;-)

        1. >communities will collaborate to improve the quality over time

          The issue there is that people with extensive experience using the software will not have a clear blue-sky view of the overall situation, and what improvement means for them may be completely irrelevant.

          This is the engineer’s bane: every user interface and workflow is correct, because while you’re designing it you also learn to be proficient in it. Bad solutions and bad logic start to seem like good solutions and good logic, because from where you stand they’re just obvious.

          If you just try to fix it by adding small incremental changes by the “community” that uses the program, without a central vision based on any use paradigm or plan, both the software and its user base takes off into its own la-la-land. This sort of software ecosystem behaves like a Brazilian favela. It doesn’t improve, it just becomes more and more confused and broken over time.

          1. “This is the engineer’s bane: every user interface and workflow is correct, because while you’re designing it you also learn to be proficient in it.”
            True, as there are lots of vanity FOSS CAD/CAM software projects that have been around for decades that few use due to the fractured non-obvious clumsy interfaces. However, bad design is a self-correcting issue with a modular utility, as new users have finite patience as illustrated by the griefers.
            My point was design by consensus is indeed often messy and slow, but the output is a more general set of accessible tools available to more users. https://en.wikipedia.org/wiki/Usability_testing
            If a project seems to spiral out of control, than a more functional variant or fork will emerge… and it will eventually dominate if it proves more popular.

          2. >and it will eventually dominate if it proves more popular.

            Yeah, though it only works if there are no better alternatives from the commercial side, that are actually designed to work. It’s kinda like how communism would eventually work by necessity, if there wasn’t capitalism next door that makes all the people jump the border for a better life.

          3. What you fail to account for in your “engineer’s bane” is the community is never made up of just folks with decades of evolving their workflow alongside the programs changes, there is always new blood who do see elements that should be fixed the old timers don’t even notice.

            Many times those elements will then be fixed and the old timers will still not notice, its just another small shift in their workflow… Of course sometimes there will be pushback against a change but its a relatively democratic process that will tend towards a solution more in keeping the the logic and patterns “the paradigm/philosophy” of the rest of the program, or a fork that does fix that issue more logically will pick up traction…

            Also no open source project is a rudderless as you suggest, it just can’t function at all like that, there is always a core paradigm and functional logic that as far as I’ve seen rarely changes, and never without a valid reason. Take systemd as an example, hate it by all means, can’t say I’m a fan of its UNIX philosophy viloations, but its become the standard for a few very valid reasons…

          4. > the community is never made up of just folks with decades of evolving their workflow alongside the programs changes

            Yes, but the people who actually DO the developing are just that. There’s may be bunch of people who use the software and try their best to follow what the programmers dictate, but they have no real input on where it matters.

            If you try to come in, as a programmer, to say “Okay, can’t we do this differently, can’t we take a step back and re-do this?”, you’re fighting against decades of inertia and accumulated bad decisions on bad decisions, and you will simply be told to go away. “Don’t like how we do it, fork it.” It forms a sort of cult where how it is done is just how it is done.

          5. What I’m saying is, with these sort of community projects, you can always grow a branch on the tree, but you can’t trim it back any further than the trunk you started from, and you can’t go solve problems at the roots because that will break things for other people. That’s why they turn out to be these shrubberies of mismatched features and poor design choices that propagate to other poor design choices that never really get fixed.

            In order to make it work, you have to chop down the whole tree and start over. Refactor the whole thing with a clear vision on how you want it to work.

          6. The problem with forking a project is that you’re all alone trying to do it.

            >“the paradigm/philosophy” of the rest of the program

            It’s often observed that the design of a software project starts to resemble the organizational structure of the company that made it. The interfaces between people define the interfaces between the things that they develop together. With most FOSS software projects there isn’t really any organization, and there isn’t really any paradigm or philosophy with everyone just doing what they want to do.

      2. Ah, common fallacy. I’m not specifically familiar with FreeCAD but open source, freely supplied packages don’t assume your time is free. They assume that the software developer’s time *isn’t* free.

        They generally do exactly what their author needs. And you’re free to use it, too. But they don’t assume anything about your time unless you’re paying for development.

      3. I must say this arrogant “they assume my time is free” is pissing me off. No they don´t. They solve their problem as best they can and share the fruit of their work with you.

        You could maybe take ya so valuable time to write/share some productive critics for the common good.

        AND if your time is so valuable that you work on a 5 figures project per month, just go buy an Autodesk licence or ten ?
        And if it is really soooo valuable, pay someone to make it.
        There´s nothing bad in outsourcing or renting a software.

        I think commenters forget that they are on Hackaday, hackaday is about hacks, DIY, learning and sharing.

        1. Some projects really do seem to assume you have unlimited time. Like Arch linux and Vim and any software people get really passionate about on a linux forum.

          FreeCAD is not one of them. I use realthunders far superior assembly3 version at work with no major complaints. I don’t have autodesk cash. FreeCAD is very good if you have never used paid CAD apps and are evaluating it on it’s own without reference to F360 or something.

          My starting point was OpenSCAD. I’m just happy to not have to use that anymore. Just about any cad app seems awesome next to that one.

      4. I don’t agree with this!
        FreeCAD has just reached version 0.19, which implies it is not finished yet.
        It sure has a lot of powerful capabilities, but a lot of them seem to be cobbled up by different people. For some tasks there may be three different workbenches that do the same, or workbenches get removed and replaced by better ones.

        FreeCAD is still in an experimental stadium.
        Better access to, and integration of the different parts is still a thing to be worked out.
        And once that happens, it may become a fierce full competitor to many commercial products.

  7. I’ve never met a tool I didn’t like, or hate… OK, for some tools the like component was small.

    Even gold standards (F360?) are often a mess. With enough time and effort, you can overcome even the worst UI. Often times the “right” tool is the one that gets the job done with minimal detours and warts that you can ignore.

    1. not really. fusion 360 is so damn easy to do CAM planning with. believe me, if your willing to not be a luddite, designing everything in fusion 360 turns out to be a wonderful experience. being able to cross validate a simulated cam job to the actual drawing has led to me having so many occurances of things just working the first time

      1. F360 with it’s right click chaos is pretty confusing. Sometimes it works, sometimes it doesn’t. Move operations move around for example. And if something isn’t available in a given context, it isn’t always clear why. Once you figure it out, it isn’t too bad. But the learning curve can be pretty tough. F360 is just not that consistent on their UI.

        CAM in F360 for milling is pretty overwhelming with all the choices. I have yet to get a good sense of which to use for a give operation. But that wasn’t my complaint.

  8. I love using the wrong tool for the job though, building a PC with a pocket knife, using a hex editor as a virus remover, milling a cylinder head with a countertop offcut…

  9. I don’t like tools that are too simple. I know you have to invest more time but in the longrun you are much faster than changing between 5 to 10 other tools that you chain together to get to the point you want to.
    Currently i am using Fusion360 and DesignSpark Mechanical which is also great

    1. Yeah, I usually say “Just right is all wrong”. If a tool
      seems perfect for exactly what I’m doing with no unnecessary extra stuff, hackers seem to call it beautiful. I call it a waste of my time to learn, because I’ll
      need a whole new approach for a slightly different task.

      Modern “bloated” apps like LibreOffice and freecad let you use fewer tools under widely varying conditions and learn them more thoroughly. The whole idea of always using “just enough” makes no sense in software, where things don’t wear out or have weight to carry around.

      The whole idea of simplicity seems to go with the idea of having nothing to hide, and showing off how perfect and high quality and well designed everything is, because it just wouldn’t work otherwise.

      But I’d rather have things that keep working if you drop them off a truck in a mud puddle and leave them for a month. Things that work even when the designer, the builder, and the user have mediocre skill, because the plan itself makes it work anyway.

  10. Bad UIs are the plague of most open-source tools. Anybody remember early blender? Literally no menus for most operations. If you didn’t know the keybindings you were hosed. Kicad had similar problems, because it’s basically three or four different tools glued together into one project, and none followed the same conventions when they were written.

    I love the idea of open source software, but my time is far more limited than my money nowadays. Coping with bullshit UIs that the developers refuse to fix because “That’s just how we do it, fork it and fix it yourself if you don’t like it” isn’t worth it.

    1. And look where the extensibility and customisation options has put blender now.. top of the tree for tools of its sort.. Open source often starts out with less polish than a released product – because its not a released product, its a work in progress that the user base gets to help define into the tool they actually want!

      1. Blender’s done great for itself, for sure. There are several open source projects that have moved beyond obtuse UIs and become industry standard. Admittedly, some other have also become industry standards without ever moving past “rather have a root canal” levels of user friendliness. Looking at you, cmake/make.

        But lots are still sitting in the no-mans land, where they don’t have enough users to turn their UIs into something more than nightmarish. Or, lets be honest, some kind of paid assistance. Blender got the Blender Foundation, Ubuntu has Canonical, kiCad, for all its faults improved immensely after CERN started contributing. The OS community kind of hates to admit it, but paid developers make better product.

        As for FreeCad? It’s been around for nearly 20 years, the UI was trash first time I tried it, TFA says it’s still kinda trash. To be fair, some aspects of Solidworks are also still trash though, like 99% of operations being hidden in the ‘insert’ menu. Millage may vary.

        1. Not sure I’d agree that paid dev’s make better, what they do certainly do is make more changes/improvements, faster, as they are not wondering where the next meal comes from, so can put in many more hours. Which does usually mean a more developed product tends to arrive quickly, and more time can be spent on the niceties, rather than just getting the core functionality.

          Look at all the crap Windoze has done to its GUI, the current Windon’t 10 fragmented ‘settings’ ‘control panel’ type crap drives me up the wall every time I have to use it. All the stuff you used to find in one place and now it could be in many places… GUI’s are almost always garbage in some element or other, it is the familiarity you get through use that makes it ‘easy’, and the closed source paid dev’s world can throw in new ideas half-heartedly for no real reason but to justify their paycheck…

          Even without a large userbase most open source projects get to a very useable state, because the devs that started/joined/maintain it are doing so because its useful to them – usually actually start in a useable state too, as they are released once they just about do whatever the author wanted… May not be the most novice friendly, but the same can be said of any truly different methodology, it might actually be worse but lacking that familiarity with it you can’t really say.

          1. It depends on who’s paying and what for.

            >the crap Windoze has done to its GUI

            That’s because of inertia. There’s just so much stuff that the windows GUI actually does, that they ran out of resources and time converting it from the old to the new UI. Also, why the local group policy editor exists – it’s basically a human-readable GUI access to all the registry settings that lets you change everything, including stuff that isn’t in the control panels.

          2. >a very useable state, because the devs that started/joined/maintain it are doing so because its useful to them

            Not the same thing. As I stated before: the engineer’s problem is that while they’re designing some user interface, they themselves become proficient in it, so they become blind to the problems it has. They may learn to use it very well, and not even notice that “using it” is actually the equivalent of patting your head while rubbing your belly and rotating your leg in a figure 8 in the opposite direction. They’ve mastered it, and it gets the job done for them – not necessarily for anyone else.

          3. “That’s because of inertia” just doesn’t fly in defence of windoze – they took a control panel that contained everything the gui can do to control the computer setup in various sub windows and broke it up so half of it isn’t there anymore, instead being hidden across multiple other nonsensical locations and often only accessible through that new method! Inertia would have kept the old control panel as is, and just added modernised features to it, while trimming out anything obsolete…

            I’d say I’ve never come across anything opensourced that wasn’t very useable, may not be the most user friendly, might have a learning curve, or just be less complete in the “help” for noobs. But a learning curve is true of any software that is new to you, its just learning the way this tool does whatever it does, which is usually following a logic that isn’t hard to pick up on. Might be very different to whatever else you used, be a little odd in some fashion or other, but there is a logic there, and the tool functions well once you play with it enough.

          4. > Inertia would have kept the old control panel as is

            Not really. That’s just what you would have done in the situation – don’t even try changing things. They did try, and only got it half-way done.

          5. >very useable, may not be the most user friendly

            That’s an oxymoron. If you can’t use it, it’s not usable to you. If you find it difficult to pick up because it’s not friendly, then it’s not really usable.

            Everything becomes “usable” by learning to use it. The point is that we don’t want our software to be like Mr. Garrison’s IT bike. (Still beats the airlines, though…)

    2. But what about the good old days, like when Ethel in the office screwed up your vacation request, so you could take revenge by hiding her WordPerfect keyboard overlay.

    3. Blender is amazing now, but back in the day, the main problem was that the FOSS community kept insisting it was already perfect. Same with KiCad. They’re working on UI but I’m not too hopeful, I think LibrePCB will catch up on most important features before they catch up on UI.

      I kinda blame Vim to some extent, most terrible UIs remind me of something a Vi user might invent. Keyboard driven, non-discoverable, a heavy focus on philosophy and logic rather than usability.

      Another big problem is the UNIX philosophy which encourages KiCad style loosely taping together
      programs. And somehow the loose coupling always
      shows through and seems to be most of ruins the UI.

      I also suspect another trouble with FOSS is programmers make the decisions, and programmers hate arbitrary decisions. So instead of say, a button to add an extremely common thing, they’ll think “That common thing isn’t an essential primitive, it makes no sense to give it it’s own button, users can just do it themselves from these three other things and get maximum flexibility”.

      Everything designed by “toy app weekend coders” seems to take inspiration from their favorite software: a text editor that lets you theoretically do anything, and just acts as a neutral interface between you and the machine with no opinion or assistance.

      1. I’m far from a master of Vi, but I like it. At the relatively small amount of time sunk into it I’ve got so far its really very potent, useable, faster by miles – no reaching for a mouse needed for one, but also delete word/letter/line as wanted, splitting out a new window for reference, all while never taking hands off the home keys add up alot (enough it is still usually faster for me to look up in the manual how to do something in Vi I’ve forgotten or never had to do and do than reach for the mouse and tree of clicks required for the gui alternatives)…

        The logic of the system is what makes it useable, and means 2+2=”a window/42/3×9″ is never true, if you understand the logic everything is exactly as you expect it to be, and you can work through a new problem very quickly. And the UNIX philosophy gains in similar ways, each tool is masterful at what it is for, as that’s all it is for. Then like LEGO it can be put together in other ways for other uses, making for much more flexible tools overall.

  11. I don’t use the UI in FreeCAD much… I just write everything in python:


    Makes it easy to parameterize designs, for exampleI haven’t needed to buy an enclosure since getting a Prusa.

  12. I just started with FreeCad very unbiased because its the first CAD/CAM Software I learn. Starting with the tutourials on freecadweb and some Youtube vids worked great although the start was a little bit boring with all those box modelling tutourials where you scroll down most of the time “because you already know it” Working out the constraints is really hard for a starter.
    And there comes the point where you have to decide: do i spend my time learning something where i can be sure they wont kill the software because somebody bought it – just to kill it 1 year later and all my efforts and spent time is wasted?
    No, they wont kill the software in the near future because its opensource. Thats the small little extra where you know that your effort will pay off.
    I just finished some X-Carriage Design for my 3D printer with the sheetmetal workbench and finished bending the needed metal. It worked exactly as I planned without wasting material, and THATS the point where i say Yes to a software.
    The fact that I should have used more bracings on it is another story.

    1. The difference is that a program like FreeCAD depends on you learning a specific routine almost like a magical ritual to get things done. Other software attempts to follow some common paradigms. You get locked in when you try to ignore the paradigm and just “do as you’re told”, whereas learning the paradigms allows you to quickly jump into any program that attempts to follow them.

      So you can go from Solidworks to Inventor to Fusion… once you get what they’re about, you can pick them up in a weekend, but FreeCAD (or GIMP, Blender… etc.) has you learn the program instead of the paradigm. That’s the main problem with these community driven FOSS software suites – they have no idea what they’re doing, just that they’re doing something, and as a result neither do you.

      1. Ah but just because a few other programs have picked that philosophy doesn’t make it correct…
        Many many cultures globally still practice child marriage for instance, and it might well work for their society just fine, doesn’t mean you’d want your child/self to live with that system! Commonly accepted isn’t always better or even close to correct – Earth as the centre of the universe and Flat Earth for instance.

        The greater number of eyes and developers involved in the decision making for open source programs in my opinion means they generally create a better system once the program reaches maturity (though the early days can be very chaotic). As contrary to your “they have no idea” of course they bloody do, they are largely going to also be using the program(s) they contribute to, so have a better idea of how the tools get used than the “wage slave” dev who works on the commercial offering because it pays the bills, who quite possibly has never actually used the software they work on at all…

        1. The other programs offer various different paradigms, and you can pick which one you want to use. Some of them offer various different workflows so you don’t always have to use a particular one, in case one is better for the task at hand. The point is, you have a system, a general understanding of the task and the requirements, so you know what to expect and what to look for.

          FreeCAD just hasn’t got a system to work with, at least a coherent one. It somewhat resembles CATIA, but it doesn’t really carry it through in a consistent manner, so you just have to learn this bag of special tricks that will not make sense anywhere else. Besides, CATIA is perfectly horrible to work with as well, so it’s not necessarily something you’d want to copy.

          1. Being able to pick sounds great, but you never will – its harder to learn and remember all the multiple methods of working than master the one – so you always use whichever you learned first… Which is kinda the crux of this article – not learning a more capable tool because the basic one does some of the jobs easily…

            While FreeCAD isn’t yet as polished as it could be (its not yet at what I’d call a mature phase, but its definitely into the adolescence, oh so close to being grown up). It really does have its own system and logic, spend the time to learn how to use it and it will do what you want. Maybe even more capably than the big expensive programs, really depending on what you are trying to use it for. Could it be better absolutely, but then so could all the others…

        2. Besides, the “wage slave dev” works in collaboration with people who use the software to do other work.

          In other words, they work with people who aren’t programmers by trade, so they avoid the problem of learning the tool as you’re designing it. If it doesn’t work for the other guy, they’ll soon be out of work. Meanwhile, the developer who does things for himself only does what works for himself. Nobody’s paying them to listen to the other guy.

          1. All the programs I’ve ever worked with that are commercial, or Dad (among a few others of similar vintage) have supported/deployed over his long career in IT says the Dev’s never have a clue how the end user/ company they are programming for actually works…

            And any feedback sent to the company never reaches the guys writing the code/ rolling in the changes as inevitably the features that were actually being used are the ones that get cut, broken, changed, and all the garbage they would like improved doesn’t, or only changes for the worse… Great example is every week(ish) for his entire contract at one place he would have to help the roll back and purging of the ‘new version’ the companies beancounter/mangers are pushing on every every client – back to the software they bought out years ago that actually does what most of their clients need. The new software doesn’t even have the bulk of the basic features they want, it will just run tills.

  13. I wonder if anyone here ever tried out a cad software package called Pro Desktop. I remember it had a nice intuitive user interface but the licence fee was far too high. It was usually aimed at educational establishments.

    1. i used pro desktop at school, wasn’t it an educational version of pro engineer that has now become Creo?

      i remember pro desktop was super fussy about the order in which you did things, though admittedly i didnt use it much.

  14. That’s got me thinking about “Crocodile clips” another pretty feature rich circuit simulation software package aimed at the educational market. It’s pretty tricky to get hold of the original program now because the vendor has discontinued it. I think the original was actually slightly better than their new kid friendly version. The ability to make your own components was pretty useful. It was certainly easier to use than Spice.

  15. * If you invest years learning and contributing to FreeCAD, what is that worth when you get a job in the field and need to use a commercial CAD tool?

    * Is FreeCAD a good steward of the commitment and investments you made learning similar tools?

  16. every time I try to use freecad, SOMETHING gets in its own way. most recently was the fact that game controller devices are opaquely read by the 3D navigation, meaning my Flight Stick, Throttle, and Gamepad were causing merry mayhem until I found out how to turn off that function. And no, for those wondering, “just unplug them” is not a solution. don’t even start.

    1. Oooh, that is a cool idea, I’d not had yet!
      I shall have to look at deliberately making use of that. I can see a flight stick, or maybe the throttle/rudder being much more intuitive for camera controls (they aren’t bad, but don’t really suit my preferred trackball as well as a normal mouse as it stands)…

      Thanks for the gripe!

      (I’ve had the same issue myself of not specifying how to use a joystick and leaving it plugged in on the desktop. Wonderful world of USB of HID devices is they are so compatible now its easy to use them with anything, downside is the odd unexpected behaviour when some axis is not at zero (at least if you don’t do anything to control that problem)…

  17. That’s probably the most common (and ironically ironic) trouble with open source softwares: despite they’re free, availables, unlimited, it won’t mean it’s easy to get, use and enjoy…

    And this is what struggle so strong this whole universe:
    everything in it is designed to do a job, no matter how hard it is to do it, as long as it get done, unless someone want get it done faster, easier, or even with an alternative way, nobody will improve anything…

    As if was’nt enough, while they know that anyone may use their work, they forgot too often that we’re not all developpers like them and we certainly need to have some guidances at first uses.

    Last but not least, not only they’re not always clearly displayed at some well-known places like Sourceforge or Github for this kind of stuff (lack of advertising on), but some are even nastier and they don’t want to share what they do (i’ve met even more ridiculous dudes who don’t want to share what they don’t even own and/or code)

    As long as they are (and as they stay like that), it will be still an absurd pain in the @$$ to get THE TRULY RIGHT TOOL to get the job done easily as properly…

  18. Thank you, thank you, thank you for describing a learning curve properly.

    Such a joy after reading another HaD article telling you that this method of sharpening your welding rods would flatten the learning curve: why would anyone ever want a flatter, slower learning curve?

    Steep learning curves ftw!

  19. I don’t need the best tool for today’s job. Just give me a crystal ball so I can know which tools have the longest future. The last thing I want to do is invest my weekends learning tool X when it is going to be abandonware and tool Y will be the hot new thing next year.

    Maybe I’m just getting old but I feel that I’ve started over too many times to want to play that game any more. There are better things to do with one’s time.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.