Штриховка в AutoCad средствами C++ Builder
Пишу программу, позволяющую работать в AutoCad.
Подключился к Автокаду, рисую примитивы, но споткнулся на штриховке
Требуется нарисовать окружность и залить ее. Окружность создается, но не заливается.
Код:
Variant OuterLoop;
IAcadHatch * Hatch;
IAcadAcCmColor * Color1;
IAcadAcCmColor * Color2;
int BoundsA[2]={0,2};
FirstPoint = VarArrayCreate(BoundsA,1,varDouble);
FirstPoint.PutElement(0.0,0);
FirstPoint.PutElement(0.0,1);
FirstPoint.PutElement(0.0,2);
int Bounds[]={0};
OuterLoop= VarArrayCreate(Bounds,1, varDispatch);
OuterLoop=AcadDocument1->ModelSpace->AddCircle(FirstPoint,100);
Hatch =AcadDocument1->ModelSpace->AddHatch (acPreDefinedGradient, WideString("LINEAR"), True, Variant(acGradientObject));
Color1=Hatch ->GradientColor1;
Color1->SetRGB(200,50,200);
Hatch->GradientColor1=Color1;
Color2=Hatch->GradientColor2;
Color2->SetRGB(0,250,0);
Hatch->GradientColor2=Color2;
Hatch->AppendOuterLoop(OuterLoop);
Hatch->Evaluate();
AcadDocument1->Application->Update();
IAcadHatch * Hatch;
IAcadAcCmColor * Color1;
IAcadAcCmColor * Color2;
int BoundsA[2]={0,2};
FirstPoint = VarArrayCreate(BoundsA,1,varDouble);
FirstPoint.PutElement(0.0,0);
FirstPoint.PutElement(0.0,1);
FirstPoint.PutElement(0.0,2);
int Bounds[]={0};
OuterLoop= VarArrayCreate(Bounds,1, varDispatch);
OuterLoop=AcadDocument1->ModelSpace->AddCircle(FirstPoint,100);
Hatch =AcadDocument1->ModelSpace->AddHatch (acPreDefinedGradient, WideString("LINEAR"), True, Variant(acGradientObject));
Color1=Hatch ->GradientColor1;
Color1->SetRGB(200,50,200);
Hatch->GradientColor1=Color1;
Color2=Hatch->GradientColor2;
Color2->SetRGB(0,250,0);
Hatch->GradientColor2=Color2;
Hatch->AppendOuterLoop(OuterLoop);
Hatch->Evaluate();
AcadDocument1->Application->Update();
Вердикт: C++Builder плохо заточен для решения подобных задач (или мне еще учиться и учиться....).
Очень жаль... Попробую разобраться. Какая хоть версия Builder C++?
Советую не мучиться, а поставить Delphi 7. Много примеров и уроков в сети. По началу малость не привычно, а потом втягиваешься. И интерфейс похож. Все классно работает. Буквально за сегодня написал приложение экспорта из своей программы (кстати на С++Builder 6 написанной) , около 1000 строк кода и все работает!