Как выровнять расстояние между элементами

Главная Форумы Задать вопрос Как выровнять расстояние между элементами

Просмотр 9 сообщений - с 16 по 24 (из 24 всего)
  • Автор
    Сообщения
  • #5300 Score: 0
    txt
    Модератор
    86 pts

    Хорошо) как что-то получится отпишусь…

    #5313 Score: 0
    Alex Babinoff
    Модератор
    13 pts

    Суровый Legantmar, суров. Но справедлив. Конечно лучше подтолкнуть человека к решению задачи, чем решить за него.

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

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

    Всё так?

    п.с. просто долго писал пост.

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

    #5315 Score: 1
    Khasan Mamaev
    Модератор
    187 pts

    есть хороший стандартный нод Geometry.DistanceTo с его помощью можно находить кратчайшее расстояние между любой геометрией

    #5325 Score: 0
    txt
    Модератор
    86 pts

    Итак, пока что удалось выровнять трубы, параллельные оси Y (аналогично делается и для труб параллельных оси Х).  Принцип такой: если линии параллельны оси Y то мы имеем одинаковые координаты Х точек начала и конца для последовательно расположенных параллельных труб (точнее их осевых линий) . Далее находим расстояние между началом координат и до указанных линий S , сортируем линий в порядке возрастания относительно  S. Линия  с минимальным значением S соответствует ближайший ко оси Y трубе (могу ошибаться, но начало координат должно совпадать с пересечением крайних левых и нижних осей координат проекта), то есть это крайняя левая труба. Эту трубу оставляем на месте, остальным трубам задаем приращение относительно этой трубы , при этом значения координат точек линий начало и конца Y, Z, оставляем без изменения, а равномерное приращение dХ относительно 1 трубы задаем сами:

    Чего не удалось:

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

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

     

    #5328 Score: 0
    txt
    Модератор
    86 pts

    Как в Динамо “кликнуть” по параметру “EQ” (равномерное присвоение размеров в цепочке) при нанесении размеров между элементами в Ревит?

    #5329 Score: 1
    Legantmar
    Хранитель
    475 pts

    IN[0] – выбранная размерная цепочка
    команда AreSegmentsEqual управляет режимом EQ и может принимать или выдавать значение Bool (т.е. 1 или 0)
    работает только в открытой транзакции

    #5330 Score: 0
    txt
    Модератор
    86 pts

    Спасибо.

    Открытая транзакция – это когда выбираем элемент вручную в документе Ревит? Потому как только так получается поставить EQ на созданной в Динамо размерной цепочке…

    #5334 Score: 0
    Legantmar
    Хранитель
    475 pts

    транзакция – это разрешение на изменение в базе данных проекта (она открывается и закрывается)
    для простых операций она чаще всего не требуется (например, внести данные в параметр элемента),
    но в некоторых случаях, например, удаление или создание элемента (или изменение каких-то особых параметров или свойств) она нужна (это как бы дополнительное подтверждение: “Вы точно хотите изменить что-то важное!?”)

    вторую часть вопроса не понял. Ты создал многосегментный размер (размерную цепочку) в dynamo, но не можешь выбрать EQ ?
    возможно это связано с тем, что ноды выполняются “одновременно” и нет задержки между созданием размера и изменением его свойств (как это возможно, если он не успел еще создаться, к примеру)

    #5384 Score: 0
    txt
    Модератор
    86 pts

    Следующая попытка выравнивания элементов с заданным расстоянием между ними (работает и с наклонной геометрией). Legantmar, можно взглянуть на  твой скрипт из Ответа #5299 текущей темы?

    Принцип работы 

     

Просмотр 9 сообщений - с 16 по 24 (из 24 всего)
  • Для ответа в этой теме необходимо авторизоваться.