Я чувствую, что тебе уже пора начать самостоятельно искать ошибки в твоей программе. Для этой цели есть отладчик в Visual Studio. Ну и как минимум ты должен начать понимать в каких методах твоего кода может возникать ошибка.
Проблема с тем, что у меня возникает много вопросов связана с тремя вещами:
1. Мало "эталонных" примеров или описанных "техник" того, как стоит писать классы отрисовки, методы и вообще, как проектировать с архитектурной точки зрения подобные вещи.
2. Примеров в SDK всё же малова-то, как собственно и книг по этому направлению, и комьюнити тоже достаточно небольшое, это всё же не библиотека Qt какая-нибудь.
3. Как начинающий в данном вопросе я стараюсь как могу, вынужден изобретать велосипеды и по началу писать изначально что-то неверно, что тянет за собой более глубокие ошибки.
Поверьте отладчиком пользуюсь, иначе не двигался бы вперёд. Стараюсь обращаться только тогда, когда реально либо затык полный, либо что-то ну никак не могу нормально перевести в документации.
Ты задаёшь вектор оси болта (m_vecU) при помощи вызова m_pBoltObj->setOrient(m_vec); А кто за тебя будет задавать вектор m_vecV? В случае 90 и 270 градусов у тебя m_vecU совпадает с m_vecV и соответственно векторное произведение m_vecU.crossProduct(m_vecV) даёт нулевой вектор. Вот у тебя болт и "схлопывается". Так что не поленись в BoltJig::update() устанавливать и m_vecV.
Совершенно забыл, что в setOrient меняю направление только одного вектора, даже не заглядывал в него уже, и от того, думая, что и m_vecV меняется, не мог понять в чём дело, дебажить с заходом в Каждый саамый мелкий метод порой стоит, да .... Ошибка оказалась совершенно дебильная, извиняюсь, что сам за собой недоглядел.
Кто тебе сказал что одновременно можно запрашивать и угол и расстояние? Для этой цели обычно используют запрос точки (с указанием базовой точки). А так как сделал ты - так делать нельзя.
Никто и не говорил, разбираюсь во всём самостоятельно, тут действовал по принципу "Попробую, вдруг заработает...". Буду иметь ввиду про базовуб точку, спасибо.
Зачем хранить все точки болта, записывать их в методе Bolt::dwgOutFields и считывать их в Bolt::dwgInFields, если ты их всё-равно каждый раз пересчитываешь? Максимально упрости и почисть код.
Я уже увидел в SDK более менее нормальный пример по этой части ( а именно в ...\Autodesk\Autodesk_ObjectARX_2017_Win_64_and_32_Bit\samples\com\AsdkSquareWrapper_dg\Square в файлах squarent.cpp и squarent.h), и судя по увиденному, массивы точек задаются прямо внутри методов класса, все перерасчёты производятся относительно каких-то базовых "опорных" для объекта точек и расстояний, а массивы точек каждый раз используются уже именно в самих методах и не хранятся в самом классе, если я верно уловил идею примера из SDK, и вашего комментария про "плохой код" и принцип того как надо производить обсчёт объекта.