Создание вида чертежа с модели в API7

Автор IgorRUtver, 22.11.13, 15:44:13

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

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

IgorRUtver

Здравствуйте. Захотел создать виды с модели через API7, что-то получилось но работает крайне криво. Создает вид спереди и проекцию, а как создать вид слева к примеру, справа, изометрию, не могу понять. Вот что есть.
var
   newKompasAPI : IApplication;
   disp : IDispatch;
   pDocuments : iDocuments;
   pDocument : IKompasDocument;
   pKompasDocument2D : IKompasDocument2D;
   pViewsAndLayersManager : IViewsAndLayersManager;
   pViews : IViews;
   pView : IView;

begin
     disp := IDispatch( CreateKompasApplication );
     newKompasAPI := disp As IApplication;
     pDocuments := newKompasAPI.Documents;
     pDocument := pDocuments.Add(1,true);//(doc tupe,visible-regim)
     pKompasDocument2D :=  pDocument as iKompasDocument2D;
     pViewsAndLayersManager := pKompasDocument2D.ViewsAndLayersManager;
     pViews := pViewsAndLayersManager.Views;
//Дальше хуже, создать вид с модели получилось ток через
            pViews.AddStandartViews(OpenFile,'ff',VIEW_UP,0,0,1,10,10);
//В SDK ничего понять ничего не смог про входные параметры
end;
Создает вид спереди и проекцию сверху, как не пытался поменять параметры, ни изометрии, ни видов справа и слева не выводит
Подскажите как быть

#1
Var
Air:OleVariant;
begin
    Air:=VarArrayCreate([0,2],varInteger);
    if(VarType(Air)=(VT_ARRAY or VT_I4))then
     begin
        Air[0]:=vp_Front;
        Air[1]:=vp_Up;
        Air[2]:=vp_Left;
        pViews.AddStandartViews(OpenFile,'ff',Air,0,0,1,10,10);
        VariantClear(Air);
     end;
end;
У Вас не заполнен ProjectionsTypes - массив SAFEARRAY VT | VT_I4 типов проек­ций.
+ Благодарностей: 1

IgorRUtver

Ух, а я как не изворачивался, но SDK ничего не выдал про этот массив(( Спасибо большое, щас опробую.

Дмитрий22

Добрый день!
Пытаюсь воспользоваться командой AddStandartViews
int  ARR = new int[3] { 2, 4, 6 };
IKompasDocument doc2D = appl.Documents.Add(DocumentTypeEnum.ksDocumentDrawing, true);
IKompasDocument2D doc2DT = (IKompasDocument2D)doc2D;
IViews ivs = doc2DT.ViewsAndLayersManager.Views;
ivs.AddStandartViews(file, "ff", ARR, 0, 400, 0.25, 10, 10);
AddStandartViews создает аж 4 вида, причем вид спереди непременно присутствует.
Если массив установить массив ARR = new int[3] { 1, 3, 5 }, то все нормально, создает 3 вида.
Доходит до смешного, устанавливаю  ARR = new int[1] { 2 }, все равно создает вид спереди и вид сзади.
Вопрос: Как избавится от вида спереди?? Он мне не нужен!