Delphi и Скечер

Программирование для CATIA.

Delphi и Скечер

Сообщение rokstar » 31 июл 2008 15:54

Приветствую господа!

Встал в ступор, а именно функция GetCoordinates не возвращает значение.

Сыть задачи заключается в проходе по элементам скечера и получения ряда параметров.
Получаю активный документ, получаю необходимый примитив, затем скечер, и уже потом иду циклом по его элементам.

Код: Выделить всё
                for kLoop := 1 to Sketch.GeometricElements.Count do
                  begin
                      Ge := Sketch.GeometricElements.Item(kLoop);
                      case integer(Ge.GeometricType) of
                        catGeoTypePoint2D : // объявлены как константы (0..12)
                          begin
                              aPoint := VarArrayCreate([0,1], varVariant);
                              Ge.GetCoordinates(aPoint); // после вызова этой функции aPoint не заполняется нужными
                                                                            значениями, а должен!
                              str := 'X = ' + VarToStr(aPoint[0]) + '; Y = ' + VarToStr(aPoint[1]) + ';';
                          end;
                      end;
                      // тут использую полученную str в своих целях
                  end;


не пойму почему GetCoordinates не срабатывает :unknown: , люди помогите кто чем сможет!

Заранее спасибо!
rokstar
Новичок
Новичок
 
Сообщения: 3
Зарегистрирован: 28 апр 2008 10:03

Re: Delphi и Скечер

Сообщение booSter » 05 авг 2008 18:15

1. Попробуй "aPoint" объявить просто VARIANT, а не как SAFEARRAY<VARIANT>[0..1]
2. -//- "aPoint" объявить как SAFEARRAY<VARIANT>[0] (нулевая длинна)
3. Объяви "Pt : Point2D", затем в теле цикла выполни присвоение "Pt := Ge", а уже после вызови Pt.GetCoordinates(aPoint)
Сделаешь доброе дело за деньги - скажут спасибо,
Сделаешь бесплатно - сядут на шею...
©пёрто
Аватара пользователя
booSter
Moderator
 
Сообщения: 227
Images: 15
Зарегистрирован: 09 фев 2008 16:48
Откуда: Minsk

Re: Delphi и Скечер

Сообщение rokstar » 06 авг 2008 13:14

2 booSter спасибо за ответ!

Решение было найдено. Видимо при работе с ActiveX Delphi имеет недочеты. Чтобы решить проблему пришлось заюзать MSScriptControl. Сгенерил скрипт на VBA, запустил его, все получилось влет!
rokstar
Новичок
Новичок
 
Сообщения: 3
Зарегистрирован: 28 апр 2008 10:03


Вернуться в CAA-RADE

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 6