Как запустить учебные примеры Step2_API7_2D.cs и Step2_API7_3D.cs?

Автор bionorica2015, 25.01.25, 18:29:25

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

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

bionorica2015

Здравствуйте.
Как запустить учебные примеры Step2_API7_2D.cs и Step2_API7_3D.cs?
Выдает ошибки при компиляции и подключении в Компасе.
Остальные примеры норм, вот с ними проблемы.
Тут в форуме кто-нибудь запускал их? Поделитесь опытом, пожалуйста.

Lemieux

Если у Вас есть возможность не работать с API КОМПАС, то лучше не работайте. Хотя, если Ваши работы будут не сложнее отчётов, то пойдёт. А так, это кривое днище.

Doom2

Цитата: bionorica2015 от 25.01.25, 18:29:25Выдает ошибки при компиляции и подключении в Компасе.
На правую кнопку мыши по проекту -> Добавить ссылки -> и в фильтре пишем Kompas и добавляем их все.

bionorica2015

Цитата: Lemieux от 25.01.25, 19:02:31Если у Вас есть возможность не работать с API КОМПАС, то лучше не работайте. Хотя, если Ваши работы будут не сложнее отчётов, то пойдёт. А так, это кривое днище.
API КОМПАС - кривое днище?

Doom2

Цитата: bionorica2015 от 25.01.25, 21:32:13API КОМПАС - кривое днище?
Если так подумать и повернуть призму то мы все кривое днище :o
Вот например вышла обновлённая модель ии по кодингу - ведь ее выставили бесплатно и почему у нас так в ru обществе не происходит? мб тогда софт станет "тем" ?

Эта модель может стать централизованной относительно нужд общества ? 

Я перебрал и рассмотрел все модели с https://huggingface.co/.

bionorica2015

Просто у нас в СНГ много болтаем мало работаем плюс все мы перфекционисты: или надо делать лучше всех или вообще ничего, ошибки -наши враги, боимся ошибок.
А другие наоборот.

Doom2

#6
Цитата: bionorica2015 от 25.01.25, 21:43:36или надо делать лучше всех или вообще ничего, ошибки -наши враги, боимся ошибок
Так ии все сделает за Вас! В плане обработки ошибок - это мощный инструмент! Просто как то он не для ru общества. заметил что eng версии моделей работают куда лучше.
А что если бы она сама развивалась относительно ее пользователей ?

Но причина тут не в этом.. скорее в менталитете общества.

bionorica2015

Цитата: Doom2 от 25.01.25, 21:47:33Так ии все сделает за Вас! В плане обработки ошибок - это мощный инструмент! Просто как то он не для ru общества. заметил что eng версии моделей работают куда лучше.
А что если бы она сама развивалась относительно ее пользователей ?

Но причина тут не в этом.. скорее в менталитете общества.
А вот Вы знаете, например, я подключил учебный пример Step2_API7_2D, как дальше применять команду "Создать линейный размер"? Я нажимаю команду, ничего не происходит, выбирая отрезок нажимаю тоже ничего не происходит.

Doom2

Прикрепите сам код.

//-------------------------------------------------------------------------------
    // Создать линейный размер
    // ---
    void CreateLineDimension()
    {
      // Получить контейнер условных обозначений
      ISymbols2DContainer symbCont = GetSymbols2DContainer();

      if ( symbCont != null )
      {
        // Получить коллекцию линейных размеров
        ILineDimensions dimCol = symbCont.LineDimensions;

        if ( dimCol != null )
        {
          //Добавить объект в коллекцию
          ILineDimension newDim = dimCol.Add();

          if ( newDim != null )
          {
            // Координаты первой точки привязки размера
            newDim.X1 = 50;
            newDim.Y1 = 150;
            // Координаты второй точки привязки размера
            newDim.X2 = 100;
            newDim.Y2 = 150;
            // Положение размерной линии
            newDim.X3 = 75;
            newDim.Y3 = 180;
            // Тип ориентации линейного размера
            newDim.Orientation = Kompas6Constants.ksLineDimensionOrientationEnum.ksLinDHorizontal;
            // Применить параметры
            newDim.Update();   
          }
        }
      }
    }

Получается функцию создали и она сама по себе без вызова должна работать?

bionorica2015

Цитата: Doom2 от 25.01.25, 22:44:15Прикрепите сам код.

//-------------------------------------------------------------------------------
    // Создать линейный размер
    // ---
    void CreateLineDimension()
    {
      // Получить контейнер условных обозначений
      ISymbols2DContainer symbCont = GetSymbols2DContainer();

      if ( symbCont != null )
      {
        // Получить коллекцию линейных размеров
        ILineDimensions dimCol = symbCont.LineDimensions;

        if ( dimCol != null )
        {
          //Добавить объект в коллекцию
          ILineDimension newDim = dimCol.Add();

          if ( newDim != null )
          {
            // Координаты первой точки привязки размера
            newDim.X1 = 50;
            newDim.Y1 = 150;
            // Координаты второй точки привязки размера
            newDim.X2 = 100;
            newDim.Y2 = 150;
            // Положение размерной линии
            newDim.X3 = 75;
            newDim.Y3 = 180;
            // Тип ориентации линейного размера
            newDim.Orientation = Kompas6Constants.ksLineDimensionOrientationEnum.ksLinDHorizontal;
            // Применить параметры
            newDim.Update();   
          }
        }
      }
    }

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

Doom2

#10
Там требуется активный документ, он есть?
Напишите весь порядок действий.

Если Вы смогли подключить эту библиотеку значит там все хорошо и остается только создать чертеж и запустить команду.

bionorica2015

Цитата: Doom2 от 25.01.25, 23:01:49Там требуется активный документ, он есть?
Напишите весь порядок действий.

Если Вы смогли подключить эту библиотеку значит там все хорошо и остается только создать чертеж и запустить команду.
Да, документ активен.
Порядок действий на видео:https://streamable.com/e4z4ah

Doom2

Какой то объект он не получает видимо. Везде где проверки поставьте MessageBox.Show("1"); затем на другой проверке MessageBox.Show("2");  и так далее и увидите где цепочка обрывается.

Или просто вывести везде где проверки что полученный объект не пуст.

Запишите видео и скиньте. Потому что у меня этот пример работает...

bionorica2015

Цитата: Doom2 от 26.01.25, 09:26:57Какой то объект он не получает видимо. Везде где проверки поставьте MessageBox.Show("1"); затем на другой проверке MessageBox.Show("2");  и так далее и увидите где цепочка обрывается.

Или просто вывести везде где проверки что полученный объект не пуст.

Запишите видео и скиньте. Потому что у меня этот пример работает...
Вот я выше скидывал. Дублирую: https://streamable.com/e4z4ah

Ничего не происходит даже после MessageBox.Show("1"); и MessageBox.Show("2");

Doom2


bionorica2015


Doom2

А видео?
И там почему то отступы нарушены..
Как будто на скорость куда попало вставлено.

Снимок22.PNG

bionorica2015

Цитата: Doom2 от 26.01.25, 12:51:02А видео?
И там почему то отступы нарушены..
Как будто на скорость куда попало вставлено.

Снимок22.PNG
https://streamable.com/e4z4ah

А у Вас работает если вставляете message box?

Doom2

#18
Цитата: bionorica2015 от 26.01.25, 15:29:52А у Вас работает если вставляете message box?
Нет и он и не будет работать.. потому что нужно смотреть Step1

KompasObject kompas = (KompasObject) kompas_;
kompas.ksMessage("Привет!");

У меня работает так с "коробки" поэтому и не сразу вспомнил про kompas.ksMessage.

UU

Цитата: Doom2 от 26.01.25, 15:41:16Нет и он и не будет работать.. потому что нужно смотреть Step1

KompasObject kompas = (KompasObject) kompas_;
kompas.ksMessage("Привет!");

У меня работает так с "коробки" поэтому и не сразу вспомнил про kompas.ksMessage.
Если kompas=nil, то эта строка - "kompas.ksMessage("Привет!");" - 100% вылет.