CAD style modeling in Blender

After coming from Revit I tried modelling in Blender, the main reason because BlenderBIM exists.
I still have quite limited knowledge about Blender, but there are some things I really miss in Blender

  • Extrude along profile (With correct profile dimensions along the curve)
  • Offset edges

After searching the internet for solutions, I found this:

Extrude along profile:

Offset Edges:

These are not very old youtube clips, but the extrude along profile add-on already has a dead link. With the Offset Edges add-on he just compiles the add-on from a python script. I have no idea how to do that.

Or is there maybe some bundled CAD add-on I'm not aware of which can do these things? And maybe some more CAD style modeling. I know BlenderBIM has the CAD-button, which is already extremely helpful.

Trim, extend, fillet, chamfer and all that other CAD functionality would be really useful as well.

General CAD modeling tips in Blender are highly appreciated.

Tagged:
Darth_Blender

Comments

  • edited November 24

    There is the TinyCad Mesh Tools add-on which comes bundled with Blender and offers some CAD functionality but it's very limited. It mainly helps computing edge intersections in 3D space.

    I think these features are not yet implemented natively in Blender because it's really hard to get a consensus on how they should work. Offsetting edges of a set of 2D lines is pretty straightfoward, but when you start going into 3D, knowing in which directions you should push your geometry starts to get messy. As a matter of fact, there is no built-in (that I know of) option to Offset a 3D polyline in Autocad. And I think it's because there is no way to design a tool that will please 100% of the users 100% of the time.

    For the bevel object you might want to look into curves which can have custom bevel objects. Make sure to set your curve to 2D mode or else the bevel will be distorted when it gets into 3D.

    You can install custom scripts as add-ons just like regular add-on zip files, just select the .py file instead of an archive. Provided the script contains the required info (bl_info dictionary and a register function) it should work out of the box.

    CoenLaurensJN
  • @Gorgious said:

    You can install custom scripts as add-ons just like regular add-on zip files, just select the .py file instead of an archive. Provided the script contains the required info (bl_info dictionary and a register function) it should work out of the box.

    That was extremely easy to do

    For the bevel object you might want to look into curves which can have custom bevel objects. Make sure to set your curve to 2D mode or else the bevel will be distorted when it gets into 3D.

    Slightly related, can I set 2D mode also when modelling edges on a surface? Sorry for absolutely basic question. But there are so much resources out there for all different purposes I find it hard to find the solution I need.

  • Haha yeah there's a reason it's called Blender :)
    You can force a mesh to be drawn on a custom plane with different means. The one you'll be using depends on your workflow.
    You can set the object scale to 0 along the axis :

    Alternatively you can parent the object to an empty and scale this empty.

    This will however affect child objects and as a rule of thumb not having a uniform scale on objects makes things wonky, especially when exporting to other softwares.
    You can use a shrinkwrap modifier and play with the snap mode. For a simple Z projection, using Project along Z works well.

    You can constrain to a particular plane while in edit mode with SHIFT + the axis, eg to constrain a new edge to the XY plane, SHIFT + Z while dragging :

    Note that if you're looking in top view (numpad 7) all the transformations are automatically constrained to a XY plane (with varying Z) unless explicitely snapped otherwise.
    You can use a 1D Lattice along the axis you want to squish (make sure the interpolation is set to linear)

    Then add a lattice modifier to the object pointing to the lattice, scale the lattice scale 0 along the Z axis in edit mode

    You can also use armature and bones, displace modifiers, hook modifiers, use a python script, etc.
    It's daunting at first but you'll eventually find a workflow that suits you :)

    CoenbitacovirLaurensJN
  • Haha, okay, 6 different methods to modeling in 2D, no wonder I got confused. Thanks for the very detailed explanation. Clarifies a lot :-).

  • @Coen The offset edges plugin I think has been incorporated into the native Mesh Tools Plugin. See this video.

    BedsonCoenJanFCadGiruGorgiousLaurensJN

  • How do you rotate along a plane in Blender?, I am used to Revit where you had reference planes. What would be a good solution in Blender?

  • Get the CAD transform addon
    https://blender-archipack.gumroad.com/l/nQVcS
    select the object
    select the tool
    rotate
    press z to lock to z axis
    rotate as you please

    Coen
  • Starting to get there, I discovered if you press G->X->X (or-Y-Y) (or-Z-Z) it moves along the local axis of the object, instead of the global axis. Blender Basics, hehe.

    Ace
  • edited November 25

    You can also globally enable local transform (and other transforms, even custom ones) if you go into the Transform Orientations settings at the top of your 3d viewport (the 3 axis arrows icon)

    Coen

  • How would I join these beams nicely together with a miter? I tried the Boolean modifier, but it does not what I expected it to do.

  • I still think the boolean is the right tool for that, play around with the 'fast' - 'exact' settings it can change how it displays,

  • @Ace said:
    I still think the boolean is the right tool for that, play around with the 'fast' - 'exact' settings it can change how it displays,

    Yes, perfect. This works way better than what I know with Revit Architecture when modelling beam details. Full control over the geometry.

    BedsonJanFDADA_universeLaurensJN
Sign In or Register to comment.