Разрыв в перфорированной полосе OpenSCAD
Я использую OpenSCAD для создания детали, содержащей перфорированную полосу между двумя гранями. Двумерная версия без перфорации выглядит так:
square([100, 100]);
translate([(100-80)/2, 100]) square([80, 5]);
translate([0, 100+5]) square([100, 100]);
Я также хочу добавить несколько перфораций вдоль полосы:
module pill(diameter, width) {
square([width - diameter, diameter], center=true);
translate([-((width - diameter) / 2), 0]) circle(d=diameter);
translate([ ((width - diameter) / 2), 0]) circle(d=diameter);
}
module pill_strip(diameter, width, gap, num) {
spacing = width + gap;
for (i = [0:num-1])
translate([-(num-1)*spacing/2 + i*spacing, 0, 0])
pill(diameter, width);
}
square([100, 100]);
translate([(100-80)/2, 100]) {
difference() {
square([80, 5]);
translate([ 100/2, 5/2, 0]) pill_strip(5, 10, 20, 3);
}
}
translate([0, 100+5]) square([100, 100]);
Однако это создает разрыв между перфорированной полосой и верхней поверхностью.
Полагаю, здесь какая-то ошибка с плавающей запятой? Есть ли способ получше?
@rgov, 👍1
Обсуждение1 ответ
Похоже, это какая-то ошибка округления, поскольку добавление смещения (например, -0,001) к 100+5 в последней строке приводит к исчезновению разрыва (а изменение его на -0,0001 заставляет его снова появиться).
Я бы создал это, добавив большой контур (205x100) как единый «квадрат», а затем разместив перфорацию. Тогда не было бы границы там, где происходит разрыв.
Обратите внимание, что функция differ() может иметь несколько аргументов; все аргументы после первого также считаются отличными от первого элемента; например, должно работать что-то вроде:
difference(){
mainsquare();
leftnotch();
rightnotch();
translate([spacing*1,0,0])pill();
translate([spacing*2,0,0])pill();
}
- OpenSCAD linear_extrude из многопутевого импорта svg
- Существует ли простой способ разделения моделей в OpenSCAD?
- .STEP/.F3D to .Файл SCAD?
- Может ли в OpenSCAD сгибать текст (проецировать его на изогнутую поверхность)?
- OpenSCAD "not valid 2-manifold" полезная информация
- Создание "куска пирога" в OpenSCAD?
- Как указать начало вращения в openscad
- Рендер OpenSCAD (F6) завершается ошибкой "ERROR: CGAL error in CGAL_Nef_polyhedron3()"


Вы хотите, чтобы перфорированная полоса... разрывала деталь или использовала ее в качестве оттока? Пожалуйста, покажите, насколько это применимо к 3D-печати., @Trish
Да, это место, где можно разобрать модель или вырезать её дремелем. Реальная часть просто выдавливается в трёхмерном пространстве и печатается. Я искал более подходящий сайт, и на этом теге OpenSCAD самый активный., @rgov