Поиск инстанса в точке

Главная Форумы Python Помогите с питон кодом Поиск инстанса в точке

В этой теме 6 ответов, 6 участников, последнее обновление  Анатолий 3 нед., 2 дн. назад.

Просмотр 7 сообщений - с 1 по 7 (из 7 всего)
  • Автор
    Сообщения
  • #3651 Score: 0

    ИваСерж
    Модератор
    99 pts

    Здравствуйте.
    Задача:
    Есть Семейство1 и Семейство2. Поверх Семейства1 надо вставить Семейства2.
    Для избежания дублирования, провожу проверку, а есть ли уже в точке Семейства1 Семейство2.
    Если семейство уже есть, то ещё раз вставлять туда семейство Семейство 2 не нужно.

    Питоновским кодом сравниваю точки, но они не хотят сравниваться (они ВСЕГДА разные, поскольку сравниваются не общие координаты, а объекты). Я полагаю, что точки взятые из разных семейств, действительно разные, как объекты, несмотря на то, что у них общие координаты. Тогда надо сравнивать по координатам точек.
    Добраться до координат точек пока не удалось. В РевитАпи есть “Propertie” – Coord (Returns the coordinates of the point). Как добраться до этого свойства и сравнить координаты точек?

     

    #3652 Score: 0

    Legantmar
    Хранитель
    451 pts

    а это не подходит?

    UnwrapElement(IN[0]).Location.Point.X

    (X можно заменить на Y или Z) и сравнивать уже значения по каждой из осей координат (и лучше не буквально ==, а с зазором “if (a>b+зазор  and a < с – зазор):”).

    работает с элементами имеющими Location.Point

    например, стена не имеет Location.Point, а имеет Location.Curve (тогда нужно вычислять середину или какую другую точку)

    p.s. про какие семейства идет речь?

    #3653 Score: 0

    Alexandr Popov
    Модератор
    44 pts

    И можно округлять в нужную сторону. Т.е. мол за запасом в 10мм сравнивать положение точек.

    #3654 Score: 0

    ИваСерж
    Модератор
    99 pts

    Спасибо. Сейчас сяду писать код сравнения.
    Как можно судить по предидущим постам, я инженер-электрик. Семейства меня интересуют самые обычные: розетки и выключатели (на основе рабочей плоскости). Точка вставки там присутствует.
    Наши рассуждения меня натолкнули на следущую задачу: автоматически расставлять семейства крепления лотка вдоль “кривой” лотка.

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

    Спасибо за подсказки.

    #3655 Score: 0

    Khasan Mamaev
    Хранитель
    179 pts

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

    #8571 Score: 0

    владимир
    Участник

    Warning: IronPythonEvaluator.EvaluateIronPythonScript operation failed.
    Traceback (most recent call last):
    File “<string>”, line 9, in <module>
    IndexError: index out of range: 1

    #8575 Score: 0

    Анатолий
    Участник
    21 pts

    “index out of range: 1” – на вход ничего не подано, а нужно в IN[0] – ForceChildrensEval, в IN[1] – список точек.

Просмотр 7 сообщений - с 1 по 7 (из 7 всего)

Для ответа в этой теме необходимо авторизоваться.