увы, но ни ads_regen ни acedUpdatedisplay не помогли. в модели получалось, что слетал визуальный стиль (ну как слетал. он то оставался тем же, только возвращался после mousewheel. лениво было хакать это дело). и еще само новое положение пск было расположено рандомно (хоть привязка к нулю и стояла. верней, сам череж улетал от нуля) до тех пор, пока не начинал рисовать что-либо. а в листе - сам лист улетал (белый прямоугльник листа). да это легко проверить. убейте всё что идет после
es = acedSetCurrentUCS(matUcs); и получите тот же результат.
и вся беда была завязана на
AcGsView * view = acgsGetGsView(cvport.resval.rint, true);. а т.к. параметры для установки пск по виду берутся из AcGsView, то по другому даже и пытаться не стал делать. можно было б и по другому. "рисовать" вектора горизонтальный и вертикальный в экранных координатах, потом переносить их начало в текущее начало координат, лепить матрицу. но я пошел путем AcGsView.
потом полазил по adn-овскому сайту и нашел строки
... This is a limitation of AcGsView that is generated from the acgsGetGsView(). The view parameters are calculated properly, but the view is not updated by the setView(), update() and acgsSetViewParameters(). Nor will it be updated by acedUpdateDisplay(). Therefore, the workaround is to calculate the view window client area size and move the window just slightly to force AutoCAD to update the paper space viewport.ну и к строкам был еще исходный код. чуток переделал под себя, вставил и начало работать