Функция ksRegularPolygon на Delphy 7

Автор seregaa, 02.12.09, 11:17:11

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

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

seregaa

Друзб\ья помогите разобраться с такой фот функцией.. ksRegularPolygon
Может у кого-то есть готовій рабочий код... ????
Буду очень благодарен!!

bergovin

А в чём сложность?
Использовать как с любым примитивом (линией, окружностью..)
Только предварительно нужно заполнить параметры прямоугольника (ksRegularPolygonParam - угол, число вершин... Смотри SDK)

Slaviation

ЦитироватьМожет у кого-то есть готовій рабочий код... ????
Пример макроса КОМПАС-Макро

seregaa

Так дело в том что так и делал .... но выдает ошибку .... !!!!! (да, еще дело в том что это будущий ескиз операции выдавливания)
вот часть кода.....
isketchDocument2D.ksRegularPolygon(iPolygonProperty,0);
ipolygonproperty.count:=3;
ipolygonproperty.xc:=0;
ipolygonproperty.yc:=0;
ipolygonproperty.ang:=0;
ipolygonproperty.radius:=4;
ipolygonproperty.describe:=false;(правда здесь в СДК должно быть либо 0 - вписаный, 1 - описанный)
ipolygonproperty.style:=1;
isketchDef.endedit;

_________________
может что-то не так подскажите !!!! заранее очень благодарен!!!

Maxagg

Вот, читаю многоугольник

      regp1:=ksRegularPolygonParam(kompas.GetParamStruct(ko_RegularPolygonParam));
      ddd1.ksGetObjParam(round(arr1[i,1]),regp1,ALLPARAM);
      ddd1.ksGetObjParam(round(arr1[i,1]),regp1,ALLPARAM);
      memo1.lines.add(regp1.style);
      memo1.lines.add(regp1.xc);
      memo1.lines.add(regp1.yc);
      memo1.lines.add(regp1.count);
      memo1.lines.add(regp1.radius);
      memo1.lines.add(regp1.describe);
      memo1.lines.add(regp1.ang);
      ar1:=ksdynamicarray(regp1.GetPCorner);
      if ar1.ksGetArrayCount<>0 then
      for k:=0 to ar1.ksGetArrayCount-1 do
      begin
        ar1.ksGetArrayItem(k,cornp1);
        memo1.lines.add(cornp1.index);
        memo1.lines.add(cornp1.fillet);
        memo1.lines.add(cornp1.l1);
        memo1.lines.add(cornp1.l2);
      end;

а в вашем случае сначала надо зарегистрировать параметр
      ipolygonproperty:=ksRegularPolygonParam(kompas.GetParamStruct(ko_RegularPolygonParam));
, сделать на него init,
ipolygonproperty.init
добавить параметры,
ipolygonproperty.count:=3;
ipolygonproperty.xc:=0;
ipolygonproperty.yc:=0;
ipolygonproperty.ang:=0;
ipolygonproperty.radius:=4;
а уже потом
isketchDocument2D.ksRegularPolygon(iPolygonProperty,0);

seregaa

Цитата: Максимилиан от 02.12.09, 13:28:10
Вот, читаю многоугольник

      regp1:=ksRegularPolygonParam(kompas.GetParamStruct(ko_RegularPolygonParam));
      ddd1.ksGetObjParam(round(arr1[i,1]),regp1,ALLPARAM);
      ddd1.ksGetObjParam(round(arr1[i,1]),regp1,ALLPARAM);
      memo1.lines.add(regp1.style);
      memo1.lines.add(regp1.xc);
      memo1.lines.add(regp1.yc);
      memo1.lines.add(regp1.count);
      memo1.lines.add(regp1.radius);
      memo1.lines.add(regp1.describe);
      memo1.lines.add(regp1.ang);
      ar1:=ksdynamicarray(regp1.GetPCorner);
      if ar1.ksGetArrayCount<>0 then
      for k:=0 to ar1.ksGetArrayCount-1 do
      begin
        ar1.ksGetArrayItem(k,cornp1);
        memo1.lines.add(cornp1.index);
        memo1.lines.add(cornp1.fillet);
        memo1.lines.add(cornp1.l1);
        memo1.lines.add(cornp1.l2);
      end;

а в вашем случае сначала надо зарегистрировать параметр
      ipolygonproperty:=ksRegularPolygonParam(kompas.GetParamStruct(ko_RegularPolygonParam));
, сделать на него init,
ipolygonproperty.init
добавить параметры,
ipolygonproperty.count:=3;
ipolygonproperty.xc:=0;
ipolygonproperty.yc:=0;
ipolygonproperty.ang:=0;
ipolygonproperty.radius:=4;
а уже потом
isketchDocument2D.ksRegularPolygon(iPolygonProperty,0);


ipolygonproperty:=ksRegularPolygonParam(kompas.GetParamStruct(ko_RegularPolygonParam));
в этом месте выдает ощибку!!! Undeclared identifier

bergovin

Цитата: seregaa от 02.12.09, 13:39:58
[ipolygonproperty:=ksRegularPolygonParam(kompas.GetParamStruct(ko_RegularPolygonParam));
в этом месте выдает ощибку!!! Undeclared identifier
ВЫ наверное забыли объявить ipolygonproperty тип (описать его) или указали не тот

seregaa

Цитата: bergovin от 02.12.09, 13:42:28
Цитата: seregaa от 02.12.09, 13:39:58
[ipolygonproperty:=ksRegularPolygonParam(kompas.GetParamStruct(ko_RegularPolygonParam));
в этом месте выдает ощибку!!! Undeclared identifier
ВЫ наверное забыли объявить и/или присвоить переменной ipolygonproperty тип (описать его)
да нет вроеде есть такой вот код в разделе var

ipolygonproperty : ksregularpolygonparam;
___________________________________

seregaa

что еще можна сделать ... ???? или как правильно описать его???

bergovin

Дошло, скорее всего вы не описали константу ko_RegularPolygonParam
поставте просто 92

seregaa

Цитата: bergovin от 02.12.09, 13:48:19
Дошло, скорее всего вы не описали константу ko_RegularPolygonParam
а как это можна сделать???

bergovin

поставте просто 92 вместо неё
Ну как? Пора принимать блогодарности, или ещё не зафурычило?  :)

seregaa

СПАСИБО БОЛЬШОЕ!!!! :) все работает... только еще подскажите почему 92???

bergovin

смотри SDK (в поиске набери ko_RegularPolygonParam ) - константа ko_RegularPolygonParam соответствует-92

seregaa

все разобрался!!!! спасибо!!! :)