Grasshopper что это за программа
Ситуационная схему выдергивает из карт openstreetmap.org и топографию с earthexplorer.usgs.gov (Урок 1 2 3 )
Centipede
Экспортирует с анимацией в другие программы допустим в 3ds max или cinema 4d (Демонстрирующее видео)
LadyBag+Honeybee
Просчет освещенности и инсоляции (Обзор)
Интегрируется с Exel
Показывает названия нодов
Плагин под Grasshopper делает программу понятной и заказчику (Обзор)
Плагин для интеграции в Revit
Плагин для расширения работы с деревьями
Скрипты
Уроки
Официальные уроки на русском языке (смотреть)
Все официальные уроки по Грасхопперу на Английском язке вы можете найти по ссылке: (смотреть)
неплохой разжёванный курс 1 на русском языке
Как сделать
Кнопку включения Grasshopper (смотреть)
Rhino
перед тем как что-либо делать в грасхопере, а это плагин для программы Rhino, немного и уметь обращатся с базовой программой на которую этот плагин и идет.
Что такое Grasshopper?
копирование зажать alt перед перетаскиванием
F10-показать точки на геометрии, для того чтобы дальше их редактировать;
F11-выйти из редактирования точек. для того чтобы перемещать и удалять геометрию;
shift+ПКМ — рука, перемещение по экрану
alt+ ПКМ — лупа, приближать или отдалять
ПКМ — вращение
Grasshoper
node (пункт графика)
красный — выключен, или уничтожается файлы, геометрия в случаи «0»
Оранжевый компонет — пустой один или несколько элементов для данных.
серый — выключен , скрыт
светло серый — виден во вьюпорте
зеленый выбранный
желтый — выход
Управление быстрыми клавишами
ctrl+shift+v -вставить в центр экрана нодов;
ctrl+v — вставить в исходное положение нодов;
ctrl+alt+ЛКМ на ноде, показывает его расположение в списках;
ctr — удалить связь
shift — добавить связь
ctr+shift — перенести связи из выхода или в хода в другой
Поиск (2 раза ЛКМ поиск)
// — список
1, 10, 100 — слайдер
1.00 — количество после запятой, будет выставляться точность слайдера
3..10 — значение от какой-то единицы до какой-то в данном случаи от 3 до 10
/- Разделить (/1000 разделить на 1000)
*- Умножить (*1000 — умножить на тысячу)
Вкладки
params — достать геометрию из Rhino, примитивы слайдеры панели
maths — математические выражения такие как прибавить разделить и более сложные
sets — данные из грасхопера, индексы деревья, рандомные значения
Vector — вся работы и аналитика с векторами
curve — работа с кривыми, аналитика
surface — вся работа и аналитика с плоскостями
mesh — вся работа и аналитика с мешами
display — отображения из Grasshoper в Rhino
Инструменты
Все основные инструменты расписаны здесь: (Читать)
member index (sets-sets) — выбирает из списка (мнржество значений) нужные (конкретные) значения, если они отсутсвуют ветка будет пустой. Применяеться для того, чтобы вычлить из множество веток те, в которых есть нужные нам значения.
Null Item (sets-list) — выбирает значения положительные или отрицательные, есть их или нет, разделяя (применяется для того, чтобы вычлинить из множества параметров толькоподходящие или не подходщие для операции)
правая кнопка мыши по ноду
internalise date — фиксирует геометрию из Rhino в Grasshoper
set one (multiple) pint/curve/sur. выбор одной или нескольких объектов из Rhino
- Preview — предпоказ геометрии, видима она или нет в окне грасхопера , но при этом он будет работать и считаться для дальнейших расчетов.
- Enebled — включает или выключает нод, после этого он не только будет не видим в окнах но и в дальнейших расчетах не примет ни какого участия
- Beke — запечь, фиксирует геометрию из GrassHopper в окне Rhino, для того чтобы ее можно было в дальнейшем выбирать и редактировать, не посредственно в самом Rhino
Особенности
для работы с графиком нужно привести занчения от 0 до 1
любая точка может быть преобразована в плоскость которая будет параллельна координатам X Y Начало в центре
Любая плоскость может быть преобразована в перперндекулярный вектор
Только плоская геометрия может быть преобразована в плоскость
Export and conection
ArchiCAD
Существует для моделирования в BIM такая программы как ArchiCAD, в которой отсутствует напрочь какая либо параметрита, и не создавая свою внутри программную, была разработана связь с Grasshoper’ом, этот плагин связи предоставляется бесплатно, на сегодняшний день как написана эта статья, он предоставляется в Beta версии. Более подробную информацию вы можете найти на сайте Graphisoft или на форуме посещенной этой теме. (у кого не работает новые версии ссылка для ArchiCAD и GrassHopper)
Вам лишь нужно установить плагин на ARchiCAD и Grasshoper зайти в эти программы одноврменно, и в программе ArchiCAD перейти во вкладку конструирование-дополнительные возможности-conection Grasshoper после этого пользоваться в программе Grasshoper nod’ами из в кладки » ArchiCAD» и вся наша геометрия будет появляться ArchiCAD’e
Источник: www.sites.google.com
Пособие по Grasshopper (RU)
Grasshopper берет свое начало в функционале кнопки «Record History» в Rhino3D версия 4. Данная встроенная функция давала пользователям возможность сохранить процесс моделирования в истории по мере продвижения работы. Если вы применяли loft для 4-х кривых с включенной записью истории, а затем меняли контрольные точки одной из кривых, то поверхность геометрии обновлялась. В далеком 2008, Дэвид задался вопросом: «Что если бы у вас был более выраженный контроль за этой историей?» и тогда был создан прототип Grasshopper, Explicit History. Это дало доступ к дереву истории для подробного редактирования и позволило пользователю развивать логические последовательности помимо существующих встроенных возможностей Rhino3D.
Спустя шесть лет, Grasshopper стал мощным редактором визуального программирования, возможности которого могут быть расширены наборами дополнений, разработанных отдельно. Более того, он в корне изменил процесс работы специалистов во многих индустриях и взрастил активное глобальное сообщество пользователей.
Это пособие фокусируется на Основных положениях, предлагая ключевые знания, необходимые для погружения в регулярное использование Grasshopper и нескольких ответвлений, но также достаточных для того, чтобы вы могли углублять свою практику. Перед погружением в описания, диаграммы и примеры, расположенные ниже, давайте обсудим, что есть визуальное программирование, основы интерфейса и терминологии Grasshopper, а также о «live» характеристиках — обратной связи видовых окон и взаимодействии пользователя с интерфейсом.
Визуальное программирование это парадигма компьютерного программирования внутри которой пользователь управляет логическими элементами графически, а не текстом. Некоторые из самых известных текстовых языков программирования, таких как C#, Visual Basic, Processing — и ближайшее к Rhino — Python и Rhinoscript, требуют написание кода с использованием специального языкового синтаксиса. Визуальное программирование, напротив, позволяет нам соединить функциональные блоки в последовательность действий, где единственное требование «синтаксиса» — чтобы входы блоков получали подходящие по типу данные, и в идеале, организованную в соответствии с требуемым результатом — см.разделы Соединение Потоков Данных и Проектирование с использованием Деревьев Данных. Эта черта визуального программирования позволяет избежать барьера, типично встречающегося при попытке выучить новый язык, даже разговорный, а также выдвигает на передний план интерфейс, который размещает Grasshopper в более знакомой обстановке для проектировщиков.
Это фото показывает процесс черчения синусоидальной кривой в Python и в Grasshopper.
Чтобы начать работать в Grasshopper, необходимо скачать и установить программу с сайта Grasshopper3D.com. Когда программа установлена, вы можете открыть плагин, напечатав «Grasshopper» в командной строке Rhino. Когда мы сделаем это в первый раз при запуске новой сессии Rhino, нам покажут загрузочные подсказки Grasshopper, сопровождаемые окном редактирования Grasshoppper. Теперь мы можем добавлять функциональные блоки, которые называются «компонентами» на «холст», соединять их «связями» и сохранять целое «определение» в формате .ghx.
Определение Grasshopper, состоящее из компонентов, соединенных связями на холсте
Как только мы начали развивать определение Grasshopper и создали объекты, называемые «слайдер», мы можем контролировать геометрию, можем легко постигать интуитивно связи, которые мы создали между входом этого объекта и тем, что мы видим в видовом окне Rhino. Эта связь, по существу, «живая». Если мы изменим положение ползунка слайдера, мы увидим последствия этого действия, так как вводные параметры в каком-то месте нашего определения изменились и поэтому программа должна пересчитать решение и отобразить обновление. К счастью для нас, в начале использования Grasshopper, предпросмотр геометрии, которую мы видим, это упрощенное представление решения и оно обновится автоматически. Важно сейчас принять к сведению эту связь, потому что когда ваши определения станут более сложными, правильное управление потоком данных, статусом инструмента «проверки» и отображением в окне просмотра Rhino предотвратит многие нежелательные проблемы.
Программа работает слева направо
НЕОБХОДИМО ЗАПОМНИТЬ
- Grasshopper — это редактор графических алгоритмов, интегрированный с 3D моделирующими инструментами Rhino.
- Алгоритмы — это пошаговые процедуры, спроектированные для выполнения операций.
- Вы используете Grasshopper, чтобы спроектировать алгоритмы, которые затем автоматизируют задачи в Rhino3D.
- Быстрый способ начать, если вы не знаете, как выполнять определенные операции в Grasshopper, это попытаться вручную и постепенно создать алгоритм, используя команды Rhino.
Как только вы впервые начали исследовать Grasshopper или развивать ваши навыки, это означает, что вы присоединились к глобальному сообществу Grasshopper, состоящему из активных людей из различных областей и с разным опытом. Форум на сайте Grasshopper3D.com — это полезный ресурс для публикования вопросов, чтобы поделиться находками и получить знания. Это сообщество, которым мы дорожим, когда писали это пособие и наблюдали за развитием Grasshopper все эти годы. Добро пожаловать!
Источник: grasshopperprimer.com
Grasshopper что это за программа
Арсений Иванов
В сфере дизайна и архитектуры последнее десятилетие набирает популярность методика вычислительного проектирования, или, если вам угодно, параметризм.
Я всё чаще стал натыкаться на вопрос: «А зачем это вообще нужно?». Кто-то задает его на прямую, другие с пеной у рта пытаются доказать , что: «То же самое можно сделать и в 3ds MAX (тут можете подставить любой популярный 3d пакет)».
Проблема в том, что корень этого вопроса лежит в фундаментальном непонимании предмета разговора. Почему скульпторы, которые всю свою жизнь лепят из глины, не пытаются доказать пользователям Zbrush, что они могут сделать так же? Ответ прост — перед ними стоят разные задачи. Для того, чтобы пришло понимание о том для чего все-таки нужен Grasshopper , давайте разберем наиболее распространенные заблуждения связанные с этой программой.
МИФ №1. Grasshopper это обычный 3D редактор только со сложным непонятным интерфейсом .
Это пожалуй самое распространенное заблуждение среди тех кто впервые столкнулся с этим плагином и оно же самое фатальное. «Обычным», в определенной степени, является Rhinoceros, но как только мы устанавливаем поверх этого пакета Grasshopper, ситуация в корне меняется. Grasshopper это инструмент визуального программирования, то есть программирования в котором вы не пишите код, это сделали за вас разработчики, вы просто объединяете между собой подготовленные и подписанные блоки. Такой подход невероятным образом расширяет возможности программы, практически любая задача сформированная в вашем воображении, найдет решение! Всё зависит только от вас. А если говорить о сложности интерфейса, для тех, кто не знаком с нодовыми редакторами, могу только сказать, что такой подход, используется в конструкторе LEGO для программирования модулей MINDSTORMS EV3 рассчитанный на детей от 10 лет.
МИФ №2. В других программах можно делать то же самое, что и в Grasshopper, только проще.
Можно ли сделать секционную модель в 3ds MAX? Да можно, можно даже вручную разложить контуры на плоскость для последующей передачи на производство. Сложно ли это? Не так, чтобы очень, разве что немного нудно. Так в чем же тогда проблема?
А в том, что я, например, знаю о существовании людей, которые могут бриться топором или, скажем, осколком стекла (привет, 123D Make), и этот процесс, наверняка, находится в их зоне комфорта, но ведь это не значит, что это удобно и рационально.
Я привожу здесь секционную порезку, так как это наиболее понятный пример работы в Grasshopper , но эта технология — лишь вершина айсберга.
МИФ №3. Grasshopper — это для создания лавочек и игрушек.
Это третье по распространенности, но не по пагубности заблуждение, в основном, эту ошибку совершают те, кто с Grasshopper знаком минимально: посмотрел несколько видеороликов, возможно что-то читал. Но утверждать такое равносильно тому, что сказать, что 3ds MAX — это программа для быстрого создания разноцветных чайников.
Суть не в том, какую задачу можно выполнить, суть — в полной параметризации всех процессов, в создании информационных моделей (полная цифровая копия будущего изделия) практически любой сложности, симуляции различных физических процессов для формообразования (создание изогнутой формы из плоских многоугольников, симуляция планаризации) и многое другое.
Н е говоря уже о том, что один раз написанный скрипт, работает на вас снова и снова, выполняя подобные задачи с затратами времени только на просчет. Например, написание полноценного скрипта для секционной порезки, занимает около 30 минут у человека, учащего Grasshopper около недели, просчет лавки длинной 5 метров на 4 ГБ оперативной памяти длится в среднем от 30 секунд до 5 минут, вот и считайте.
Регистрируйтесь на серию мастер-классов » Как создать и организовать студию дизайна интерьеров?»
МИФ №4. Эта программа не используется серьезными архитекторами и дизайнерами.
Я конечно не слышал такого утверждения, но судя по тому, как упорно отечественные профессионалы отказываются использовать Grasshopper , многие думают именно так. Дальше я просто перечислю некоторые имена и названия, которые первыми приходят на ум:
австрийское бюро COOP HIMMELB(L)AU
BMW Welt
Dalian International Conference Center
Dalian International Conference Center
Лондонское бюро Zaha Hadid Architects. Надо ли говорить, что бюро придумавшее и популяризировавшее термин «параметризм», пользуется этим плагином?
Galaxy Soho
Galaxy Soho
Burnham Pavilion for Chicago
Aria and Avia lamps
Jakob + MacFarlane, ПарижFRAC Centre
100 Apartments Hérold
Ricard Contemporary Art Foundation.
. и многие другие, не говоря уже о том, что во всех значительных архитектурных вузах Европы и Америки Grasshopper идет отдельным курсом.
Какие из всего выше сказанного можно сделать выводы?
Пожалуй, решать вам. От себя скажу только одно: если вы хотите составить конкуренцию западным и европейским архитекторам, экономить свое время, и шагать в ногу с архитектурной и дизайнерской модой (а, возможно, однажды и опередить её) — добро пожаловать в клуб!
И помните: новое всегда побеждает старое. Это не правило — это принцип существования нашего мира, не получится вечно тиражировать классику.
Если вам понравился материал, раскажите о нем друзьям
Источник: archtutors.org
Проектирование параметрических конструкций в Grasshopper
Трехмерное моделирование скамейки в среде Grasshopper
В последнее время широкое распространение в дизайне и архитектуре приобретает такое направление как параметрическое 3d моделирование.
Это процесс 3D моделирования сложных, плавных, форм интегрируемых в архитектурное пространство.
Для примера что это такое вы можете посмотреть картинки ниже.
Современные дизайнеры так же активно используют данную технологию при создании мебели и конструкций необычных форм.
При всей своей кажущейся простоте, сложность заключается в создании и быстром изменении формы самой этой криволинейной поверхности.
Здесь мы хотим рассказать вам о том, как самому спроектировать и даже, при возможности, изготовить самостоятельно предмет интерьера в стиле параметризма, который способна выдумать ваша фантазия.
Есть несколько вариантов проектирования подобных форм.
Я хочу остановить ваше внимание на программе трехмерного моделирования Rhinoceros.
Это очень доступная по цене, а главное, очень мощная программа для 3D моделирования, дающая проектировщику полный спектр способов для реализации своих идей.
Программа обладает так же возможностью установки огромного количества как платных, так и бесплатных плагинов для решения широкого круга задач.
Для реализации проекта нам потребуется такой плагин как Grasshopper.
Этот плагин позволяет строить очень сложные формы, изменять их геометрию в допустимых рамках в режиме онлайн.
Он является одной из разновидностей программ нодового моделирования, когда из отдельных нодов составляется алгоритм воздействия на задаваемые параметры при помощи нодов-операторов.
К сожалению, в сети практически нет мануалов на русском языке по Grasshopper, есть некоторые отрывки и выдержки.
Но есть несколько энтузиастов, которые выкладывали в сеть переводы на русском языке. Желающие могут найти и изучить данное руководство.
Итого, чтобы спроектировать мебель нам потребуется: скачать с официального сайта и установить программу Rhinoceros (последняя 5 версия), а так же скачать с сайта www.grasshopper3d.com плагин Grasshopper.
В этой статье мы не будем подробно объяснять весь функционал самого Rhino и плагина Grasshopper, так как на это уйдет огромное количество времени. Кроме того, мы предполагаем, что наши читатели хотя бы немного знакомы с принципами 3D моделирования. Наша задача объяснить вам, как спроектировать параметрическую мебель.Приступим.
Допустим, что мы хотим получить параметрическую модель лавки для торгового комплекса примерно такой геометрии как на скрине ниже.
- Запускаем программу Rhinoсeros.
2. После запуска программы Rhino запускаем плагин Grasshopper, вызывая его написанием в строке панели задач Rhino.
Плагин запускается и появляется окно Grasshopper.В верхней части сосредоточены основные параметры для работы в среде Grasshopper.
3.Основная поверхность скамьи строится методом лофтинга – построением поверхности, которая проходит через серию сечений. Мы должны получить эту серию сечений, и, главное возможность изменять геометрию и размер этих сечений, формируя поверхности различной геометрии.В окне проекций Rhino рисуем 2 кривые: одну направляющую и одну кривую поперечного сечения:
В окне grasshopper вытягиваем из панели нод Curves и назначаем ноду кривые (Set one Curve) из окон Rhino. Как только кривая назначена ноду он изменяет цвет с оранжевого (когда ноду не назначено ничего) на серый (определенный).
В окне Rhino обратите внимание, при назначении кривые так же поменяли свой цвет.
Так поверхность формируется по сечениям, нам надо сделать нашу кривую профиля расположенной на направляющей. Для этого поперечное сечение нужно разместить на плоскостях, разбивающую направляющую на равные длины. Идем в раздел Curves-Division-Perp Frames. В данном ноде в параметре N по умолчанию стоит 10, т.е. кривая разбивается на 10 отрезков одинаковой длины. Этот параметр можно поменять.
Изменение осуществляется слайдером. Вытягиваем его из Param. По умолчанию слайдер имеет точность до тысячных долей. Естественно, что число плоскостей должно быть целым числом. Жмем правой клавишей мыши по слайдеру и идем в Edit.Я назначил минимальное значение 1, максимальное – 30.
Т.е у меня возможно количество плоскостей вдоль направляющей от 1-30, количество которых я регулирую перемещением ползунка. Если плохо видно поверхности их можно увеличить в разделе Grashoppera Display – Preview Plane Size. Я поменял на 50.
5. Далее располагаем наш профиль на полученных плоскостях, используя нод Orient. Он находится во вкладке transform-euclidian-orient.Для правильной ориентации профиля используйте перемещение профиля в окне Rhino, а именно Rotate и Move.Конечную точку кривой старайтесь поместить в центр координат, используйте активацию функции Grid Snap внизу окон Rhino.В результате мы получили набор профилей, размещенных на наших плоскостях. Теперь наша задача состоит в том, чтобы каждый из этих профилей сделать управляемыми (чтобы они могли изменять свою геометрию по некоторому закону).Именно в этом и состоит возможность параметрического моделирования.Далее по этим профилям можно построить поверхность применив Surface-Loft
6. Акцентирую внимание: нам надо, чтобы сечения меняли свою геометрию! В теперешнем варианте это не более чем просто набор сечений по которым выстроен Loft.Наиболее удобно изменять геометрию некоторым образом используя распределение графическим методом , используя Graph Mapper в разделе Params. Далее нам надо сделать так чтобы система понимала некий порядок среди наших сечений, а именно как бы нумерацию их в последовательности 1-ая кривая,2-ая кривая и т.д. Чтобы узнать порядок и количество чисел есть нод List.
7. Далее, очень важный момент. Системе так же надо дать понять, каким образом организуется нумерация этих кривых, что образует собой последовательность этих кривых.
11. Она образует собой серию. Выделяем и перетаскиваем на холст нод Serials.Обратите внимание, что оси графика меняются от 0 до 1, количество наших кривых меняется от 1 до 30. Соответственно надо сделать так, чтобы эти числа могли уместиться в диапазон 0-1. Это можно сделать применив нод One ovex X из вкладки Math.Он как бы обращает последовательность нумераций кривых в управляемый диапазон от 0-1, т.е. на каждую кривую в нужном диапазоне.
8. Пусть методом изменения геометрии серии наших сечений будет изменение масштаба этих сечений.
В ноде Scale есть три входных параметра: G – базовая геометрия- это набор наших сечений, соединяем их как на скрине, C – центр масштабирования – это центр наших плоскостей, которые разбивают направляющую кривую,F – фактор масштабирования- в нашем случае это график, по которому и будет меняться закон масштабирования каждого сечения в нашей серии.Затем мы должны разорвать старую связь для получения Loft и замкнуть его на новый алгоритм получения Loft, а именно масштабируемый по нашему закону.
Обратите внимание, как поменялась геометрия. Теперь, двигая ползунок и меняя внешний вид графика можно менять геометрию нашей поверхности онлайн!! Для того чтобы сохранить геометрию из Grasshopper в Rhinoceros надо к поверхности применить функцию Bake (Испечь).
В итоге я сделал несколько вариантов различных поверхностей. Можно регулировать не только масштаб, но и изменять направляющую кривую. Управление ей производится точками, вызываемыми в Rhino кнопкой F10, скрытие точек F11.
9.Далее замыкаем основание профиля, по которому строится наша поверхность. Это можно сделать сразу, нарисовав с плоской нижней поверхностью кривую, и главное, она обязательно должна быть замкнута! Сделаем это в Grasshopper.Посмотрите скрин ниже, как я это сделал.
10. Окончательное изделие является не сплошной поверхностью, я является некой аппроксимацией этой поверхности внешними торцевыми поверхностями фрезерованного листового материала.Поэтому логично будет использовать не полученную поверхность, а сразу создать набор листовых элементов, образующих конструкцию.Создадим поверхность при помощи Boundary Surface из раздела Surface.Итоговый «виртуальный» фрезерованный лист создается путем вытягивания нашей поверхности вдоль…а вдоль чего?
А вытягиваться он должен в направлении вектора, касательному к направляющей в точке пронзания профиля. Для этого надо определить вектор. Этот вектор фактически перпендикулярен к плоскостям, на которых мы ориентировали наши профили.
Для этого применяем к нему нод Deconstruct Plane, который излекает нам векторы X,Y,Z.Нас интересует Z, указываем его как направление вытяжки.
11. В результате я сделал несколько вариантов геометрии, чтобы показать как быстро и легко она меняется. Теперь осталось полученные сечения преобразовать в файлы резки, для того чтобы их мог вырезать из листового материала раскройный фрезерный станок. (Сами понимаете, что пилить это в ручную, займет много времени)).
Однако, если подготовить шаблоны в масштабе 1:1, нанести их на листы материала, пронумеровав их в порядке их дальнейшей сборки, то можно воспользоваться и лобзиком.Далее для простоты и понимания дальнейших действий я сокращу количество сечений до 20. У вас их может быть сколько угодно (в разумных пределах, разумеется).
Чем больше будет поперечных листов, тем точнее у вас получится приблизиться в форме поверхности,но и больше материала затратиться на производство единицы изделия. Думаю, здесь все понятно. Далее нам надо получить набор плоских поверхностей,я сделал,обратную той,что мы делали,ориентируя профиль нашей тумбы вдоль направляющей прямой:я ориентировал наши поверхности на плоскость XY.Когда мы «Запечем» все полученные поверхности,мы получим фактически набор поперечных сечений.Однако для создания файла раскройки нам нужен не набор поверхностей, а набор контуров их (поверхностей).Именно они будут являться траекториями,по которым движется фреза станка, формируя контур. Контуры обычно сохраняются в форматах .cdr (Corel Draw) или в форматах .dxf/.dwg (AutoCAD) И тому подобные.
В заключении хотел бы отметь, что для изготовления полноценной конструкции нужно в модели дополнительно и сразу продумать систему соединения листов между собой в цельную конструкцию.При небольшой кривизне конечной формы удобно использовать длинные шпильки диаметром 6-8 мм с гайками (или проставками), задающими необходимый интервал при соединении листов. Если конструкция сильно изогнута, то можно использовать те же проставки, но соединять конструкцию специально изготовленным тросом с резьбовыми концами.
Добавить комментарий Отменить ответ
Для отправки комментария вам необходимо авторизоваться.
Источник: kd3d.ru