Заметил ещё одну важную деталь.
Для конкретного случая в примере все верно, но если предположить, что
ручек в подобъекте будет более двух (скажем N), то в методе subMoveGripPointsAtSubentPaths в коллекции gripAppData будет не одна, а N - 1 ручка
и, соответственно, код будет прерываться на проверке
int n = gripAppData.length();
if (n > 1) return Acad::eOk;
Лучше эту проверку убрать, а в методе subGetGripPointsAtSubentPath вернуть как было в первом варианте
Acad::ErrorStatus AsdkSliderCrank::subGetGripPointsAtSubentPath(const AcDbFullSubentPath & path, AcDbGripDataPtrArray & grips, const double curViewUnitSize, const int gripSize, const AcGeVector3d & curViewDir, const int bitflags) const
{
assertReadEnabled();
idxGrips = -1;
...
}
Вообще, интересно было бы узнать мнение разработчиков, почему при выборе subentity его ручки становятся все выделенными (красными).
Может быть у них для этого предусмотрено как сделать их не выделенными, или это всё-таки БАГ?