To be honest, “giving it serious consideration” sounds to me like “we’re not doing it, but we’re not telling you yet”.
But exactly the distinction between individual (private) files and public files is exactly what you would need if you want to build custom web apps for PMM.
So if custom web apps are to be implemented, then the distinction between individual (private) files and public files is necessary anyway. So this could be implemented as part of the “Code Privacy” as a start. And in second stage you could build up the custom web apps on this basis.
Unless BL plans to make all files for custom web apps completely public.
One unrelated feature request - DXF/SVG export. Our parametric model incorporates multi-materials by having an optional 2D DXF/SVG export for folks to laser/cut wood or vinyl inlays on their H2D or other cutter. This is unsupported by MW PMM right now (as far as I know), so I have to instruct others to download OpenSCAD if they want a DXF/SVG for their custom Deskware. It would be nice if MW could do it all so folks can us MW and our models to create their entire custom multi-material model!
Unless BL plans to make all files for custom web apps completely public .
Personally I’d be OK with that but I understand your point of view and agree it’s probably needed for widespread acceptance. But here’s the problem, and it’s an implementation problem: there are two ways to implement a Scad script system - either hosted by them, or running locally in your browser. Well, actually, three - you could have the web service invoke the Bambu Studio code and have it run the scad code I suppose. But for the purpose of this discussion that is equivalent to running it in the browser, in that all the files have to be downloaded to your local system. This absolutely rules out the designers posting scriptable designs while disallowing the users from downloading the scripts. The only option that can preserve source code privacy while allowing the users to run scripts is if they are hosted by Bambu on their servers. And that will be expensive - in terms of CPU and because of that in terms of $$$ cost to Bambu. Openscad scripts can be real CPU and memory hogs if they pull in STL files to modify. So I can’t see Bambu offering that unless it’s pay-for. So my guess is that they’ll have to do client-side execution of scripts due to cost, and that those scripts will therefore not be able to be protected. Regardless of what they would prefer to do. Or they host them but disallow scripts that exceed very restricted CPU or memory limits, which rules out importing most STL models as a basis to be modified. Theoretically they could do both: if the designer is OK with releasing their source code, it would run on the client’s system; if the designer wants the sources to be kept private, then the script runs on Bambu’s servers but either the designer, or - more likely - the user has to pay for running it. Although that seems an ideal compromise, I can’t see the software manager signing off on a system that requires two diverged code-bases to be maintained - it would be expensive in terms of employees and support.
The easiest way is to set a global flag saying by the use of a simple checkbox captioned.
“Do not show any source code.”
This would apply to any code uploaded and displayed in the parametric tool.
You could make it visible if the model includes one or more OpenSCAD files.
This would solve the problem without anything complex, certainly easier than the recent changes that banned normal words without any consideration to their context.
Meanwhile, is there an already existing method, probably on the url invoked of the model and parametric model maker, to push a parameter or set of parameters on the URL?
I couldn’t find this documented but makes sense it already exists.
This would allow to feed our users traffic back to makerworld in a value proposition instead of just dumping on a parametric model page.
for some reason its not working for me on my old MacBook. have you or anyone else heard of this problem? I’ve been trying to do it from scratch I haven’t tried importing a model. thank you!
Now that we have the ability to upload files in a semi limited capacity (PNG, SVG, STL) I want to suggest adding the ability to upload custom font files (.TTF, .OTF).
Openscad has a fairly robust text feature set, and being able to use custom fonts would really, really open up the possibilities.
In addition to the installed fonts ( for windows only fonts installed as admin for all users ), it’s possible to add project specific font files. Supported font file formats are TrueType Fonts (.ttf) and OpenType Fonts (.otf). The files need to be registered with use<>.
I’m late to the party here but I want to add my support for customer UI. Generating arrays in the default UI is not user friendly and a custom repeater field would be just the thing for my users.
Being able to import STL / SVG would be a bonus but doesn’t affect me personally (yet).
The single biggest problem I have with the Parametric Model Maker are my users reporting that after they generate/download/print they cannot rate the model. I think that having a rating for the customizer and allowing users to post makes of their custom models would be beneficial. I also see the number of customized models being 10x what my model downloads are which makes me wonder if those don’t count toward my model stats.
The more I work with OpenSACD and the Parametric Model Maker the more libraries I create to implement different models and parts of models.
You know - separation of concerns and avoiding code duplication.
With the growing libraries and the necessary protection of intellectual property we need urgently need an improvement in the situation.
This could either be the option to upload some private library files for OpenSCAD or some kind of packaging.The first idea was already discussed. Here is the other one:
Additional to .scad files BL could allow *.scad.zip (like crown.1.17.22.scad.zip) files that needs to have one OpenSCAD file as starting point (maybe main.scad) and it could have a bunch of other files and directories containing more files.
The code of files that are uploaded as .scad will still be visible to others. So you can keep the current approach for simple PMMs.
The code (and content) of the .scad.zip is never shown to other users.
The zip file can contain OpenSCAD, SVG, STL and Fonts. All parts that could be used/referenced in OpenSCAD directly. And the BL upload process could verify that only allowed file extensions are copied from the container (the zip) into the running environment to try to prevent evil stuff.
Maybe also a main.md and/or main.pdf is allowed to contain/provide documentation for the user how to use this PMM.
The filename of the package could contain some kind of SemVer versioning for BL to keep a history and to allow users to use older versions (full package).
I’m all for parametric models, but I think your implementation can be massively improved.
Running OpenSCAD in the browser
You currently run OpenSCAD on the backend to generate models using user code, which not only requires paid compute, but might pose security risks.
This is not necessary as OpenSCAD can be fully run on the browser, as shown by https://github.com/openscad/openscad-playground.
HTML/CSS/JS
In theory, this sounds like a great idea; however, implementing it in such a way that it is secure will not be easy. Also, while this empowers developers to create and customize the PMM UI, the many different UIs will cause end-user confusion.
Moving beyond OpenSCAD
Why focus on supporting just OpenSCAD? Since OpenSCAD can be run on the browser, you could allow for other engines to run (also in the browser).
Thanks for your suggestions, which really makes sense. However, OpenSCAD’s license is GPL. If we integrate it into MakerWorld frontend, we may have to open source the whole site. That is why we decided to deploy it to the backend in the first place (which is allowed by GPL).
I use .lib.scad to name my openscad libraries, but there may be other ways. The point is that libraries make the devlopers work way easier. They can reduce duplicated code and keep things together that belong together.
Since the modell directories already can keep multiple files, the only missing thing is to tell the uploader what the ‘main’ file is and what ‘lib’ files are.
I see two simple options without changing the GUI:
exactly one file *.main.scad is given , all other files are libraries
all .lib.scad files are libraries and one file whithout .lib. is the main file that is executed.
just a quick idea,
for sure later on it would be great when the modules can share thier libs.