openscad - openscad 钻入由 for 创建的组
问题描述
我知道当我使用它时,它会创建一组生成的孩子。我创建了一个名为 grid 的模块,如下所示:
module grid(x0,y0,dx,dy,nx,ny) {
for (x=[0:1:nx-1]) {
for(y=[0:1:ny-1]) {
i=x*nx+y;
echo(i);
translate([x0+x*dx,y0+y*dy,0]) children(i);
}
}
}
当这样使用时:
grid(-50,-50,25,25,5,5) {
cube([10,10,10],center=true);
cube([10,10,10],center=true);
cube([10,10,10],center=true);
cube([10,10,10],center=true);
//.. continue to create 25 cubes total
}
将立方体排列在一个漂亮的网格中。
但是我最初的希望和意图是像这样使用它:
grid(-50,-50,25,25,5,5) {
for(i=[0:1:24]) {
cube([10,10,10],center=true);
}
}
失败是因为 for 运算符返回一个组而不是一组子级。
为什么for要添加一个组开始?(也导致需要intersection_for)
有没有办法让我的网格操作员模块来处理组的孩子?
解决方案
我个人希望 for() 中元素的分组/联合在某个时候成为可选的。
如果您不介意从源代码编译 OpenSCAD,您可以在今天尝试一下。存在一个持续存在的问题Lazy union (aka. no implicit union) 和一个补丁Make for() UNION 可选
推荐阅读
- java - 转换字符串中间的 ASCII 值
- macos - Goland 在调试时不接受标准输入
- javascript - VueJS / JS DOM Watch / Observer 多阶段渲染场景
- image - 带有图像数据生成器的keras中的单层网络,但损失总是负数
- javascript - 使用javascript将文本从div复制到剪贴板
- c - strlen 没有返回正确的字符数
- python - 使用 sqlite3 python 进行条件查询
- javascript - Highchart - 我必须刷新页面才能看到新数据
- javascript - 从 firebase javascript 获取最新值
- selenium - 需要下载一个图标