mechanical Blender

User and Developer Reference

All info about this project

About

Mechanical Blender pretends to be a software solution for mechanical desing, also suitable for architectural, affordable for small companies that cannot afford an existing pro application, or any company or person that wants to be free and own the software used for its business.

Blender

Blender is an opensource source software powerfull in creation of 3D content with a huge comunity of users and developers headed by Blender Foundation. Check blender.org for more reference.

Lisence

Mechanical blender is according to blender copyright.

New features added are subject to the GPL license, which you can download from the web: http://www.gnu.org/copyleft/gpl.html

Mechanical Blender comes with ABSOLUTELY NO WARRANTY. Is distributed in the hope that it will be useful and IT IS PROVIDED "AS IS" without warranty of any kind. The entire risk as to the quality and performance of the program is with you.

User Manual

Blender Basics

For any blender basics you shoud refer to Blender manual or any of multiple tutorials and courses that can be found on the web.

General Improvements

Use of Custom Transform Orientation when creating data

When a Custom Transform Orientation is selected, the data is created using it.

Units

Blender Units, sense

Blender units are the question to "How long is one unit in my scene?". This is a setting to be set at the beggining of our work, if changed during work, we could see that dimension are scaled. The mesh data is not changed at all, it's only that was previosly 1 X now is set to 1 Y

Object Units

units are introduced to see the dimensions in diferent units. So the value of the dimension accordingto Scene Blender Units definition, will be translated to the object unit definition. Can be enabled / disabled and it's independent for each object, so we can work in inches on one object, and mm on another one. The inputs value, are also considering the object units.

Force Units

Blender allows to set up a unit system. A force flag is added to not change the unit scale acording to value. So if set all values will shown with same unit (eg 10mm will not be transformed to 1cm)

User Coordinates Spaces

Mechanical blender enhances custom transorm orientations, adding a origin point to them.

UCS are created like transform operation CTRL+ALT+SPACEThe UCS select allows to select it. When selected, the working origin is set on the ucs Origin Also the oriented views (Left, Rigth, Bottom) views match the UCS, afecting also to grid snapping.

Snapping tools

Snap tools are designed to place obects with precision related to mesh data (vertexs, edged,faces).

User can change the Snap Element during operation using CTRL+SHIFT+TAB so diferent elements can be used in one operation, for example allowing to reference a point to and edge

Manual Snap Target

Allows to select a point for reference on transform, can be selected during tranform using BKey

It can be set by default seting as Manual on Snap Target list. Then before starting the transform, user input is required.

On rotation transforms, user can use Wto perform the transform using the axis resulting of start-center-end_point.

Multiple Snap Targets

In the same way you can specify more than one snap point (mostly used to get a mid point) you can select more than one target pressing Awhen the snap target is shown with a circle.

Manual Pivot Point

During rotations and scale transforms, allows to select a point used as center transform, can be selected during tranform usingCKey

It can be set by default seting as Manual on Pivot Point list. Then before starting the transform, user input is required. if Snap Target is set as default, then pivot point is first requested.

Snap Elements

Mechanical blender new type of snap elements to allow precise placements.

Snap to Cursor

As the cursor can be placed with precision we have enabled the option to use it as snap point.

Snap to Plane

Use a reference plane as snap element

Snap to Geometry

Mechanical blender allows snaping to detected geometry

There are this possible snaps

  • Line end points

  • Line mid point

    Being calculated over the geometry entity, the colinear contiguos edges are considered a line, so the middle point is not and edge mitpoint in this case.

  • Arc end points

  • Arc mid point

  • Center point

    Center of circles and arcs.

  • Perpendicular

    the snap if set from the snap_target to the entity. It is disabled for closest, as depends on the snap_point itself

    In case of circle or arc, the snap point is the intersection with the entity and the line from center to the snap_target. It needs booth points to be in the same plane.

  • Tangent point

    the snap if set from the snap_target to the entity. It is disabled for closest, as depends on the snap_point itself

    it needs booth points to be in the same plane.

    They can be selected by default on scene settings. In case of need a non default snap geometry type, can be overrided using the SHIFT S shortcut and select one, or return to default values.

    Transform improvements and tools

    Move around the scene during transform

    Freely move around the scene when a transform operator is running

    Creating multiple data

    During transform operations, multiple data can be creating pressingM. It can be enabled by default using the UI icon shown in the screenshot.

    Match Tool

    The match tools allow to match a point, an axis, or a plane to another one, works on Object and Editmode.

    In order to select targets, you must have enabled a element (Eg, vertex, edge, face) and snapping enabled.

    • Select the geometry that will be applied.

    • Execute the operator

    • Select a first reference point (1)

    • Select a second a reference point(2), or Middle Mouse Buttonto continue with one point

    • Select a third a reference point (3), or Middle Mouse Buttonto continue with two point

    • Select the match for first reference (a) - translation betwen points

    • if two or more references are set, select the match for second reference (b) - axis alingment

    • if three references are set, select the match for third reference (c) - plane alingment

    Mesh Dimensions

    Dimensions are intented to get visual information and modify the mesh acording to it's value.

    Mesh geometry can be changed by changing dimension value. This can be done on dimension properties or just typing the value using the numeric pad when a dimension is selected.

    The side on wich the mesh is modified is represented with a big point. This point depends on wich side of the dimension number is clicked for selection. Both points are select if just clicked on the middle.

    In order to allow selection of dimensions, user can use the CTRL+TAB and select dimensions or vertices

    Dimension select also select al related data to the dimension

    Linear Dimensions

    Betwen two vertices

    Related vertices get the same transform.

    Diameter and Radius Dimensions

    More than 3 vertices that equidist to one point (center).

    The center of dimension is computed from the first 3 vertices selected, and the dimension value is the distance from first selected vertex to center.

    Related vertices are applied the distance of the dimension from the dimension axis.

    Angle Dimension from 3 Points

    Angle between 3 points, being the second point selected the common vertex.

    Related vertices are rotated the dimension value around dimension axis.

    Angle dimension can modify concentric data, if extra data defines 2 vertices to compute the center.

    Angle Dimension from 4 Points

    Angle between 4 points, the center is the intersection between ab and cb (selected in the order a,b,c,d)

    Related vertices are rotated the dimension value around dimension axis.

    Angle dimension can modify concentric data, if extra data defines 2 vertices to compute the center.

    Dimension automatic constraints.

    Can be changed for selected dimension on N panel under dimensions on EditMode

    • Plane Contraint
      • On linear dimensions:

        If enabled Vertices from faces that have the normal on translation direction, and containt the vertice translated on it's plane will also be considered as related.

      • For angle Dimensions:

        if enabled Vertices from faces that have the normal on same direction than the result axis between rotation axis, and edge being rotated and containt the vertice translated will be considered as related

    • Axis Constraint
      • Diameter dimensions

        If enabled, Vertices that are concentric to dimension center at same distance will also be affected.

      • For angle Dimensions:

        Needs extra data to define center and axis

        if enabled, Vertices that are concentric to center at same distance than first vertex selected will be affected.

    • Allow Vertex Slide
      • For angle Dimensions

        if enabled, the vertices being translaed due to angle change can slide in order to not modify the normal of the other faces, so other angles will not be changed.

    Examples

    Default;

    No constraints enabled;

    Automatic plane constraint;

    Allow edge slide constraint:

    Dimension around Axis

    Specifiying andaxis to a dimension, the dimension value will afect to all vertices that are concentric to axis. this allows fast and precise modification of lathe parts.

    Aligned Dimension

    Linear Dimensions can be aligned to X Y or Z plane of a transform orientation. The second point of the dimension is projected on the defined plane containing the first dimension point

    Dimension Parameters

    Can be changed for selected dimension on N panel under dimensions on EditMode

    If more than one dimension is selected, the change applyes to all dimensions selected.

    • Dimension Value

      Display and changes the dimension value

      The dimension value also can be changed using the numeric pad once the dimension is selected.

    • Complementary Angle

      Only for 3Points dimensions

      Allows to work with the complemtary angle, calculated with the inverted vector from first to second point

    • Aligned Dimension
    • Dimension Axis
    • Dimension Text Position

      Display and changes the position of text on dimension, percentually

    • Override Constraints

      Allow generic settings for automatic constraints to be set specific value for selected dimension(s). The options not enabled for the selected dimension will be disabled.

    • Plane Constraint

      Overrides plane contraint if allowed

    • Axis Constraint

      Overrides axis constraint if allowed

    • Allow Vertex Slide

      Overrides Allow vertex slide constraint if allowed.

    Modifying related data.

    There are some ways to modify related data along with changes applied for a dimension

    • Have the vertex that should be modified selected when modifying the dimension value

    • Create with more than necessary vertices. Extra vertices are considered related

    • Use Automatic constraints.

    Display Mesh Dimensions

    Options found on Display on Properties Panel Nfor 3DView affecting to objects not being edited.

    • Show Mesh Dimensions

      Shows dimensions for all objects

    • Mesh Dimensions on selected

      Shows dimensions only for selected objects, assumes Show dimensions for all objects to be set.

    Dimensions Customization

    Dimensions colors can be customized on Blender User Preferences CTRL+ALT+U> Themes > 3D View

    Dimension Animation and Drivers.

    The dimension value can be set as driver, driver target, or set keyframe values on it.

    Works as other values that can be animated, rigth click over the field.

    Mesh Reference Objects

    References are a new kind of object on the mesh, you can work similary as you work with the other elements (verts, edges, faces)

    References are allowed to be used as snap element, so can be selected using CTRL+SHIFT+TAB shortcut or on the list shown on head bar.

    In order to allow selection of references, user can use the CTRL+TAB and select references.

    Planes

    The plane is defined by four (3+1) points that are cannot be selected, by can be transformed as other elements.

    On editmode, reference planes can be created using the "Add reference plane" operator.

    If there is no selection, the plane is created with a size acording to grid, at 3D cursor position.

    if there is 1 vertex selected, the plane center is set to this point

    it there is 2 vertices selected, the plane center is set at midpoint of vertices. The X vector is defined by this two points, starting at first point selected.

    It there are 3 or more vertices selected, the first 3 are used to create the plane. The first two vertices are used to define de X vector, and 3r one the side of Y vector.

    If a face is selected, the vertices of the face will be used to create it.

    Axis

    A reference axis, is defined by at least 3 concentric points.

    On editmode, referen axis, can be created using the "Add referene axis" operator

    Axis can be used to specify a dimension as concetric.

    Reference Properties

    Found on 3D View Propertines panel N

    Reference Name: Name for the selected reference.

    Creating Custom Transform Orientations from planes

    User Can create a transform orientation from a selected plane, using the shorcutCTRL+ALT+SPACE

    Also it can created selecting the option "Create Transform orientation on operator properties. This is disabled by default.

    The name of the transform orientation matches the plane name, and at the moment is not related (there is no relationship between plane and transform orintation).

    Set plane as input.

    a reference plane can be set to force input on it, afecting to vertices created. To do this, just select in the head bar.

    The plane selected as input, will be drawn in a blue color, more ligthed if it's also selected.

    Geometry

    Application detects geometry on the mesh, based on edges.

    It's computed each time user get's into edit mode and It's partially recomputed each time mesh it's modified: current geometry is checked and updated, on mesh changes. Due to performance reasons, it's not computed during transform operations.

    Geometry calcs can be enabled/disabled on scene settings and individually on each object, with a default setting found on User Preferences for new objects This allows to get normal functionality with objects with lots of mesh data that is not necessary to scan for geometry entities

    Entities detected
    • Lines

      Edges that pertain to more than one complanar faces are not considered.

      On edge is considered a line if does not pertain to another entity, considering previous point.

    • Circles
    • Arcs

      They are set from at least 2 continuos edges not colinear, with a small angle for each edge from center set to 18 degrees

    Visualization of detected elements can be enabled on 3D View properties.

    Info about geometry detected is shown on stats, indicating the total of geometry entities detected and the number of entities selected.

    Geometry select

    Geometry can be selected selecting "Geometry" as Select Mode using CTRL+TAB shortcut.

    Select is based on edge select. The geometry gets selected, and selects the edges is composed from, and the vertices. As transform operations are based on vertexs, you can apply any transfrom on the geometry selected.

    Solid Mode

    On development

    Python API

    Mesh

    We have added this properties to mesh

    • Mesh.total_dim_sel
    • Mesh.total_ref_sel
    • Mesh.references

    Developers

    The development is shared to comunity on github.

    Advanced

    Identify a file created using mechanical blender

    Files written with mechanical blender contain custom data(as dimensions)

    The file can be identified if it contains the string MECHANICAL in the fileglobal struct.

    TODO list

    Allow to create a dimensions from python

    Allow dimensions to be modified via Python script

    Solve last element duplicated when repeting a macro operator

    Credits

    The Blender Foundation

    All the people that contributed in Blender and the Blender Comunity

    Tmaq

    Jaume Bellet