Additive & Subtractive Manufacturing By Layer for the E3D ToolChanging platform
This code is designed to create a gcode file suitable for Additive & Subtractive Manufacturing By Layer (ASMBL).
ASMBL is a manufacturing technique which combines FDM 3D printing with traditional milling.
The additive and subtractive tools are alternated throughout the print so that milling of otherwise impossible to reach features is now possible.
E3D Toolchanger Milling Tool - Thingiverse
https://e3d-online.com/blogs/news/asmbl
Historically, combining an additive and subtractive gcode file has needed to be done manually. This is an arduous process that is only realistically feasible for simple shapes.
This repo automatically merges a milling gcode file into a FDM gcode file; so that each milling segment is merged only after the part has been printed to the required height. This merging is also compatible with non-planar milling operations that occur over a range of print layers (such as as chamfers or fillets), allowing the staircase effect typically found in FDM parts to be removed from your print. .
There are 2 main ways this repo can be used.
.gcode
file from Simplify3D using the ASMBL.factory
file to get the appropriate settings..gcode
file from Fusion360.The Fusion 360 add-in is the recommended option however the slicer is new and not widely adopted yet. Therefore, support for Simplify3D is present. The 2 slicers create mostly compatible gcode files. Until further notice, support for both programs will exist.
For the standalone program, download the latest release for the ASMBL.exe
, an example config.json
, and the Simplify3D factory file.
Unzip the repo in your desired folder location or clone the repo:
git clone https://github.com/AndyEveritt/ASMBL.git
Run on Startup
, then Run
To make orienting the coordinate axis between modeling, additive, and subtractive workspaces; it is highly recommended to change the Default modeling orientation
in Fusion360.
This can be done by:
Default modeling orientation
to Z up
Download the following files from the releases page:
ASMBL.exe
config.json
ASMBL.factory
Ensure the config and exe are in the same folder for the program to run.
To modify the source code follow the guide here: Standalone Installation
A details on materials that have been tested can be found here.
The additive gcode can be setup in various ways.
DO NOT TURN OFF THE RAFT UNLESS YOU KNOW WHAT YOU ARE DOING...IT IS VERY EASY TO CUT INTO THE BED AND BREAK THE TOOL
If you do remove the raft, make sure the part is placed flat on the bed.
First you need to create an offset of your model, this will control how much cut-in you have.
.step
in Fusion 360.Capture Design History
if it is not already on.
Design
workspace.Ctrl+C
, Ctrl+V
Additive
Tab in the Manufacturing
workspace in Fusion360.Select
MachineE3D - Tool Changer.machine
profile from the settings
folder of this repoSelect
next to Print Settings
ASMBL.printsetting
profile from the settings
folder of this repoModel
select the offset body created earlierWorkspace:
Machine:
Setup:
Additive
Guide on how to create a properly configured gcode file can be generated can be found here
Setup
> New Setup
From solid
for the Stock modeModel
option in the Setup
tab, select the original part body.The origin changes depending on if you are using Fusion360 or an external slicer for the additive gcode.
Work Coordinate System
select:
Model orientation
Model origin
The CAMing proceedures for ASMBL can be configured with the following processes:
Process | Usage |
---|---|
3D Contour | Used for vertical & close to vertical side walls (including chamfers & filets). |
2D Adaptive | Used for top surfacing |
2D Contour | Used for vertical side walls of parts |
Other 3D operations | Can be used for non planar operations if you know what you are doing (it is easy to break stuff, be careful) |
See Operation Setup for more details.
This is key to understanding how to CAM a model effectively. Below are guidelines but they may not work for every situation. Use this overview to understand what to look for when setting up the CAM operations.
This program separates each of the CAM operations into segments separated by motion type (cutting, lead-in, plunge, etc.).
Each of the cutting
segments are then classified as either planar or non-planar.
The height of each segment is determined:
Consequetive cutting segments are then grouped if they have the same height as the previous segment. Consequetive segments are also grouped if they are non planar.
For each group, any prior lead-in
or plunge
segments and post lead-out
segments are found and added to the group start or end respectively. A CamGcodeLayer
is created containing every segment between the first and last segment in the group for all motion types.
Retracts are automatically added between each CamGcodeLayer
to ensure the tool does not collide with the part.
Therefore, if there are multiple consequetive cutting segments at the same height (top surfacing etc.), the Fusion retracts will be used;
otherwise, this program will automatically replace any retracts/transitions Fusion creates.
Always inspect the gcode with travel moves turned on after it has been generated. This program reorders a significant proportion of the gcode, and replaces Fusion360's default retracts & travel moves.
It can happen that a single missing/wrong line in the toolpath causes the tool to pass through the model, this is unlikely if sticking with planar operations but a possibility when using non-planar
You can import our tool config by opening the Tool Library
then right clicking on either the Document, Cloud
, or Local
then Import Tool Library
. The library to import is located in this repo in settings
/ASMBL.tools
When selecting the tool you must renumber the tool to match the tool number on your printer.
A Cutting Feedrate
of 500 mm/min works well.
The CAM operations can be created using these buttons in the Milling
Toolbar
Full setup details for operations can be found here: CAM Operation Setup
ASMBL
tab along the top navigation barPost Process
2
.OK
~/ASMBL/output/
.gcode
editor.Manufacturing
workspace, ASMBL
tab; click Actions
> Post Process Cam
Ok
A new temporary file is created for each unsuppressed milling setup, rename or change the folder location of any generated file you want to keep else it may be deleted/overwritten.
Fusion will try to open the generated gcode file in VSCode by default, if you don't have it installed it will prompt you to download it. This is entirely up to you.
The config.json
contains the parameters that control how the ASMBL parser merges the 2 input files if running the program standalone.
Update the config.json
so that the following settings are correct for your project:
{
"InputFiles": {
"additive_gcode": "path to Simplify3D additive .gcode file",
"subtractive_gcode": "path to Fusion360 CAM .gcode file"
},
"Printer": {
"bed_centre_x": "mm from origin to bed centre in x axis (150)",
"bed_centre_y": "mm from origin to bed centre in y axis (100)"
},
"PrintSettings": {
"raft_height": "Height of the top layer of the raft (2.133)"
},
"CamSettings": {
"layer_overlap": "How many layers the tip of the cutter should be lower than the layers being cut",
"layer_dropdown": "What number of mm the tip of the cutter should be lowered by"
},
"OutputSettings": {
"filename": "Name of the output file containing the merged gcode script
}
}
The program takes the following arguments:
Arg (long) | Arg (short) | Default | Usage |
---|---|---|---|
--config |
-C |
config.json |
Path to the configuration JSON file |
By default the program expects the config.json
to be in the same directory as the main file.
To run the program, ensure the config.json
is configured correctly, then run the ASMBL.exe
The latest .exe
can be found here https://github.com/AndyEveritt/ASMBL/releases
The program will output the file with a name according the the config settings in the output
folder. (An output folder will be created in the same directory as the .exe
if one does not exist)
Always preview the generated gcode in Simplify3D before attempting to print it
Set the coloring to Active Toolhead
and enable Travel moves
to ensure the part is using the correct tools at the correct times.
The subtractive processes are displayed as travel moves, scroll through the layers to check the subtractive processes have been added at the correct point in the print (defined in config.json
)
Close Fusion 360 and overwrite the contents of the ASMBL repo folder with the latest version from releases (or use git pull
if you previously cloned the repo).
If you want Fusion to automatically detect the update then make sure the folder names are the same, otherwise repeat this step with the new folder Fusion 360 Add-in.
Author | Contribution |
---|---|
@AndyEveritt | Code |
Greg Holloway | Printer |
LGPL-3.0