Сделал крутой интерфейс в семействе, рассказываю.
Часть 1.
Батя в здании, так что давайте потише, буду делиться мудростью седин и жопных просижней.
Вот у нас есть радиаторный регулятор. Это отдельное семейство, не встроенное, ну потому что вот есть заказ на такое семейство. Видимо, его тоже куда-то к коллекторам подключают, не суть. Главное, что это отдельное семейство со своими настройками.
Что с ним можно делать? Идём по порядку. Пользователь его будет подключать. Поскольку это отдельное семейство и это радиаторный клапан, то логично, что чаще всего его будут ставить на радиаторы, а не на коллекторы. Поэтому точкой вставки выбираю наружную резьбу, чтобы сразу подключать его в радиатор. Для этого никакие плагины не нужны: назначил системы радиаторы, подтащил клапан, жмяк по пустому месту, он сам напрыгнет на радиатор и подключится.
Если надо будет подключить к коллектору, то тут уже придётся ставить в воздух, а потом тащить за соединитель. Ну или плагином подключаться, не буду говорить, что это можно сделать МодПлюсом, а то снова будут говорить, что Пекшев у меня рекламу покупает. Ну а почему бы и не купить рекламу в канале на 400 человек, очень выгодно, конечно.
Итак, вот подключили клапан к радиатору. Всё бы хорошо, но никто не делает точку подключения на радиаторе внутри радиатора. И это правильно, незачем это дополнительное усложнение геометрии. Но тем не менее клапан будет торчать некрасиво на всю длину резьбы.
У меня есть манифест, где я рассказываю, как надо делать семейства, в том числе про размещение соединителей на резьбе. В частности, для внутренней надо размещать внутри и потом дать возможность управлять глубиной заложения, а для наружной резьбы всегда размещать только на конце резьбы без управления длиной резьбы.
Но вот в случае с радиаторами можно сделать исключение. Либо сразу моделировать резьбу укороченной, там будет вкручиваться ну 10-15 мм, вряд ли сильно больше. Поэтому можно сделать укороченной сразу. Либо дать пользователю самому выбрать укорачивание резьбы на ту длину, что вкрутится в радиатор. В тесных узлах в нишах даже эти миллиметры могут быть важны, там же ещё надо вкрутить фитинг для перехода на трубу, он тоже занимает место.
Поэтому в этом семействе пошёл именно по второму пути, когда даю пользователю возможность укорачивать резьбу от 0 мм до полной длины резьбы. При этом получается, что геометрия резьбы может укоротиться до нуля, что невозможно. Это обхожу тем, что назначаю рабочую плоскость для выдавливания и начало выдавливания фиксирую на -1 мм. Таким образом длина выдавливания всегда будет не менее 1 мм.
Подключили клапан. Дальше у него есть настройка. У клапана есть обороты, их выставляют шестигранным ключом. В зависимости от оборотов меняется пропускная способность, сколько воды пойдёт через клапан. Её можно вычислить через расход воды и через потери давления на клапане. Сами потери мы посчитать не можем внутри семейства, это результат гидравлического расчёта, откуда мы получаем требуемый перепад давления на приборе.
Сам радиатор мало чего теряет, поэтому надо его «поджать», чтобы не вся вода шла через него, а только нужный расход. В интерфейсе для этого у нас по сути два варианта: выбрать обороты самим или подобрать автоматически по расходу и требуемым потерям.
Но никогда не знаешь, что там будет в системе, будет ли она собрана так, что в ней посчитается расход. Соответственно возникает вилка: либо расход придёт с радиатора, либо пользователю надо вводить его вручную. Поэтому добавляю параметр расхода пользовательский. Отдельно делаю параметр расхода из сети, именно его повешу на соединитель клапана. Если расход пользовательский больше нуля, то есть человек сознательно ввёл значение, то учитывается пользовательский расход.
Часть 1.
Батя в здании, так что давайте потише, буду делиться мудростью седин и жопных просижней.
Вот у нас есть радиаторный регулятор. Это отдельное семейство, не встроенное, ну потому что вот есть заказ на такое семейство. Видимо, его тоже куда-то к коллекторам подключают, не суть. Главное, что это отдельное семейство со своими настройками.
Что с ним можно делать? Идём по порядку. Пользователь его будет подключать. Поскольку это отдельное семейство и это радиаторный клапан, то логично, что чаще всего его будут ставить на радиаторы, а не на коллекторы. Поэтому точкой вставки выбираю наружную резьбу, чтобы сразу подключать его в радиатор. Для этого никакие плагины не нужны: назначил системы радиаторы, подтащил клапан, жмяк по пустому месту, он сам напрыгнет на радиатор и подключится.
Если надо будет подключить к коллектору, то тут уже придётся ставить в воздух, а потом тащить за соединитель. Ну или плагином подключаться, не буду говорить, что это можно сделать МодПлюсом, а то снова будут говорить, что Пекшев у меня рекламу покупает. Ну а почему бы и не купить рекламу в канале на 400 человек, очень выгодно, конечно.
Итак, вот подключили клапан к радиатору. Всё бы хорошо, но никто не делает точку подключения на радиаторе внутри радиатора. И это правильно, незачем это дополнительное усложнение геометрии. Но тем не менее клапан будет торчать некрасиво на всю длину резьбы.
У меня есть манифест, где я рассказываю, как надо делать семейства, в том числе про размещение соединителей на резьбе. В частности, для внутренней надо размещать внутри и потом дать возможность управлять глубиной заложения, а для наружной резьбы всегда размещать только на конце резьбы без управления длиной резьбы.
Но вот в случае с радиаторами можно сделать исключение. Либо сразу моделировать резьбу укороченной, там будет вкручиваться ну 10-15 мм, вряд ли сильно больше. Поэтому можно сделать укороченной сразу. Либо дать пользователю самому выбрать укорачивание резьбы на ту длину, что вкрутится в радиатор. В тесных узлах в нишах даже эти миллиметры могут быть важны, там же ещё надо вкрутить фитинг для перехода на трубу, он тоже занимает место.
Поэтому в этом семействе пошёл именно по второму пути, когда даю пользователю возможность укорачивать резьбу от 0 мм до полной длины резьбы. При этом получается, что геометрия резьбы может укоротиться до нуля, что невозможно. Это обхожу тем, что назначаю рабочую плоскость для выдавливания и начало выдавливания фиксирую на -1 мм. Таким образом длина выдавливания всегда будет не менее 1 мм.
Подключили клапан. Дальше у него есть настройка. У клапана есть обороты, их выставляют шестигранным ключом. В зависимости от оборотов меняется пропускная способность, сколько воды пойдёт через клапан. Её можно вычислить через расход воды и через потери давления на клапане. Сами потери мы посчитать не можем внутри семейства, это результат гидравлического расчёта, откуда мы получаем требуемый перепад давления на приборе.
Сам радиатор мало чего теряет, поэтому надо его «поджать», чтобы не вся вода шла через него, а только нужный расход. В интерфейсе для этого у нас по сути два варианта: выбрать обороты самим или подобрать автоматически по расходу и требуемым потерям.
Но никогда не знаешь, что там будет в системе, будет ли она собрана так, что в ней посчитается расход. Соответственно возникает вилка: либо расход придёт с радиатора, либо пользователю надо вводить его вручную. Поэтому добавляю параметр расхода пользовательский. Отдельно делаю параметр расхода из сети, именно его повешу на соединитель клапана. Если расход пользовательский больше нуля, то есть человек сознательно ввёл значение, то учитывается пользовательский расход.
Об этом пользователь может узнать из инструкции, которую читать не будет, конечно же. Новички делают херню, потому что не понимают, как что работает, просто натыкивают элементы и идут дальше, а старички уверены, что и так всё знают и понимают, поэтому натыкивают элементы и идут дальше. Пусть идут все дружно.
👍10
Часть 2.
Чтобы инициировать подбор автоматически, нужно включить галочку в параметра. До этого обороты указываются вручную. Kv для подбора посчитается сам, если перепад давления больше нуля. Ну а дальше формулами подбираю ближайшее больше значение пропускной способности у клапана. Формула определяет количество оборотов, по оборотам уже подбирается пропускная способность, а по ней — фактические потери давления на клапане.
В Ревите ограниченный набор типов параметров, поэтому приходится обходиться той беднотой, что есть. Для оборотов, так как это фиксированный список значений, выбираю выпадающий список. Числовые параметры делать — это зашквар для лохов. Если параметров до 10, то надо делать выпадающие списки. Если больше — можно числа, потому что выпадающий список будет уже слишком длинным. Тут уже удобно сделать не получится. В идеале это был бы ползунок с заданным шагом, но у нас такого нет в интерфейсе.
Тем не менее, вот есть два алгоритма, ручной и полуавтоматический, пользователь сам может выбирать, что ему подходит. Если вся гидравлика посчитана в стороннем ПО и на руках есть значения оборотов, то быстрее навыбирать в выпадающих списках значения оборотов. Если есть только перепад давления, то можно воспользоваться автоматическими расчётами, но перепад всё равно надо вбить руками. Тут уж ничего не поделать, что-то вбить придётся руками, в семействе всего не автоматизировать.
Делайте красиво и удобно. Говно и без вас кто-нибудь сделает.
Чтобы инициировать подбор автоматически, нужно включить галочку в параметра. До этого обороты указываются вручную. Kv для подбора посчитается сам, если перепад давления больше нуля. Ну а дальше формулами подбираю ближайшее больше значение пропускной способности у клапана. Формула определяет количество оборотов, по оборотам уже подбирается пропускная способность, а по ней — фактические потери давления на клапане.
В Ревите ограниченный набор типов параметров, поэтому приходится обходиться той беднотой, что есть. Для оборотов, так как это фиксированный список значений, выбираю выпадающий список. Числовые параметры делать — это зашквар для лохов. Если параметров до 10, то надо делать выпадающие списки. Если больше — можно числа, потому что выпадающий список будет уже слишком длинным. Тут уже удобно сделать не получится. В идеале это был бы ползунок с заданным шагом, но у нас такого нет в интерфейсе.
Тем не менее, вот есть два алгоритма, ручной и полуавтоматический, пользователь сам может выбирать, что ему подходит. Если вся гидравлика посчитана в стороннем ПО и на руках есть значения оборотов, то быстрее навыбирать в выпадающих списках значения оборотов. Если есть только перепад давления, то можно воспользоваться автоматическими расчётами, но перепад всё равно надо вбить руками. Тут уж ничего не поделать, что-то вбить придётся руками, в семействе всего не автоматизировать.
Делайте красиво и удобно. Говно и без вас кто-нибудь сделает.
👍9
Forwarded from Блог Муратова про Revit MEP
This media is not supported in your browser
VIEW IN TELEGRAM
Показываю, как работает клапан с радиаторами.
👍11
Столкнулся с интерполяцией значений в Ревите
Делаю я ручной балансировочник, у него есть обороты рукоятки. Что-то похожее уже делал для Ридановской балансировочной арматуры, но там задача была проще: был стандартный список значений от 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 и так далее. Как только условие выполнилось — мы получили наше значение снизу.
Ну а дальше арифметика. В создании таких длинных формул отлично помогает Эксель.
Делаю я ручной балансировочник, у него есть обороты рукоятки. Что-то похожее уже делал для Ридановской балансировочной арматуры, но там задача была проще: был стандартный список значений от 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🤯2❤1✍1👏1🐳1🗿1
Кидайте ссылки на трек, который вы последним добавили в избранное (поставили лайк).
https://music.yandex.ru/album/31421647/track/126459937?utm_medium=copy_link
https://music.yandex.ru/album/31421647/track/126459937?utm_medium=copy_link
Yandex Music
Сколько стоят деньги?
🔥4❤2👎1🤝1
Дочери нравится анекдот, который я придумал:
«Идёт Обама по России. Видит — подъезд. Зашёл в него и насрал».
Смех, радость, счастье.
«Идёт Обама по России. Видит — подъезд. Зашёл в него и насрал».
Смех, радость, счастье.
🔥11🗿7😢1
Обучаю щас небольшую группу. И это как раз тот случай, почему я ушёл из консалтинга, почему больше не читаю курсы.
Я обучаю работать в Ревите людей, которые путают команды Контрл Ц и Контрл В.
При этом я понимаю, что с вероятностью 99 % они не будут работать в Ревите. Как минимум полноценно, как минимум над созданием семейств. Может, только один человек из четырёх.
В итоге всем мы тратим своё время непонятно на что. Они сидят, потому что руководство сказало, что надо. Я сижу, потому что ещё летом пообещал прочитать этот курс.
Я прям чувствую, как трачу жизнь на какую-то бессмысленную херню. Да, за деньги, но денег бы я и так заработал, а время это я уже не верну. Поэтому больше никакие живые курсы читать не хочу. Либо за много денег, либо только такие курсы, где я сам могу отобрать учеников и буду понимать, что вот эти люди пришли, потому что им интересно и потому что хотят, а не потому что сверху спустили разнарядку.
Я обучаю работать в Ревите людей, которые путают команды Контрл Ц и Контрл В.
При этом я понимаю, что с вероятностью 99 % они не будут работать в Ревите. Как минимум полноценно, как минимум над созданием семейств. Может, только один человек из четырёх.
В итоге всем мы тратим своё время непонятно на что. Они сидят, потому что руководство сказало, что надо. Я сижу, потому что ещё летом пообещал прочитать этот курс.
Я прям чувствую, как трачу жизнь на какую-то бессмысленную херню. Да, за деньги, но денег бы я и так заработал, а время это я уже не верну. Поэтому больше никакие живые курсы читать не хочу. Либо за много денег, либо только такие курсы, где я сам могу отобрать учеников и буду понимать, что вот эти люди пришли, потому что им интересно и потому что хотят, а не потому что сверху спустили разнарядку.
👍37💯13❤8