I have been working with @TommyDee to refine a tool for working with Cube3 and a little with CubePro files. I am relatively new to 3D Printing, but I am not afraid of trying things.
I have an EKOCYCLE printer that I have updated the firmware to be a Cube3, and have also modified the firmware to no longer decrement the cartridge filament count. I have also built Tomuro's cartridge programming device and have reprogrammed both EKOCYCLE cartridges to be PLA.
I have been printing things pretty well, but wanted a bit more control and started looking at how to get files fine tuned. So, after reading many posts on this form and others, and using the command line utilities to decode from CUBE3 to BFB, edit the file, and then encode from BFB to CUBE3, I decided there must be an easier way. Thus began my app that I call Cube3Editor.
You can download a zip file, which contains the binaries (if you have the necessary .NET frameworks installed), or an MSI installer that will install any missing frameworks.
Update March 18, 2021
*************************************************
Since Google is complaining about the primary executable containing a virus, I have moved the files to a download server.
https://gofile.io/d/Ghjr0U
Updated November 5, 2019
*************************************************
New versions posted to the google site.
Binary Zip: https://drive.google.com/file/d/1gdM...ew?usp=sharing
*************************************************
This is a work in progress, but please report any issues here, or PM me directly.
With some ideas from TD, I have also begun to implement the ability to script the utility so that it could be used to modify CUBE3 files from the command line. Here is the current script documentation, which is subject to change and is not implemented in the version currently available for download:
SET [FIRMWARE|MINFIRMWARE|MODEL|E1|E2|E3] "value"FIRMWARE: sets ^Firmware: to "value"
example: set FIRMWARE "V1.14B"
MINFIRMWARE: sets ^Minfirmware: to "value"
example: set FIRMWARE "V1.14B"
MODEL: sets ^PrinterModel: to "value"
example: set MODEL "CUBE3"
E1: sets ^MaterialCodeE1: to "value"
example: set E1 "82"
E2: sets ^MaterialCodeE2: to "value"
example: set E2 "82"
E3: sets ^MaterialCodeE3: to "value"
example: set E3 "82"
MODIFY TEMPERATURE [LEFT | RIGHT | MID] <XXXX> BY [PERCENTAGE [+/-]<YYYY> | ADD [+/-]<YYYY> | REPLACE <YYYY>]This modifies all existing occurances of XXXX by one of the following methods:
PERCENTAGE [+/-]<YYYY>: adjusts XXXX by percentage. Increase can be specified by specifying a positive value for YYYY. Decrease can be specified by specifying a negative value for YYYY.
ADD [+/-]<YYYY>: adjust XXXX by YYYY. Increase XXXX by specifying a positive value for YYYY. Decrease YYYY by specifying a negative value.
REPLACE <YYYY>: Replace each occurance of XXXX with YYYY.
- Maximum temperature is 265. If any adjustment results in a larger value, it will be set back to 265.
- Minimum temperature is 0. If any adjust results in a negative value, it will be set back to 0.
If LEFT is specified, then only the left extruder is modified. If RIGHT is specified, then only the right extruder is modified. if MID is specified, then only the mid extruder is modified. If none of these are specified, then the temperature adjustment affects all entries that match the given <XXXX> temperature.
MODIFY RETRACTSTART <XXXX> BY [PERCENTAGE [+/-]<YYYY> | ADD [+/-]<YYYY> | REPLACE <YYYY>]This sets the P/S values of M227 command by percentage, addition or replacing the exising value with a new value.
PERCENTAGE [+/-]<YYYY>: adjusts XXXX by percentage. Increase can be specified
by specifying a positive value for YYYY. Decrease can be specified by
specifying a negative value for YYYY.
ADD [+/-]<YYYY>: adjust XXXX by YYYY. Increase XXXX by specifying a
positive value for YYYY. Decrease YYYY by specifying a negative value.
REPLACE <YYYY>: Replace each occurance of XXXX with YYYY.
If <YYYY> is calculated to be less than 0, then the value stored will be 0.
MODIFY RETRACTSTOP <XXXX> BY [PERCENTAGE [+/-]<YYYY> | ADD [+/-]<YYYY> | REPLACE<YYYY> ]
This sets the S values of M228 command by percentage, addition or replacing the existing value with a new value.
PERCENTAGE [+/-]<YYYY>: adjusts XXXX by percentage. Increase can be specified by specifying a positive value for YYYY. Decrease can be specified by specifying a negative value for YYYY.
ADD [+/-]<YYYY>: adjust XXXX by YYYY. Increase XXXX by specifying a positive value for YYYY. Decrease YYYY by specifying a negative value.
REPLACE <YYYY>: Replace each occurance of XXXX with YYYY.
If <YYYY> is calculated to be less than 0, then the value stored will be 0.
=====EXAMPLE=====
An example script may look like:
Code:
set FIRMWARE V1.14B
set MINFIRMWARE V1.14B
set MODEL CUBE3
set E1 82
set E2 -1
set E3 -1
set TEMPERATURE LEFT 210 BY REPLACE 195
set TEMPERATURE LEFT 265 BY REPLACE 215
set TEMPERATURE LEFT 250 BY REPLACE 210
set TEMPERATURE LEFT 240 BY ADD -35
set RETRACTSTART 450 BY PERCENTAGE -50
set RETRACTSTOP 450 BY PERCENTAGE -50
and the command line may look like:
Code:
cube3editor example.cube3 example.scr
this would result in an updated example cube3 that has the updates specified in the script. If for any reason one of the lines in the script is badly formed, no changes will occur to the cube3 file.
- - - - - - - - - -
New versions of binaries uploaded and ZIP of the binaries is attached here.
- - - - - - - - - -
Just for fun, @TommyDee asked me to create a utility to generate a basic file from a given CUBE3 file.
https://drive.google.com/file/d/1gdM...ew?usp=sharing
This is a console mode app that will take a cube3 file and generate a script that could be modified to change the parameters using the other, Cube3Editor. The script file will contain the following details:
FIRMWARE
MINFIRMWARE
MODEL (printer model)
E1 (MaterialCodeE1)
E2 (MaterialCodeE2)
E3 (MaterialCodeE3)
then a it will list
unique temperature lines with the current temperature and a "replace" value (Which is just the temperature repeated).
retract start lines (M227) with the current retraction rate (P/S must match) and a "replace" value (Which is just the retract rate repeated).
retract stop lines (M228) with the current retraction rate (S only) and a "replace" value (which is just the retract rate repeated).
Let me know what you think.
- - - - - - - - - -
06/17/2019
Cube3Editor -- the BFB can now be edited and saved to a BFB file from the UI. Currently, this DOES NOT affect the loaded file, I added it mostly as a convenience to assist in debugging. It could grow into a more useful feature.
One of the upcoming changes I am thinking about is allowing the script to be generated, edited and saved from the UI.
Added command line utilities:
c3sg.exe -- this will read a cube3 file and generate a script that can be used to modify cube3 files. The script can be cased to the cub3editor executable along with the a cube3 file to apply the changes to the cube3 file without using the GUI.
cube3decoder -- this will convert a cube3 file to a BFB (bit from byte) file. This will either put the output a file with the same name as the cube3 file with an extension of BFB or to a filename supplied on the command line. This will work with CUBE3 files that have been previously encoded with cube3encoder or with files generated by cube_print.
cube3encoder -- this will convert a BFB file to a cube3 file. The cube3 filename will be the same as the BFB file, but with the extension CUBE3. Or the output can be overridden by specifying the cube3 file on the command line.