Практический семинар Tekla Structures 2017

API, проблемы и решения в Tekla Structures

Alex591
Сообщения: 3
Регистрация: 13 фев 2014, 23:46

API, проблемы и решения в Tekla Structures

Сообщение Alex591 » 14 фев 2014, 00:15

Доброго времени суток, уважаемые форумчане!
Не нашел ветки по API, поэтому спрошу здесь.
При создании плагинов столкнулся с несколькими проблемами, которые никак не могу решить:
- как назначить пользовательский параметр выбранному объекту? Метод MyBeam.SetUserProperty("USERDEFINED.Поле", "значение") не работает. Вообще, пробовал по-всякому - не работает никак.
- не получается так же назначить класс: MyBeam.Class = "Класс" возвращает ноль. Единственное, на что вообще реагирует это свойство - когда создаю булевы объекты: MyBeam.Class = BooleanPart.BooleanOperativeClassName;
- элемент comboBox при запуске макроса не возвращает выбранное значение, а при повторном открытии формы вообще его забывает. А если не переключить CausesValidation на false - фокус не теряется.
Кто даст хоть какую-нибудь наводку буду очень сильно признателен!
Последний раз редактировалось Alex591 14 фев 2014, 07:53, всего редактировалось 2 раза.

Аватара пользователя
Danila_ZLT
Сообщения: 588
Регистрация: 02 окт 2012, 12:14
Откуда: Златоуст
Контактная информация:

Re: API, проблемы и решения.

Сообщение Danila_ZLT » 14 фев 2014, 03:04

Либо MyBeam.SetUserProperty("Поле", "значение")
Либо MyBeam.SetReportProperty("USERDEFINED.Поле", "значение")
Автоматизируем хаос... Недорого...
http://www.zzmk.ru

Alex591
Сообщения: 3
Регистрация: 13 фев 2014, 23:46

Re: API, проблемы и решения.

Сообщение Alex591 » 14 фев 2014, 05:40

Хех... Сработало только в одном случае - если назначать свойство без "USERDEFINED" и только после оператора Insert().0 До вставки не хочет. Почему-то этот вариант я не рассматривал.
Danila_ZLT, благодарю за совет. А с comboBox у Вас проблемы не возникали?

Аватара пользователя
Danila_ZLT
Сообщения: 588
Регистрация: 02 окт 2012, 12:14
Откуда: Златоуст
Контактная информация:

Re: API, проблемы и решения.

Сообщение Danila_ZLT » 14 фев 2014, 07:34

пользовательские свойства можно записать к объекту, только если он записан в базу (имеет не пустой идентификатор "Identifier")
Автоматизируем хаос... Недорого...
http://www.zzmk.ru

Alex591
Сообщения: 3
Регистрация: 13 фев 2014, 23:46

Re: API, проблемы и решения.

Сообщение Alex591 » 14 фев 2014, 07:53

Свойство NAME и FINISH судя по всему тоже.

Аватара пользователя
100k
Сообщения: 163
Регистрация: 12 фев 2014, 11:04

Re: API, проблемы и решения в Tekla Structures

Сообщение 100k » 05 май 2014, 10:49

Вот такая конструкция у меня вполне себе работает, сборки получены из модели и имеют идентификатор
При изменении поля, оно сразу меняется в модели теклы без использования Modify()

Код: Выделить всё

    foreach (Assembly a in this.Assemblies)
            {
                ModelObject o = a.GetMainPart();
                string pref = string.Empty;
                string test = string.Empty;

                a.GetReportProperty("PREFIX", ref pref);
                //bool b1 = o.SetUserProperty("USER_FIELD_1", "TEST1");
                string field1 = pref + this.Id.ToString();

                bool b1 = o.SetUserProperty("USER_FIELD_1", field1);

                a.GetReportProperty("MAINPART.USERDEFINED.USER_FIELD_1", ref test);

            }

Аватара пользователя
Danila_ZLT
Сообщения: 588
Регистрация: 02 окт 2012, 12:14
Откуда: Златоуст
Контактная информация:

Re: API, проблемы и решения в Tekla Structures

Сообщение Danila_ZLT » 05 май 2014, 11:10

100k писал(а):Вот такая конструкция у меня вполне себе работает, сборки получены из модели и имеют идентификатор
При изменении поля, оно сразу меняется в модели теклы без использования Modify()
}
Modify() - для записи измененных свойств объекта в базу.
Изменение пользовательских полей сам объект не затрагивает.
Пользовательские поля хранятся в отдельной табличке и привязаны к идентификатору объекта.
У нового незаписанного объекта идентификатор пустой, поэтому пользовательские поля не сохраняются.
Автоматизируем хаос... Недорого...
http://www.zzmk.ru

Аватара пользователя
100k
Сообщения: 163
Регистрация: 12 фев 2014, 11:04

Re: API, проблемы и решения в Tekla Structures

Сообщение 100k » 05 май 2014, 14:28

Очень хочу получить результаты расчета отдельных нагружений и от комбинаций программно через "AnalysisResult", не получается. Может ктото уже пробовал? Сами результаты передались из Робот в Текла.

Аватара пользователя
100k
Сообщения: 163
Регистрация: 12 фев 2014, 11:04

Re: API, проблемы и решения в Tekla Structures

Сообщение 100k » 29 май 2014, 08:51

Плагины. Не смог подключить дебагер (attach to prosess) в VS 2010 к отладке плагинов.
Указывал ссылки на pdb файлы все напрасно. Подскажите в чем дело, или пример какой нить скиньте, если кому то удалось это сделать.

Аватара пользователя
Danila_ZLT
Сообщения: 588
Регистрация: 02 окт 2012, 12:14
Откуда: Златоуст
Контактная информация:

Re: API, проблемы и решения в Tekla Structures

Сообщение Danila_ZLT » 29 май 2014, 09:00

100k писал(а):Указывал ссылки на pdb файлы все напрасно
Это зачем?
Скопировать плагин в теклу, запустить теклу, подключиться к процессу, поставить точки останова.
Работает вроде без всяких настроек.
Автоматизируем хаос... Недорого...
http://www.zzmk.ru

Аватара пользователя
100k
Сообщения: 163
Регистрация: 12 фев 2014, 11:04

Re: API, проблемы и решения в Tekla Structures

Сообщение 100k » 29 май 2014, 09:08

Так и делал. Не сработало.
VS2010, Tekla 18.1
Затем пробовал мудрить с настройками после просмотров форумов и видео с ютуба, не помогло.
Вложения
debug.PNG

Аватара пользователя
Danila_ZLT
Сообщения: 588
Регистрация: 02 окт 2012, 12:14
Откуда: Златоуст
Контактная информация:

Re: API, проблемы и решения в Tekla Structures

Сообщение Danila_ZLT » 29 май 2014, 10:22

Что конкретно не работает?
К процессу подключается?
Точки останова ставятся?
Программа не останавливается в точке останова?
Автоматизируем хаос... Недорого...
http://www.zzmk.ru

Аватара пользователя
100k
Сообщения: 163
Регистрация: 12 фев 2014, 11:04

Re: API, проблемы и решения в Tekla Structures

Сообщение 100k » 29 май 2014, 10:49

Программа не останавливается в точке останова (breakpoint).
В текле плагин работает.

Еще не понимаю такого нюанса в плагинах.
Каждый раз когда меняются входные объекты (PrimaryPart и тд) запускается метод Run.
Просмотрел примеры (TeklaOpenAPIStartupPackage_v180) , детали которые создаются плагином не модифицируются, а создаются заново (соответственно у этой детали будет новый GUID)

Аватара пользователя
Danila_ZLT
Сообщения: 588
Регистрация: 02 окт 2012, 12:14
Откуда: Златоуст
Контактная информация:

Re: API, проблемы и решения в Tekla Structures

Сообщение Danila_ZLT » 29 май 2014, 11:14

Как выглядят точки останова?
de.jpg
не такие случайно?
Автоматизируем хаос... Недорого...
http://www.zzmk.ru

sfera04
Сообщения: 50
Регистрация: 26 апр 2013, 11:41
Откуда: Ukraine
Контактная информация:

Re: API, проблемы и решения в Tekla Structures

Сообщение sfera04 » 29 май 2014, 11:23

100k писал(а): (соответственно у этой детали будет новый GUID)
ID будут менять если плагин создает больше одной детали. Чтобы это исключить задавайте уникальные метки для каждого объекта через SetLable()

Аватара пользователя
100k
Сообщения: 163
Регистрация: 12 фев 2014, 11:04

Re: API, проблемы и решения в Tekla Structures

Сообщение 100k » 29 май 2014, 11:47

Кажется такие, сейчас точно сказать не могу, нет под руками VS. Но символ это и есть pdb файл.

>ID будут менять если плагин создает больше одной детали. Чтобы это исключить задавайте уникальные метки для каждого объекта через SetLable()
Спасибо, попробую разобраться.
А как вариант создавать объекты в конструкторе, а потом модифицировать их в Run().
Кажется есть такой плюс.... например ContourPlate можно слегка в ручную изменить, а потом плагин не задает координаты ContourPoint заново, а смещает эту точку на какую-то величину...

Возможно, что все в курсе, но тем не менее, довольно удобно копировать плагины после их создания автоматически
Вложения
copy.PNG
copy.PNG (20.26 КБ) 30928 просмотров

Аватара пользователя
100k
Сообщения: 163
Регистрация: 12 фев 2014, 11:04

Re: API, проблемы и решения в Tekla Structures

Сообщение 100k » 30 май 2014, 10:39

Вопрос по PluginFormBase
Не работают кнопки "Применить" и "Получить" кнопка "Изменить" работает, явно связанно StructuresData

sfera04
Сообщения: 50
Регистрация: 26 апр 2013, 11:41
Откуда: Ukraine
Контактная информация:

Re: API, проблемы и решения в Tekla Structures

Сообщение sfera04 » 30 май 2014, 11:33

Я добавил на эти кнопки свои события

Код: Выделить всё

        private void okApplyModifyGetOnOffCancel1_GetClicked(object sender, EventArgs e)
        {
            this.Get();
        }

        private void okApplyModifyGetOnOffCancel1_ModifyClicked(object sender, EventArgs e)
        {
            this.Modify();
        }

        private void okApplyModifyGetOnOffCancel1_OkClicked(object sender, EventArgs e)
        {
            this.Apply();
            this.Close();
        }

        private void okApplyModifyGetOnOffCancel1_OnOffClicked(object sender, EventArgs e)
        {
            this.ToggleSelection();
        }

Аватара пользователя
100k
Сообщения: 163
Регистрация: 12 фев 2014, 11:04

Re: API, проблемы и решения в Tekla Structures

Сообщение 100k » 02 июн 2014, 13:33

Поделитесь пожалуйста, темплейтом для ConnectionBase.

Свойство контурной плиты "Class"
При выполнении кода в плагине, свойство cplate.Class почему-то получается равным "0"
При выполнении аналогичного кода как вин приложение свойтсво Class получает значение 99. Такое может быть? :D

Код: Выделить всё

        private bool CreatePlate()
        {
            ContourPlate cplate = new ContourPlate();
            Point pt1 = new Point(0, _plateLength / 2, -_plateWidth / 2);
            Point pt2 = new Point(0, _plateLength / 2, _plateWidth / 2);
            Point pt3 = new Point(0, -_plateLength / 2, _plateWidth / 2);
            Point pt4 = new Point(0, -_plateLength / 2, -_plateWidth / 2);

            cplate.AddContourPoint(new ContourPoint(pt1, new Chamfer()));
            cplate.AddContourPoint(new ContourPoint(pt2, new Chamfer()));
            cplate.AddContourPoint(new ContourPoint(pt3, new Chamfer()));
            cplate.AddContourPoint(new ContourPoint(pt4, new Chamfer()));
            cplate.Profile.ProfileString = "PL30";
            cplate.Position.Depth = Position.DepthEnum.BEHIND;
            cplate.Material.MaterialString = "C245";
            cplate.SetLabel("baseplate");
            cplate.Class = "99";
            cplate.Insert();
}

Аватара пользователя
100k
Сообщения: 163
Регистрация: 12 фев 2014, 11:04

Re: API, проблемы и решения в Tekla Structures

Сообщение 100k » 12 июн 2014, 11:09

Вопрос по компонентам API.
Можно ли выбрать деталь компонента (см картинку) и отредактировать ее, что бы компонент запомнил изменения в детали.
Так при изменении главной и(или) второстепенных деталей все изменения пропадают (все детали компонента создаются заново как я понимаю сейчас). Ясно, что выполняется конструктор и метод Run() и создаются новые детали с данными полученными от StructuresData. Экземпляр этого класс, видимо хранится в модели и при изменении компонента конструктор получает его в качестве параметра.
Склоняюсь к мысли, что нельзя!
Вложения
c1.PNG
c1.PNG (10.15 КБ) 30636 просмотров

sfera04
Сообщения: 50
Регистрация: 26 апр 2013, 11:41
Откуда: Ukraine
Контактная информация:

Re: API, проблемы и решения в Tekla Structures

Сообщение sfera04 » 12 июн 2014, 11:27

100k писал(а):Склоняюсь к мысли, что нельзя!
Все верно, нельзя

Аватара пользователя
100k
Сообщения: 163
Регистрация: 12 фев 2014, 11:04

Re: API, проблемы и решения в Tekla Structures

Сообщение 100k » 13 июн 2014, 12:25

А имеет ли смысл пользоваться компонентом в компоненте при использовании АПИ?
Например соединение колонны и распорки ГСП и этот компонент включает в себя существующие компоненты:
1. Компонент - деталь на колонне парные ребра жесткости.
2. Компонент - деталь фасонка и фланец на связи ГСП.

Наверное сумбурно излагаю... :D

meart
Сообщения: 395
Регистрация: 04 мар 2013, 18:09

Re: API, проблемы и решения в Tekla Structures

Сообщение meart » 13 июн 2014, 12:36

100k писал(а):А имеет ли смысл пользоваться компонентом в компоненте при использовании АПИ?
Например соединение колонны и распорки ГСП и этот компонент включает в себя существующие компоненты:
1. Компонент - деталь на колонне парные ребра жесткости.
2. Компонент - деталь фасонка и фланец на связи ГСП.
Наверное сумбурно излагаю... :D
компоненты в компоненте - вполне удобная вещь, по крайней мере эту возможность можно использовать стандартными возможностями.
По моему, придумывать какой-то дополнительный плагин/макрос с использованием API для решения тех же задач не стоит затраченного на это времени. Всё равно что придумывать колесо.. >_>
«Есть только две бесконечные вещи: Вселенная и глупость. Хотя насчет Вселенной я не вполне уверен.» А. Эйнштейн

Аватара пользователя
100k
Сообщения: 163
Регистрация: 12 фев 2014, 11:04

Re: API, проблемы и решения в Tekla Structures

Сообщение 100k » 13 июн 2014, 13:45

Я имел в виду несколько другое.
Если компоненты созданы через АПИ, то объединить их в компонент более высокого уровня, состоящий из нескольких более простых компонентов.

meart
Сообщения: 395
Регистрация: 04 мар 2013, 18:09

Re: API, проблемы и решения в Tekla Structures

Сообщение meart » 13 июн 2014, 14:11

100k писал(а):Я имел в виду несколько другое.
Если компоненты созданы через АПИ, то объединить их в компонент более высокого уровня, состоящий из нескольких более простых компонентов.
и получить один компонент более сложной структуры... я правильно понял?
«Есть только две бесконечные вещи: Вселенная и глупость. Хотя насчет Вселенной я не вполне уверен.» А. Эйнштейн

Аватара пользователя
100k
Сообщения: 163
Регистрация: 12 фев 2014, 11:04

Re: API, проблемы и решения в Tekla Structures

Сообщение 100k » 13 июн 2014, 14:13

[/quote]
и получить один компонент более сложной структуры... я правильно понял?[/quote]

Так точно!

Аватара пользователя
100k
Сообщения: 163
Регистрация: 12 фев 2014, 11:04

Re: API, проблемы и решения в Tekla Structures

Сообщение 100k » 11 июл 2014, 15:17

Ищу как можно офсетить полигон средствами АПИ.... Как это сделать?

Аватара пользователя
100k
Сообщения: 163
Регистрация: 12 фев 2014, 11:04

Re: API, проблемы и решения в Tekla Structures

Сообщение 100k » 16 июл 2014, 09:18

Может кто сталкивался...
Плагин унаследован от "ConnectionBase" соединяет 2 детали. Работает, после удаления компонента (узла) вновь соединить эти две детали не получается плагин не срабатывает.
Те плагин между 2мя деталями срабатывает один раз.

Аватара пользователя
Danila_ZLT
Сообщения: 588
Регистрация: 02 окт 2012, 12:14
Откуда: Златоуст
Контактная информация:

Re: API, проблемы и решения в Tekla Structures

Сообщение Danila_ZLT » 16 июл 2014, 10:32

Откомпилил SpliceConnection из примеров, все работает.
Много раз...
Автоматизируем хаос... Недорого...
http://www.zzmk.ru

Аватара пользователя
100k
Сообщения: 163
Регистрация: 12 фев 2014, 11:04

Re: API, проблемы и решения в Tekla Structures

Сообщение 100k » 16 июл 2014, 10:50

Другие плагины работают без проблем.

Кажется разобрался.
В данном плагине [AutoDirectionType(AutoDirectionTypeEnum.AUTODIR_NA)]
поменял на [AutoDirectionType(AutoDirectionTypeEnum.AUTODIR_BASIC)]
Вроде все работает...
Спасибо.

meart
Сообщения: 395
Регистрация: 04 мар 2013, 18:09

Re: API, проблемы и решения в Tekla Structures

Сообщение meart » 25 июл 2014, 09:27

а можно ли через API получить доступ к модели без запуска теклы? ну так к данным в базе, атрибутам
«Есть только две бесконечные вещи: Вселенная и глупость. Хотя насчет Вселенной я не вполне уверен.» А. Эйнштейн

Аватара пользователя
Danila_ZLT
Сообщения: 588
Регистрация: 02 окт 2012, 12:14
Откуда: Златоуст
Контактная информация:

Re: API, проблемы и решения в Tekla Structures

Сообщение Danila_ZLT » 25 июл 2014, 10:49

meart писал(а):а можно ли через API получить доступ к модели без запуска теклы? ну так к данным в базе, атрибутам
Только через дамп, если не знаете формата базы данных теклы.
Автоматизируем хаос... Недорого...
http://www.zzmk.ru

MikhailK
Сообщения: 50
Регистрация: 19 дек 2013, 12:51
Откуда: Мурманск
Контактная информация:

Re: API, проблемы и решения в Tekla Structures

Сообщение MikhailK » 30 июл 2014, 15:15

Alex591 писал(а):Доброго времени суток, уважаемые форумчане!
- элемент comboBox при запуске макроса не возвращает выбранное значение, а при повторном открытии формы вообще его забывает. А если не переключить CausesValidation на false - фокус не теряется.
Столкнулся с той же проблеммой пару раз. Помогло следующее:
1) AttributeTypeName: Integer
BindPropertyName: SelectedIndex
таким макаром параметр возвращается не значение комбобокса а его индекс.

2) создать новый ComboBox и параметр с новым названием, не удаляя старый. Почему так, хз, но именно на комбобоксах встречалось не раз. Потом убедившись, что он работает удалять старые не рабочие.
свои разработки складирую тут: http://cadsupport.ru

Аватара пользователя
100k
Сообщения: 163
Регистрация: 12 фев 2014, 11:04

Re: API, проблемы и решения в Tekla Structures

Сообщение 100k » 08 авг 2014, 11:51

Подскажите как получить список стандартов болтов ?

Аватара пользователя
Danila_ZLT
Сообщения: 588
Регистрация: 02 окт 2012, 12:14
Откуда: Златоуст
Контактная информация:

Re: API, проблемы и решения в Tekla Structures

Сообщение Danila_ZLT » 08 авг 2014, 12:12

Код: Выделить всё

            ArrayList StandardList = new ArrayList();
            CatalogHandler CatalogHandler = new CatalogHandler();

            if (CatalogHandler.GetConnectionStatus())
            {
                BoltItemEnumerator BoltItemEnumerator = CatalogHandler.GetBoltItems();

                while (BoltItemEnumerator.MoveNext())
                {
                    BoltItem BoltItem = BoltItemEnumerator.Current as BoltItem;
                    if (StandardList.IndexOf(BoltItem.Standard) == -1) StandardList.Add(BoltItem.Standard);
                }
            }
Автоматизируем хаос... Недорого...
http://www.zzmk.ru

Аватара пользователя
100k
Сообщения: 163
Регистрация: 12 фев 2014, 11:04

Re: API, проблемы и решения в Tekla Structures

Сообщение 100k » 11 авг 2014, 10:18

Спасибо.

Еще вопрос, как задать иконку для пользовательского плагина (API)?
Вложения
plugin_icon.PNG

Аватара пользователя
Danila_ZLT
Сообщения: 588
Регистрация: 02 окт 2012, 12:14
Откуда: Златоуст
Контактная информация:

Re: API, проблемы и решения в Tekla Structures

Сообщение Danila_ZLT » 11 авг 2014, 10:27

Положить картинку в "c:\TeklaStructures\20.0\Bitmaps"
Имя файлика "et_element_имя вашего плагина.bmp"
Если нужна иконка на панельку - то файлик "имя вашего плагина.bmp" в ту-же папку.
Автоматизируем хаос... Недорого...
http://www.zzmk.ru

MikhailK
Сообщения: 50
Регистрация: 19 дек 2013, 12:51
Откуда: Мурманск
Контактная информация:

Re: API, проблемы и решения в Tekla Structures

Сообщение MikhailK » 12 авг 2014, 12:58

Danila_ZLT писал(а):Положить картинку в "c:\TeklaStructures\20.0\Bitmaps"
Имя файлика "et_element_имя вашего плагина.bmp"
Если нужна иконка на панельку - то файлик "имя вашего плагина.bmp" в ту-же папку.
Либо здесь: C:\ProgramData\Tekla Structures\19.0\Bitmaps
свои разработки складирую тут: http://cadsupport.ru

parviz
Сообщения: 7
Регистрация: 17 окт 2012, 11:42

Re: API, проблемы и решения в Tekla Structures

Сообщение parviz » 03 сен 2014, 09:36

Доброе утро! скажите пожалуйста как сменить язык интерфейса в Tekla Structures? ..

Аватара пользователя
100k
Сообщения: 163
Регистрация: 12 фев 2014, 11:04

Re: API, проблемы и решения в Tekla Structures

Сообщение 100k » 20 ноя 2014, 21:18

Вопрос по плагинам.
В Х-плагинах (автор sfera04) используются стандартные окна(формы) для редактирования болтов, сварки, деталей, фасок и тд.
Ищу пример (исходный код)подобного окна.

pdimav
Сообщения: 243
Регистрация: 16 янв 2012, 19:07

Re: API, проблемы и решения в Tekla Structures

Сообщение pdimav » 21 ноя 2014, 08:24

..да он сам его сделал:)
pdimav1979(не собака)yandex.ru

Аватара пользователя
Danila_ZLT
Сообщения: 588
Регистрация: 02 окт 2012, 12:14
Откуда: Златоуст
Контактная информация:

Re: API, проблемы и решения в Tekla Structures

Сообщение Danila_ZLT » 21 ноя 2014, 19:26

а чего искать? есть х-плагины, там и смотрите.
Автоматизируем хаос... Недорого...
http://www.zzmk.ru

Аватара пользователя
100k
Сообщения: 163
Регистрация: 12 фев 2014, 11:04

Re: API, проблемы и решения в Tekla Structures

Сообщение 100k » 16 янв 2015, 09:14

При копировании контурной плиты "в плагине" сварные швы соединяющие плиту не копируются, а при копировании НЕ в плагине сварные швы копируются вместе с контурной плитой.....

ModelObject o = Tekla.Structures.Model.Operations.Operation.CopyObject(cp, startCS, endCS);

Кто нибудь в курсе в чем дело?
Вложения
швы.PNG

Аватара пользователя
Danila_ZLT
Сообщения: 588
Регистрация: 02 окт 2012, 12:14
Откуда: Златоуст
Контактная информация:

Re: API, проблемы и решения в Tekla Structures

Сообщение Danila_ZLT » 16 янв 2015, 11:01

Выбирайте все объекты, которые хотите скопировать.
Сварка - отдельный объект.
Автоматизируем хаос... Недорого...
http://www.zzmk.ru

Аватара пользователя
100k
Сообщения: 163
Регистрация: 12 фев 2014, 11:04

Re: API, проблемы и решения в Tekla Structures

Сообщение 100k » 16 янв 2015, 11:07

Я так и стал делать, но не понятно, почему не в плагинах (win application) сварка копируется вместе с контурной плитой. В плагинах не копируется.
Вложения
o1.PNG
o1.PNG (4.22 КБ) 28382 просмотра
o2.PNG
o2.PNG (4.2 КБ) 28382 просмотра

pdimav
Сообщения: 243
Регистрация: 16 янв 2012, 19:07

Re: API, проблемы и решения в Tekla Structures

Сообщение pdimav » 20 фев 2015, 09:12

Добрый день.
Кто подскажет, как через API нарисовать вспомогательную линию и точку!?
pdimav1979(не собака)yandex.ru

Аватара пользователя
Danila_ZLT
Сообщения: 588
Регистрация: 02 окт 2012, 12:14
Откуда: Златоуст
Контактная информация:

Re: API, проблемы и решения в Tekla Structures

Сообщение Danila_ZLT » 20 фев 2015, 18:15

pdimav писал(а):Добрый день.
Кто подскажет, как через API нарисовать вспомогательную линию и точку!?
ControlLine controlLine = new ControlLine();
ControlPoint controlpoint = new ControlPoint();
Автоматизируем хаос... Недорого...
http://www.zzmk.ru

pdimav
Сообщения: 243
Регистрация: 16 янв 2012, 19:07

Re: API, проблемы и решения в Tekla Structures

Сообщение pdimav » 24 фев 2015, 08:41

Danila_ZLT писал(а):
pdimav писал(а):Добрый день.
Кто подскажет, как через API нарисовать вспомогательную линию и точку!?
ControlLine controlLine = new ControlLine();
ControlPoint controlpoint = new ControlPoint();
Привет.
Линию нашел, а вот точки что то нет.. (Tekla 20).
pdimav1979(не собака)yandex.ru

Аватара пользователя
Danila_ZLT
Сообщения: 588
Регистрация: 02 окт 2012, 12:14
Откуда: Златоуст
Контактная информация:

Re: API, проблемы и решения в Tekla Structures

Сообщение Danila_ZLT » 24 фев 2015, 10:41

pdimav писал(а): Линию нашел, а вот точки что то нет.. (Tekla 20).
Ждем 21 теклу, там есть.
Автоматизируем хаос... Недорого...
http://www.zzmk.ru

zgkr
Сообщения: 28
Регистрация: 03 мар 2015, 19:51
Откуда: Ростов-на-Дону

Re: API, проблемы и решения в Tekla Structures

Сообщение zgkr » 10 июн 2015, 14:57

Доброго времени суток!

Подскажите, пожалуйста, как объединить набор линий и текстовых полей (по задумке они должны составлять небольшую табличку), созданных с помощью API на чертеже так, чтобы они воспринимались теклой как один объект (например так, как это сделано с ведомостью расхода стали для КЖ в WeldApp). Покопавшись в функциональности редактора чертежей теклы я не нашел функции наподобие создания блока в автокаде. Может нужно сделать новый класс таблицы, сделав его производным от какого-нибудь базового класса чертежа, например Tekla.Structures.Drawing.DrawingObject ?

ps: я в программировании почти полное днище - школьный курс паскаль и уже как три недели копаюсь с c#.

Аватара пользователя
CuPo>I<a
Сообщения: 782
Регистрация: 26 дек 2011, 12:41
Откуда: Златоуст
Контактная информация:

Re: API, проблемы и решения в Tekla Structures

Сообщение CuPo>I<a » 10 июн 2015, 20:03

Плагины тебе помогут

zgkr
Сообщения: 28
Регистрация: 03 мар 2015, 19:51
Откуда: Ростов-на-Дону

Re: API, проблемы и решения в Tekla Structures

Сообщение zgkr » 11 июн 2015, 09:56

CuPo>I<a писал(а):Плагины тебе помогут
Вы имеете в виду класс Tekla.Structures.Drawing.Plugin ?

Аватара пользователя
100k
Сообщения: 163
Регистрация: 12 фев 2014, 11:04

Re: API, проблемы и решения в Tekla Structures

Сообщение 100k » 11 июн 2015, 11:53

https://warehouse.tekla.com/#/catalog/d ... 4febe853a9
Tekla Open API StartUp Package
см примеры плагины чертежей.

Аватара пользователя
100k
Сообщения: 163
Регистрация: 12 фев 2014, 11:04

Re: API, проблемы и решения в Tekla Structures

Сообщение 100k » 17 июн 2015, 12:18

В плагинах надо указывать ссылки на библиотеки Tekla. Для каждой версии, соответственно свои библиотеки различающиеся по номеру версии Теклы. Как с наименьшими затратами компилировать плагины для разных версий Теклы?
**************************************
Вопрос снимается.

zgkr
Сообщения: 28
Регистрация: 03 мар 2015, 19:51
Откуда: Ростов-на-Дону

Re: API, проблемы и решения в Tekla Structures

Сообщение zgkr » 17 авг 2015, 03:22

В процессе написания плагина возник вопрос - можно ли как-нибудь удобно организовать процесс отладки?
Сейчас поступаю так: сборка .dll в visual studio с автоматическим копированием в папку plugins -> открытие проекта tekla -> открытие чертежа -> добавление плагина на панель инструментов -> использование плагина -> если что-то не устраивает - закрытие теклы, внесение правок в VS и по новой.
Тратится куча времени и нервов. И, что самое главное, нет возможности отладчика...

Аватара пользователя
Danila_ZLT
Сообщения: 588
Регистрация: 02 окт 2012, 12:14
Откуда: Златоуст
Контактная информация:

Re: API, проблемы и решения в Tekla Structures

Сообщение Danila_ZLT » 17 авг 2015, 07:12

zgkr писал(а):В процессе написания плагина возник вопрос - можно ли как-нибудь удобно организовать процесс отладки?
Сейчас поступаю так: сборка .dll в visual studio с автоматическим копированием в папку plugins -> открытие проекта tekla -> открытие чертежа -> добавление плагина на панель инструментов -> использование плагина -> если что-то не устраивает - закрытие теклы, внесение правок в VS и по новой.
Тратится куча времени и нервов.
Для плагинов чертежа сделайте сначала програмку, отладте ее, потом уж и плагин делайте.
zgkr писал(а):И, что самое главное, нет возможности отладчика...
Отладка замечательно работает, тема эта уже не раз поднималась, ищите.
Автоматизируем хаос... Недорого...
http://www.zzmk.ru

zgkr
Сообщения: 28
Регистрация: 03 мар 2015, 19:51
Откуда: Ростов-на-Дону

Re: API, проблемы и решения в Tekla Structures

Сообщение zgkr » 17 авг 2015, 13:07

Danila_ZLT писал(а):Для плагинов чертежа сделайте сначала програмку, отладте ее, потом уж и плагин делайте.
Danila_ZLT, можете подробнее пояснить, каким образом это сделать? Попытался просто скопировать код с плагина в приложение, но куча используемых методов класса PluginFormBase недоступны. Выходит, в приложении нужно сначала создавать экземпляр плагина? И если да, то как им управлять, ведь в случае с плагином управление (вызов методов, изменение полей, создание экземпляров) берет на себя среда теклы.

Чувствую, что с точки зрения программиста написал кучу всякой глупости. Но, надеюсь, вопрос в общем понятен.

Аватара пользователя
Danila_ZLT
Сообщения: 588
Регистрация: 02 окт 2012, 12:14
Откуда: Златоуст
Контактная информация:

Re: API, проблемы и решения в Tekla Structures

Сообщение Danila_ZLT » 17 авг 2015, 14:31

Пользуйтесь формами теклы:
вместо

Код: Выделить всё

partial class MyForm: System.Windows.Forms.Form
используйте

Код: Выделить всё

 partial class MyForm : ApplicationFormBase
Tekla.Structures.Dialog не забудьте подключить.
Смотрите мои макросы, там все есть.
Это про поля...
Ну и вызвать процедурку обработки макроса с нужными параметрами - тоже не проблемма.
Автоматизируем хаос... Недорого...
http://www.zzmk.ru

zgkr
Сообщения: 28
Регистрация: 03 мар 2015, 19:51
Откуда: Ростов-на-Дону

Re: API, проблемы и решения в Tekla Structures

Сообщение zgkr » 17 авг 2015, 17:02

Danila_ZLT писал(а):Смотрите мои макросы, там все есть.
Danila_ZLT, где их можно лицезреть?

Аватара пользователя
CuPo>I<a
Сообщения: 782
Регистрация: 26 дек 2011, 12:41
Откуда: Златоуст
Контактная информация:

Re: API, проблемы и решения в Tekla Structures

Сообщение CuPo>I<a » 17 авг 2015, 19:48

zgkr писал(а):Danila_ZLT, где их можно лицезреть?
позволю себе ответить за коллегу
http://forum.zlating.ru/viewtopic.php?f=7&t=52
и вот еще распинался товарищ
http://forum.dwg.ru/showpost.php?p=1433 ... count=5912

zgkr
Сообщения: 28
Регистрация: 03 мар 2015, 19:51
Откуда: Ростов-на-Дону

Re: API, проблемы и решения в Tekla Structures

Сообщение zgkr » 17 авг 2015, 20:07

CuPo>I<a писал(а):
zgkr писал(а):Danila_ZLT, где их можно лицезреть?
позволю себе ответить за коллегу
http://forum.zlating.ru/viewtopic.php?f=7&t=52
и вот еще распинался товарищ
http://forum.dwg.ru/showpost.php?p=1433 ... count=5912
CuPo>I<a, не могли бы Вы подправить вторую ссылку? Сдается мне, с ней что-то не то.
А в общем - спасибо за информацию, буду изучать.

Аватара пользователя
CuPo>I<a
Сообщения: 782
Регистрация: 26 дек 2011, 12:41
Откуда: Златоуст
Контактная информация:

Re: API, проблемы и решения в Tekla Structures

Сообщение CuPo>I<a » 18 авг 2015, 06:25

c ней уже было что-то не то, уже подправлял, вчера работала
http://forum.dwg.ru/showpost.php?p=1433 ... count=5912

Роджер
Сообщения: 9
Регистрация: 13 авг 2015, 07:39
Откуда: Челябинск

API, проблемы и решения в Tekla Structures

Сообщение Роджер » 08 сен 2015, 13:48

Добрый день.
Кто может подсказать, есть два класса: класс интерфейса (формы, наследуемый PluginFormBase) и класс обработки плагина (наследуемый PluginBase), при получении длины в классе обработки (методом DefineInput), ее необходимо поместить на форму, каким образом возможно это сделать в tekle?

Аватара пользователя
100k
Сообщения: 163
Регистрация: 12 фев 2014, 11:04

Re: API, проблемы и решения в Tekla Structures

Сообщение 100k » 08 сен 2015, 22:56

Если я правильно понял, Вы хотите передать в форму данные из плагина. Так сделать не получится.

Роджер
Сообщения: 9
Регистрация: 13 авг 2015, 07:39
Откуда: Челябинск

Re: API, проблемы и решения в Tekla Structures

Сообщение Роджер » 09 сен 2015, 06:21

100k писал(а):Если я правильно понял, Вы хотите передать в форму данные из плагина. Так сделать не получится.

Большое спасибо. А передать данные из формы, через переменные, не создавая элементы формы возможно?

Аватара пользователя
Danila_ZLT
Сообщения: 588
Регистрация: 02 окт 2012, 12:14
Откуда: Златоуст
Контактная информация:

Re: API, проблемы и решения в Tekla Structures

Сообщение Danila_ZLT » 10 сен 2015, 08:47

Роджер писал(а):при получении длины в классе обработки (методом DefineInput), ее необходимо поместить на форму
На какую форму?
Автоматизируем хаос... Недорого...
http://www.zzmk.ru

Аватара пользователя
100k
Сообщения: 163
Регистрация: 12 фев 2014, 11:04

Re: API, проблемы и решения в Tekla Structures

Сообщение 100k » 10 сен 2015, 09:57

...
Роджер писал(а):А передать данные из формы, через переменные, не создавая элементы формы возможно?
Не понимаю, что вы хотите сделать.
Вложения
api1.png

Роджер
Сообщения: 9
Регистрация: 13 авг 2015, 07:39
Откуда: Челябинск

Re: API, проблемы и решения в Tekla Structures

Сообщение Роджер » 10 сен 2015, 11:54

Danila_ZLT писал(а):
Роджер писал(а):при получении длины в классе обработки (методом DefineInput), ее необходимо поместить на форму
На какую форму?


На форму (Интерфейс) плагина (класс формы "Интерфейса" наследуется от PluginFormBase). И есть класс обработки наследуемый от PluginBase, в котором размещен указатель на интерфейс плагина. Эти два класса связаны классом StructuresData. Необходимо из класса обработки перенести длину в класс интерфейса, для обработки, без отображения в интерфейсе.

Роджер
Сообщения: 9
Регистрация: 13 авг 2015, 07:39
Откуда: Челябинск

Re: API, проблемы и решения в Tekla Structures

Сообщение Роджер » 10 сен 2015, 12:08

Всем спасибо. Из картинки теперь все понятно))))

Аватара пользователя
Danila_ZLT
Сообщения: 588
Регистрация: 02 окт 2012, 12:14
Откуда: Златоуст
Контактная информация:

Re: API, проблемы и решения в Tekla Structures

Сообщение Danila_ZLT » 10 сен 2015, 12:17

Думаю вам сюда:
Без имени20150910141625.jpg
Без имени20150910141625.jpg (31.4 КБ) 26988 просмотров
В документации этот момент подробно описан.
Автоматизируем хаос... Недорого...
http://www.zzmk.ru

Роджер
Сообщения: 9
Регистрация: 13 авг 2015, 07:39
Откуда: Челябинск

Re: API, проблемы и решения в Tekla Structures

Сообщение Роджер » 10 сен 2015, 12:59

Danila_ZLT


Да это понятно. Просто думал, что можно передавать не только элементы формы, отображающие на форме, но например переменные. :(

Аватара пользователя
100k
Сообщения: 163
Регистрация: 12 фев 2014, 11:04

Re: API, проблемы и решения в Tekla Structures

Сообщение 100k » 10 сен 2015, 13:18

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

Роджер
Сообщения: 9
Регистрация: 13 авг 2015, 07:39
Откуда: Челябинск

Re: API, проблемы и решения в Tekla Structures

Сообщение Роджер » 10 сен 2015, 14:25

Придумать придумаем, хотел ещё понять, что возможно стандартными средствами. Например, чтоб пользователю выдавался в этой же форме результат, который бы зависел от: длины(рассчитанной в самом плагине) и начальном выборе пользователя. Всем ещё раз спасибо за помощь.

zgkr
Сообщения: 28
Регистрация: 03 мар 2015, 19:51
Откуда: Ростов-на-Дону

Re: API, проблемы и решения в Tekla Structures

Сообщение zgkr » 17 сен 2015, 09:44

При переходе с 21.0 на 21.0 SR1 перестал корректно выполняться фрагмент кода:

Код: Выделить всё

do
{
       Picker picker = drawingHandler.GetPicker();
       picker.PickPoint(pickerPrompt, out insertPoint, out dwgSheet);
}
while ((dwgSheet is ContainerView) == false);
Раньше я таким образом выбирал точку вставки на листе так, чтобы она не попадала на видовые экраны.
Сейчас же точка вставки не желает выбираться вовсе, даже когда тыкаю на чистое пространство листа. Получается бесконечный цикл.

Может кто-нибудь сталкивался с подобным / есть идеи, почему сломалось?

meart
Сообщения: 395
Регистрация: 04 мар 2013, 18:09

Re: API, проблемы и решения в Tekla Structures

Сообщение meart » 17 сен 2015, 10:46

Danila_ZLT писал(а):

Код: Выделить всё

            ArrayList StandardList = new ArrayList();
            CatalogHandler CatalogHandler = new CatalogHandler();

            if (CatalogHandler.GetConnectionStatus())
            {
                BoltItemEnumerator BoltItemEnumerator = CatalogHandler.GetBoltItems();

                while (BoltItemEnumerator.MoveNext())
                {
                    BoltItem BoltItem = BoltItemEnumerator.Current as BoltItem;
                    if (StandardList.IndexOf(BoltItem.Standard) == -1) StandardList.Add(BoltItem.Standard);
                }
            }
:? подскажите пжст.. как получить все болты из каталога? если пробовать так, у меня почему-то получается в BoltItemEnumerator 60 элементов, хотя в каталоге около 3000 метизов >_<
«Есть только две бесконечные вещи: Вселенная и глупость. Хотя насчет Вселенной я не вполне уверен.» А. Эйнштейн

Роджер
Сообщения: 9
Регистрация: 13 авг 2015, 07:39
Откуда: Челябинск

Re: API, проблемы и решения в Tekla Structures

Сообщение Роджер » 23 сен 2015, 09:37

Как вызывать каталог профилей в плагине и считывать с него выбранный.
Варианты:
1. Перебрать используя класс LibraryProfileItem;
2. Вызвать каталог профилей используя Tekla.Structures.Dialog.UIControls.ProfileCatalog;
Не предлагать!
Последний раз редактировалось Роджер 23 сен 2015, 09:45, всего редактировалось 1 раз.

Роджер
Сообщения: 9
Регистрация: 13 авг 2015, 07:39
Откуда: Челябинск

Re: API, проблемы и решения в Tekla Structures

Сообщение Роджер » 23 сен 2015, 09:45

Может у кого-нибудь была такая проблема: при вызове каталога профилей с помощью Tekla.Structures.Dialog.UIControls.ProfileCatalog, пользовательские профиля отображаются как параметрические, вместо фиксированных. При открытии каталога профилей из самой системы текли, профили отображаются нормально.

Аватара пользователя
Таран Д. А.
Администратор
Сообщения: 2648
Регистрация: 30 ноя 2011, 18:41
Откуда: г. Москва
Контактная информация:

Re: API, проблемы и решения в Tekla Structures

Сообщение Таран Д. А. » 26 окт 2015, 14:14

Ребят. Срочно нужен человек на месяц работы в офисе.
Заплатим 120 за месяц +с жильем сообразим.
Работы блин много Руслан занят вообще. Говорит пока вообще не может освободиться никак.
Или может кого посоветуешь?
Если что я в скайпе онлайн wildomen

zgkr
Сообщения: 28
Регистрация: 03 мар 2015, 19:51
Откуда: Ростов-на-Дону

Re: API, проблемы и решения в Tekla Structures

Сообщение zgkr » 06 ноя 2015, 02:43

Ребята, помогите! Может кто-нибудь сталкивался.
Начинаю делаю все по этой вот инструкции
Изображение
но при попытке присоединиться к процессу текла закрывается, а VS выдает вот что:
Вложения
error.PNG
error.PNG (7.21 КБ) 26373 просмотра

Аватара пользователя
100k
Сообщения: 163
Регистрация: 12 фев 2014, 11:04

Re: API, проблемы и решения в Tekla Structures

Сообщение 100k » 06 ноя 2015, 08:24

Меня бы насторожило расширение exe. Вы уверены это библиотека, а не Вин приложение?

zgkr
Сообщения: 28
Регистрация: 03 мар 2015, 19:51
Откуда: Ростов-на-Дону

Re: API, проблемы и решения в Tekla Structures

Сообщение zgkr » 08 ноя 2015, 18:13

100k писал(а):Меня бы насторожило расширение exe. Вы уверены это библиотека, а не Вин приложение?
Поменял запускаемый проект на .dll
Процесс TeklaStructures все равно вылетает при попытке присоединения
Может нужно задать какие-нибудь дополнительные настройки в VS или Tekla?
Вложения
error_2.PNG
error_2.PNG (5.15 КБ) 26338 просмотров

Аватара пользователя
CuPo>I<a
Сообщения: 782
Регистрация: 26 дек 2011, 12:41
Откуда: Златоуст
Контактная информация:

Re: API, проблемы и решения в Tekla Structures

Сообщение CuPo>I<a » 08 ноя 2015, 18:34

Библиотека в Теклу загружена?

zgkr
Сообщения: 28
Регистрация: 03 мар 2015, 19:51
Откуда: Ростов-на-Дону

Re: API, проблемы и решения в Tekla Structures

Сообщение zgkr » 08 ноя 2015, 19:34

CuPo>I<a писал(а):Библиотека в Теклу загружена?
.dll и .pdb скопированы в C:\TeklaStructures\21.0\nt\bin\plugins, если вы об этом

Аватара пользователя
100k
Сообщения: 163
Регистрация: 12 фев 2014, 11:04

Re: API, проблемы и решения в Tekla Structures

Сообщение 100k » 09 ноя 2015, 09:38

Гадать можно долго, попробуйте запустить в дебагере плагин из стандартных примеров Tekla Open API StartUp Package. Возможно это поможет локализовать проблему.

zgkr
Сообщения: 28
Регистрация: 03 мар 2015, 19:51
Откуда: Ростов-на-Дону

Re: API, проблемы и решения в Tekla Structures

Сообщение zgkr » 09 ноя 2015, 14:08

100k, попытался проделать все то же с примером EllipsePlugin.dll, но результат все тот же.
Так что думаю, что проблема в каких-то настройках Tekla/VS.
Я в общем-то уже нашел ошибку в своем плагине и отладка (пока что) не нужна. Но, все же, хотелось бы разобраться, в чем тут загвоздка...

Аватара пользователя
100k
Сообщения: 163
Регистрация: 12 фев 2014, 11:04

Re: API, проблемы и решения в Tekla Structures

Сообщение 100k » 09 ноя 2015, 20:32

Что-то не то, то ли с настройками дебагера, то ли еще что-то. Кажется в Экспресс версии функция "атач", вообще отсутствует. Так что, думаю, у вас не экспресс версия VS.

Аватара пользователя
Danila_ZLT
Сообщения: 588
Регистрация: 02 окт 2012, 12:14
Откуда: Златоуст
Контактная информация:

Re: API, проблемы и решения в Tekla Structures

Сообщение Danila_ZLT » 16 ноя 2015, 10:17

zgkr писал(а):Ребята, помогите! Может кто-нибудь сталкивался.
Начинаю делаю все по этой вот инструкции
но при попытке присоединиться к процессу текла закрывается, а VS выдает вот что:
А загадочная надпись "Access violation" вас никак не смутила?
А сдается мне что вы на компьютере "существо бесправное" без прав админских.
Если с правами у вашего пользователя все нормально, то скорее всего у вас там существует более "высокоправное существо" типа антивируса.
з.ы. контроль за изменениями приложений и тд. и тп.
Автоматизируем хаос... Недорого...
http://www.zzmk.ru

smonder
Сообщения: 11
Регистрация: 11 июл 2012, 01:27

Re: API, проблемы и решения в Tekla Structures

Сообщение smonder » 22 апр 2016, 12:40

Господа, подскажите пожалуйста: возможно ли в принципе писать плагины для TS на C++?
Столкнулся с проблемой: код основной программы на плюсах, плагин взял из примеров Теклы и переделал под свои нужды (частично для начала) на c#.
Плагин после моих исправлений работает, дальше нужно его усложнять и наращивать возможности. Хотелось бы весь код иметь на C++, тем более что в c#
я разбираюсь не сильно. Буду очень благодарен тому кто подскажет как перевести такой простенький фрагмент кода на плюсы:

namespace TestPlugin
{
using System;
using System.Collections.Generic;
using Tekla.Structures.Plugins;

#region Plugin

/// <summary>This it the class that executes the tasks.
/// Please rename the plugin accordingly</summary>
[Plugin("TestPlugin")]
public class Plugin : Tekla.Structures.Plugins.PluginBase
{

#region Public functions

public override List<InputDefinition> DefineInput()
{
var commandList = new List<InputDefinition>();

return commandList;
}

public override bool Run(List<InputDefinition> input)
{

System.Windows.Forms.MessageBox.Show("Запущена DLL-ка");

return true;
}

#endregion Public functions
}

#endregion Plugin
}

Уже совсем замучался - на объявление класса Plugin у меня компилятор выдает: TestPlugin::Plugin: неуправляемый тип не может быть производным от управляемого типа "Tekla::Structures::Plugins::PluginBase".

smonder
Сообщения: 11
Регистрация: 11 июл 2012, 01:27

Re: API, проблемы и решения в Tekla Structures

Сообщение smonder » 22 апр 2016, 13:00

Может у кого есть пример плагина на C++, поделитесь пожалуйста.

Аватара пользователя
CuPo>I<a
Сообщения: 782
Регистрация: 26 дек 2011, 12:41
Откуда: Златоуст
Контактная информация:

Re: API, проблемы и решения в Tekla Structures

Сообщение CuPo>I<a » 22 апр 2016, 13:21

наверное для перевода с одного языка на другой нужен тот, кто знает оба языка :)

arnkey
Сообщения: 18
Регистрация: 18 фев 2016, 09:38
Откуда: г. Хабаровск
Контактная информация:

Re: API, проблемы и решения в Tekla Structures

Сообщение arnkey » 22 апр 2016, 13:28

smonder писал(а):Господа, подскажите пожалуйста: возможно ли в принципе писать плагины для TS на C++?
Столкнулся с проблемой: код основной программы на плюсах, плагин взял из примеров Теклы и переделал под свои нужды (частично для начала) на c#.
Плагин после моих исправлений работает, дальше нужно его усложнять и наращивать возможности. Хотелось бы весь код иметь на C++, тем более что в c#
я разбираюсь не сильно. Буду очень благодарен тому кто подскажет как перевести такой простенький фрагмент кода на плюсы:

namespace TestPlugin
{
using System;
using System.Collections.Generic;
using Tekla.Structures.Plugins;

#region Plugin

/// <summary>This it the class that executes the tasks.
/// Please rename the plugin accordingly</summary>
[Plugin("TestPlugin")]
public class Plugin : Tekla.Structures.Plugins.PluginBase
{

#region Public functions

public override List<InputDefinition> DefineInput()
{
var commandList = new List<InputDefinition>();

return commandList;
}

public override bool Run(List<InputDefinition> input)
{

System.Windows.Forms.MessageBox.Show("Запущена DLL-ка");

return true;
}

#endregion Public functions
}

#endregion Plugin
}

Уже совсем замучался - на объявление класса Plugin у меня компилятор выдает: TestPlugin::Plugin: неуправляемый тип не может быть производным от управляемого типа "Tekla::Structures::Plugins::PluginBase".

В общем 2 есть решения: собрать версию C# в dll и декомпилить ее в с++ .net версию. Есть еще вариант, что я помогу. Я писал на С++ один раз для теклы, решил, что проще на C# прыгнуть :) Тем более, что синтаксис похожий.

smonder
Сообщения: 11
Регистрация: 11 июл 2012, 01:27

Re: API, проблемы и решения в Tekla Structures

Сообщение smonder » 23 апр 2016, 15:07

С горем пополам наваял код по аналогии с работающим на C#, всё прекрасно компилируется и создается dll-файл. Теперь другая проблемка - Текла её не хочет открывать.
Как я подозреваю - дело в привязке имени к плагину ([Plugin("TestPlugin")] - на C#). Как это перевести на C++ не нашел и использовал в том-же виде перед объявлением класса Pligin в h-файле. Посоветуйте, как такое можно перевести, пожалуйста.

smonder
Сообщения: 11
Регистрация: 11 июл 2012, 01:27

Re: API, проблемы и решения в Tekla Structures

Сообщение smonder » 25 апр 2016, 14:56

Делюсь своими последними достижениями: [Plugin("TestPlugin")] в C++ выглядит также как и на C# (нашел в интернете), подправил некоторые свойства проекта и теперь Текла мне сама сообщает что ей конкретно не нравится:

Critical error: Адресат вызова создал исключение.
Please report this error to Tekla and make sure to include all information on this dialog.

System.Reflection.TargetInvocationException: Адресат вызова создал исключение. ---> System.InvalidCastException: Не удалось привести тип объекта "TestPlugin.Plugin" к типу "Tekla.Structures.Plugins.PluginBase".


При этом в h-файле имеется следующий код:

#pragma once

namespace TestPlugin
{
using namespace System;
using namespace System::Collections::Generic;
using namespace Tekla::Structures::Plugins;


[Plugin("TestPlugin")]

public ref class Plugin : Tekla::Structures::Plugins::PluginBase
{

public :

virtual bool Run(List<PluginBase::InputDefinition^>^ Input) override;
virtual List<PluginBase::InputDefinition^>^ DefineInput(void) override;
};
}


Таким образом стало понятно что возникает конфликт с типом класса Plugin, а Текла мой плагин прекрасно находит. Вот что ей не нравится с приведением типа - это действительно загадка. Странно что на C# такая проблема не возникает.

Роджер
Сообщения: 9
Регистрация: 13 авг 2015, 07:39
Откуда: Челябинск

Re: API, проблемы и решения в Tekla Structures

Сообщение Роджер » 12 авг 2016, 10:08

Для созданного плагина делается рез, при перемещении рез остается на месте. Кто ни будь в курсе как исправить?

Eghor
Сообщения: 33
Регистрация: 19 фев 2014, 21:08

Re: API, проблемы и решения в Tekla Structures

Сообщение Eghor » 26 сен 2016, 21:19

Не могу сообразить, как в ConnectionBase реализовать нечто подожее на направление вверх, вкладка общие стандартных плагинов. т.е возможность крутить детали плагина относительно второстепенной детали. Никто с подобным не сталкивался?

Аватара пользователя
100k
Сообщения: 163
Регистрация: 12 фев 2014, 11:04

Re: API, проблемы и решения в Tekla Structures

Сообщение 100k » 02 ноя 2016, 10:15

Вопрос на картинке
Вложения
cmb.png
cmb.png (18.52 КБ) 21619 просмотров

Eghor
Сообщения: 33
Регистрация: 19 фев 2014, 21:08

Re: API, проблемы и решения в Tekla Structures

Сообщение Eghor » 13 дек 2016, 15:43

Никто не знает, как программно вызвать команду Tekla?

AndrejjerdnA
Сообщения: 103
Регистрация: 18 сен 2014, 07:20

Re: API, проблемы и решения в Tekla Structures

Сообщение AndrejjerdnA » 25 дек 2016, 18:57

Можно ли средствами API рисовать высотные отметки? Может кто-то подскажет.
Вложения
Скриншот 25-12-2016 184036.png
Скриншот 25-12-2016 184036.png (13.06 КБ) 16466 просмотров

Аватара пользователя
CuPo>I<a
Сообщения: 782
Регистрация: 26 дек 2011, 12:41
Откуда: Златоуст
Контактная информация:

Re: API, проблемы и решения в Tekla Structures

Сообщение CuPo>I<a » 26 дек 2016, 07:03

можно....палка-палка-огуречик....

AndrejjerdnA
Сообщения: 103
Регистрация: 18 сен 2014, 07:20

Re: API, проблемы и решения в Tekla Structures

Сообщение AndrejjerdnA » 26 дек 2016, 08:32

CuPo>I<a писал(а):можно....палка-палка-огуречик....
Так я могу... но хочется чуда...)

Ответить
phpbb3 styles

Вернуться в «3D моделирование в Tekla Structures»

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

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