And I’m curious if I could map my keys to make Freecad work this way. I don’t know how many of the these tools don’t exist in Freecad, but if I could one to one make a keybind that works for me, I might start using it instead of sketchup 8

But mostly, this is the because general CAD community on lemmy and I wanted to share, ciao!

  • @wjrii
    4 months ago

    Yes and no. The part workbench, which is mostly (but not entirely) deprecated in favor of the Part Design workbench has some of these, and I think there may be a couple of nods in the direction of synchronous/direct modeling, such that a few of the commands could exist, but the standard workflow for parametric history modelers just works differently enough that things don’t really translate.

    For instance, “draw a rectangle” exists, but it exists in the 2D Sketcher mode/workbench that is then padded (“extrude” is the more common term) or rotated into 3D space. It’s quite rare to just plop down primitives and merge them, though if you fight the prgram quite a bit, you can make it do some of that. Groups work so differently as to not really be the same tool.

    Now, I do think direct modeling gets a bad rap sometimes, especially in communities where most people are not professionally drafting multi-part assemblies, but are instead making single standalone parts/prototypes, which is exactly what direct modeling was invented to do well. They are slightly different paradigms though, and FreeCAD is WAAAAY over into the realm of “Sketch, Extrude, New Sketch, New Extrude, Third Sketch, Insert Pocket, etc. etc.” This enables the parametric history that lets you go back and, for instance, modify every screw hole at once, or to change every chamfer on face X to be a fraction of the original height. It looks Sketchup can do some of that, but it’s not the main design paradigm.

    The end result is that while, yeah, you could probably find something more or less analogous to most of the hotkeys you’ve programmed for Sketchup, there is a very good chance that you simply won’t use them nearly as much, or together in that same way.

    While I’m piling on, Sketchup is also natively mesh based, meaning there’s a “resolution” limit to your parts that won’t exist in FreeCAD or other NURBS modelers (some of which are also direct modeling). Among NURBS direct modelers, Rhino3D is a great choice if you’re still a student, and BricsCAD shape is a pretty decent free-as-in-beer one, especially if you use Linux; it even has a little human paper doll to help you establish scale. DesignSpark Mechanical is another good direct modeler, but it’s windows only and unless you want to pay for a (fairly cheap) subscription, it has painfully limited import and export options.

    • @[email protected]OP
      14 months ago

      Thanks for this great writeup. I first learned the draw in 3d with sketchup and I really hit a brick wall when trying other CAD software. Not only having incompatible keybindings (just controlling the camera is a struggle, it seems every single program does it differently). I do understand why people would want to have parametric and history based drawing. In complex parts making changes in sketchup can be a real struggle, sometimes I will just slice of a plane of the the model and redraw the offending section rather than to try to change it.

      But I find making everything parametric, really bogs things down. It’s probably because I don’t really understand how it works behind the scenes and I’m fighting the interface all the way.

      What I was hoping to do was, first better master sketchup by understanding each tool and mapping them to more sensible keyboard bindings. And then for each other CAD software, change the keybind and camera controls to at least make the transition as painless as possible.

      I was hoping most actions would have some analog but it seems this is not the case.

      Just for fun, I asked ChatGPT to try and match the PartDesign keybinds to sketchup keybinds

      PartDesign_AdditiveHelix -> SketchUp/Follow Me: Sweeping a sketch along a path is similar to SketchUp's Follow Me tool, which extrudes faces along a path.
      PartDesign_AdditiveLoft -> SketchUp/Push/Pull: While SketchUp does not have a loft tool, Push/Pull can be used to extrude shapes, which is somewhat similar to lofting between profiles.
      PartDesign_AdditivePipe -> SketchUp/Follow Me: Similar to the additive helix, using Follow Me to extrude a shape along a path.
      PartDesign_Body -> SketchUp/Make Group or Edit/Make Component...: Creating a distinct body in FreeCAD is somewhat analogous to grouping objects or creating a component in SketchUp.
      PartDesign_Boolean -> SketchUp/Solid Tools (Pro Only): Boolean operations in FreeCAD can be likened to SketchUp's Solid Tools, like Union, Subtract, etc.
      PartDesign_Chamfer -> SketchUp/Move+Ctrl (to create a copied edge for manual chamfer): SketchUp doesn't have a direct chamfer function, but you can manually create one by copying edges and then moving them.
      PartDesign_Clone -> SketchUp/Edit/Copy + Edit/Paste: Duplicating objects in SketchUp can be achieved through copying and pasting.
      PartDesign_CompPrimitiveAdditive/Subtractive -> SketchUp/Push/Pull for adding or subtracting volumes: While not direct analogs, using Push/Pull to add or subtract material can be a workaround.
      PartDesign_CoordinateSystem -> SketchUp/Tools/Axes: Creating a new local coordinate system in FreeCAD is somewhat akin to redefining the axes in SketchUp.
      PartDesign_Draft -> SketchUp/Move: While SketchUp doesn't have a specific tool for drafting angles, you can manipulate geometry with the Move tool to achieve similar results.
      PartDesign_DuplicateSelection -> SketchUp/Edit/Copy + Edit/Paste: Similar functionality for duplicating objects.
      PartDesign_Fillet -> SketchUp/Follow Me for manual filleting: SketchUp does not have a direct fillet function, but you can create rounded edges manually using the Follow Me tool.
      PartDesign_Groove -> SketchUp/Follow Me: Creating a groove by sweeping a shape can be mimicked with the Follow Me tool.
      PartDesign_Hole -> SketchUp/Push/Pull: Creating a hole in SketchUp is often done by creating a circular face and then using Push/Pull to remove material.
      PartDesign_InvoluteGear -> (No direct analog in SketchUp): SketchUp doesn't have a built-in function for creating gears.
      PartDesign_LinearPattern -> SketchUp/Move+Ctrl (to create copies): The closest in SketchUp is making multiple copies of an object along a line with the Move tool.
      PartDesign_Mirrored -> SketchUp/Scale: You can mirror objects in SketchUp by using the Scale tool and flipping the object across an axis by scaling it to -1.
      PartDesign_MultiTransform -> (No direct analog in SketchUp): SketchUp doesn't support this in one step, but various transformations can be applied sequentially.
      PartDesign_NewSketch -> SketchUp/Rectangle, Circle, Arc, etc.: Starting a new sketch in FreeCAD is akin to beginning a new drawing with SketchUp's drawing tools.
      PartDesign_Pad -> SketchUp/Push/Pull: Extruding sketches into 3D space in FreeCAD is similar to using SketchUp's Push/Pull tool.
      PartDesign_Pocket -> SketchUp/Push/Pull: Creating a pocket with a selected sketch can also be achieved with the Push/Pull tool in SketchUp, essentially removing material.
      PartDesign_PolarPattern -> SketchUp/Move+Ctrl (to create radial copies): Radial array copies in SketchUp can mimic the polar pattern functionality.
      PartDesign_Revolution -> SketchUp/Follow Me: Revolving a sketch around an axis in FreeCAD is similar to using SketchUp's Follow Me tool for lathe-like effects.
      PartDesign_ShapeBinder -> (No direct analog in SketchUp): SketchUp doesn't have a feature directly comparable to FreeCAD's ShapeBinder, which references geometry across bodies.
      PartDesign_SubtractiveHelix, Loft, Pipe -> SketchUp/Follow Me + Push/Pull: These subtractive operations can be emulated by creating shapes and then using Push/Pull to remove material.
      PartDesign_Thickness -> SketchUp/Offset + Push/Pull: Creating a thick solid from a surface can be approximated by offsetting a surface and then using Push/Pull to add thickness.
      • @wjrii
        24 months ago

        But I find making everything parametric, really bogs things down.

        This comes down to personal preference and specific app familiarity, but for a lot of parts, yeah, following the parametric workflow is slower. That’s why there is a space for direct modeling in industry; it’s used for rapid prototyping and for getting a “dumb model” ready for FEM analysis. I maintain that it therefore also works well for Joe 3Dprinter to make a very specific object to mount his toothbrush to his sink; nobody is going to need to revise the screw spacing on their one-off object because their hardware vendor goes out of business.

        In complex parts making changes in sketchup can be a real struggle, sometimes I will just slice of a plane of the the model and redraw the offending section rather than to try to change it.

        I sometimes use an obscure German app, “BeckerCAD 3D Pro” that I got on sale for $25, which is, best I can tell, a nerfed and rebranded AutoCAD knockoff with more of a 3D focus (the “real” program is called CADdy++, from a small software and consulting firm that must have bought a lifetime license to one of the CAD engines decades ago). Even the top BeckerCAD version doesn’t include the parametric history, so between that and TinkerCAD, I have definitely done the “glue a new cube on and redo the operation” thing.

        I was hoping most actions would have some analog but it seems this is not the case.

        In the end, it’s all still 3D modeling. There are definite similarities in the concepts, and most of the differences come down to speed and scalability for certain tasks. It’s only the workflows that are so different. I think the ChatGPT thing is very telling, the way it’s also struggling to map the tools 1-to-1. I will say the latest FreeCAD releases, especially the Ondsel “light fork” that’s already based on the upcoming 0.22, make getting started a lot more intuitive.