A2plus Workbench

From FreeCAD Documentation
Jump to: navigation, search
This page contains changes which are not marked for translation.

Other languages:
English • ‎français • ‎italiano • ‎русский

Introduction

The A2plus workbench is an external workbench to assemble different parts in FreeCAD.

This documentation describes A2plus version 0.4.23 or newer.

Installing

The A2plus workbench is an addon to FreeCAD. It can easily be installed via the menu Tools → Addon Manager. A2plus is under active development and will get new features frequently. Therefore you should update it regularly using also the menu Tools → Addon Manager. The A2plus code is hosted and developed on GitHub and can also be installed manually by copying it into FreeCAD's MOD directory.

Getting Started

At first switch to the A2plus toolbar in FreeCAD. To create an assembly create a new file in FreeCAD. At first this file needs to be saved. It is recommended (but not necessary) to save it in the same folder of the parts you want to assemble.

Now parts can be added to the assembly by using the toolbar button A2p ImportPart.svg or A2p ShapeReference.svg. The button A2p ImportPart.svg adds all bodies in the selected file as a single part. When using the button A2p ShapeReference.svg you can choose which single body of the file should be imported as part.
The first added part gets a fixed position by default. (You can change this later via the part property DATAfixed Position.)
Parts that are already in the assembly can be cloned with the toolbar button A2p DuplicatePart.svg.
To edit a part from the assembly, select it in the model tree and use the toolbar button A2p EditPart.svg. This will open the part into a new tab in FreeCAD or switch to its tab if the file is already opened.
To import changes in parts into the assembly click on the toolbar button A2p ImportPart Update.svg.

Imported parts will keep their external dependencies and can be edited. For well-defined parts like screws it is however useful that their shape cannot be edited. This can be achieved with the toolbar button A2p ConvertPart.svg that converts the selected part to a static copy of the original part.

To save the assembly and close it afterwards, the toolbar button A2p Save and exit.svg can be used.

Assembling

Assembling parts is done by adding constraints between parts. After a constraint A2plus will move the parts according to the constraint if possible.
For complex constraints between parts A2plus might fail to solve the constraints. Therefore also have a look at section Troubleshooting for strategies to resolve such cases.

Constraints between parts are added by keeping the Ctrl key pressed and selecting an edge or face of two parts. The constraint will be added attached in the model tree to the affected parts.

Keeping track

The more parts you add, the more important it is to keep track. A2plus therefore offers these tools to move and view parts:

  • To move a part around in the assembly, select it in the model tree and use the toolbar button A2p MovePart.svg. When you placed the part where you like it, left-click with the mouse. If the moved part already has constraints it will be placed accordingly by pressing the toolbar button A2p solver.svg because this triggers to resolve all constraints of the assembly.
  • To show a constraint select it in the model tree and use the toolbar button A2p ViewConnection.svg. This will make the whole assembly transparent and highlight the two objects that are connected via the constraint. To go back to the normal view, left-click into the assembly.
  • To show only certain parts in the assembly, select these parts in the model tree and use the toolbar button A2p Isolate Element.svg. Alternatively you can hide a certain part by selecting it in the model tree and pressing Space to toggle its visibility.
  • To toggle the transparency view of the whole assembly you can use the toolbar button A2p ToggleTransparency.svg.
  • Every part can be made transparent using the normal FreeCAD editing. However sometimes the transparency setting for parts is lost when reopening the assembly due to a bug in FreeCAD. As workaround you can use the toolbar button A2p Restore Transparency.svg to restore the transparency settings.

Constraints

When creating a constraint such a dialog will be displayed after you pressed a constraint toolbar button:
A2p ConstraintPropertiesDialog.png.
For certain constraints it allows you to modify the constraint direction. With the button A2p solver.svg Solve you can check beforehand if this new constraint can be solved by A2plus. If not, have a look at section Troubleshooting.

A2plus provides the following constraints:

Point on Point

Select a vertex (point) on each part. The toolbar button A2p PointIdentity.svg adds the constraint pointIdentity. It will make the vertices coincident.

Point on Line

Select a vertex (point), or circular edge (will select its center point), or a spherical face (will also select its center point) on one part and an edge on the other part. The toolbar button A2p PointOnLineConstraint.svg adds the constraint pointOnLine. It will put the vertex on the edge.

Point on Plane

Select a vertex (point), or circular edge (will select its center point), or a spherical face (will also select its center point) on one part and a plane on the other part. The toolbar button A2p PointOnPlaneConstraint.svg adds the constraint pointOnPlane. The constraint dialog allows you to specify an offset between the point and the plane. This offset can also be flipped between both sides of the plane. If the offset is zero, the constraint will put the vertex on the plane.

Sphere on Sphere

Select either a spherical face or a vertex (point) on both parts. The toolbar button A2p SphericalSurfaceConstraint.svg adds the constraint sphereCenterIdent. It will either make the center of the spheres, the center of the sphere and the vertex, or the vertices coincident.

Circular Edge on Circular Edge

Select a circular edge on both parts. The toolbar button A2p CircularEdgeConstraint.svg adds the constraint circularEdge. The constraint dialog allows you to specify an offset between the edges. This offset can also be flipped. You can furthermore set the constraint direction and lock the rotation of the parts. If the offset is zero, the constraint will put the edges concentric in the same plane.

Axis Coincident

Select either a cylindrical face or a linear edge on both parts. The toolbar button A2p AxialConstraint.svg adds the constraint axisCoincident. The constraint dialog allows you to specify the axis direction. The dialog allows you furthermore to lock the rotation of the parts. The constraint will make the axes or lines coincident.

Axis Parallel

Select either a cylindrical face or a linear edge on both parts. The toolbar button A2p AxisParallelConstraint.svg adds the constraint axisParallel. The constraint dialog allows you to specify the axis direction. The constraint will make the axes or lines parallel.

Axis on Plane parallel

Select either a cylindrical face or a linear edge on one part and a plane on the other part. The toolbar button A2p AxisPlaneParallelConstraint.svg adds the constraint axisPlaneParallel. The constraint will make the axis or line parallel to the plane.

Axis on Plane normal

Select either a cylindrical face or a linear edge on one part and a plane on the other part. The toolbar button A2p AxisPlaneNormalConstraint.svg adds the constraint axisPlaneNormal. The constraint will make the axis or line normal to the plane.

Plane Parallel

Select a plane on both parts. The toolbar button A2p PlanesParallelConstraint.svg adds the constraint planesParallel. The constraint dialog allows you to specify the constraint direction. The constraint will make the planes parallel.

Plane on Plane

Select a plane on both parts. The toolbar button A2p PlaneCoincidentConstraint.svg adds the constraint planeCoincident. The constraint dialog allows you to specify a constraint direction and an offset between the planes. This offset can also be flipped. If the offset is zero, the constraint will make the planes coincident.

Plane Angular

Select a plane on both parts. The toolbar button A2p AngleConstraint.svg adds the constraint angledPlanes. The constraint dialog allows you to specify an angle between the planes. The constraint will make the planes at first parallel and the set the specified angle.

Coincidence at Center of Mass

Select either a closed edge or a plane on both parts. The toolbar button A2p CenterOfMassConstraint.svg adds the constraint centerOfMass. The constraint dialog allows you to specify an offset between the edges or planes. This offset can also be flipped. You can furthermore set the constraint direction and lock the rotation of the parts. If the offset is zero, the constraint will put the edges or planes into the same plane.

Subassemblies

An assembly can contain other assemblies. They are added like parts by pressing the toolbar button A2p ImportPart.svg and selecting a *.FCStd file containing an assembly. Such subassemblies can also be edited like parts using the toolbar button A2p EditPart.svg. Please make sure for higher assembly stages that you update the assembly via the toolbar button A2p ImportPart Update.svg when there were changes.

Constraint Handling

Possible constraints for a selection are displayed in the toolbar and the Constraint Tools dialog by enabling the corresponding buttons. The Constraint Tools dialog is opened via the toolbar button A2p DefineConstraints.svg. It is intended to stay open to be able to add quickly several constraints to the assembly.

Existing constraints can be edited by selecting them in the model tree and then either double-clicking on it or using the toolbar button A2p EditConstraint.svg. This opens the Constraint Properties dialog.

Constraints can be deleted either by selecting them in the model tree and pressing Del or by selecting a part with constraints in the model tree and using the toolbar button A2p DeleteConnections.svg.

All constraints can be resolved at any time with the toolbar button A2p solver.svg. If the toolbar button A2p ToggleAutoSolve.svg is turned on a resolve is automatically done after every edit of a constraint.

The toolbar button A2p FlipConstraint.svg affects the constraint that was added most recently. It flips the constraint direction.

Part Lists

To create part lists of assemblies, the different parts of the assembly must get part info that can be read by A2plus. This is done by editing the part using the toolbar button A2p EditPart.svg. In the opened part press the toolbar button A2p PartsInfo.svg and a spreadsheet with the name #PARTINFO# is created.

The structure of the spreadsheet is like this:

A2p PartinfoTable.png

Fill out the grey fields with info you have and want to have in the final parts list.

In the assembly or subassembly use the toolbar button A2p PartsList.svg. It will ask you if you want to iterate recursively over all subassemblies. Click on Yes. This creates a new spreadsheet with the name #PARTSLIST#. It contains the info from the different #PARTSINFO# spreadsheets of the parts in a list like this:

A2p PartslistTable.png

The position (POS) is automatically set according to the appearance of the parts in the model tree. The top level part will get POS 1.
The quantity (QTY) is automatically calculated from the assembly. If a parts is twice in the assembly it will get QTY 2.

If you have updated a part info you can refresh the parts list by pressing the toolbar button A2p PartsList.svg again.

For subassemblies you can also create an info spreadsheet using the toolbar button A2p PartsInfo.svg. When you create or update the parts list of the main assembly this info will be used if you click on No for the question if you want to iterate recursively over all subassemblies. Then the different parts are not in the parts list but only the subassemblies.

Special Features

Assembly Structure

The toolbar button A2p Treeview.svg creates an HTML file with the structure of your assembly. The file will by default be created in the folder of your assembly file. The structure looks like this one:
A2p Dependency-Tree.jpg

Degrees of Freedom

The button A2p DOFs.svg labels every part of the assembly with its degrees of freedom. Furthermore it outputs a list with all parts and their dependencies. The list is output into FreeCAD's widget Report view. If this widget is currently not visible, it can either be shown by right-clicking into an empty part of the FreeCAD toolbar area and then choosing it in the appearing context menu or with the menu View → Panels → Report view.
The degrees of freedom labels can be removed by clicking the button A2p DOFs.svg again.

Part Labels

The button A2p PartLabel.svg labels every part of the assembly in the 3D view with its name. The part labels can be removed by clicking the button A2p PartLabel.svg again

Shape of whole Assembly

Sometimes it is necessary to have the whole assembly combined as one shape. This shape can then for example be used for 3D printing in the Mesh workbench or for drawings in the TechDraw workbench. It is created using the toolbar button A2p SimpleAssemblyShape.svg. The shape is by default not made visible. Use the same toolbar button to update the shape in case of changes in the assembly.

Preferences

The a2plus preferences can be accessed via FreeCAD's menu Edit → Preferences and there in the section A2plus. You can set the following options:

Default solving method

  • Use solving of partial systems
    The solver begins with a part that has the property DATAfixed Position set to true and a part constrained to it. All other parts are not calculated. If a solution could be found, the next constrained part is added to the calculation and so on.
  • Use "magnetic" solver, solving all parts at once
    The solver tries to move all parts at once in direction to a part that has the property DATAfixed Position set to true. Note that this will in most cases take more time for the calculation of a solution.
  • Force fixed position
    This sets the property DATAfixed Position to true for all parts in the assembly. Then no calculation is actually performed since all parts will always be fixed to the positions where they were created.

Default solver behaviour

  • Solve automatically if a constraint property is changed
    The solver will automatically be started. The same as turning on the toolbar button A2p ToggleAutoSolve.svg.

Behaviour when updating imported parts

  • Recalculate imported parts before updating them
    All parts of the assembly, including subassemblies, will be opened in FreeCAD to be reconstructed using values from spreadsheets.
    This feature is designed to construct fully parametrically. Note: This feature is very experimental and not recommended for important projects.
    Known problems:
    • The assembly can be destroyed because of wrong references to topological names in parts
    • Master spreadsheets can get broken when they are edited while a referenced part file is already closed. This can crash FreeCAD.
  • Enable recursive update of imported parts
    Opens all subassemblies recursively to update them.
  • Use experimental topological naming
    While importing parts to the assembly an algorithm generates topological names for each subelement of the imported shape. The topological names are written into the DATAmux Info. When an imported part needs to be updated, these topological names are used to update the subelements of the constraints. So assemblies get more robust against volatile subelement numbers of FreeCAD.
    Note: This increases file sizes and calculation time during import of parts. If topological naming should be used it has to be activated before the assembly is created.
  • Inherit per face transparency from parts and subassemblies
    Use colour and transparency settings from imported parts.
    Note: This feature is very experimental and not recommended for important projects.
  • Do not import invisible shapes
    This will hide invisible datum/construction shapes. Note: No constraints must be connected to datum/construction shapes in higher or other subassemblies. Otherwise you can break the assembly.
  • Use solid union for importing parts and subassemblies
    All imported parts will directly be put together as union.
    This feature is useful for FEM simulations or 3D-printing if only one solid is allowed. The alternative is to create a shape of the whole assembly later on.

User interface settings

  • Show constraints in toolbar
    If this option is not used, the toolbar buttons for the different constraints are not visible to save space in the toolbar. New constraints can still be set using the Constraint Tools dialog (toolbar button A2p DefineConstraints.svg).

Storage of files

  • Use relative paths for imported parts
    Uses relative file paths to the part files.
  • Use absolute paths for imported parts
    Uses absolute file paths to the part files.
  • All files are in this project folder:
    All project files have to be in the specified folder. It doesn't matter if they are in subfolders of this folder. Note: No file is allowed to exist several times in the folder (e.g. in different subfolders).
    This option is helpful to work on different machines because then one only has to copy the project folder.

Troubleshooting

Sooner or later you will get the problem that A2plus cannot solve the constraints you set. To overcome this, there are different strategies:

Checking Constraint Direction

Sometimes constraints seem to be consistently defined but they can nevertheless not be solved. An example: Assume you have a planesParallel constraint set for two planes. Now you want to set for the same planes the planeCoincident constraint and A2plus cannot solve this. Then the constraint directions of planesParallel and planeCoincident are different. Use the same direction for both constraints to fix this.

Deleting Constraints

Most cases of unsolvable constraints occur directly when adding a new constraint. The solution is then to delete the constraint you added last. A2plus will propose this, too.

Sometimes the deletion strategy is the only one, for example when you edited a part in FreeCAD so that faces or edges connected to constraints are missing. You should then delete one constraint that is connected to the changed part at a time. Use the toolbar button A2p solver.svg after every deletion to see if you reached a solvable state.

When you got an assembly that can be solved, add step by step the constraints you need.

Moving Parts

In some cases the solver only needs better start values to solve the constraints. Take for example the case that you have an axle part and a wheel part. You add a axisCoincident constraint and get no info that the solver failed but the parts are not moved accordingly and in the Report view widget of FreeCAD you see "REACHED POS-ACCURACY :0.0". A solution for this is to move the parts closer to that position you like to get by the constraint.

Note: Assure that at least one part of the constraint has the property DATAfixed Position set to false.

Setting the Tip Property

If you miss some features of your part after the import to an A2plus assembly, check the property DATATip.
A2plus imports bodies of parts with all their features up to the tip feature. This is sensible because setting the tip to a certain feature means that all features behind the tip should not appear in the final part. So if you miss a part feature in A2plus, open the part via the toolbar button A2p EditPart.svg, then select a body and look at its property DATATip. If the tip is not at the feature where you want it, right-click on the feature where the tip should be and choose PartDesign MoveTip.png Set tip. Finally save the part and reload the assembly using the toolbar button A2p ImportPart Update.svg.

Repairing Assembly Tree

If you cannot see a clear reason why some constraints cannot be resolved, you can try to use the toolbar button A2p RepairTree.svg. This will resolve all constraints and re-group then again under the different parts.

Avoiding Accented Characters

On some operating systems you can get problems if the file names or the file paths of parts or the assembly contain accented characters. Therefore avoid such characters and also special characters in general.

Fixing Position

This strategy is no longer necessary for assemblies created with A2plus 0.3.11 or newer because A2plus issues now a warning for missing fixed positions.

When you set a constraint between two parts and no part has the property DATAfixed Position set to true or is connected by a constraint to a part with DATAfixed Position set to true, the constraint cannot be solved. The same happens if both parts of the constraint have DATAfixed Position set to true.

Then A2plus outputs the info about the failed solution, but sometimes you only see that the parts are not moved accordingly and in the Report view widget of FreeCAD you see "REACHED POS-ACCURACY :0.0". This means the solver finished without errors but it could actually not solve the constraints.

Therefore check that at least one of your parts in the assembly has DATAfixed Position set to true. Then assure that you only set constraints to a part which is somehow connected to the fixed part. To visualise these dependencies, see section Assembly Structure.

Rotating Parts

This strategy is no longer necessary for assemblies created with A2plus 0.4.0 or newer because A2plus rotates the parts now automatically a bit in the background to get a sufficient start angle for the solver.

The solver often fails for the constraint angledPlanes if the two selected planes have currently an angle of 0° or 180°. (The parts are not moved accordingly and in the Report view widget of FreeCAD you see "REACHED POS-ACCURACY :0.0".) A solution for this is to rotate one part by a few degrees using FreeCAD's transform feature (right-click on the part in the model tree and select in the context menu Transform).

Note: Assure that at least one part of the constraint has the property DATAfixed Position set to false.