Как выровнять расстояние между элементами
Главная › Форумы › Задать вопрос › Как выровнять расстояние между элементами
- В этой теме 23 ответа, 4 участника, последнее обновление 7 лет, 7 месяцев назад сделано txt.
-
АвторСообщения
-
Хорошо) как что-то получится отпишусь…
Суровый Legantmar, суров. Но справедлив. Конечно лучше подтолкнуть человека к решению задачи, чем решить за него.
Сам недавно похожим озадачился, найти ближайшую к элементу ось.
Получается что-то такое же. Берём все оси и элемент, кординаты от всех, вычитаем из координат элемента, координаты осей, отрицательные значения переводим в положительные и смотрим самое меньшее, а по его фильтру уже отфильтровываем исходный список осей.
Всё так?
п.с. просто долго писал пост.
п.с.с. и фокус в том, что всё это должно срабатывать, только если элемент не пересекает буквенную, или цифровую ось, и для каждого из вариантов свой if. А тут уже без питона сложно, но вроде ещё можно.
Итак, пока что удалось выровнять трубы, параллельные оси Y (аналогично делается и для труб параллельных оси Х). Принцип такой: если линии параллельны оси Y то мы имеем одинаковые координаты Х точек начала и конца для последовательно расположенных параллельных труб (точнее их осевых линий) . Далее находим расстояние между началом координат и до указанных линий S , сортируем линий в порядке возрастания относительно S. Линия с минимальным значением S соответствует ближайший ко оси Y трубе (могу ошибаться, но начало координат должно совпадать с пересечением крайних левых и нижних осей координат проекта), то есть это крайняя левая труба. Эту трубу оставляем на месте, остальным трубам задаем приращение относительно этой трубы , при этом значения координат точек линий начало и конца Y, Z, оставляем без изменения, а равномерное приращение dХ относительно 1 трубы задаем сами:
Пока не знаю как аналогичным способом задать определенное равное расстояние между параллельными трубами, находящимися под углом к осям Х, Y.
Здесь вышеописанным способом , по понятным причинам, сделать не получится. Думаю решение должно быть примерно такое: необходимо найти расстояние перпендикуляра между началом координат и осями труб.
Как в Динамо “кликнуть” по параметру “EQ” (равномерное присвоение размеров в цепочке) при нанесении размеров между элементами в Ревит?
Спасибо.
Открытая транзакция – это когда выбираем элемент вручную в документе Ревит? Потому как только так получается поставить EQ на созданной в Динамо размерной цепочке…
транзакция – это разрешение на изменение в базе данных проекта (она открывается и закрывается)
для простых операций она чаще всего не требуется (например, внести данные в параметр элемента),
но в некоторых случаях, например, удаление или создание элемента (или изменение каких-то особых параметров или свойств) она нужна (это как бы дополнительное подтверждение: “Вы точно хотите изменить что-то важное!?”)вторую часть вопроса не понял. Ты создал многосегментный размер (размерную цепочку) в dynamo, но не можешь выбрать EQ ?
возможно это связано с тем, что ноды выполняются “одновременно” и нет задержки между созданием размера и изменением его свойств (как это возможно, если он не успел еще создаться, к примеру)Следующая попытка выравнивания элементов с заданным расстоянием между ними (работает и с наклонной геометрией). Legantmar, можно взглянуть на твой скрипт из Ответа #5299 текущей темы?
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.