Parametric Model Maker V0.10.0 - Multi-Plate 3MF Generation

中文说明在下方

English Version

We’re excited to announce that Parametric Model Maker V0.10.0 is now available! This update brings several new features and improvements, including multi-plate 3MF generation, 3MF profile configuration, an improved font selection UI, and better error handling for oversized models. Let’s dive into the details!

Multi-Plate 3MF Generation

Parametric Model Maker now supports exporting 3MF files with multiple plates. You can define a separate module for each plate using the following syntax:

module mw_plate_1() {
    // Code to generate models on Plate 1
}

module mw_plate_2() {
    // Code to generate models on Plate 2
}
...

The module name must follow the pattern "mw_plate_" followed by an integer.

Optional: Assembly View

You can also define an assembly view module (optional), which helps users preview the complete assembly. The assembly view will not be included in the exported 3MF file. Use the following syntax:

module mw_assembly_view() {
    // Code to generate models in assembly view
}

Example

The following code defines two plates:

module mw_plate_1() {
    color("#FF0000") cube(10);
}

module mw_plate_2() {
    color("#00FF00") cube(10);
}

module mw_assembly_view() {
    mw_plate_1();
    translate([0,0,10]) mw_plate_2();
}

The preview in Parametric Model Maker:

The exported 3MF file in Bambu Studio:


NOTE: If your script uses the multi-plate 3MF feature, users CANNOT download STL files. We recommend providing two separate scripts: One script for multi-plate 3MF export and one script for STL file export.

3MF Profile Configuration

To offer more flexibility, the 3MF profile configuration allows creators to customize settings for users.

How to Edit the 3MF Profile:

  1. Open Parametric Model Maker through the Model Upload/Edit page.

  2. Click the profile configuration button in the top-right corner.

  3. Adjust settings in the popup dialog.

  4. IMPORTANT: Click the Upload button to save your changes.

Currently, only a few selected configurations are available. We will expand these options based on community feedback.

Improved Font Selection UI

We have integrated over 500 fonts from Google Fonts into Parametric Model Maker! To help users choose the right font, we have introduced a new font selection UI.

How to Use:

Define a variable using the following syntax:

textFont="default font name"; // font

NOTE: The // font comment is required to enable the font selection UI.

Preview of the Font Selection UI:

Users can filter fonts based on language, style, serif type, and more!

Oversize Model Issue

Since v0.9, 3MF generation fails if the model does not fit within a plate. In this update, we have improved the error message for better clarity:
image

How to Fix Oversized Models:

  • If your model has multiple parts, separate them into different plates.

  • Disable “Auto Arrangement” in the profile configuration. Note: If “Auto Arrangement” is turned off, you must manually position objects.

中文

我们很高兴地宣布参数化模型编辑器 V0.10.0 正式发布!此次更新带来了多盘 3MF 生成3MF 文件配置修改更好的字体选择界面以及更清晰的超尺寸模型错误提示。让我们一起来看看详细更新内容!

多盘 3MF 生成

参数化模型编辑器现在支持导出包含多个盘的 3MF 文件。您可以使用以下语法为每个板块定义一个独立的模块:

module mw_plate_1() {
    // 生成第 1 号盘上的模型
}

module mw_plate_2() {
    // 生成第 2 号盘上的模型
}
...

模块名称必须遵循 "mw_plate_" + 整数 的命名规则。

可选:装配视图

您还可以定义一个装配视图模块(可选),用于帮助用户预览完整装配效果。装配视图不会被包含在导出的 3MF 文件中。使用以下语法定义:

module mw_assembly_view() {
    // 生成装配视图中的模型
}

示例

以下代码定义了盘:

module mw_plate_1() {
    color("#FF0000") cube(10);
}

module mw_plate_2() {
    color("#00FF00") cube(10);
}

module mw_assembly_view() {
    mw_plate_1();
    translate([0,0,10]) mw_plate_2();
}

在 Parametric Model Maker 中预览:

导出 3MF 在 Bambu Studio 中:


注意: 如果您的脚本使用了多盘 3MF 功能,用户将无法下载 STL 文件。我们建议提供 两份独立的脚本:一个用于多盘 3MF 导出,一个用于 STL 文件导出。

3MF 配置修改

为了提供更大的灵活性,参数化模型编辑器允许创作者自定义 3MF 文件的打印参数。

如何编辑 3MF 配置:

  1. 通过模型上传/编辑页面进入参数化模型编辑器。

  2. 点击 右上角的配置按钮

  3. 弹出对话框 中调整设置。

  4. 重要: 请务必点击 “上传” 按钮 以保存更改。
    image

目前,仅支持部分配置项,未来将根据社区反馈逐步扩展可调整选项。

更好的字体选择界面

我们已集成超过 500 种 Google Fonts 字体 到参数化模型编辑器!为了帮助用户更轻松地选择字体,我们推出了 全新的字体选择界面

如何使用:

定义一个变量,并使用以下语法:

textFont="默认字体名称"; // font

// font 注释是必须的,否则不会显示字体选择 UI。

字体选择 UI 预览:

image

用户可以通过语言、风格、衬线类型 等筛选条件来选择合适的字体。

超尺寸模型问题

v0.9 以来,如果模型尺寸超出一个盘可容纳范围,3MF 生成将会失败。本次更新针对该错误提供了更清晰的错误提示
image

如何修复超尺寸问题:

  • 如果模型包含多个零件,可以拆分到不同的盘上

  • 关闭 “自动摆盘”(Auto Arrangement) 选项。

4 Likes

Hi, it is great to see multi-plate support! However, there seems to be one issue with it which I think makes it generally unusable, and definitely prevents me from using this much needed feature:

The default display is for Plate 1 only. It should be the Assembly view. I think it is extremely confusing for users to go to the tool and just see one part of what they are making. If it is a box with lid, they are going to think they are getting a box with no lid. For my model, a multi-part Gridfinity baseplate, they just see one small grid piece.

Viewing individual plates should be considered an advanced feature - in fact I don’t need it or really want it at all for my model. Most users just want to enter their requirements, make sure it looks like what they are after, download, then start printing.

On the plus side, I want to say thank you for discarding empty plates. That makes it possible to have models which auto-expand to the number of plates they need. Please do continue with this functionality.

Some less critical suggestions:

  1. Setting the 3MF profile settings per plate this way is going to be quite tedious, especially since it seems to need to be done every time the script is updated (I don’t see a “replace file” option). Users of my model are routinely generating models which will need 20+ plates, and that is a lot of work to redo for every update.
  2. Nice to have: A special mw_stl_view() module name to make STL export easier. And if that is too hard, it would be nice to just export the assembly view to stl.
  • TooManyThings

To illustrate the issue with not defaulting to the assembly view, here are a couple of model examples from an earlier thread requesting multi-plate support.

Users should see this when they generate the model:
image

Not this:
image

And they should see this:

Not this:

  • TooManyThings

Awesome update, I expect a long weekend updating my current scripts, but I’m pretty sure the effort will be deserved.
No more “please check you have selected Arachne wall generation” in the comments

2 Likes

This is an excellent update.

I’d like to see “Elephant foot compensation” as a configurable setting for the 3mf files.

I clicked on your example. My app still opened it as one plate.

New here. Is there any good tutorial how to start with Parametric Model Maker and OpenSCAD?

For me, the best way was to check existing models and starts from there.
I also advise you to checkout the BOSL2 library, which is available in the Parametric Model Maker and which offer a lot of useful tools.

You can check my profile (@Mneric on MakerWorld) , I uploaded some parametric models :

1 Like

Wow, this is great! I just updated my most popular model with the new font selection UI :+1:

Thx for the Update @PineappleBun_BBL !

I´ve updated both of my multi part models to make use of the new capabilities in terms of splitting.

I need to 100% second that, the assembled view is what it makes shine - it should be the default. It helps the user better understand what the end result is looking like.

On an additional note. I want to be able to name the plates and give them a meaning, if you need to provide “more” complicated models that need instructions on being assembled its quite hard to reference “Plate Numbers” instead of speaking names.

Also, it would be nice, to have the editor only show the descriptions and not the variable names. in most cases this is pointless for the user and can be considered an advanced use case for experienced openscad people that want to tinker with the codebase.

@benjaminkott I don’t know if you saw, but you need to upload a second version of each script if you want to allow STL download.

1 Like

Yes, thx for the hint - but i decided to skip STL files. The goal is to make it easy for people to customize, download and print. STL files feel the opposite, it´s an unnecessary effort. If someone really wants the STL files, they can be exported from the Slicer. So, i am sticking with 3MF here, not planning to add an STL file option.

1 Like

I modified my script and I can report I was able to get the functionality working well with the new multi-pate API.

However, I won’t deploy the updated script as I think the previously mentioned issue of not defaulting to the Assemble view is much more confusing to users than 3mf download not working.

  • TooManyThings.

I think this would be a great example on how plate naming could be beneficial and improve usability. This is a pattern that repeats where multiple plates probably contain the same geometry. Instead of having 24 plates, some plates could show “Print 5 times”. This would reduce the file size greatly and should improve the experience of the user.

Suggestions: The Assembly view could show the assembled version without gaps.

2 Likes

Plate naming would be nice. For it to be useful with my project, the script would have to be able to dynamically generate the names, which I suspect would be complicated for Bambu to implement.

To be fair as well, it would not benefit most folks using my project all that much. In the giant 20 plate example I gave earlier, yes, there are 5 repeated pairs and one plate repeated 8 times. However for a more typical plate like this 800mm x 500mm assembly, there is only a single repeat:

Regarding the suggestion, there is an option in the script to display the final assembly, however it is not very helpful for general configuration of the parameters because it is quite hard to see the cuts:

In any case, I do think this does illustrate the point that the script writer should have control over what is displayed by the default view so they can consider the needs of the model and their users.

  • TooManyThings

@PineappleBun_BBL i was just made aware that users are now unable to generate sizes about 240x240mm. Would you mind checking that? It was just reported for this one. Stackable Box / Boxes by Benjamin Kott - MakerWorld

On another note. It would be nice, to always allow STL file export.
Instead of providing a Single file that we need to maintain separately.

The server could generate a STL file for each plate automatically and provide it as a zip file to the user.

That’s the issue mentioned in the post. The error happened when studio is trying to auto arrange the object. The supported largest dimension is around 240(which is the length in your model) * 235 (which is the width in your model). When the model is 240*240, the auto arrangement failed.
I think you can just turn of the auto arrangement in the profile setting.

Thx for the fast reply, i tried to disable the auto arrangement - but it still fails on generation. But it also does not seem to persist the changes.

Steps done:

  1. Open in edit view
  2. Disable auto arrangement for each plate
  3. Upload
  4. Save Model

Also tried, without saving the model. The error still persists.

Thanks for reporting this. The issue is fixed now. I’ve tried your model. Users should be able to download the 3MF now.