I noticed that it seems no one has posted a parameterized model of the IKEA pegboard, so I decided to complete this task!
OpenSCAD is a great parametric modeling tool, and I spent a few days learning how to use it. After some effort, I finally achieved the parameterization of the IKEA pegboard model. Now you can customize the width, height, and thickness of the pegboard, and you can also choose to add screw holes in the four corners to fix it in certain places.
我注意到似乎没有人发布过参数化的宜家洞洞板模型,因此我决定完成这项工作!
OpenSCAD是一个不错的参数化建模工具,我花了几天时间来学习如何使用它。经过一番努力,我最终实现了宜家洞洞板模型的参数化,现在你可以自定义洞洞板的宽度、高度、厚度,还可以选择在四个角上增加螺丝孔来将其固定在某些地方。
I chamfered both the pegboard and the edges of the holes. You should know that creating chamfers in OpenSCAD is quite challenging. The project "Chamfers-for-OpenSCAD" on GitHub helped me, and its author is SebiTimeWaster. I borrowed one of the modules (named chamferCylinder) from it, which can generate cylinders with chamfers. By combining these cylinders with the hull() function, I obtained the desired geometry. Additionally, some chamfers were created by using the difference() function to subtract cones.
我在板子和洞的边缘都做了倒角,要知道倒角在OpenSCAD是很难实现的。GitHub上的Chamfers-for-OpenSCAD这个项目帮了我,它的作者是SebiTimeWaster。我借用了其中的一个模块,名为chamferCylinder,它可以生成带倒角的圆柱体。我通过hull()函数将这些圆柱组合,就得到了我想要的几何体。还有一些倒角是通过difference()函数减去圆锥体来实现的。
[Updated on 2024/06/06]
1. Added the parameterized model version 2.0.
*Please use the file "ikea_pegboard_v2.0.scad" to generate the model.
2. Variables have been grouped.
3. Added "Infinite Extension Mode", which, when enabled, generates half of the holes at the edge of the pegboard so that you can join multiple pegboards together.
[2024/06/06更新]
1. 增加了2.0版本的参数化模型
*请改用“ikea_pegboard_v2.0.scad”这个文件来生成模型。
2. 对变量进行了分组。
3. 新增“无限扩展模式”,开启后程序会在洞洞板边缘生成一半的洞,这样你就可以将多块洞洞板拼成一个。
Thanks to the project "IKEA宜家洞洞板" by 幻模堂 for inspiring the 2.0 version!
感谢幻模堂的项目“IKEA宜家洞洞板”为2.0版提供了灵感!
In version 2.0, you can enable Infinite Extension Mode by setting the variable `infinite_extension_mode` to `true`. You can select the direction you want to expand in the "Infinite Extension Mode Settings" variable group. You can choose to generate only one corner piece or edge pieces and then mirror it in Bambu Studio. This way, you can quickly obtain a larger pegboard!
在2.0版本里,你可以通过将infinite_extension_mode设置为true来开启无限扩展模式,然后可以在“无限扩展模式设置”这个分组里选择想要扩展的方向。你可以选择只生成一个角或边然后在Bambu Studio里镜像它。这样就能快速获得一面更大的洞洞板!
[Updated on 2024/06/19]
1. Added the parameterized model version 3.0.
*Please use the file "ikea_pegboard_v3.0.scad" to generate the model.
2. Added "Fewer Screw Mode", when enabled, will generate screw holes at the joints of two pegboards, thereby reducing the number of screw holes required for installation.
[2024/06/19更新]
1. 增加了3.0版本的参数化模型
*请改用“ikea_pegboard_v3.0.scad”这个文件来生成模型。
2. 新增“更少的螺丝模式”,开启后会在两块洞洞板的接缝处生成螺丝孔,以此来减少安装时所需的螺丝孔数量。
In version 3.0, you can find the `fewer_screw_mode` variable in the Infinite Extension Mode Settings. By setting `fewer_screw_mode` to `true`, you can enable the Fewer Screw Mode. This mode will change the arrangement of holes on the pegboard and will also invalidate the `distance_to_edge` variable, meaning you will not be able to freely adjust the position of the screw holes.
After enabling the Fewer Screw Mode, several small discs will be automatically generated. You can use these discs to cover the screw holes, achieving the effect of hiding the screw holes.
在3.0版里,你可以在无限扩展模式设置里找到fewer_screw_mode这个变量,将fewer_screw_mode设置为true,就可以开启“更少的螺丝”模式。这个模式会改变洞洞板上孔的排列方式,还会将distance_to_edge这个变量无效化,你将无法自由地调整螺丝孔的位置。
“更少的螺丝”模式开启后,还会自动生成几个小圆片,你可以用这些圆片盖住螺丝孔,来达到隐藏螺丝孔的效果。
You can find some pre-generated pegboard examples in the Print Profile, but I highly recommend using the parametric model to customize the dimensions you desire. MakerWorld will provide an online tool on the project page to generate the model, or you can download the “ikea_pegboard_v3.0.scad” file from the project to your local machine and run it with OpenSCAD. Due to the complexity of the calculations in the parametric model, generating it locally may take several minutes to even a few hours each time. (The poor multithreading optimization of OpenSCAD should be blamed for this!) However, the online tool seems to have optimized multithreading, resulting in very fast generation speed!
你可以在打印配置里找到一些我已经生成好的洞洞板示例,但我更推荐你使用参数化模型来定制你想要的尺寸。MakerWorld会在项目页面提供线上工具来生成模型,或者你也可以下载项目里的“ikea_pegboard_v3.0.scad”这个文件到本地,然后用OpenSCAD来运行它。由于参数化模型的计算比较复杂,如果你在本地运行,每次生成可能需要数分钟甚至几小时。(OpenSCAD糟糕的多线程优化应该背这个锅!)但线上工具似乎对多线程做了优化,生成速度非常快!
There is a way to speed up the model generation by adjusting the `$fn` variable, which determines the fineness of the generated model. When using the online tool to generate models, it is recommended to set the value of `$fn` to 50. When running locally, you can try setting `$fn` directly to 100.
When using the online tool to generate models, the `$fn` variable will be hidden, and you will need to modify the value of `$fn` directly in the code to adjust the detail level of the generated model.
有个可以加快模型生成速度的方式就是调整$fn这个变量,这个变量决定了生成模型的精细度,使用线上工具生成模型时建议将$fn的值设置为50,在本地运行可以尝试直接将$fn拉到100。
当使用线上工具生成模型时,$fn这个变量会被隐藏,你需要直接在代码里修改$fn的值才能调整生成模型的精细度。
[Pegboard Configuration Variables]
1. `width`: The width of the pegboard (mm), it is recommended to set as a multiple of 20, with a minimum value of 40. Default value is 80.
2. `height`: The height of the pegboard (mm), it is recommended to set as a multiple of 20, with a minimum value of 40. Default value is 80.
3. `thickness`: The thickness of the pegboard (mm), it is recommended to set between 3 and 5. Default value is 5.
4. `add_corner_holes`: Whether to add corner holes. Default value is true.
5. `corner_holes_diameter`: The diameter of the corner holes (mm), it is recommended to set as 3.4 or 4.4. Default value is 4.4.
6. `distance_to_edge`: The distance from the corner holes to the edge (mm), it is recommended to set between 8 and 12. Default value is 8.
7. `add_spacers`: Whether to add spacers, used to space the pegboard from the wall surface. Default value is true.The variable `add_spacers` can only function when the variable `add_corner_holes` is set to true.
8. `spacer_diameter`: The diameter of the spacers (mm), recommended value is 6.4 to 20. Default value is 12.
9. `spacer_height`: The height of the spacers (mm), recommended value is 7 to 15. Default value is 7.
10. `infinite_extension_mode`: Infinite Extension Mode, when enabled, the program will generate half a hole at the edges of the pegboard.
11. `expand_up`: Expand upward. This takes effect only when `infinite_extension_mode` is set to `true`.
12. `expand_down`: Expand downward. This takes effect only when `infinite_extension_mode` is set to `true`.
13. `expand_left`: Expand leftward. This takes effect only when `infinite_extension_mode` is set to `true`.
14. `expand_right`: Expand rightward. This takes effect only when `infinite_extension_mode` is set to `true`.
15. `fewer_screw_mode`: Fewer Screw Mode, when enabled, will generate screw holes at the joints of two pegboards, thereby reducing the number of screw holes required for installation. The extra small discs are used to cover the screw holes.
[洞洞板配置变量]
1. `width`: 洞洞板宽度(mm),建议设置为20的倍数,最小值为40。默认值为80。
2. `height`: 洞洞板高度(mm),建议设置为20的倍数,最小值为40。默认值为80。
3. `thickness`: 洞洞板厚度(mm),推荐值为3到5。默认值为5。
4. `add_corner_holes`: 是否在四角添加螺丝孔。默认值为true。
5. `corner_holes_diameter`: 螺丝孔直径(mm),推荐值为3.4或4.4。默认值为4.4。
6. `distance_to_edge`: 螺丝孔到边缘的距离(mm),推荐值为8到12。默认值为8。
7. `add_spacers`: 是否添加垫片,用于使洞洞板远离墙面。默认值为true。变量add_spacers必须在变量add_corner_holes为真时才能起作用。
8. `spacer_diameter`: 垫片直径(mm),推荐值为6.4到20。默认值为12。
9. `spacer_height`: 垫片高度(mm),推荐值为7到15。默认值为7。
10. `infinite_extension_mode`: 无限扩展模式,启用后程序会在洞洞板边缘生成半个孔。
11. `expand_up`: 向上扩展。仅在infinite_extension_mode为true时生效。
12. `expand_down`: 向下扩展。仅在infinite_extension_mode为true时生效。
13. `expand_left`: 向左扩展。仅在infinite_extension_mode为true时生效。
14. `expand_right`: 向右扩展。仅在infinite_extension_mode为true时生效。
15. `fewer_screw_mode`: “更少的螺丝”模式,开启后会在两块洞洞板的接缝处生成螺丝孔,以此来减少安装时所需的螺丝孔数量。额外的小圆片用于遮盖螺丝孔。
I used PETG filament to 3D print several generated pegboard models, and the results were excellent!
我用PETG耗材3D打印了几个生成好的洞洞板模型,效果非常不错!
I hope you will like this project! I would be very happy if it can be of help to you.
希望你能喜欢这个项目!如果它能帮到你,我会很开心。
:)
You shall not share, sub-license, sell, rent, host, transfer, or distribute in any way the digital or 3D printed versions of this object, nor any other derivative work of this object in its digital or physical format (including - but not limited to - remixes of this object, and hosting on other digital platforms). The objects may not be used without permission in any way whatsoever in which you charge money, or collect fees.