ОШИБКА OpenSCAD: текущий объект верхнего уровня не является 2D-объектом

Я создал Mengersponge в OpenScad, который представляет собой 3D-объект. Я хотел получить из него экспорт SVG для лазерного резака, но получаю сообщение об ошибке: "Текущий объект верхнего уровня не является 2D-объектом" Как выбрать каждую сторону этой губки, чтобы экспортировать ее в формате SVG для лазерной резки?

Код:

module MengerSponge(side = 270, order =3){
    difference(){
        cube([side,side,side],center=true);
        MengerSponge_aux1(side, order);
    }
    }
module MengerSponge_aux1(side, order){
    rotations=[
    [90,0,0],
    [0,90,0],
    [0,0,90],
    ];
    for(rotation=rotations){
        rotate(rotation)
    MengerSponge_aux2(side, order);
        }
}


 module MengerSponge_aux2(side, order){
     if(order>0){
        translate([0,-(side-(side/pow(3,order-1)))/2,0])
            for(i=[0:pow(3,order-1)-1]){
                translate([0,(side/pow(3,order-1))*i,0])
                    translate([-(side-(side/pow(3,order-1)))/2,0,0])
                        for(i=[0:pow(3,order-1)-1]){
                            translate([(side/pow(3,order-1))*i,0,0])
                                cube([(side/pow(3,order)),(side/pow(3,order)),side+1],center=true);
            }
        }
        MengerSponge_aux2(side, order-1);
     }
     else{
         echo("Fail");
     }
 }
side=270;
order=3;
MengerSponge(side, order);

```

, 👍4


1 ответ


Лучший ответ:

5

Используйте функцию Projection() OpenSCAD для эффективного создания плоского разреза. Расположите структуру куба таким образом, чтобы плоскость x/y пересекала желаемую форму для экспорта. В результате рендеринга кода будет сгенерировано 2D-изображение. Предварительный просмотр кода создаст 3D-модель толщиной 1 мм, которая будет «сплющена». при отображении.

Для изображения ниже я не переводил куб, а просто поместил генерацию куба в функцию проекции.

projection(){
MengerSponge(side, order);
}

Эта визуализация будет экспортирована в SVG по желанию. Различное положение куба (поворот, перемещение) создаст разные узоры.

проекция куба


,

Не забудьте [cut=true](https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/3D_to_2D_Projection), @R.. GitHub STOP HELPING ICE

Я забыл об этом, но результат «приемлемый», да? Каков способ отказа забыть об этом?, @fred_dot_u

Без cut=true вы получаете 2D-тень детали, а не 2D-разрез (объединение всех разрезов, поскольку Z находится в диапазоне от -бесконечности до бесконечности)., @R.. GitHub STOP HELPING ICE

Это полезная информация. Есть ли ссылка на пример модели, в которой предусмотрены оба обстоятельства?, @fred_dot_u

В руководстве, на которое я ссылался, нет?, @R.. GitHub STOP HELPING ICE

Я пропустил ссылку, спасибо., @fred_dot_u