GetViewProjectionCollection в компас 17

Автор SerGoVec, 06.03.18, 15:13:07

« назад - далее »

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

SerGoVec

Всем привет!

В компас 16 можно было получить указатель на интерфейс массива проекций отображения модели (ksViewProjectionCollection), и соответсвенно, поменять проекцию отображения модели в окне.
Я делал это так:

        ...
        doc7 := K7.ActiveDocument as IKompasDocument3D;
        if doc7 = nil then
          Exit;

        doc5 := ksDocument3D(K5.ActiveDocument3D); //управление и уничтожение документом перешло сюда.
        doc5.hideAllAuxiliaryGeom := True;

        vpc := ksViewProjectionCollection(doc5.GetViewProjectionCollection());
        pc := ksViewProjection(vpc.GetByIndex(10));      //vp_Dio 10 Диметрия
        pc.SetCurrent;
        ...


В 17 версии компаса, строка: ...ksViewProjectionCollection(doc5.GetViewProjectionCollection())... получает указатель = nil.
Как теперь, в 17 версии компаса, получить коллекцию проекций отображения модели??

Нормально в v17 получаю коллекцию.

SerGoVec

я немного неправильно выразился: не указатель самой строки ...vpc := ksViewProjectionCollection(doc5.GetViewProjectionCollection());..., а ...doc5.GetViewProjectionCollection()... будет nil.
Мне кажется, что указатель vpc := ksViewProjectionCollection(doc5.GetViewProjectionCollection()); типа фиктивный.
Как считаете?

По индексу, получать не факт, что там именно то.
+ Благодарностей: 1

333

В V17 изменился список проекций
Новое перечисление ksViewProjectionType
Изометрия теперь одна ksVPIsometric = 7
ksVPDimetric   = 8



Цитата: 333 от 26.03.18, 18:53:48
В V17 изменился список проекций
Новое перечисление ksViewProjectionType
Изометрия теперь одна ksVPIsometric = 7
ksVPDimetric   = 8
Русская рулетка.