перед вопросом опишу сам принцип работы команд, как я их понимаю (возможно и не правильно понимаю
)
принцип работы TRIMдля объекта вызывается Class::intersectWith, потом полученные точки точно садят на траекторию через Class::getClosestPointTo/Class::getParamAtPoint/Class::getPointAtParam и т.д. и т.п.
дальше полученные точки передаются в отработку Class::getSplitCurves, где создаются несколько объектов из кусков начального объекта по указанным точкам.
всё. команда закончена, но, т.к. создавались объекты через "new" но акад производит их принудительную перерисовку.
принцип работы EXTENDдля объекта вызывается Class::intersectWith с параметром "улинняй объект"
дальше полученная точка передается в Class::extend
Acad::ErrorStatus CAcDbCurveText::extend(Adesk::Boolean extendStart, const AcGePoint3d &toPoint)
{
assertReadEnabled();
Acad::ErrorStatus es = Acad::eAmbiguousInput;
if (m_pCurve != NULL)
{
es = m_pCurve->extend(extendStart, toPoint);
}
return es;
}
возврат из неё Acad::eOk. всё хорошо, вот только объект принудительно не перерисовывается. и даже нет входа в subWorldDraw
отрисовка становится правильной если поменять свойства объекта через окно свойств, перетянуть узловую точку или просто вызвать регенерацию чертежа. но хочется ведь чтоб сразу всё было, без танцев с бубном
.
что это может быть? объект наследник от AcDbCurve.