Создание привязки в API приложении

Автор Тема: Создание привязки в API приложении  (Прочитано 3815 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн LiubavaАвтор темы

  • ADN OPEN
  • Сообщений: 5
  • Карма: 0
Добрый вечер!
Столкнулась с такой проблемой: есть код, который привязывает цилиндр к отверстию, все работает. Что в нем необходимо изменить, чтобы второй цилиндр он привязывал ко второму отверстию? Сейчас он привязывает его тоже к первому.
Заранее спасибо
Сборка, код VS и скрины прилагаются

Оффлайн R.I.Chernov

  • ADN Club
  • *****
  • Сообщений: 568
  • Карма: 18
Re: Создание привязки в API приложении
« Ответ #1 : 10-11-2016, 12:34:10 »
Сейчас он привязывает его тоже к первому.
Добрый день. Сразу скажу, что я не работал с программным созданием привязок, быть может мое мнение не будет достаточно квалифицированным. Мое замечание такое: почему вы решили, что один и тот же код будет приводить к разным результатам? Когда вы перебираете поверхности, а затем ребра в них (для поиска нужной вам поверхности), вы всегда получаете ссылку на одну и ту же поверхность. Т.е. в моем понимании это выглядит так: сначала в переборе поверхностей ваш код находит цилиндрическую поверхность второго (нужного вам отверстия), проверяет, что ребро имеет тип kCircleCurve, и присваивает верную ссылку "oCylAxis2=oFace". Но дальше код продолжает перебор, где неминуемо отыскивает поверхность первого отверстия (то к которому в итоге вы привязываетесь) и переписывает ссылку "oCylAxis2=oFace" на поверхность данного отверстия.
П.С. Если подытожить, то, на мой взгляд, для решения задачи, вам следует ввести объект "oCylAxis3" и изменить код перебора, чтобы найдя первую цилиндрическую поверхность он присваивал ссылку "oCylAxis2=oFace", а далее, найдя вторую цилиндрическю поверхность ссылку "oCylAxis3=oFace".
П.П.С. обратите внимание, что нижняя часть вашей детали, имеет цилиндрическую форму, т.е. в детали существует три поверхности, ребро которых имеет тип kCircleCurve. И, теоретически, ваш перебор может привязывать деталь-цилиндр и к нижнему полукругу вашей главной детали. Как мне видится, вам нужно опытным путем определить индексы нужных вам поверхностей в коллекции, и привязываться напрямую по ним, без перебора. Если вы не будете менять главную деталь, то, как мне кажется, индексы поверхностей в коллекции останутся неизменными.
В программировании я новичок...но ненадолго! ;)