Releases: tdeck/3dmake
v0.9.1 MacOS beta release
This release is the same basic code as v0.9, but has been built into a release build for MacOS. This is a beta release because it does not include the OpenSCAD or PrusaSLicer binaries. That means:
- In order to slice models, you'll need to download PrusaSlicer from the PrusaSlicer download page and install the DMG image.
- in order to build SCAD models, you'll need to install OpenSCAD yourself from the OpenSCAD website, and probably go into your MacOS privacy and security settings and enable running it (because it's an unsigned binary).
You might have to install Rosetta to get these programs to work on Apple Silicon macs.
Depending on where your applications might have been installed, you may need to set some environment variables in your terminal session before running 3DMake so it can find these programs:
- If 3dm build doesn't work, find your OpenSCAD .app file's path. Let's say it's at /Applications/SomeFile.app, you should run this command in your terminal:
export THREEDMAKE_OPENSCAD_PATH=/Applications/SomeFile.app/Contents/MacOS/OpenSCAD(note the end is always /Contents/MacOS/OpenSCAD`) - If 3dm slice doesn't work, find your PrusaSlicer .app file's path. Let's say it's at /Applications/SomeSlicer.app, you should run this command in your terminal:
export THREEDMAKE_SLICER_PATH=/Applications/SomeSlicer.app/Contents/MacOS/PrusaSlicer. (note the end is always /Contents/MacOS/PrusaSlicer)
Version 0.9
Changes in this release:
3dm printnow supports printing to Bambu Labs printers using Bambu Connect. This has been tested on real hardware, and is an option in3dm setup.- Bambu LAN mode support has been fixed and verified to be working.
3dm infonow supports using local AI with Ollama (thanks @mrhunsaker!)- Added 5 new printer profiles: Bambu Labs A1 Mini, P1S, P2S, and H2D. FlashForge Adventurer 5M.
- Changed the default model in
3dm infotogemini-2.5-flashdue to new limits on free tier. 3dm previewnow also produces SVG files in the build directory, which can be embossed or printed on swell paper.- On Windows,,
3dm setupnow provides a list of editors to choose from. - When upgrading from a previous version,
3dm setupcan now detect which profiles you have customized and which were just the standard version included with a previous release, and is smarter about allowing you to choose whether to overwrite individual customized profiles. - New
3dm install-profilecommand has been added to make adding downloaded profiles easier. - Long times in detailed slicer statistics are now formatted nicely, rather than just being seconds.
- Fixed a bug where
3dm orient imagewould produce an image of the un-oriented model. It now renders the oriented model. - Fixed a bug affecting time + extrusion statistics for Bambu printers.
Version 0.8
Changes in this release:
3dm sliceshows total estimated filament weight, and filament usage breakdown by different extrusion types (e.g. overhangs, bridges, supports, etc...)- The size of images produced by
3dm imageis now configurable using the--image-sizeoption - There is a new
3dm test-connectcommand to test your connection to OctoPrint or a Bambu printer without actually printing something - More slicer warnings are properly conveyed to the user
- 3DMake now checks for updates and notifies if there is a new version available
- 3dm commands will now identify a project in the parent directory if the current directory does not contain a 3dmake.toml file (for example, if you run
3dm buildfrom the src directory).
Unfortunately the bambu labs connection test and printing code is still not fully tested because I don't have access to the necessary hardware.
Version 0.7
Changes in this release:
- Fixed a bug where Prusa printer profiles would fail to slice because they produced binary GCODE.
- Added the
--copiesoption to quickly duplicate a model during the slicing step. For example3dm slice benchy.stl --copies 3will print 3 copies of the model on the build plate. - Added the
3dm edit-promptcommand and option to customize the prompt sent to AI models for model descriptions - Added
llm_nameoption to allow you to select a different AI model - Added
3dm edit-profile-gcodewhich allows you to edit multi-line GCODE scripts that exist in your printer profile in a more natural way. 3dm setupcan now be used to change your existing settings.- Added support for using OpenRouter instead of Gemini
- Bambu Labs printer support (beta) - Connect directly to Bambu Labs printers over your local network.
- Various small bug fixes
Version 0.65 (beta)
DO NOT INSTALL THIS RELEASE. It is outdated, and its unusual version number will cause trouble when upgrading.
This release adds support for starting prints on Bambu Labs printers in LAN mode. Because the Bambu Labs printing protocols are not well documented, it is a pre-release to allow folks to test it.
How to set up your printer
The printer must be placed in LAN only mode and in developer mode from the network settings menu on the device's touchscreen. On this screen, you will see the printer's IP address (something like "10.1.2.3") and access code, which is a short string of letters and numbers. You will need both of these. You will also need the printer's serial number. This document explains how to find the serial number.
When your printer is in LAN only mode, you will not be able to print form the Bambu cloud.
How to set up 3dmake
You'll need to edit your 3dmake configuration to add several lines. Run 3dm edit-global-config. Add these lines to the end of the file, and edit them to reflect your printer's settings:
print_mode = 'bambu_lan'
bambu_host = 'EDITME'
bambu_access_code = 'EDITME'
bambu_serial_number = 'EDITME'
Save your global config, and 3dm print should attempt to send prints to this printer.
Version 0.6
Changes in this release:
- Added profiles for the Prusa Mini and Sovol SV07
- Added the
3dm imagefunction for exporting rendered images of an object from different angles - Changed
3dm infoto use a different (unfortunately worse) Gemini model since the Pro model I used in the past is no longer in the free tier (I would like to make this configurable in the next release) - Detect and error when slicing objects too horizontally large for the build plate (previously you only got an error when the object was too tall)
- Ensure prints are centered when sliced for the Bambu Labs X1C prfile
Version 0.5
This is a small release that fixes some important quality of life issues:
- Reduced frequency of build time updates in the terminal, so you'll get less noise from the screen reader
- Print the hotend temperature in 3dm slice
- Clearer error messaging when a subprogram (slicer, OpenSCAD) fails
- Updated the braille-chars library to version 1.1, which has functions to provide the size of the generated label
Version 0.4.1
This is the same as version 0.4, but it re-adds the model center to 3dm info. This is very useful when working with an imported STL file in OpenSCAD, and it's not very easy to get this info in other ways.
Version 0.4
- New printers added: Prusa MK4 and MK4S
- When running
3dm setupto upgrade from an earlier version, 3DMake will now preserve your settings and, optionally, any default profiles and overlays you modified - 3DMake now has a library package manager that supports installing libraries and using them in your projects. To list available libraries, use the
list-librariescommand. Simply add the names of the libraries to thelibrarieslist in your project's 3dmake.toml (e.g.libraries = ['bosl', 'braille-chars'], run3dm install-libraries, and for that project those libraries will be in your build path. I will be adding more high-quality, appropriately licensed libraries over time. - You can also add local directories to the build path by adding entries in a
local_librarieslist in your TOML file - The build command now prints a constantly updated build time output, so you can tell that it's still running when building a complex model.
- New
list-profilesandlist-overlayscommands - New built-in overlays with temperatures for PETG, TPU, and ABS.
While building this, I realized there wasn't a nice, importable, and fully featured UEB OpenSCAD library so I created braille-chars.
Version 0.3
- New printers added: Ender 3, Ender 3 pro, Ender 3 S1, Ender 3 S1 pro, Elegoo Neptune 3 plus
- 3dm slice command now prints length of filament used
- 3dm info now supports --interactive mode, allowing you to ask follow-up questions of the AI model
- Graphical editors like Notepad can now be launched in the background. This is configured with the edit_in_background config flag. This flag must not be set if you're using a terminal editor like Vim or Nano.
- Errors will now be printed briefly, without the stack trace (unless you specify the --debug flag)
- A default template for new main.scad files has been added, setting $fs, $fa, and drawing a sphere.
- Startup time for commands has been improved.
- Specifying a model name with the .scad extension using the -m switch now works. Even though this is technically a mistake, it's nice to correct it for the user.
- Previous versions had a bug where running
3dm infowith an STL from the command line would copy that STL to the current directory; this has been fixed. - 3dm info no longer prints the mesh center for the sake of brevity (it's unlikely to be useful since the slicer auto-centers anyway)
- Improved start GCode and settings for Monoprice mini delta (based on the GCode I use)
- Capitalization has been standardized to 3DMake because this sounds the best in NVDA
In addition, I improved the architecture of 3dmake so that the code is now much better organized. Each command now has its own implementation in the actions/ folder, and is created with an annotation that also registers any implicit dependencies. Docstrings for the help are now drawn from the command handler functions. Internal commands (i.e. implicit dependencies that can't be manually invoked) are also supported.