3D модель небольшого трансформатора (в LibreCAD, OpenSCAD, Meshlab) [al_fuhrmann al_fuhrmann] (fb2) читать постранично, страница - 2


 [Настройки текста]  [Cбросить фильтры]

экспортом нужно убедиться, что блок не замусорен лишними фрагментами наложившихся друг на друга линий и поддается штриховке, то есть, не разорван. Можно использовать полилинию. Преобразовать эскиз (замкнутый контур!) в полилинию можно в меню Draw | Polyline | Create polyline from Existed Segments. Однако нужно помнить, что если в эскизе есть дуги, то операция превращения контура в полилинию превратит эти дуги просто в фаски.

Лишние линии могут получиться при выполнении скруглений или при загрублении размеров в настройках, так что надо внимательно следить за этим.

Проверка контура на замкнутость делается пробной штриховкой. Если контур штрихуется, то он замкнут и его можно использовать. При этом, контур не обязательно должен оставаться блоком. Главное: точность в размерах, правильность выбора опорной точки и замкнутость линий.

Создание модели в OpenSCAD

Запустим OpenSCAD:


Рис. 6.

Программа трехмерного моделирования твердых тел для программистов. Между прочим, работать в ней куда проще, чем в автокаде, компасе и солидворкс. Достаточно заглядывать по ссылке в шпаргалку: http://www.openscad.org/cheatsheet/index.html брать оттуда необходимые сведения.

Создадим новый проект и сохраним его пока как cheeks.scad. Загрузим эскиз, написав такой текст в редакторе openscad:


module ch1() {

    linear_extrude(3) import("p1.dxf", $fn=60);

    //$fn — число отрезков дуг

}

ch1();


Нажмем F6 и программа сделает рендер модели:


Рис. 7.

Как видим, сохранен масштаб, openscad это не рисовалка для стульев в офисе, которыми пользуются дизигинеры, а точная программа. Эскиз выдавлен на три единицы. Теперь не помешает загрузить «фрезер», а чтобы он не смущал, сразу сдвинуть его по оси X на 30 единиц вправо:


Рис. 8.

module ch1() {

    linear_extrude(3) import("p1.dxf", $fn=60);

    color("Silver") {

        translate([30,0,0]) linear_extrude(20) import("f1.dxf");

    }

}

ch1();


Те, кто привык к процедурным языкам, должны привыкнуть к функциональному языку openscad. Сначала мы говорим, в какой цвет должен быть окрашен объект, затем смещаем его на вектор, затем выдавливаем, и наконец, импортируем сами данные для этого. Можно объявлять переменные, присваивать им значения, но потом уже нельзя их изменить. А пока получается такая картина:


Рис. 8.

Все правильно, я не сказал вам, что базовая точка второго контура на полторы единицы правее него самого. Поэтому он показан чуть левее, но сдвинут как надо.

Теперь этот второй серый предмет повернем относительно оси Y на 90 градусов, т. е. по часовой стрелке (в математике положительный угол отсчитывается против часовой стрелки, а тут наоборот.). Сделаем это перед выдавливанием и после переноса:


module ch1() {

    linear_extrude(3) import("p1.dxf", $fn=60);

    color("Silver", 0.5) { translate([-2,0,0]) rotate(90, [0,1,0])

        linear_extrude(20) import("f1.dxf");

    }

}

ch1();


Значение переноса теперь меняется. Серый “предмет” сдвигается влево на -2 по оси X, после того, как был повернут по оси Y на 90 градусов. Кроме того, мы делаем его полупрозрачным (Хакеры пусть гадают, как. Я все время подглядываю в шпаргалку, остальное мне заменяет понимание общих принципов).

Картина получается такой:


Рис. 9.

Прозрачность добавлена просто для наглядности, это очень полезно в некоторых случаях.

Теперь можно попробовать «фрезерование». Это просто булева операция вычитания. Вставляется она, как уже нетрудно догадаться, перед translate:


module ch1() {

    difference() {

        linear_extrude(3) import("p1.dxf", $fn=60);

        color("Silver", 0.5) {

            translate([-2,0,0]) rotate(90, [0,1,0])

            linear_extrude(20) import("f1.dxf");

        }

    }

}

ch1();


Получается почти готовая щечка:


Рис. 10.

«Отфрезерованная» поверхность показана зеленой.

Осталось сделать небольшую бобышку, обозначающую первый вывод. Для этого нужно знать ее координаты и радиус. Радиус пусть будет 0.6, высота тоже 0.6, сделаем небольшую фаску 0.2 сверху и объединим со щечкой. Координаты лучше уточнить в проекции на оригинальном чертеже. Можно взять 4, 13, 1.5 относительно точки привязки.

Сделать бобышку можно прямо в исходнике openscad (как можно было бы сделать и щечку). Для этого нужно сделать два цилиндра, и перенести один из них. Затем объединить оба цилиндра, перенести его в точку с уточненными координатами и объединить бобышку со щечкой. Можно продолжать делать все в модуле ch1, но можно показать, как один модуль можно вложить в другой.


module ch1() {

    difference() {

        linear_extrude(3)

        import("p1.dxf", $fn=60);

        color("Silver", 0.5) {

            translate([-2,0,0]) rotate(90, [0,1,0])

            linear_extrude(20) import("f1.dxf");

--">