I’m excited to share that I have published my first .SCAD-based model on the MakerWorld platform! This allows me to merge my passion for 3D printing with coding, and I’m thrilled to see others starting to design their own custom dice.
While using this tool, I’ve noted some areas for improvement that could greatly enhance the experience for both designers and users:
Code Editing Enhancements:
Introduce the ability to save drafts within the editor, complete with a git-style change history. This would streamline the development process, eliminating the need to copy and paste code into the editor for testing.
Add line numbers to the editor to align with the error messages that specify line numbers.
Design and Functionality:
Increase the font options available. Currently, there are only three fonts, which are quite limiting.
Allow pressing “enter” or “return” to refresh the model after variable adjustments, instead of having to click “generate” each time.
Relocate the “open file” button as it currently obstructs the view of the code.
Mobile Experience:
Improve the Handy app to allow mobile users to customize models and directly send them to the printer. This would clarify the design instructions for many users, some of which are confused about the model’s instructions because they are just on the mobile app.
Categorization:
Create a separate category for SCAD parametric models to simplify navigation and usage.
I have several other ideas to enhance our experience on this platform and would love to hear your thoughts or additional feedback.
I prefer to do all my debugging in OpenSCAD before adding the code to MW.
Fonts; Yes, the only three we know about is due to them being referenced in a code sample. We need more, far more. There may be more, but without any documentation, there isn’t any method to determine.^
Doesn’t launch on the iPad from the model page button. Yet the editor itself does work on the iPad when navigating from the MW navigation menu to the parametric examples.
The count on the model page for Customonize shows each time the editor is ‘launched’, not when a customisation resulted in a model being exported. This seems like a fault.
Worse, it appears to count even if the editor fails to launch. Three of the number for your dice model were when I failed to get it to launch on the iPad.
Such an obvious oversight it seems intentional. It requires a distinct and promoted category.
^ They didn’t use the latest build which provides the textmetrics method to determine key spacing info about installed fonts.
Debugging in OpenSCAD - I hear you, but if MW wants to lower the barrier to entry, they need people developing their OpenSCAD models right in the app.
Documentation - We absolutely need more documentation for anything that is a MakerWorld specific limitation or feature.
Customize Counter - Thanks for upping my counter! You are right, it seems like a fault, however, it’s nice to know how many times it’s been open vs how many times folks have downloaded the model from it. This provides some type of engagement metric on how easy and useful your code is, but there are better ways of doing so.
Support for color in the viewer at the very least so its easier to see details of model
Some way to export color information directly into 3mf. I know OpenSCAD doesn’t have this either, so might not be possible. This would go a long way towards minimizing the time between the customization and hitting print which seems to Bambu’s basic strategy. I think there should be ways to do this at the slicer import if not possible in the SCAD implementation - ie. body 1 is one color, body 2 is color 2, remaining are all color 3.
Ability to remember transformations, materials, etc, in the print profile and load that way after you customize and dl 3mf. Transformations for if I want to have text up in the viewer so you can see customization, but load in 3mf already face down for printing.
That’s all really good feedback as well. Basically they can take the OpenSCAD format to the next level and add new features, or even support growing the open source specification.
Another request is to not make users click Customize > Select the model file > click Customize again when there is only one model.
This is one of the things I would never allow in my company. The basic premise of writing software is to make tasks easier for those using it.
I imagine most OpenSCAD uploads will contain one file, making that step unnecessary for most users. Presenting a choice of one is not a question that should be asked.
Another feature I would like is the ability for me to use a font I provide in my upload.
I have a couple of projects that require specific fonts to achieve the required outcome. Their license supports it, but, they are for such a specific need, they are highly unlikely to be available even if MW extends the font library from the assumed three to something reasonable.
After playing around a bit more, it seems there is something built into the 3mf generator where it will automatically try and orient for better printing, and I have run into some issues with that that I reported.
Also I had sort of forgotten, but I have had the implicit union turned off in the versions I am using (lazy union or something like that in the preferences). Not having that (or any options really) is pretty annoying. If you want to create something with flush text for example, you have to do small offsets and cut to make sure parts are not fused together into one body.
You can even do this in the command prompt. So some documentation on the implementation and what options are available would be really nice. ie. If you can call in your script “–enable=lazy-union” and it treats it like from cmd
Another feature I would like to see is the ability to provide private code files.
I have a few projects where I do not want the source code to be made public, but, I have no problem with users benefiting from the configurations they select to generate a model.
I am all for sharing things for free, but, in some circumstances, the designer (or developer in this case) should have to give away the recipe for people to benefit from the meal.
I do not believe private source code should be the default or even the norm, but, in those rare circumstances, I would rather not share the work rather than let others benefit from the raw source code.
Private source files would mean that ‘bad actors’ could not take the source code profit from that.
An uploaded private source code project would not display the code anywhere in the parametric model maker and would not be found in any downloaded raw files from the website.
Please, let us use the color function. Also allow the color to be exported in 3MF. I think that’s crucial, imagine user generating QR code and then coloring it in the slicer. Thanks.
I’m an absolute noob at OpenScad, I only try it for a couple of hours and it’s the the same for the MW module. So I might say incorrect things but here are my suggestions:
UI/UX:
add a toggle button to enable an auto refresh on the customized parameter changes.
Features:
add colors
add font support (I don’t know how it works specifically but if we could use web fonts for example that would be awesome).
add a project directory that allows us to store assets for the project to be able to use include and import function.
OpenSCAD does not support colors. Sure there is a color command, but it only works for the preview. Render and export are pure geometry, no color.
If you want multicolor models, render and export each color part separately and import them together in the slicer.
I, too, would like parameter presets (including a preview and comment).
The Customizer does not work with negative parameter values (completely ignores any parameter that is preset with a negative value, and also bugs when the allowed range contains a negative value) - please fix.
I support the idea of private source files as option, i.e. .scad file not shown and not downloadable, only usable in the customizer.
Also a parametric design is more flexible and requires more work, I find it unfortunate that it gives less points (no points for printing).
There are at least two projects which expand colour support into the 3mf format, but, they are both command-line, not official, and neither is stable.
I agree with you all on that, hopefully, it will be a future feature update.
The parametric tool currently only allows an export view triggered by the update button. This does not support any preview options before automatic export previews are generated.
This limits several of my projects as I utilise the live preview to show things inside items generated to help the user visualise how the end product will look. I automatically remove these mock items in export mode.
True, but it seems like it should be possible behind the scenes during the 3mf input to automatically do as you are saying. You might have to have it set up in a specific way within the script or some way to give some instructions to how bodies are handled on 3mf import (outside of the OpenSCAD implementation).
This might be another good opportunity for MakerWorld to advance the OpenSCAD source. They could also expand the specifications for the purpose of their editor and 3MF generating process. Especially since they have so many users with AMS units.
I agree that the current color scheme can make it difficult to see the model. It would be great to at least have some controls of the single color and lighting.
OpenSCAD does not support colors. Sure there is a color command, but it only works for the preview. Render and export are pure geometry, no color.
You are correct, but your solution is really not user friendly. If Bambu generates 3MF (not openSCAD itself) judging by some weird repositioning of the model that happens when you generate 3MF, then adding color of the part might not be such a big problem.
Is there even a way to generate multiple parts in a single openSCAD project?
The two projects achieve this with similar approaches by parsing the OpenScad file for color keywords and post-processing it into separate files, one for each colour. It then generates a single 3MF file using each file as if they were independent objects, denoted with their originally declared colours.
The projects themselves agree this has flaws. Namely, every shape MUST have a colour declaration and missing one can cause the whole thing to fail. The time to post-process this is extremely long as the process can be very complicated. Any nesting of objects is not recommended as it adds significantly to the time.
At the time of writing, it looks like a significant time drain (sometimes hours per file) for little payoff. There are other ways to achieve the goal.
Changing the base coordinates offset is easier as you are changing three numbers.
Assuming I understood your question correctly, here goes…
Let’s say for example you have a box, lid and dividers ← Multiple objects. You can configure your openSCAD code via parameters so that you allow the user to select which part they want to generate, e.g., all parts, lid only, dividers only, box only, etc. You put IF blocks that would be skipped if the user didn’t want to generate it. In your code, you have to make sure that your objects are not placed together in the same coordinates so they don’t overwrite each other during rendering.