Releases: tdeck/3dmake
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)
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.
Version 0.2
This release adds significant quality of life improvements for editing printer profiles and settings. Printer settings are now grouped according to logical categories with category headings in the .ini files, and each file has a table of contents at the top listing the category headings.
Four new commands make it easier to open files for editing: edit-model, edit-overlay, edit-profile, and edit-global-config.
Most excitingly, the 3dm info command can now describe your model using the Gemini AI. Behind the scenes, it renders the model from 6 different angles and feeds these images to Gemini, along with a carefully crafted prompt. I'm continuing to iterate on the prompt in the future, but the results are good enough to be useful now.
Version 0.1
Windows build: 3dmake_windows.zip
Linux build: 3dmake_linux.tar.gz