Addon Spotlight: Assembly Workbenches

The cur­rent 0.20 release of FreeCAD does not include a built-in work­bench for assem­bling indi­vid­ual com­po­nents into a more com­plex sys­tem: instead, sev­er­al 3rd-par­ty addons are avail­able through the Addon Man­ag­er, allow­ing indi­vid­ual users to choose the type of assem­bly pro­ce­dure they pre­fer. Three pop­u­lar options are A2+, Assem­bly 3, and Assem­bly 4. This arti­cle will briefly overview each. Note that although the names make it sound like one might be the suc­ces­sor of the oth­er, in fact all three are “spir­i­tu­al suc­ces­sors” to the no-longer-main­tained Assem­bly 2 work­bench. The order they are pre­sent­ed here (and in the Addon Man­ag­er) is alpha­bet­i­cal, not an indi­ca­tion of pop­u­lar­i­ty or “offi­cial” endorsement.


Adding a con­straint in A2+

A2+ (Assem­bly 2 Plus), an assem­bly work­bench by “kbwbe”, is intend­ed as a direct suc­ces­sor to the orig­i­nal Assem­bly 2 work­bench. It uses the same basic work­flow as Assem­bly 2 so users already famil­iar with that work­bench will be able to get start­ed quick­ly. Begin by cre­at­ing your parts in sep­a­rate FreeCAD files, then cre­ate a new emp­ty file and import the part that forms the basis for your assem­bly. Suc­ces­sive­ly import more FreeCAD files and apply con­straints to posi­tion them rel­a­tive to your oth­er parts. As the README puts it:

The main goal of A2plus is to cre­ate a very sim­ple, easy to use, and not over-fea­tured work­bench for FreeCAD assem­blies. Using the KISS prin­ci­ple: KEEP IT SIMPLE, STUPID

Assembly 3

An Assem­bly 3 assembly

Assem­bly 3 (a.k.a. ASM3) is an assem­bly work­bench writ­ten and main­tained by devel­op­er realthun­der. It also uses a con­straint-based approach to refer to exist­ing geo­met­ric enti­ties and align them rel­a­tive to one anoth­er. It is often used in con­junc­tion with realthun­der’s fork of FreeCAD, which imple­ments tech­niques to mit­i­gate the so-called “topo­log­i­cal nam­ing prob­lem” (TNP). TNP-relat­ed issues can oth­er­wise cause prob­lems for a con­straint-based approach if the under­ly­ing objects change after the assem­bly has begun. Those tech­niques are being merged into the main FreeCAD devel­op­ment project dur­ing the cur­rent devel­op­ment cycle, but as of this writ­ing they are not yet available.

Assembly 4

Plac­ing a new body in Assem­bly 4

Assem­bly 4, by Zolko-123, uses user-assigned “LCS” (Local Coor­di­nate Sys­tem) objects to assem­ble objects rel­a­tive to one anoth­er. This avoids any poten­tial TNP issues by ignor­ing the under­ly­ing geom­e­try itself and using FreeCAD’s built-in Part::Attacher and ExpressionEngine. It com­plete­ly avoids the idea of “con­straints”, opt­ing for a sim­pler (and arguably more reli­able) direct-posi­tion­ing approach.

How do you choose?

All three of these work­bench­es are eas­i­ly installed using the Addon Man­ag­er, and all three can be installed at the same time. The best way to deter­mine which one is best for you is to give each of them a test-dri­ve. The user expe­ri­ence for each is very dif­fer­ent, and many peo­ple devel­op strong pref­er­ences about which one is the best for their use-cases.

%d bloggers like this: