craftelectric

craftelectric

https://t.me/craftelectric Люблю, когда всё по делу.
Пикабушник
2515 рейтинг 143 подписчика 8 подписок 10 постов 9 в горячем
120

От плагина для SketchUp к своему CAD для проектирования электрики

В октябре 2025 года я выпустил версию плагина CraftElectric Tools для SketchUp. Он помогал быстрее расставлять розетки, выключатели и светильники, назначать марку кабеля и гофру для рисуемых линий, а также получать отчёт по кабелям и установленным электроточкам.

Но довольно быстро стало понятно: если развивать идею дальше, одного плагина уже мало.

Общий вид нового приложения MoonCAD

Общий вид нового приложения MoonCAD

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

Почему плагина стало мало

SketchUp хорош как 3D-среда. В нем удобно моделировать помещение, быстро что-то показать заказчику, сделать визуализацию.

Но когда начинаешь делать не просто "розетку на стене", а полноценную логику электропроекта, появляются ограничения. Мне хотелось, чтобы программа понимала, где щит, где стены, какие группы куда подключены, какой кабель по какому маршруту идет, дошла ли линия до щита, сколько нужно материалов и какие листы вывести в PDF.

А в плагине многое приходится делать вокруг ограничений чужого API. Где-то неудобно хранить данные, где-то тяжело контролировать интерфейс, где-то сложно сделать нормальную проверку связей. Любое нестандартное поведение постепенно превращается в борьбу с платформой.

Поэтому я решил перестать пытаться превратить SketchUp в CAD для электрика и начал делать отдельную программу: со своей логикой проекта, своим интерфейсом и 2D-движком на PixiJS

Так появился MoonCAD

Это уже не плагин, а отдельное CAD-приложение для проектирования электрики прямо в браузере: от планировки стен и расстановки электроточек до щита, кабельных трасс, ведомостей, смет и чертежей.

Не нужно сначала учиться пользоваться SketchUp, а потом отдельно разбираться с плагином. Я хочу сделать порог входа ниже: если человек умеет делать монтаж и примерно понимает, как должна выглядеть схема, он проходит последовательные этапы - стены, электроточки, трассы, щит, документы.

Главная идея не в том, чтобы просто перенести те же значки из SketchUp в браузер. В плагине тоже можно хранить параметры у объектов, но вся логика все равно живет как надстройка поверх 3D-сцены.

В MoonCAD я хочу сделать наоборот: модель проекта должна быть основой приложения. Розетка, кабель, щит, группа, маршрут, материал и лист чертежа связаны между собой с самого начала. Тогда интерфейс, проверки, ведомости и PDF строятся от одних и тех же данных, а не собираются вручную из разрозненных элементов.

Что уже можно показать

Чтобы это не выглядело как история "я придумал CAD, осталось только написать", покажу, что уже есть в рабочем прототипе.

Первым крупным модулем стала сборка электрощита. Это отдельный рабочий экран (этап проектирования), где можно собирать щит из модульных устройств.

Уже есть визуальная сборка щита, DIN-рейки, автоматы, УЗО, контакторы, рубильники, гребенчатые шины, кросс-модули, распределительные блоки, маркировка проводов, кабельный журнал, ведомость материалов и листы для оформления чертежей.

После щита я начал делать второй большой этап - помещение.

Тут уже есть отдельный режим работы со стенами: этажи, подложки, масштабирование подложки по двум точкам, направляющие, рисование стен по базовой линии, толщина стены, материалы стены, привязки к осям и существующим стенам, редактирование вершин, добавление и удаление точек.

Это нужно, чтобы электроточки не висели в пустоте. Розетка должна стоять на стене, светильник - на потолке, кабель - идти по понятной геометрии, а не просто по красивой линии на экране.

Следующий слой - электроточки: розетки, выключатели, светильники, выводы, распределительные коробки, связи и группы. Часть этой логики уже есть: оборудование умеет жить на разных поверхностях, у кабельных маршрутов есть группы, порты, типы кабеля и связь с щитом.

Можно задавать цвет рамки, механизма, выбрать глубину подрозетника, мощность и назначение.

Отдельный большой блок, который сейчас активно разрабатывается, - документация и расчеты: экран материалов, материалы щита и монтажа, листы чертежей, развертки стен, предпросмотр PDF, справочник работ для будущей сметы и админка для редактирования базовых цен работ.

Конечно, это еще не релиз "для всех". Где-то интерфейс сырой, где-то есть временные debug-режимы или еще нет финальных иконок, где-то логика еще меняется.. Но это уже не концепт и не набор макетов. Это рабочее приложение, которое постепенно обрастает предметной логикой.

Самое важное - трассировка кабелей

В SketchUp-плагине можно было рисовать кабельные линии и считать длины. Но для настоящего проектирования этого мало.

В MoonCAD я хочу прийти к модели, где программа понимает несколько разных слоев:

1. что с чем связано по смыслу, например выключатель со светильником;

2. какие потребители входят в одну электрическую группу;

3. что уже реально соединено кабелями;

4. по каким физическим путям кабель может быть проложен.

Это важно, потому что "нарисовать линию" и "спроектировать кабельную трассу" - разные вещи.

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

В будущем это должно стать основой для автотрассировки: не магической кнопки "сделай красиво", а понятного алгоритма с правилами, ограничениями и возможностью проверить результат.

Документы, материалы и смета

Отдельная большая цель - чтобы из проекта можно было получить нормальные документы: план помещения, расстановку розеток и выключателей, развертки стен с высотами электроточек, схему щита, кабельный журнал, ведомость материалов, смету работ и PDF для передачи заказчику или монтажнику.

В MoonCAD уже есть экран материалов. Он собирает ведомость по проекту и позволяет смотреть материалы щита и монтажные материалы. По смете тоже идет работа: есть справочник электромонтажных работ - штробление, сверление, прокладка кабеля, подрозетники, коробки, щиты, светильники и так далее.

Идея в том, чтобы программа могла не только посчитать "сколько метров кабеля", но и собрать примерную стоимость работ.

Чем это отличается от обычной рисовалки

Обычная рисовалка хранит картинку.

MoonCAD должен хранить смысл.

Если на плане стоит розетка, программа должна понимать, что это розетка. Если она подключена к группе "1Роз1", это должно быть видно в щите, в кабельном журнале, в ведомости и в чертежах.

Если пользователь поменял кабель или перенес точку, документы должны пересчитаться от модели, а не перерисовываться вручную в пяти местах.

В SketchUp как раз и получался разорванный процесс: проводку рисуешь в модели, документацию потом собираешь в LayOut, щиты проектируешь или собираешь еще где-то, сметы по работам считаешь отдельно. Я хочу прийти к результату, где пользователь проложил проводку в одном инструменте и сразу получил связанные последствия: кабельный журнал, материалы, развертки, щит, смету и листы для выдачи.

Вот ради этого и пришлось уходить от плагина к отдельной программе.

Про бесплатность

И да, важный момент: MoonCAD не планируется как полностью бесплатный проект.

Такой инструмент сложно развивать как полностью бесплатный продукт: разработка занимает время, нужны серверы, поддержка, тестирование, обновление справочников, исправление ошибок и постоянная работа с реальными сценариями пользователей.

Но я не хочу продавать сам факт рисования стен, розеток и кабелей. Думаю пользователь должен иметь возможность собрать модель своего объекта и понять, что система действительно считает проект: кабель, группы, подрозетники, материалы, работы.

Платными должны быть не "линии на экране", а профессиональный результат: полноценная документация, PDF, кабельный журнал, развертки, ведомости, работа со щитом, экспорт и более умные инструменты автоматизации.

Мне кажется, это честнее: сначала человек видит пользу на своем реальном объекте, а уже потом решает, нужен ли ему профессиональный вывод результата.

Что будет дальше

Ближайшая цель - доделать основные инструменты и поднять рабочую версию на сервере, чтобы ей можно было пользоваться не только у меня на компьютере.

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

Зачем пишу сюда

Когда я выкладывал CraftElectric Tools для SketchUp, обратная связь сильно помогла. Многие идеи появились именно из комментариев: УГО, типы кабеля, имена групп, отчеты, модели для визуализаций.

Сейчас история повторяется, только масштаб стал больше.

Мне интересно мнение тех, кто реально сталкивается с электрикой: проектирует, монтирует, проверяет, делает дизайн-проекты, собирает щиты, считает материалы.

Что бы вы проверяли в такой программе в первую очередь: быструю расстановку розеток, развертки стен, кабельный журнал, смету, автоматическую проверку групп, схему щита, PDF-документацию, расчет материалов, импорт планов, автотрассировку?

Пишите идеи, критику и больные места. Особенно интересны не "хотелки ради хотелок", а реальные сценарии: где сейчас приходится тратить время, перепроверять вручную или ловить ошибки уже на монтаже.

Я хочу сделать инструмент, который будет полезен не в презентации, а в работе.

Показать полностью 10
12

Автоматический подсчет розеток и выключателей в SketchUp с помощью Ruby-скрипта

Если вы занимаетесь моделированием в SketchUp, особенно проектами с электрикой, то наверняка сталкивались с необходимостью подсчитывать розетки, выключатели и другие элементы. Ручной подсчет — это утомительно, особенно в больших моделях. Сегодня я расскажу, как автоматизировать этот процесс с помощью простого Ruby-скрипта, который работает прямо в консоли SketchUp

Консоль Ruby с подсчетом количества розеток, выключателей, светильников

Консоль Ruby с подсчетом количества розеток, выключателей, светильников

Этот скрипт полностью совместим с плагином Crafteelectric Tools, предназначенным для расстановки электрических элементов.
Либо вы можете использовать свои динамические компоненты с условием, что имена будут даваться определенным образом: имя розетки должно начинаться с "EM" и содержать в себе группу с именем "3D", касание которой скрипт и ищет для подсчета рамок.

Как запустить скрипт

  1. Откройте SketchUp и загрузите вашу модель, созданную или дополненную с помощью Crafteelectric Tools.

  2. Перейдите в меню "Window" > "Ruby Console" (или "Окно" > "Консоль Ruby" в русской версии).

  3. Скопируйте и вставьте весь скрипт в консоль, затем нажмите Enter.

  4. Скрипт обработает модель и выведет результаты в консоль.

m=Sketchup.active_model

def b(g,t)

bb=Geom::BoundingBox.new

8.times{|i|bb.add(g.bounds.corner(i).transform(t))}

bb

end

def c(e,p,p_t=IDENTITY,r=[])

e.each{|x|

if x.is_a?(Sketchup::ComponentInstance) && x.definition.name.start_with?(p)

r<<(p=="EM" ? [x, p_t*x.transformation] : x)

elsif x.is_a?(Sketchup::Group) || x.is_a?(Sketchup::ComponentInstance)

c((x.respond_to?(:entities) ? x.entities : x.definition.entities), p, p_t*x.transformation, r)

end

}

r

end

em=c(m.entities,"EM")

puts"Найдено EM-компонентов: #{em.size}"

p=em.combination(2).select{|(a,a_t),(b,b_t)|

ga=a.definition.entities.find{|x|x.is_a?(Sketchup::Group)&&x.name=="3D"}

gb=b.definition.entities.find{|x|x.is_a?(Sketchup::Group)&&x.name=="3D"}

ga && gb && b(ga,a_t).intersect(b(gb,b_t)).valid?

}

require'set'

g=[]

v=Set.new

adj=Hash.new{|h,k|h[k]=[]}

p.each{|a,b| adj[a[0]]<<b[0]; adj[b[0]]<<a[0]}

def d(n,a,v,g)

return if v.include?(n)

v<<n

g<<n

a[n].each{|x| d(x,a,v,g)}

end

em.each{|c,_| next if v.include?(c); x=[]; d(c,adj,v,x); g<<x}

class Array;def tally_by;each_with_object(Hash.new(0)){|i,h|h[yield(i)]+=1};end;end

fc=g.tally_by(&:size)

emc=em.tally_by{|c,_|c.definition.name[/^EM[^#]*/]}

ek=c(m.entities,"EK")

ekc=ek.tally_by{|c|c.definition.name[/^EK[^#]*/]}

eo=c(m.entities,"EO")

eoc=eo.tally_by{|c|c.definition.name[/^EO[^#]*/]}

puts"\n Количество рамок:", fc.sort.map{|s,c|" - Рамок на #{s}: #{c}"}

puts"\n Количество EM-компонентов:", emc.sort.map{|n,c|" - #{n}: #{c}"}

puts"\n Количество EK-коробок:", ekc.sort.map{|n,c|" - #{n}: #{c}"}

puts"\n Количество EO-компонентов:", eoc.sort.map{|n,c|" - #{n}: #{c}"}

Что делает скрипт

  • Поиск компонентов: Cканирует модель на наличие компонентов с префиксами "EM", "EK", "EO".

  • Группировка рамок: Для "EM" проверяет пересечения bounding box групп "3D" внутри компонентов, чтобы определить, какие элементы образуют рамки (например, одиночные, двойные и т.д.).

  • Подсчет: Выводит общее количество найденных "EM", а также детальную информацию по типам и размерам рамок, числу коробок "EK" и элементов "EO".

Найдено EM-компонентов: 15

Количество рамок:

- Рамок на 1: 5

- Рамок на 2: 3

- Рамок на 3: 2

Количество EM-компонентов:

- EM Розетка: 8

- EM Выключатель: 7

Количество EK-коробок:

- EK Коробка: 10

Количество EO-компонентов:

- EO Модуль: 4

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

Показать полностью 1
141

Плагин для электрики в SketchUp

Прошло чуть больше месяца с момента выхода тестовой версии моего плагина CraftElectric Tools для SketchUp, и он уже нашёл отклик у сообщества — более 200 установок.

Этот инструмент создан для упрощения расстановки розеток, выключателей и светильников, а также проектирования электропроводки. Он становится незаменимым помощником для архитекторов, дизайнеров интерьеров и инженеров.

В этой статье я расскажу, какие обновления ждут CraftElectric Tools в ближайшем будущем, чтобы работа с электрикой в SketchUp стала ещё удобнее и эффективнее. Делитесь своими идеями и предложениями — вместе мы сможем развивать плагин в нужном направлении!

Возможность подгружать УГО по ГОСТ для 2D-чертежей в SketchUp

Достаточно нажать одну кнопку — и в сцене появляются стандартные обозначения, соответствующие требованиям ГОСТ.

Как справедливо замечают профессионалы, без УГО электрика в 2D — это просто «весёлые картинки». Поэтому полноценная работа с чертежами невозможна без стандартных графических символов.

Если встроенные УГО по какой-то причине не подходят, вы можете загрузить и использовать собственные обозначения — плагин поддерживает пользовательскую настройку.

УГО Sketchup

УГО Sketchup

Поддержка реалистичных 3D-моделей для рендеров и визуализаций

Не всем подходят стандартные цветные обозначения розеток и выключателей — особенно если сцена готовится для визуализации интерьера или, например, расстановки розеток на кухне.

Для таких случаев добавлены реалистичные 3D-модели, которые подходят для рендеров, презентаций и финальных видов.

Ими так же легко управлять, как и классическими элементами из плагина — они вставляются, редактируются и настраиваются точно так же.

Кроме того, при необходимости вы можете заменить стандартные 3D-модели на собственные, адаптируя проект под конкретные задачи или свои библиотеки

Выбор типа линии

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

Например:
Кабель ВВГ нг 3×1,5 в гофре ПВХ Ø20, с опусками по стенам в штробе 20×20.

Это позволяет точно отображать реальную схему прокладки проводки, учитывать монтажные условия и в будущем — автоматически формировать спецификации.

Всё задаётся просто: выбираете нужный тип из списка или добавляете свой. В сцене линии автоматически подсвечиваются разными цветами в зависимости от типа и выбранной вкладки, что облегчает визуальное восприятие и контроль над проектом.

Назначение имен электрическим группам

Возможность назначать имя электрической группе — например, «1РОЗ1» или «Розетки Зал». Это помогает удобно организовать проект, быстро идентифицировать группы и облегчает дальнейшую работу с документацией и отчётами.

Подробный отчёт по кабелям в Sketchup

Создание максимально подробного отчёта по кабелям для контроля объёмов и спецификаций

отчёт по кабелям в SketchUp

отчёт по кабелям в SketchUp

Что дальше?

Разработка CraftElectric Tools активно продолжается. Впереди — ещё больше полезных функций, которые сделают проектирование электрики в SketchUp ещё удобнее, быстрее и точнее.

Некоторое из этих улучшений появились благодаря обратной связи — пользователи сами предлагают идеи и помогают развивать CraftElectric Tools.

Часть из них уже в работе: сейчас идёт тестирование и проработка интерфейса. Остальные пока в стадии концептов — но всё, что попадает в план, основывается на реальных запросах пользователей.

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

Следите за новостями — впереди много интересного.

Показать полностью 5 1
113

Лучший плагин для электрики в SketchUp

Сегодня я расскажу о плагине для sketchup, который значительно упростит жизнь проектировщикам, дизайнерам, электрикам и всем тем, кто работает с интерьером.

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

Расстановки розеток, выключателей, светильников в SketchUp

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

Нужно поменять высоту установки? Да легко. Просто вводим новое значение — и элемент автоматически перемещается.

Также если нужно узнать высоту розетки, то просто выделяем розетку и сразу видим заданную высоту.

А если выделить сразу несколько элементов, плагин покажет минимальную и максимальную высоту среди них. Это удобно для быстрой проверки на соответствие высот.

Всe элементы отрисованы 3Д, также присутствует их 2Д проекция на пол, поэтому на плане сверху их будет отлично видно. Видимостью 2Д и 3Д отображения можно управлять через метки

Когда элементы находятся один над другим, можно легко настроить их отображение в 2D, чтобы они не перекрывали друг друга.

Для 2D-вида можно задать масштаб отображения элементов. например сделать их в два раза больше. Это удобно, если нужно сделать символы более заметными

  1. Розетке можно дать имя, чтобы не забыть о её назначении, например, назовем ее «Стиральная машина» И это название можно будет извлечь в LayOut, так же как и высоту установки.

Это избавляет нас от постоянного переключения между LayOut и SketchUp, а также поможет избежать ошибок, связанных с ручным введением данных. Все нужные параметры, такие как имя розетки и высота установки, можно сразу извлечь и использовать в LayOut без лишних манипуляций.

Теперь давайте перейдём к другим интересным фишкам этого плагина, которые тоже делают работу проектировщика гораздо удобнее и эффективнее.

Инструмент "Рисование линий до потолка"

Очень удобная функция, особенно при проектировании электрики — экономит массу времени.

Выбираем инструмент, задаём высоту потолка и просто кликаем по нужной розетке или выключателю. Плагин автоматически продлевает провод до потолка.

Это особенно полезно, **когда все элементы находятся на разных высотах** — вам не нужно вручную вытягивать каждый провод до потолка. Всё делается в один клик, точно и аккуратно.

Инструмент "Запас кабеля от розеток"

Здесь всё максимально просто и автоматизировано.

Нажимаем одну кнопку — и **на всех розетках появляется запас кабеля длиной 30 см** в месте опуска провода. Плагин сам добавляет этот хвостик, так что не нужно ничего отмерять вручную.

Инструмент "Запас кабеля в распределительной коробке"

Это один из моих любимых инструментов.

Всё, что нужно — просто **подвести кабели к коробке**. Дальше плагин делает всё сам:

- Он автоматически добавляет **необходимый запас кабеля**,

- **и соединяет все провода вместе** .

При **двойном клике** можно сразу **подсветить текущую линию**,

а **создаваемый запас автоматически учитывается при подсчёте длины кабеля**.

Инструмент "Отчёт по кабелям"

Очень полезная функция.

Плагин сам подсчитывает **все кабели в проекте**, группирует их:

- и выдаёт **отчёт по каждой группе с указанием длины**,

- также формирует **список всех кабелей с указанием марки и точной длины**.

Мои подписчики и тех кто интересуется SketchUp на пикабу уже видели такой инструмент.
Это та же самая версия "скрипта подсчета линий в Sketchup" из предыдущего поста, но уже зашитая в плагин.

Ваши комментарии всегда приветствуются.

Задавайте вопросы, делитесь мнением
С удовольствием почитаю идеи для новых инструментов автоматизации

📌 На данный момент плагин не находится в свободном доступе. Все вопросы — в комментариях.

Показать полностью 12
38

Улучшенный скрипт подсчета линий в Sketchup

Как работал старый скрипт

Чтобы он сработал линии необходимо поместить в группу с именем вида 1РОЗ4, 4ОСВ2, 1КОН1 и тому подобное. То есть (цифры)(любые буквы)(цифры).


Пример:
Есть у нас две линии 1РОЗ1 и 1РОЗ2 каждая по 25 метров
При подсчете скрипт выдавал общую длину кабелей с словом РОЗ к примеру 50 метров.


И это означало что для всех групп РОЗ (розетки) необходимо купить кабель 3х2.5 в количестве 50 м

Но иногда возникала необходимость посчитать для одного и того же индекса разные марки кабелей.
Например КОН (кондиционер) может быть подключен к линии 3х1.5 или 3х2.5 или 5х2.5, а скрипт все равно считал его как один кабель

Как работает новый скрипт

Новый скрипт работаем с именами типа 5РОЗ1 -- 3х2.5
То есть также как и раньше:
5 — номер помещения,
РОЗ — розетки,
1 — номер розеточной группы в комнате)

И после двойного тире указываем марку кабеля или любое другое свое определение.

Еще из отличий это увеличение точности, старый скрипт считал с точностью до метра, Теперь считаем с точностью до сантиметра.

Ruby Script SketchUp

model = Sketchup.active_model

group_name_pattern = /^[1-9][0-9]?([А-Яа-яA-Za-z]+)[1-9][0-9]?(\s.*)?$/

group_lengths = Hash.new(0.0)

matching_groups = Hash.new { |hash, key| hash[key] = [] }

second_part_lengths = Hash.new(0.0)

scale = 0.0254

def process_group(group, group_name_pattern, group_lengths, matching_groups, second_part_lengths, scale)

group_name = group.name

match = group_name.match(group_name_pattern)

if match

letter = match[1]

edges = group.entities.grep(Sketchup::Edge)

total_length_mm = edges.reduce(0.0) { |sum, edge| sum + edge.length * scale }

group_lengths[letter] += total_length_mm

matching_groups[letter] << group

second_part = match[2].to_s.strip

if !second_part.empty?

second_part_lengths[second_part] += total_length_mm

end

end

group.entities.each do |entity|

if entity.is_a?(Sketchup::Group)

process_group(entity, group_name_pattern, group_lengths, matching_groups, second_part_lengths, scale)

end

end

end

root_groups = model.entities.grep(Sketchup::Group)

root_groups.each do |group|

process_group(group, group_name_pattern, group_lengths, matching_groups, second_part_lengths, scale)

end

group_lengths.each do |letter, total_length_mm|

if total_length_mm > 0.0

total_length_meters = total_length_mm

puts "Трассы с буквами #{letter}, Общая длина линий: #{total_length_meters.round(2)} м"

matching_groups[letter].each do |group|

group_name = group.name

edges = group.entities.grep(Sketchup::Edge)

total_length_mm = edges.reduce(0.0) { |sum, edge| sum + edge.length * scale }

total_length_meters = total_length_mm

puts " #{group_name}, Длина линий: #{total_length_meters.round(2)} м"

end

end

end

second_part_lengths.each do |second_part, total_length_mm|

total_length_meters = total_length_mm

cleaned_second_part = second_part.sub(/^--\s*/, '') # Удаляем два тире в начале второй части имени

puts "Общая длина линий для '#{cleaned_second_part}': #{total_length_meters.round(2)} м"

end

Теперь считать большие объемы стало еще легче и точнее.

Проект большого дома в SketchUp

Проект большого дома в SketchUp

Еще пример проекта умного дома.

Весь материал считается с первого раза со всеми запасами и уместился в одну закупку. Всего 1.09 км кабеля

96 отдельный групп. 75 линий приходит на щит.

Показать полностью 8
224

Волшебная кнопка для подсчета линий в Sketchup

Без прелюдий сразу к делу.

Чтобы было комфортно пользоваться понадобится версия Sketchup 2020 или старше.

В этой версии немного прокачали вкладку "Иерархия" добавив возможность скрывать через нее группы и компоненты. Это нужно для того чтобы не страдать ерундой добавляя десятки ненужных слоев, чтобы скрывать/показывать группу объектов.

Мне удобен вариант при котором видимость/невидимость всех всех групп управляется через иерархию. А все что нельзя скрыть через иерархию управляется через слои.

Например можно скрыть запасы кабеля для распределительной коробки или розетки и обозначить их пунктиром.

Линиями нарисованными пунктиром можно можно управлять через слои.

Линиями нарисованными пунктиром можно можно управлять через слои.

Выше вы видите созданную группу с именем E-W, в ней находятся группы с отдельными линиями.

Каждая группа с именем типа 5Р1 это отдельная линия на щит. (5 номер помещения, Р-розетки,1 номер розеточной группы в комнате)

Группа 5Р1

Группа 5Р1

С одной стороны очень удобно сразу дать имена каждому кабелю. Особенно при подготовке к печати в LayOut, кликая по кабелю инструментом Подпись, имя кабеля подставляется автоматически, ошибиться невозможно.

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

Нужно зайти в интересующую группу выделить всю линию и только потом увидим результат в данном случае ~ 27957 mm

Далее записываем результат в excel/блокнот/листочек и повторяем процедуру со всеми группами, что является довольно неудобным если учесть что бывают объекты на которых может быть и сто линий (монтаж СКС).

Есть способ вывести результат по всем линиям сразу и этот способ использовать скрипты на языке Ruby. Окно > Консоль языка "Ruby"

Вставляем скрипт:

model = Sketchup.active_model

group_name_pattern = /^[1-9][0-9]?([А-Яа-яA-Za-z]+)[1-9][0-9]?$/

group_lengths = Hash.new(0.0)

matching_groups = Hash.new { |hash, key| hash[key] = [] }

scale = 0.0254

def process_group(group, group_name_pattern, group_lengths, matching_groups, scale)

group_name = group.name

match = group_name.match(group_name_pattern)

if match

letter = match[1]

edges = group.entities.grep(Sketchup::Edge)

total_length_mm = edges.reduce(0.0) { |sum, edge| sum + edge.length * scale }

group_lengths[letter] += total_length_mm

matching_groups[letter] << group

end

group.entities.each do |entity|

if entity.is_a?(Sketchup::Group)

process_group(entity, group_name_pattern, group_lengths, matching_groups, scale)

end

end

end

root_groups = model.entities.grep(Sketchup::Group)

root_groups.each do |group|

process_group(group, group_name_pattern, group_lengths, matching_groups, scale)

end

group_lengths.each do |letter, total_length_mm|

if total_length_mm > 0.0

total_length_meters = total_length_mm

puts "Группы с буквой #{letter}, Общая длина линий: #{total_length_meters.to_i} м"

matching_groups[letter].each do |group|

group_name = group.name

edges = group.entities.grep(Sketchup::Edge)

total_length_mm = edges.reduce(0.0) { |sum, edge| sum + edge.length * scale }

total_length_meters = total_length_mm

puts " Гр: #{group_name}, Длина кабеля: #{total_length_meters.to_i} м"

end

end

end

И через секунду получаем готовый результат, ну или через пять секунд если у вас под сотню линий

Итого:
Группы с буквой С, Общая длина линий: 169 м (освещение 3х1,5)
Группы с буквой Р, Общая длина линий: 186 м (розетки 3х2,5)
Группы с буквой ВП, Общая длина линий: 15 м (варочная поверхность)

Итого: Группы с буквой С, Общая длина линий: 169 м (освещение 3х1,5) Группы с буквой Р, Общая длина линий: 186 м (розетки 3х2,5) Группы с буквой ВП, Общая длина линий: 15 м (варочная поверхность)

Чтобы скрипт сработал линии необходимо поместить в группу с именем вида 1Р1, 21Р1, 1Р22, 1РС22 и тому подобное. То есть (одна-две цифры)(одна-две буквы)(одна две цифры). Буквы подходят как латиница так и кириллица.

Если предпочитаете другое называние можете изменить переменную group_name_pattern

Не знаю насколько правильно написан код, но он работает, не это ли самое главное)

Если это читают программисты знакомые с Ruby, подскажите что исправить или улучшить.

Наверное можно сделать экспорт в excel файл.

Пользуйтесь на здоровье

Материал и работа без цен

Материал и работа без цен

Показать полностью 16
103

Проект для квартиры-студии в SketchUp

Здесь все как обычно. По умолчанию розетки на  расположены на высоте 300 мм от пола, выключатели 900.

Управление освещением

Трассировка кабелей

Оригинал с которого брал расположение розеток (ниже).
Однако по нему не совсем не понято что вообще тут происходит.

1. Какие выключатели, какими светильниками управляют?

2. Что это за хвостики в с/у и куда конкретно их вывести?

3. высота для ТП?

4. Вероятно будет ТВ, интернет. Нужна ли для них розетка?

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

Согласитесь, что так гораздо понятнее

Кусочек сметы. Работы и материалы

Показать полностью 7
172

Стремянка своими руками

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

Свою такую же стремянку я сделал в 2016 году, а может и раньше (найдена на фото одном из объектов за 2016 г.). За это время она совершенно не расшаталась, не сгнила, хотя ездила на крыше багажника иногда и в снег, и дождь, и в грязь.

С полной уверенностью могу рекомендовать данную конструкцию всем, кто решится сделать ее своими руками.

Материалы:

Брус 30х50 3000 мм - 4 шт

Шпилька резьбовая 2000 мм - 3 шт

Шайба широкая - 12 шт.

Гайка - 12 шт.

Петля - 2 шт.

саморез для петли - 12 шт.

Ремень 25 мм 5 м 1 шт.

Саморез острый с прессшайбой - 12 шт.

Клей столярный 80мл - 1 шт.

Для стремянки использовался брус 30х50 мм длиной 3000 мм в количестве 4 штук.

Выбирайте только ровный не скрученный брус без больших сучков.

Найти ровный и без сучков брус такого размера может быть немного трудновато. В качестве альтернативного варианте подойдет два  бруса 50х70, их нужно будет распилить вдоль. Я приобретал такой брус в Леруа, там же мне его распилили в отделе резки дерева.

При таком варианте брус получается на 5 мм толще, впрочем убрать лишнее рубанком не составит большого труда.

Далее пилим их по размерам:

4 шт. по 1500 мм - для тетивы

2 шт. по 581 - для первой ступени

2 шт. по 557 - для второй ступени

2 шт. по 533 - для третьей ступени

2 шт. по 509 - для четвертой ступени

2 шт. по 485 - для пятой ступени

Размечаем центры будущих пазов

Сверлом форстнера диаметром 22 сверлим по два отверстия глубиной 20 мм и  при помощи стамески объединяем их в один паз.

Обратите внимание что сверлить необходимо НЕ под прямым углом в 90°, а с небольшим отклонением.

на высоте 200 мм от кончика сверла отклонение будет в 10 мм. В градусах это  примерно 2,86°

Размечаем как на рисунке, отпиливаем крайний кусок.
Также обратите внимание что расстояние 23 мм и 20 мм в правом верхнем углу,  указано на расстоянии в 250 мм от низа заготовок.
У кого-то получатся бруски не ровно 50 мм, а чуть больше или меньше, так что при складывании в один ряд там может быть и как 245 так и 260 мм.

Не забывайте отметить линию отмеченную вторым пунктиром, это будущий шип.

Размечаем самый короткий брус по размерам и отпиливаем лишнее.

Должны получится заготовки с такими размерами.

Аккуратно вырезаем шип с каждой стороны. Ножовка + стамеска вам в помощь

Ничего страшного в том, что шип получится немного меньшего размера. При склейке можно будет уплотнить марлей (или прочитайте как советуют сделать это специалисты в комментариях) . Но лучше стараться делать все в размер.

Собираем, примеряем детали и заодно просверливаем  по центру тетивы отверстие диаметром 6 мм чуть ниже первой, третьей, и пятой ступеней, примерно 5-10 мм.

В отверстие будет вставляться шпилька. Натянутая шпилька придаст дополнительной жесткости конструкции и не даст стремянке расшатываться.

При склейке необходимо будет стянуть их шпильками

Склеивать нужно на столярный клей, который продается в любом строительном магазине

Готовая лестница по завершению изготовления должна быть тщательно пропитана водостойкой пропиткой и покрыта лаком.

Настало время установить петли.

Оси петель должны быть параллельны ступенькам.

Перед закручиванием самореза лучше предварительно просверлить отверстие тонким сверлом, чтобы избежать раскалывания древесины

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

Так выглядит стремянка  после складывания

Раскладываем стремянку так, чтобы между ножками было 90 см. Фиксируем ремнем (ремень 25 мм, полипропилен.)

Крепится ремень на острые саморезы с прессшайбой

Осталось подровнять пятки чтоб стояла ровно, а не на уголках и все готово!

Для противоскольжения можно так же сделать специальные насадки на ножки.

Показать полностью 24
Отличная работа, все прочитано!

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества