Installation

FreeCAD NX-Style is a launcher and a FreeCAD module. You need FreeCAD itself, the project folder, and Python to run the launcher.

Requirements

Needed Details

FreeCAD 1.0 or newer

Tested on Windows 11 with FreeCAD 1.0.2 (Qt 5.15) and 1.1.4 (Qt 6). Install it from freecad.org or your package manager.

Python 3.8 or newer

Only to run the launcher; it uses the standard library only. FreeCAD’s own Python works too.

Git

To get the project with its submodules, and for Strata (version history), which runs git behind the scenes. On Windows, Git for Windows puts git.exe on the PATH.

Linux is tested on Linux Mint 22.2 with the FreeCAD 1.1.4 AppImage: put the AppImage in a folder in your home directory, such as ~/Applications, and the launcher finds it. macOS is supported by the launcher (it looks for FreeCAD in the usual places) but has not been tested yet. The hidden-desktop test mode is Windows-only; on Linux the self-test runs on whatever DISPLAY it is given, for example an Xvfb display.

Get the project

Clone it with its submodules: Strata in vendor/freecad-strata, Katydid in vendor/Katydid, FreeCAD’s SheetMetal add-on in vendor/FreeCAD_SheetMetal, LCInterlocking in vendor/LCInterlocking and the DFM Workbench in vendor/FreeCAD-DFM-Workbench.

git clone --recursive https://github.com/Foadsf/freecad-nxstyle

If you cloned without --recursive, or downloaded a ZIP of the repository, fetch them separately:

git submodule update --init

NX-Style still starts without them; the launcher then prints Strata: not found, Katydid: not found, SheetMetal: not found, LCInterlocking: not found or DFM: not found and how to get them.

The DFM Workbench also needs OCP (cadquery-ocp), which FreeCAD does not ship. Until it is installed, the launcher prints DFM: off: it needs OCP and starts without it. Install it once (about 165 MB from PyPI, with FreeCAD’s own Python, into FreeCAD-NXStyle/pydeps beside the NX profiles):

python launch_nx.py --install-dfm-deps

Start it

From the project folder:

python launch_nx.py

The launcher finds the newest FreeCAD on the machine, prepares the NX profile and starts FreeCAD with the NX-Style interface. It prints what it used:

FreeCAD 1.1.4: C:\Users\you\AppData\Local\Programs\FreeCAD 1.1\bin\freecad.exe
NX profile: C:\Users\you\AppData\Local\FreeCAD-NXStyle\profile-1.1
Strata: bundled (...\freecad-nxstyle\vendor\freecad-strata)
Katydid: bundled (...\freecad-nxstyle\vendor\Katydid)
SheetMetal: bundled (...\freecad-nxstyle\vendor\FreeCAD_SheetMetal)
LCInterlocking: bundled (...\freecad-nxstyle\vendor\LCInterlocking)
DFM: bundled (...\freecad-nxstyle\vendor\FreeCAD-DFM-Workbench), OCP from ...\FreeCAD-NXStyle\pydeps\py311

Open files directly by naming them:

python launch_nx.py part.FCStd

Launcher options

Option What it does

--list

Lists the FreeCAD installations found, newest first, and exits.

--freecad PATH

Uses this FreeCAD executable or installation folder instead of the newest one.

--profile DIR

Uses this folder as the NX profile instead of the default one.

--reset-profile

Deletes the NX profile before starting, for a clean start.

--no-strata

Starts without Strata. To switch it off for good, set "plm": "none" in the settings.

--no-katydid

Starts without Katydid (Algorithmic Modeling). To switch it off for good, set "algorithmic_modeling": "none".

--no-sheetmetal

Starts without the SheetMetal add-on (Sheet Metal). To switch it off for good, set "sheet_metal": "none".

--no-lcinterlocking

Starts without the LCInterlocking add-on (Laser Cut). To switch it off for good, set "laser_cut": "none".

--no-dfm

Starts without the DFM Workbench (Analysis › Molded Part Validation). To switch it off for good, set "dfm": "none".

--nxt

Starts with the FreeCAD-Nxt add-on, a trial that is off by default (FreeCAD-Nxt (trial)). To switch it on for good, set "nxt": true. It needs FreeCAD 1.1 or newer.

--install-dfm-deps

Installs what the DFM Workbench needs (cadquery-ocp 7.8.1.1.post1 and VTK 9.3.1, pinned to FreeCAD 1.1’s OpenCASCADE 7.8.1, and gmsh 4.15.2 for its colour maps) with FreeCAD’s own Python, then exits. The only option that downloads anything.

--dry-run

Prints the FreeCAD executable, the profile and the command line, and starts nothing.

--wait

Waits for FreeCAD to exit (useful in scripts).

-- ARGS

Passes everything after -- to FreeCAD unchanged.

--smoke-test OUTDIR, --tutorial OUTDIR

Run the self-test or the tutorial replay. See Testing.

The NX profile

The NX profile is a private set of FreeCAD user folders, one per FreeCAD version:

System Profile folder

Windows

%LOCALAPPDATA%\FreeCAD-NXStyle\profile-<version>

Linux

~/.local/share/freecad-nxstyle/profile-<version>

macOS

~/Library/Application Support/FreeCAD-NXStyle/profile-<version>

Inside it, config holds FreeCAD’s user.cfg and NX-Style’s nxstyle.json (see Settings), data holds the add-ons (Mod) and macros, and temp FreeCAD’s temporary files.

Your normal FreeCAD (%APPDATA%\FreeCAD on Windows) is never read or written. That also means your usual FreeCAD add-ons do not load in the NX profile; install the ones you want there with Tools › Add-on Manager.

Update

git pull
git submodule update --init

Then start the launcher again. The NX profile is kept; new settings get their defaults.

Uninstall

  1. Delete the project folder.

  2. Delete the NX profile folder (see the table above), or keep it if you might come back.

FreeCAD itself and your normal FreeCAD settings were never changed, so there is nothing else to undo.

Next