• Stars
    star
    879
  • Rank 51,943 (Top 2 %)
  • Language
    Python
  • License
    GNU General Publi...
  • Created about 7 years ago
  • Updated 4 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Experimental attempt for the next generation assembly workbench for FreeCAD

Assembly3 Workbench for FreeCAD

Patreon Liberapay paypal

Assembly3 workbench is yet another attempt to bring assembly capability to FreeCAD. There is the original unfinished Assembly workbench in FreeCAD source tree, and Assembly2, which is an inspiration of this workbench, and with some code borrowed as well. The emphasis of Assembly3 is on full support of nested and multi-document assemblies.

You can find more details at Assembly3 wiki.

Update: I have added a donation button. Feel free to show your support, and thanks in advance!

Installation

Assembly3 workbench works with FreeCAD version 0.19 or higher. You can also try my fork of FreeCAD which bundles everything and with lots of extra enhancement to the official FreeCAD release. If you are using Linux, you can also choose the snap build which is updated more frequently.

If you want to build everything yourself, please check out the build instruction here.

If you are using one of the official FreeCAD pre-built images, then Assembly3 is already bundled inside. But it may not always contain the latest version. To install the latest version, just clone this repository to your FreeCAD user module directory. Depending on which platform you are on, the directory is located at

  • Windows: c:\Users\<your_user_name>\AppData\Roaming\FreeCAD\Mod
  • Linux: /home/<your_user_name>/.FreeCAD/Mod
  • MacOSX: /home/<your_user_name/Library/Preferences/FreeCAD/Mod

If you prefer zip file over git clone, you can download it here. and extract the archive to the above directory.

If you are not using any pre-built FreeCAD image, then in addition to clone the repository here, you'll also need to install the SolveSpace solver Python module.

For Windows, open a command prompt window, change directory to your FreeCAD installation directory, e.g. cd c:\Program Files\FreeCAD\bin. And install the solver by running command python.exe -m pip install py_slvs

IMPORTANT: For Linux and MacOSX, simply use your system Python to install the the solver, e.g. Python3 -m pip install py_slvs. The workspace will not function properly without a solver installed!

Design

The design of Assembly3 (and the fork of FreeCAD) partially follows the unfinished FreeCAD Assembly project plan, in particularly, the section Infrastructure and Object model. You can find more details at here.

Usage

Before starting to use the Assembly3 workbench, it is necessary for the user to be familiar with a few new concepts introduced by the forked FreeCAD.

You can find instructions on common operations along with some tutorials at here.

Comparing with Assembly2

This section is for those who have used Assembly2 before. Here is a brief list of comparison between Assembly2 to Assembly3.

  • Assembly2 supports only one assembly per document, so the document can be considered as the assembly container.

    Assembly3 has dedicated container for assembly and supports multiple nested assemblies per document.

  • Assembly2 has dedicated object for imported child feature. The child feature's geometry is imported as a compound, and can be updated by user in case of external modification of the geometry model.

    Assembly3 has no special object for imported feature, although the feature may be added through a link under some circumstances. Simply drag and drop feature into an Assembly container, even if the feature is in another document. Any modification of the feature is instantaneously visible to its parent assembly. The FreeCAD core provides various commands to help navigating among nested assemblies and the linked child features, import the external feature into the same document of the assembly, and export the child feature into external document.

  • In Assembly2, the imported child feature acts as a container to group related constraints. There is no visualization of the geometry element in the constraint.

    The Assembly3 constraints are grouped under the parent assembly, each constraint acts as a container of its referring geometry ElementLink, with enhanced visualization support. Simply right click the ElementLink and choose Link actions -> Select final linked object to jump to the actual geometry model object owning the geometry element.

  • Assembly2 has a dedicate task panel for degree of freedom animation.

    Assembly3 is currently lacking of similar functionality. However, it does allow you to interactively drag any part of the assembly under constraint in real time.

More Repositories

1

fcad_pcb

FreeCAD scripts for PCB CAD/CAM
Python
126
star
2

usbip

Fork of usb/ip from linux kernel. Adding support of filters for application layer acceleration.
C
55
star
3

slvs_py

SolveSpace Python binding package source
Shell
29
star
4

kicad_parser

KiCAD parser written in python
Python
15
star
5

FreeCADMakeImage

Scripts for making FreeCAD AppImage and more.
Shell
13
star
6

ld3320

Experiment with LD3320 using teensy 3
C
9
star
7

mac-headers

Collection of private headers for building mac osx or ios projects
C
7
star
8

sexp_parser

Python S-Expression Object Model
Python
6
star
9

a33_linux

Linux kernel 3.4 for Allwinner A33
C
6
star
10

Connectors_Amass.3dshapes

3D models of AMASS connectors for use in KiCad and FreeCAD
5
star
11

a33_android_device_astar

Android device directory for Allwinner A33 (codename astar)
Makefile
5
star
12

a33_lichee_tools

Tools directory from Allwinner A33 SDK
Shell
3
star
13

a33_bootloader

Bootloader source code from Allwinner A33 SDK 4.4
C
3
star
14

Connectors_Molex.3dshapes

3D models of Molex connectors for use in KiCad and FreeCAD
2
star
15

network-cmds-plus

Upgrade of saurik's port of network-cmds for ios with complete ipv6 support, plus radvd and radvdump.
Shell
2
star
16

molexGen

Auto generation of Molex connectors 3d model with color for KiCad and FreeCAD using offical Step files
Python
2
star
17

a33_android_device_common

Android device common directory for Allwinner A33
C
1
star
18

org.freecadweb.FreeCAD.Link.BaseApp

1
star
19

asm3-wiki

FreeCAD Assembly3 documents
1
star
20

py_slvs

Precompiled SolverSpace python bindings
Python
1
star
21

py3_slvs

SolveSpace Python3 binding prebuilt binary
Python
1
star
22

hm_sun7i_android

Headmaster Android 4.2 source for Cubie Einstein SOM (Softwinner A20)
1
star
23

Capacitors_SMD.3dshapes

3D models of SMD capacitors for use by KiCad and FreeCAD
1
star
24

a33_lichee_repo

linux build repo for Allwinner A33
1
star
25

Diodes_SMD.3dshapes

3D models of SMD diodes for use in KiCad and FreeCAD
1
star
26

kicad_modules

An attempt to restructure KiCad modules by integrating 3D models with footprints, and to use FreeCAD as the MCAD
Python
1
star