Здравствуйте. Захотел создать виды с модели через 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;
Создает вид спереди и проекцию сверху, как не пытался поменять параметры, ни изометрии, ни видов справа и слева не выводит
Подскажите как быть
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 типов проекций.
Ух, а я как не изворачивался, но SDK ничего не выдал про этот массив(( Спасибо большое, щас опробую.
Добрый день!
Пытаюсь воспользоваться командой 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 }, все равно создает вид спереди и вид сзади.
Вопрос: Как избавится от вида спереди?? Он мне не нужен!