Дневник Ревитчика
521 subscribers
176 photos
9 videos
2 files
43 links
Канал Вадима Муратова про рабочие будни в Ревите. Уведомления о статьях блога и новинках магазина отслеживайте на основном канале @revitblog

Сайт Муратова: muratovbim.pro
Download Telegram
Продолжаю рассказ про крепёж для труб

Новых семейств за сегодня не сделал, но доделал те, что начал. По ходу дела ещё переделал хомуты, потому что внезапно понял, что существуют такие штуки как стояки. Их же тоже крепят зачем-то. Не понимаю, откуда такое недоверие к гравитации у монтажников?

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

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

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

Изначально планировал сделать, как с хомутами: собрать сначала одно семейство, а потом уже его вложить в новое и там видимость скрывать разные ориентации. Но в итоге в профиль засунул ещё и соединители, а это задачу сразу усложнило.

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

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

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

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

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

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

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

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

Крепись духом, разработчик!
👍8😱1🗿1
Дорогой дневник, мне не подобрать слов, чтобы описать боль и унижение, которое я испытал...

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

Когда держатель на стене, его нужно ещё повернуть на 90°, причём в две разные стороны, так как у профиля держателя U-образная форма, а это влияет на положение монтажного профиля. Потому что так тоже можно его ставить, я не хотел, чтобы пользователь шёл на разрез и крутил профиль, решил сделать это за него.

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

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

Но тут я не учёл один фактор: иногда я туплю.

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

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

Затуп был в том, что я не туда вкладывал профиль. Я не мог найти способ, как его нормально вращать так же, как стеновой держатель. Но ведь я нашёл способ, как вращать держатель? Нашёл. Ну вот и дальше идея-то простая: если какое-то говно крутится и другое говно надо крутить так же, то надо другое говно вложить в первое говно, чтобы получить вентилятор говна!

Собственно, эта идея мне пришла в голову внезапно, когда я гулял по квартире (вот такой я весёлый человек, гуляю по квартире), и жена включила Агутина на Алисе. Сегодня купил Алису, до этого была Маруся — ебать какое тупое голосовое днище. Ну вот попробуем Алису, тем более, что взял её с видом на переезд в новую квартиру. Хочу с её помощью управлять умным домом. Ну там чайник включить, шторы задвинуть, получить уведомление с датчиков протечки.

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

В общем, делайте вещи, если не получается, то делайте вещи чуть-чуть иначе. Делайте чё-нибудь, да.
22👍5
Делаю очередной этап для Вальтека. Решил начать с шаровых кранов, сделал за сегодня две штуки.

Один — с дренажом и воздухоотводчиком. Его делал в прямом эфире на Твиче, запись выложил в ВК для донов сообщества. Если интересна разработка семейств, то можете тоже подписаться, это недорого, всего 100 рублей в месяц. Можете и больше, но это по желанию.

Второй кран — шаровой для манометра, он на картинке к посту. По сути, это трехходовой кран с тремя видами резьбы под манометры: 1/2", 1/4" и 3/8". Это семейство довольно простое, потому что у него по сути меняется только та часть, что под манометр, а сам корпус крана не меняется. Ещё и резьба наружная, вообще хорошо, не надо управлять соединителем.

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

Я об этом писал производителю, но что-то мне ничего не ответили. Ну ладно, буду делать по-отдельности, может, что-то придумаю по сборкам, когда всё сделаю. Хотя там это будет сложно, поэтому вроде как пользователь придется самому собирать коллектор по частям. С МодПлюсом «Соединить коннекторы» это не должно быть прям сильно долго.

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

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

Крепеж пока на паузе, эту неделю буду делать Вальтек. В крепеже надо ещё отработать термоклиповские настенные держатели, там что-то дофига вариантов, свои профили, надо будет придумывать, как всё это комбинировать в сборке. Пусть полежит, отдохнёт.
🔥4
Что может быть приятнее, чем маленькая писюлька, которая...

Нет, неправильно начал.

Очень радует, когда в Ревите соединяется мелкая геометрия и не вызывает ошибку соединения. Например, вот такая маленькая писюлька для выпуска воздуха в кране Маевского.
16🔥8👏1
Сделал крутой интерфейс в семействе, рассказываю.

Часть 1.

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

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

Что с ним можно делать? Идём по порядку. Пользователь его будет подключать. Поскольку это отдельное семейство и это радиаторный клапан, то логично, что чаще всего его будут ставить на радиаторы, а не на коллекторы. Поэтому точкой вставки выбираю наружную резьбу, чтобы сразу подключать его в радиатор. Для этого никакие плагины не нужны: назначил системы радиаторы, подтащил клапан, жмяк по пустому месту, он сам напрыгнет на радиатор и подключится.

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

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

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

Но вот в случае с радиаторами можно сделать исключение. Либо сразу моделировать резьбу укороченной, там будет вкручиваться ну 10-15 мм, вряд ли сильно больше. Поэтому можно сделать укороченной сразу. Либо дать пользователю самому выбрать укорачивание резьбы на ту длину, что вкрутится в радиатор. В тесных узлах в нишах даже эти миллиметры могут быть важны, там же ещё надо вкрутить фитинг для перехода на трубу, он тоже занимает место.

Поэтому в этом семействе пошёл именно по второму пути, когда даю пользователю возможность укорачивать резьбу от 0 мм до полной длины резьбы. При этом получается, что геометрия резьбы может укоротиться до нуля, что невозможно. Это обхожу тем, что назначаю рабочую плоскость для выдавливания и начало выдавливания фиксирую на -1 мм. Таким образом длина выдавливания всегда будет не менее 1 мм.

Подключили клапан. Дальше у него есть настройка. У клапана есть обороты, их выставляют шестигранным ключом. В зависимости от оборотов меняется пропускная способность, сколько воды пойдёт через клапан. Её можно вычислить через расход воды и через потери давления на клапане. Сами потери мы посчитать не можем внутри семейства, это результат гидравлического расчёта, откуда мы получаем требуемый перепад давления на приборе.

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

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

Об этом пользователь может узнать из инструкции, которую читать не будет, конечно же. Новички делают херню, потому что не понимают, как что работает, просто натыкивают элементы и идут дальше, а старички уверены, что и так всё знают и понимают, поэтому натыкивают элементы и идут дальше. Пусть идут все дружно.
👍10
Часть 2.

Чтобы инициировать подбор автоматически, нужно включить галочку в параметра. До этого обороты указываются вручную. Kv для подбора посчитается сам, если перепад давления больше нуля. Ну а дальше формулами подбираю ближайшее больше значение пропускной способности у клапана. Формула определяет количество оборотов, по оборотам уже подбирается пропускная способность, а по ней — фактические потери давления на клапане.

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

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

Делайте красиво и удобно. Говно и без вас кто-нибудь сделает.
👍9
This media is not supported in your browser
VIEW IN TELEGRAM
Показываю, как работает клапан с радиаторами.
👍11
Если у вас не такие же коллекторы, то даже не зовите меня.
🔥14👍3😢1
Столкнулся с интерполяцией значений в Ревите

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

А тут делаю Вальтековский балансир, и у него есть таблица с шагом 5, от 0 до 99. И вот промежуточные значения вычисляются интерполяцией, шаг — 1. То есть по сути тут 99 вариантов для каждого диаметра.

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

Но потом подумал: ну хорошо, сделать в Экселе слишком трудозатратно, а что, если сделать тот же расчёт, но в Ревите?

Для этого мне нужны:
— значение фактической пропускной способности, это легко, параметр расхода есть, требуемый перепад пользователь тоже в параметр вобьёт;

— значение табличной пропускной способности снизу и сверху. То есть, если фактическая пропускная способность 2,28, то надо взять из таблицы ближайшее большее и меньшее значения, а также обороты для них. Для примера пусть это будут 2,21 и 2,37, а обороты 30 и 35;

— значения оборотов снизу и сверху, это уже упомянул выше.

В результате можно простой арифметикой посчитать значение для оборотов: 30 + (2,28 - 2,21) × (35 - 30) / (2,37 - 2,21) = 32.1875, или 32. Получаю обороты искомые. Правда, надо уточнить, тут округлять вверх или можно вниз до целых.

Вся загвоздка в том, как получить значения снизу и сверху. На самом деле, это делается относительно легко. Нам нужно сделать таблицу выбора на все значения для каждого диаметра: пропускная способность — обороты. А далее формулой для таблицы выбора получать значения пропускной способности для каждого табличного значения оборотов. И обороты указывать не из переменной, а прямо числами: 1, 2, 3, ...

В итоге мы можем обычным сравнением получить значение сверху. Если при оборотах 1 табличная пропускная способность больше, чем фактическая, то у нас 1 оборот. Если меньше, то идём далее на обороты 2. И вот так перебором по порядку получаем значение сверху.

Для значения снизу нужно идти в обратном порядке, от максимальных оборотов до минимальных. Если при оборотах 99 табличное значение меньше фактического, то обороты 99. Если нет, то спускаемся ниже на 95, 90 и так далее. Как только условие выполнилось — мы получили наше значение снизу.

Ну а дальше арифметика. В создании таких длинных формул отлично помогает Эксель.
👍6🔥3🤯211👏1🐳1🗿1
Кидайте ссылки на трек, который вы последним добавили в избранное (поставили лайк).

https://music.yandex.ru/album/31421647/track/126459937?utm_medium=copy_link
🔥42👎1🤝1
Ну чё, ребята, работаете? Устали? Потерпите, скоро новый год.
👍96🔥3
Ребята, а кто-нибудь щас находится в помещении со стальными панельными радиаторами? Мне нужны реальные размеры.

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


Всё, всем спасибо за отклик!
Вот так нужно писать формулы в Ревите.
👍10🌚4👨‍💻2💯1
Не бывает много вложенных ☝️

Бывает много недовложенных 🧐
💯5🙊3👍2🤯2
Потому что могу.
🔥38👏1