API, проблемы и решения в Tekla Structures
API, проблемы и решения в Tekla Structures
Доброго времени суток, уважаемые форумчане!
Не нашел ветки по API, поэтому спрошу здесь.
При создании плагинов столкнулся с несколькими проблемами, которые никак не могу решить:
- как назначить пользовательский параметр выбранному объекту? Метод MyBeam.SetUserProperty("USERDEFINED.Поле", "значение") не работает. Вообще, пробовал по-всякому - не работает никак.
- не получается так же назначить класс: MyBeam.Class = "Класс" возвращает ноль. Единственное, на что вообще реагирует это свойство - когда создаю булевы объекты: MyBeam.Class = BooleanPart.BooleanOperativeClassName;
- элемент comboBox при запуске макроса не возвращает выбранное значение, а при повторном открытии формы вообще его забывает. А если не переключить CausesValidation на false - фокус не теряется.
Кто даст хоть какую-нибудь наводку буду очень сильно признателен!
Не нашел ветки по API, поэтому спрошу здесь.
При создании плагинов столкнулся с несколькими проблемами, которые никак не могу решить:
- как назначить пользовательский параметр выбранному объекту? Метод MyBeam.SetUserProperty("USERDEFINED.Поле", "значение") не работает. Вообще, пробовал по-всякому - не работает никак.
- не получается так же назначить класс: MyBeam.Class = "Класс" возвращает ноль. Единственное, на что вообще реагирует это свойство - когда создаю булевы объекты: MyBeam.Class = BooleanPart.BooleanOperativeClassName;
- элемент comboBox при запуске макроса не возвращает выбранное значение, а при повторном открытии формы вообще его забывает. А если не переключить CausesValidation на false - фокус не теряется.
Кто даст хоть какую-нибудь наводку буду очень сильно признателен!
Последний раз редактировалось Alex591 14 фев 2014, 07:53, всего редактировалось 2 раза.
- Danila_ZLT
- Сообщения: 603
- Регистрация: 02 окт 2012, 12:14
- Откуда: Златоуст
- Контактная информация:
Re: API, проблемы и решения.
Либо MyBeam.SetUserProperty("Поле", "значение")
Либо MyBeam.SetReportProperty("USERDEFINED.Поле", "значение")
Либо MyBeam.SetReportProperty("USERDEFINED.Поле", "значение")
Автоматизируем хаос... Недорого...
Re: API, проблемы и решения.
Хех... Сработало только в одном случае - если назначать свойство без "USERDEFINED" и только после оператора Insert().0 До вставки не хочет. Почему-то этот вариант я не рассматривал.
Danila_ZLT, благодарю за совет. А с comboBox у Вас проблемы не возникали?
Danila_ZLT, благодарю за совет. А с comboBox у Вас проблемы не возникали?
- Danila_ZLT
- Сообщения: 603
- Регистрация: 02 окт 2012, 12:14
- Откуда: Златоуст
- Контактная информация:
Re: API, проблемы и решения.
пользовательские свойства можно записать к объекту, только если он записан в базу (имеет не пустой идентификатор "Identifier")
Автоматизируем хаос... Недорого...
Re: API, проблемы и решения.
Свойство NAME и FINISH судя по всему тоже.
Re: API, проблемы и решения в Tekla Structures
Вот такая конструкция у меня вполне себе работает, сборки получены из модели и имеют идентификатор
При изменении поля, оно сразу меняется в модели теклы без использования Modify()
При изменении поля, оно сразу меняется в модели теклы без использования 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
- Сообщения: 603
- Регистрация: 02 окт 2012, 12:14
- Откуда: Златоуст
- Контактная информация:
Re: API, проблемы и решения в Tekla Structures
Modify() - для записи измененных свойств объекта в базу.100k писал(а):Вот такая конструкция у меня вполне себе работает, сборки получены из модели и имеют идентификатор
При изменении поля, оно сразу меняется в модели теклы без использования Modify()
}
Изменение пользовательских полей сам объект не затрагивает.
Пользовательские поля хранятся в отдельной табличке и привязаны к идентификатору объекта.
У нового незаписанного объекта идентификатор пустой, поэтому пользовательские поля не сохраняются.
Автоматизируем хаос... Недорого...
Re: API, проблемы и решения в Tekla Structures
Очень хочу получить результаты расчета отдельных нагружений и от комбинаций программно через "AnalysisResult", не получается. Может ктото уже пробовал? Сами результаты передались из Робот в Текла.
Re: API, проблемы и решения в Tekla Structures
Плагины. Не смог подключить дебагер (attach to prosess) в VS 2010 к отладке плагинов.
Указывал ссылки на pdb файлы все напрасно. Подскажите в чем дело, или пример какой нить скиньте, если кому то удалось это сделать.
Указывал ссылки на pdb файлы все напрасно. Подскажите в чем дело, или пример какой нить скиньте, если кому то удалось это сделать.
- Danila_ZLT
- Сообщения: 603
- Регистрация: 02 окт 2012, 12:14
- Откуда: Златоуст
- Контактная информация:
Re: API, проблемы и решения в Tekla Structures
Это зачем?100k писал(а):Указывал ссылки на pdb файлы все напрасно
Скопировать плагин в теклу, запустить теклу, подключиться к процессу, поставить точки останова.
Работает вроде без всяких настроек.
Автоматизируем хаос... Недорого...
Re: API, проблемы и решения в Tekla Structures
Так и делал. Не сработало.
VS2010, Tekla 18.1
Затем пробовал мудрить с настройками после просмотров форумов и видео с ютуба, не помогло.
VS2010, Tekla 18.1
Затем пробовал мудрить с настройками после просмотров форумов и видео с ютуба, не помогло.
- Danila_ZLT
- Сообщения: 603
- Регистрация: 02 окт 2012, 12:14
- Откуда: Златоуст
- Контактная информация:
Re: API, проблемы и решения в Tekla Structures
Что конкретно не работает?
К процессу подключается?
Точки останова ставятся?
Программа не останавливается в точке останова?
К процессу подключается?
Точки останова ставятся?
Программа не останавливается в точке останова?
Автоматизируем хаос... Недорого...
Re: API, проблемы и решения в Tekla Structures
Программа не останавливается в точке останова (breakpoint).
В текле плагин работает.
Еще не понимаю такого нюанса в плагинах.
Каждый раз когда меняются входные объекты (PrimaryPart и тд) запускается метод Run.
Просмотрел примеры (TeklaOpenAPIStartupPackage_v180) , детали которые создаются плагином не модифицируются, а создаются заново (соответственно у этой детали будет новый GUID)
В текле плагин работает.
Еще не понимаю такого нюанса в плагинах.
Каждый раз когда меняются входные объекты (PrimaryPart и тд) запускается метод Run.
Просмотрел примеры (TeklaOpenAPIStartupPackage_v180) , детали которые создаются плагином не модифицируются, а создаются заново (соответственно у этой детали будет новый GUID)
- Danila_ZLT
- Сообщения: 603
- Регистрация: 02 окт 2012, 12:14
- Откуда: Златоуст
- Контактная информация:
Re: API, проблемы и решения в Tekla Structures
Как выглядят точки останова?
не такие случайно?Автоматизируем хаос... Недорого...
Re: API, проблемы и решения в Tekla Structures
ID будут менять если плагин создает больше одной детали. Чтобы это исключить задавайте уникальные метки для каждого объекта через SetLable()100k писал(а): (соответственно у этой детали будет новый GUID)
Re: API, проблемы и решения в Tekla Structures
Кажется такие, сейчас точно сказать не могу, нет под руками VS. Но символ это и есть pdb файл.
>ID будут менять если плагин создает больше одной детали. Чтобы это исключить задавайте уникальные метки для каждого объекта через SetLable()
Спасибо, попробую разобраться.
А как вариант создавать объекты в конструкторе, а потом модифицировать их в Run().
Кажется есть такой плюс.... например ContourPlate можно слегка в ручную изменить, а потом плагин не задает координаты ContourPoint заново, а смещает эту точку на какую-то величину...
Возможно, что все в курсе, но тем не менее, довольно удобно копировать плагины после их создания автоматически
>ID будут менять если плагин создает больше одной детали. Чтобы это исключить задавайте уникальные метки для каждого объекта через SetLable()
Спасибо, попробую разобраться.
А как вариант создавать объекты в конструкторе, а потом модифицировать их в Run().
Кажется есть такой плюс.... например ContourPlate можно слегка в ручную изменить, а потом плагин не задает координаты ContourPoint заново, а смещает эту точку на какую-то величину...
Возможно, что все в курсе, но тем не менее, довольно удобно копировать плагины после их создания автоматически
Re: API, проблемы и решения в Tekla Structures
Вопрос по PluginFormBase
Не работают кнопки "Применить" и "Получить" кнопка "Изменить" работает, явно связанно StructuresData
Не работают кнопки "Применить" и "Получить" кнопка "Изменить" работает, явно связанно StructuresData
Re: API, проблемы и решения в Tekla Structures
Я добавил на эти кнопки свои события
Код: Выделить всё
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();
}
Re: API, проблемы и решения в Tekla Structures
Поделитесь пожалуйста, темплейтом для ConnectionBase.
Свойство контурной плиты "Class"
При выполнении кода в плагине, свойство cplate.Class почему-то получается равным "0"
При выполнении аналогичного кода как вин приложение свойтсво Class получает значение 99. Такое может быть?
Свойство контурной плиты "Class"
При выполнении кода в плагине, свойство cplate.Class почему-то получается равным "0"
При выполнении аналогичного кода как вин приложение свойтсво Class получает значение 99. Такое может быть?
Код: Выделить всё
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();
}
Re: API, проблемы и решения в Tekla Structures
Вопрос по компонентам API.
Можно ли выбрать деталь компонента (см картинку) и отредактировать ее, что бы компонент запомнил изменения в детали.
Так при изменении главной и(или) второстепенных деталей все изменения пропадают (все детали компонента создаются заново как я понимаю сейчас). Ясно, что выполняется конструктор и метод Run() и создаются новые детали с данными полученными от StructuresData. Экземпляр этого класс, видимо хранится в модели и при изменении компонента конструктор получает его в качестве параметра.
Склоняюсь к мысли, что нельзя!
Можно ли выбрать деталь компонента (см картинку) и отредактировать ее, что бы компонент запомнил изменения в детали.
Так при изменении главной и(или) второстепенных деталей все изменения пропадают (все детали компонента создаются заново как я понимаю сейчас). Ясно, что выполняется конструктор и метод Run() и создаются новые детали с данными полученными от StructuresData. Экземпляр этого класс, видимо хранится в модели и при изменении компонента конструктор получает его в качестве параметра.
Склоняюсь к мысли, что нельзя!
Re: API, проблемы и решения в Tekla Structures
Все верно, нельзя100k писал(а):Склоняюсь к мысли, что нельзя!
Re: API, проблемы и решения в Tekla Structures
А имеет ли смысл пользоваться компонентом в компоненте при использовании АПИ?
Например соединение колонны и распорки ГСП и этот компонент включает в себя существующие компоненты:
1. Компонент - деталь на колонне парные ребра жесткости.
2. Компонент - деталь фасонка и фланец на связи ГСП.
Наверное сумбурно излагаю...
Например соединение колонны и распорки ГСП и этот компонент включает в себя существующие компоненты:
1. Компонент - деталь на колонне парные ребра жесткости.
2. Компонент - деталь фасонка и фланец на связи ГСП.
Наверное сумбурно излагаю...
Re: API, проблемы и решения в Tekla Structures
компоненты в компоненте - вполне удобная вещь, по крайней мере эту возможность можно использовать стандартными возможностями.100k писал(а):А имеет ли смысл пользоваться компонентом в компоненте при использовании АПИ?
Например соединение колонны и распорки ГСП и этот компонент включает в себя существующие компоненты:
1. Компонент - деталь на колонне парные ребра жесткости.
2. Компонент - деталь фасонка и фланец на связи ГСП.
Наверное сумбурно излагаю...
По моему, придумывать какой-то дополнительный плагин/макрос с использованием API для решения тех же задач не стоит затраченного на это времени. Всё равно что придумывать колесо.. >_>
«Есть только две бесконечные вещи: Вселенная и глупость. Хотя насчет Вселенной я не вполне уверен.» А. Эйнштейн
Re: API, проблемы и решения в Tekla Structures
Я имел в виду несколько другое.
Если компоненты созданы через АПИ, то объединить их в компонент более высокого уровня, состоящий из нескольких более простых компонентов.
Если компоненты созданы через АПИ, то объединить их в компонент более высокого уровня, состоящий из нескольких более простых компонентов.
Re: API, проблемы и решения в Tekla Structures
и получить один компонент более сложной структуры... я правильно понял?100k писал(а):Я имел в виду несколько другое.
Если компоненты созданы через АПИ, то объединить их в компонент более высокого уровня, состоящий из нескольких более простых компонентов.
«Есть только две бесконечные вещи: Вселенная и глупость. Хотя насчет Вселенной я не вполне уверен.» А. Эйнштейн
Re: API, проблемы и решения в Tekla Structures
[/quote]
и получить один компонент более сложной структуры... я правильно понял?[/quote]
Так точно!
и получить один компонент более сложной структуры... я правильно понял?[/quote]
Так точно!
Re: API, проблемы и решения в Tekla Structures
Ищу как можно офсетить полигон средствами АПИ.... Как это сделать?
Re: API, проблемы и решения в Tekla Structures
Может кто сталкивался...
Плагин унаследован от "ConnectionBase" соединяет 2 детали. Работает, после удаления компонента (узла) вновь соединить эти две детали не получается плагин не срабатывает.
Те плагин между 2мя деталями срабатывает один раз.
Плагин унаследован от "ConnectionBase" соединяет 2 детали. Работает, после удаления компонента (узла) вновь соединить эти две детали не получается плагин не срабатывает.
Те плагин между 2мя деталями срабатывает один раз.
- Danila_ZLT
- Сообщения: 603
- Регистрация: 02 окт 2012, 12:14
- Откуда: Златоуст
- Контактная информация:
Re: API, проблемы и решения в Tekla Structures
Откомпилил SpliceConnection из примеров, все работает.
Много раз...
Много раз...
Автоматизируем хаос... Недорого...
Re: API, проблемы и решения в Tekla Structures
Другие плагины работают без проблем.
Кажется разобрался.
В данном плагине [AutoDirectionType(AutoDirectionTypeEnum.AUTODIR_NA)]
поменял на [AutoDirectionType(AutoDirectionTypeEnum.AUTODIR_BASIC)]
Вроде все работает...
Спасибо.
Кажется разобрался.
В данном плагине [AutoDirectionType(AutoDirectionTypeEnum.AUTODIR_NA)]
поменял на [AutoDirectionType(AutoDirectionTypeEnum.AUTODIR_BASIC)]
Вроде все работает...
Спасибо.
Re: API, проблемы и решения в Tekla Structures
а можно ли через API получить доступ к модели без запуска теклы? ну так к данным в базе, атрибутам
«Есть только две бесконечные вещи: Вселенная и глупость. Хотя насчет Вселенной я не вполне уверен.» А. Эйнштейн
- Danila_ZLT
- Сообщения: 603
- Регистрация: 02 окт 2012, 12:14
- Откуда: Златоуст
- Контактная информация:
Re: API, проблемы и решения в Tekla Structures
Только через дамп, если не знаете формата базы данных теклы.meart писал(а):а можно ли через API получить доступ к модели без запуска теклы? ну так к данным в базе, атрибутам
Автоматизируем хаос... Недорого...
Re: API, проблемы и решения в Tekla Structures
Столкнулся с той же проблеммой пару раз. Помогло следующее:Alex591 писал(а):Доброго времени суток, уважаемые форумчане!
- элемент comboBox при запуске макроса не возвращает выбранное значение, а при повторном открытии формы вообще его забывает. А если не переключить CausesValidation на false - фокус не теряется.
1) AttributeTypeName: Integer
BindPropertyName: SelectedIndex
таким макаром параметр возвращается не значение комбобокса а его индекс.
2) создать новый ComboBox и параметр с новым названием, не удаляя старый. Почему так, хз, но именно на комбобоксах встречалось не раз. Потом убедившись, что он работает удалять старые не рабочие.
свои разработки складирую тут: http://cadsupport.ru
Re: API, проблемы и решения в Tekla Structures
Подскажите как получить список стандартов болтов ?
- Danila_ZLT
- Сообщения: 603
- Регистрация: 02 окт 2012, 12:14
- Откуда: Златоуст
- Контактная информация:
Re: API, проблемы и решения в Tekla Structures
Код: Выделить всё
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);
}
}
Автоматизируем хаос... Недорого...
Re: API, проблемы и решения в Tekla Structures
Спасибо.
Еще вопрос, как задать иконку для пользовательского плагина (API)?
Еще вопрос, как задать иконку для пользовательского плагина (API)?
- Danila_ZLT
- Сообщения: 603
- Регистрация: 02 окт 2012, 12:14
- Откуда: Златоуст
- Контактная информация:
Re: API, проблемы и решения в Tekla Structures
Положить картинку в "c:\TeklaStructures\20.0\Bitmaps"
Имя файлика "et_element_имя вашего плагина.bmp"
Если нужна иконка на панельку - то файлик "имя вашего плагина.bmp" в ту-же папку.
Имя файлика "et_element_имя вашего плагина.bmp"
Если нужна иконка на панельку - то файлик "имя вашего плагина.bmp" в ту-же папку.
Автоматизируем хаос... Недорого...
Re: API, проблемы и решения в Tekla Structures
Либо здесь: C:\ProgramData\Tekla Structures\19.0\BitmapsDanila_ZLT писал(а):Положить картинку в "c:\TeklaStructures\20.0\Bitmaps"
Имя файлика "et_element_имя вашего плагина.bmp"
Если нужна иконка на панельку - то файлик "имя вашего плагина.bmp" в ту-же папку.
свои разработки складирую тут: http://cadsupport.ru
Re: API, проблемы и решения в Tekla Structures
Доброе утро! скажите пожалуйста как сменить язык интерфейса в Tekla Structures? ..
Re: API, проблемы и решения в Tekla Structures
Вопрос по плагинам.
В Х-плагинах (автор sfera04) используются стандартные окна(формы) для редактирования болтов, сварки, деталей, фасок и тд.
Ищу пример (исходный код)подобного окна.
В Х-плагинах (автор sfera04) используются стандартные окна(формы) для редактирования болтов, сварки, деталей, фасок и тд.
Ищу пример (исходный код)подобного окна.
Re: API, проблемы и решения в Tekla Structures
..да он сам его сделал:)
pdimav1979(не собака)yandex.ru
- Danila_ZLT
- Сообщения: 603
- Регистрация: 02 окт 2012, 12:14
- Откуда: Златоуст
- Контактная информация:
Re: API, проблемы и решения в Tekla Structures
а чего искать? есть х-плагины, там и смотрите.
Автоматизируем хаос... Недорого...
Re: API, проблемы и решения в Tekla Structures
При копировании контурной плиты "в плагине" сварные швы соединяющие плиту не копируются, а при копировании НЕ в плагине сварные швы копируются вместе с контурной плитой.....
ModelObject o = Tekla.Structures.Model.Operations.Operation.CopyObject(cp, startCS, endCS);
Кто нибудь в курсе в чем дело?
ModelObject o = Tekla.Structures.Model.Operations.Operation.CopyObject(cp, startCS, endCS);
Кто нибудь в курсе в чем дело?
- Danila_ZLT
- Сообщения: 603
- Регистрация: 02 окт 2012, 12:14
- Откуда: Златоуст
- Контактная информация:
Re: API, проблемы и решения в Tekla Structures
Выбирайте все объекты, которые хотите скопировать.
Сварка - отдельный объект.
Сварка - отдельный объект.
Автоматизируем хаос... Недорого...
Re: API, проблемы и решения в Tekla Structures
Я так и стал делать, но не понятно, почему не в плагинах (win application) сварка копируется вместе с контурной плитой. В плагинах не копируется.
Re: API, проблемы и решения в Tekla Structures
Добрый день.
Кто подскажет, как через API нарисовать вспомогательную линию и точку!?
Кто подскажет, как через API нарисовать вспомогательную линию и точку!?
pdimav1979(не собака)yandex.ru
- Danila_ZLT
- Сообщения: 603
- Регистрация: 02 окт 2012, 12:14
- Откуда: Златоуст
- Контактная информация:
Re: API, проблемы и решения в Tekla Structures
ControlLine controlLine = new ControlLine();pdimav писал(а):Добрый день.
Кто подскажет, как через API нарисовать вспомогательную линию и точку!?
ControlPoint controlpoint = new ControlPoint();
Автоматизируем хаос... Недорого...
Re: API, проблемы и решения в Tekla Structures
Привет.Danila_ZLT писал(а):ControlLine controlLine = new ControlLine();pdimav писал(а):Добрый день.
Кто подскажет, как через API нарисовать вспомогательную линию и точку!?
ControlPoint controlpoint = new ControlPoint();
Линию нашел, а вот точки что то нет.. (Tekla 20).
pdimav1979(не собака)yandex.ru
- Danila_ZLT
- Сообщения: 603
- Регистрация: 02 окт 2012, 12:14
- Откуда: Златоуст
- Контактная информация:
Re: API, проблемы и решения в Tekla Structures
Ждем 21 теклу, там есть.pdimav писал(а): Линию нашел, а вот точки что то нет.. (Tekla 20).
Автоматизируем хаос... Недорого...
Re: API, проблемы и решения в Tekla Structures
Доброго времени суток!
Подскажите, пожалуйста, как объединить набор линий и текстовых полей (по задумке они должны составлять небольшую табличку), созданных с помощью API на чертеже так, чтобы они воспринимались теклой как один объект (например так, как это сделано с ведомостью расхода стали для КЖ в WeldApp). Покопавшись в функциональности редактора чертежей теклы я не нашел функции наподобие создания блока в автокаде. Может нужно сделать новый класс таблицы, сделав его производным от какого-нибудь базового класса чертежа, например Tekla.Structures.Drawing.DrawingObject ?
ps: я в программировании почти полное днище - школьный курс паскаль и уже как три недели копаюсь с c#.
Подскажите, пожалуйста, как объединить набор линий и текстовых полей (по задумке они должны составлять небольшую табличку), созданных с помощью API на чертеже так, чтобы они воспринимались теклой как один объект (например так, как это сделано с ведомостью расхода стали для КЖ в WeldApp). Покопавшись в функциональности редактора чертежей теклы я не нашел функции наподобие создания блока в автокаде. Может нужно сделать новый класс таблицы, сделав его производным от какого-нибудь базового класса чертежа, например Tekla.Structures.Drawing.DrawingObject ?
ps: я в программировании почти полное днище - школьный курс паскаль и уже как три недели копаюсь с c#.
Re: API, проблемы и решения в Tekla Structures
Плагины тебе помогут
Re: API, проблемы и решения в Tekla Structures
Вы имеете в виду класс Tekla.Structures.Drawing.Plugin ?CuPo>I<a писал(а):Плагины тебе помогут
Re: API, проблемы и решения в Tekla Structures
https://warehouse.tekla.com/#/catalog/d ... 4febe853a9
Tekla Open API StartUp Package
см примеры плагины чертежей.
Tekla Open API StartUp Package
см примеры плагины чертежей.
Re: API, проблемы и решения в Tekla Structures
В плагинах надо указывать ссылки на библиотеки Tekla. Для каждой версии, соответственно свои библиотеки различающиеся по номеру версии Теклы. Как с наименьшими затратами компилировать плагины для разных версий Теклы?
**************************************
Вопрос снимается.
**************************************
Вопрос снимается.
Re: API, проблемы и решения в Tekla Structures
В процессе написания плагина возник вопрос - можно ли как-нибудь удобно организовать процесс отладки?
Сейчас поступаю так: сборка .dll в visual studio с автоматическим копированием в папку plugins -> открытие проекта tekla -> открытие чертежа -> добавление плагина на панель инструментов -> использование плагина -> если что-то не устраивает - закрытие теклы, внесение правок в VS и по новой.
Тратится куча времени и нервов. И, что самое главное, нет возможности отладчика...
Сейчас поступаю так: сборка .dll в visual studio с автоматическим копированием в папку plugins -> открытие проекта tekla -> открытие чертежа -> добавление плагина на панель инструментов -> использование плагина -> если что-то не устраивает - закрытие теклы, внесение правок в VS и по новой.
Тратится куча времени и нервов. И, что самое главное, нет возможности отладчика...
- Danila_ZLT
- Сообщения: 603
- Регистрация: 02 окт 2012, 12:14
- Откуда: Златоуст
- Контактная информация:
Re: API, проблемы и решения в Tekla Structures
Для плагинов чертежа сделайте сначала програмку, отладте ее, потом уж и плагин делайте.zgkr писал(а):В процессе написания плагина возник вопрос - можно ли как-нибудь удобно организовать процесс отладки?
Сейчас поступаю так: сборка .dll в visual studio с автоматическим копированием в папку plugins -> открытие проекта tekla -> открытие чертежа -> добавление плагина на панель инструментов -> использование плагина -> если что-то не устраивает - закрытие теклы, внесение правок в VS и по новой.
Тратится куча времени и нервов.
Отладка замечательно работает, тема эта уже не раз поднималась, ищите.zgkr писал(а):И, что самое главное, нет возможности отладчика...
Автоматизируем хаос... Недорого...
Re: API, проблемы и решения в Tekla Structures
Danila_ZLT, можете подробнее пояснить, каким образом это сделать? Попытался просто скопировать код с плагина в приложение, но куча используемых методов класса PluginFormBase недоступны. Выходит, в приложении нужно сначала создавать экземпляр плагина? И если да, то как им управлять, ведь в случае с плагином управление (вызов методов, изменение полей, создание экземпляров) берет на себя среда теклы.Danila_ZLT писал(а):Для плагинов чертежа сделайте сначала програмку, отладте ее, потом уж и плагин делайте.
Чувствую, что с точки зрения программиста написал кучу всякой глупости. Но, надеюсь, вопрос в общем понятен.
- Danila_ZLT
- Сообщения: 603
- Регистрация: 02 окт 2012, 12:14
- Откуда: Златоуст
- Контактная информация:
Re: API, проблемы и решения в Tekla Structures
Пользуйтесь формами теклы:
вместо
используйте
Tekla.Structures.Dialog не забудьте подключить.
Смотрите мои макросы, там все есть.
Это про поля...
Ну и вызвать процедурку обработки макроса с нужными параметрами - тоже не проблемма.
вместо
Код: Выделить всё
partial class MyForm: System.Windows.Forms.Form
Код: Выделить всё
partial class MyForm : ApplicationFormBase
Смотрите мои макросы, там все есть.
Это про поля...
Ну и вызвать процедурку обработки макроса с нужными параметрами - тоже не проблемма.
Автоматизируем хаос... Недорого...
Re: API, проблемы и решения в Tekla Structures
Danila_ZLT, где их можно лицезреть?Danila_ZLT писал(а):Смотрите мои макросы, там все есть.
Re: API, проблемы и решения в Tekla Structures
позволю себе ответить за коллегуzgkr писал(а):Danila_ZLT, где их можно лицезреть?
http://forum.zlating.ru/viewtopic.php?f=7&t=52
и вот еще распинался товарищ
http://forum.dwg.ru/showpost.php?p=1433 ... count=5912
Re: API, проблемы и решения в Tekla Structures
CuPo>I<a, не могли бы Вы подправить вторую ссылку? Сдается мне, с ней что-то не то.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
А в общем - спасибо за информацию, буду изучать.
Re: API, проблемы и решения в Tekla Structures
c ней уже было что-то не то, уже подправлял, вчера работала
http://forum.dwg.ru/showpost.php?p=1433 ... count=5912
http://forum.dwg.ru/showpost.php?p=1433 ... count=5912
API, проблемы и решения в Tekla Structures
Добрый день.
Кто может подсказать, есть два класса: класс интерфейса (формы, наследуемый PluginFormBase) и класс обработки плагина (наследуемый PluginBase), при получении длины в классе обработки (методом DefineInput), ее необходимо поместить на форму, каким образом возможно это сделать в tekle?
Кто может подсказать, есть два класса: класс интерфейса (формы, наследуемый PluginFormBase) и класс обработки плагина (наследуемый PluginBase), при получении длины в классе обработки (методом DefineInput), ее необходимо поместить на форму, каким образом возможно это сделать в tekle?
Re: API, проблемы и решения в Tekla Structures
Если я правильно понял, Вы хотите передать в форму данные из плагина. Так сделать не получится.
Re: API, проблемы и решения в Tekla Structures
100k писал(а):Если я правильно понял, Вы хотите передать в форму данные из плагина. Так сделать не получится.
Большое спасибо. А передать данные из формы, через переменные, не создавая элементы формы возможно?
- Danila_ZLT
- Сообщения: 603
- Регистрация: 02 окт 2012, 12:14
- Откуда: Златоуст
- Контактная информация:
Re: API, проблемы и решения в Tekla Structures
На какую форму?Роджер писал(а):при получении длины в классе обработки (методом DefineInput), ее необходимо поместить на форму
Автоматизируем хаос... Недорого...
Re: API, проблемы и решения в Tekla Structures
...
Не понимаю, что вы хотите сделать.Роджер писал(а):А передать данные из формы, через переменные, не создавая элементы формы возможно?
Re: API, проблемы и решения в Tekla Structures
Danila_ZLT писал(а):На какую форму?Роджер писал(а):при получении длины в классе обработки (методом DefineInput), ее необходимо поместить на форму
На форму (Интерфейс) плагина (класс формы "Интерфейса" наследуется от PluginFormBase). И есть класс обработки наследуемый от PluginBase, в котором размещен указатель на интерфейс плагина. Эти два класса связаны классом StructuresData. Необходимо из класса обработки перенести длину в класс интерфейса, для обработки, без отображения в интерфейсе.
Re: API, проблемы и решения в Tekla Structures
Всем спасибо. Из картинки теперь все понятно))))
- Danila_ZLT
- Сообщения: 603
- Регистрация: 02 окт 2012, 12:14
- Откуда: Златоуст
- Контактная информация:
Re: API, проблемы и решения в Tekla Structures
Думаю вам сюда:
В документации этот момент подробно описан.Автоматизируем хаос... Недорого...
Re: API, проблемы и решения в Tekla Structures
Danila_ZLT
Да это понятно. Просто думал, что можно передавать не только элементы формы, отображающие на форме, но например переменные.
Да это понятно. Просто думал, что можно передавать не только элементы формы, отображающие на форме, но например переменные.
Re: API, проблемы и решения в Tekla Structures
Не понятно только зачем передавать какие-то переменные, которые не вводит пользователь.
Сделайте невидимые контролы и к ним привязывайте что хотите. Сделайте Текстовый файл, в него записывайте что хотите по нажатию кнопки модифифай, потом из этого файла читайте информацию в плагине.... придумывайте.
Попробуйте заносить данные непосредственно в StructuresExtender возможно получится, я не пробовал.
Сделайте невидимые контролы и к ним привязывайте что хотите. Сделайте Текстовый файл, в него записывайте что хотите по нажатию кнопки модифифай, потом из этого файла читайте информацию в плагине.... придумывайте.
Попробуйте заносить данные непосредственно в StructuresExtender возможно получится, я не пробовал.
Re: API, проблемы и решения в Tekla Structures
Придумать придумаем, хотел ещё понять, что возможно стандартными средствами. Например, чтоб пользователю выдавался в этой же форме результат, который бы зависел от: длины(рассчитанной в самом плагине) и начальном выборе пользователя. Всем ещё раз спасибо за помощь.
Re: API, проблемы и решения в Tekla Structures
При переходе с 21.0 на 21.0 SR1 перестал корректно выполняться фрагмент кода:
Раньше я таким образом выбирал точку вставки на листе так, чтобы она не попадала на видовые экраны.
Сейчас же точка вставки не желает выбираться вовсе, даже когда тыкаю на чистое пространство листа. Получается бесконечный цикл.
Может кто-нибудь сталкивался с подобным / есть идеи, почему сломалось?
Код: Выделить всё
do
{
Picker picker = drawingHandler.GetPicker();
picker.PickPoint(pickerPrompt, out insertPoint, out dwgSheet);
}
while ((dwgSheet is ContainerView) == false);
Сейчас же точка вставки не желает выбираться вовсе, даже когда тыкаю на чистое пространство листа. Получается бесконечный цикл.
Может кто-нибудь сталкивался с подобным / есть идеи, почему сломалось?
Re: API, проблемы и решения в Tekla Structures
подскажите пжст.. как получить все болты из каталога? если пробовать так, у меня почему-то получается в BoltItemEnumerator 60 элементов, хотя в каталоге около 3000 метизов >_<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); } }
«Есть только две бесконечные вещи: Вселенная и глупость. Хотя насчет Вселенной я не вполне уверен.» А. Эйнштейн
Re: API, проблемы и решения в Tekla Structures
Как вызывать каталог профилей в плагине и считывать с него выбранный.
Варианты:
1. Перебрать используя класс LibraryProfileItem;
2. Вызвать каталог профилей используя Tekla.Structures.Dialog.UIControls.ProfileCatalog;
Не предлагать!
Варианты:
1. Перебрать используя класс LibraryProfileItem;
2. Вызвать каталог профилей используя Tekla.Structures.Dialog.UIControls.ProfileCatalog;
Не предлагать!
Последний раз редактировалось Роджер 23 сен 2015, 09:45, всего редактировалось 1 раз.
Re: API, проблемы и решения в Tekla Structures
Может у кого-нибудь была такая проблема: при вызове каталога профилей с помощью Tekla.Structures.Dialog.UIControls.ProfileCatalog, пользовательские профиля отображаются как параметрические, вместо фиксированных. При открытии каталога профилей из самой системы текли, профили отображаются нормально.
- Таран Д. А.
- Администратор
- Сообщения: 2874
- Регистрация: 30 ноя 2011, 18:41
- Откуда: г. Москва
- Контактная информация:
Re: API, проблемы и решения в Tekla Structures
Ребят. Срочно нужен человек на месяц работы в офисе.
Заплатим 120 за месяц +с жильем сообразим.
Работы блин много Руслан занят вообще. Говорит пока вообще не может освободиться никак.
Или может кого посоветуешь?
Если что я в скайпе онлайн wildomen
Заплатим 120 за месяц +с жильем сообразим.
Работы блин много Руслан занят вообще. Говорит пока вообще не может освободиться никак.
Или может кого посоветуешь?
Если что я в скайпе онлайн wildomen
Администратор Topengineer.ru 8 (495) 215-07-79 (офис) ; 8 (925) 755-9318 (сот.); Skype wildomen ; http://vk.com/tekla_structures
Разработка КМД | Разработка КМ | Разработка КЖ | Обучение Tekla Structures | Купить Tekla Structures
Разработка КМД | Разработка КМ | Разработка КЖ | Обучение Tekla Structures | Купить Tekla Structures
Re: API, проблемы и решения в Tekla Structures
Ребята, помогите! Может кто-нибудь сталкивался.
Начинаю делаю все по этой вот инструкции
но при попытке присоединиться к процессу текла закрывается, а VS выдает вот что:
Начинаю делаю все по этой вот инструкции
но при попытке присоединиться к процессу текла закрывается, а VS выдает вот что:
Re: API, проблемы и решения в Tekla Structures
Меня бы насторожило расширение exe. Вы уверены это библиотека, а не Вин приложение?
Re: API, проблемы и решения в Tekla Structures
Поменял запускаемый проект на .dll100k писал(а):Меня бы насторожило расширение exe. Вы уверены это библиотека, а не Вин приложение?
Процесс TeklaStructures все равно вылетает при попытке присоединения
Может нужно задать какие-нибудь дополнительные настройки в VS или Tekla?
Re: API, проблемы и решения в Tekla Structures
Библиотека в Теклу загружена?
Re: API, проблемы и решения в Tekla Structures
.dll и .pdb скопированы в C:\TeklaStructures\21.0\nt\bin\plugins, если вы об этомCuPo>I<a писал(а):Библиотека в Теклу загружена?
Re: API, проблемы и решения в Tekla Structures
Гадать можно долго, попробуйте запустить в дебагере плагин из стандартных примеров Tekla Open API StartUp Package. Возможно это поможет локализовать проблему.
Re: API, проблемы и решения в Tekla Structures
100k, попытался проделать все то же с примером EllipsePlugin.dll, но результат все тот же.
Так что думаю, что проблема в каких-то настройках Tekla/VS.
Я в общем-то уже нашел ошибку в своем плагине и отладка (пока что) не нужна. Но, все же, хотелось бы разобраться, в чем тут загвоздка...
Так что думаю, что проблема в каких-то настройках Tekla/VS.
Я в общем-то уже нашел ошибку в своем плагине и отладка (пока что) не нужна. Но, все же, хотелось бы разобраться, в чем тут загвоздка...
Re: API, проблемы и решения в Tekla Structures
Что-то не то, то ли с настройками дебагера, то ли еще что-то. Кажется в Экспресс версии функция "атач", вообще отсутствует. Так что, думаю, у вас не экспресс версия VS.
- Danila_ZLT
- Сообщения: 603
- Регистрация: 02 окт 2012, 12:14
- Откуда: Златоуст
- Контактная информация:
Re: API, проблемы и решения в Tekla Structures
А загадочная надпись "Access violation" вас никак не смутила?zgkr писал(а):Ребята, помогите! Может кто-нибудь сталкивался.
Начинаю делаю все по этой вот инструкции
но при попытке присоединиться к процессу текла закрывается, а VS выдает вот что:
А сдается мне что вы на компьютере "существо бесправное" без прав админских.
Если с правами у вашего пользователя все нормально, то скорее всего у вас там существует более "высокоправное существо" типа антивируса.
з.ы. контроль за изменениями приложений и тд. и тп.
Автоматизируем хаос... Недорого...
Re: API, проблемы и решения в Tekla Structures
Господа, подскажите пожалуйста: возможно ли в принципе писать плагины для 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".
Столкнулся с проблемой: код основной программы на плюсах, плагин взял из примеров Теклы и переделал под свои нужды (частично для начала) на 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".
Re: API, проблемы и решения в Tekla Structures
Может у кого есть пример плагина на C++, поделитесь пожалуйста.
Re: API, проблемы и решения в Tekla Structures
наверное для перевода с одного языка на другой нужен тот, кто знает оба языка
Re: API, проблемы и решения в Tekla Structures
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# прыгнуть Тем более, что синтаксис похожий.
Re: API, проблемы и решения в Tekla Structures
С горем пополам наваял код по аналогии с работающим на C#, всё прекрасно компилируется и создается dll-файл. Теперь другая проблемка - Текла её не хочет открывать.
Как я подозреваю - дело в привязке имени к плагину ([Plugin("TestPlugin")] - на C#). Как это перевести на C++ не нашел и использовал в том-же виде перед объявлением класса Pligin в h-файле. Посоветуйте, как такое можно перевести, пожалуйста.
Как я подозреваю - дело в привязке имени к плагину ([Plugin("TestPlugin")] - на C#). Как это перевести на C++ не нашел и использовал в том-же виде перед объявлением класса Pligin в h-файле. Посоветуйте, как такое можно перевести, пожалуйста.
Re: API, проблемы и решения в Tekla Structures
Делюсь своими последними достижениями: [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# такая проблема не возникает.
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# такая проблема не возникает.
Re: API, проблемы и решения в Tekla Structures
Для созданного плагина делается рез, при перемещении рез остается на месте. Кто ни будь в курсе как исправить?
Re: API, проблемы и решения в Tekla Structures
Не могу сообразить, как в ConnectionBase реализовать нечто подожее на направление вверх, вкладка общие стандартных плагинов. т.е возможность крутить детали плагина относительно второстепенной детали. Никто с подобным не сталкивался?
Re: API, проблемы и решения в Tekla Structures
Вопрос на картинке
Re: API, проблемы и решения в Tekla Structures
Никто не знает, как программно вызвать команду Tekla?
-
- Сообщения: 103
- Регистрация: 18 сен 2014, 07:20
Re: API, проблемы и решения в Tekla Structures
Можно ли средствами API рисовать высотные отметки? Может кто-то подскажет.
Re: API, проблемы и решения в Tekla Structures
можно....палка-палка-огуречик....
-
- Сообщения: 103
- Регистрация: 18 сен 2014, 07:20
Re: API, проблемы и решения в Tekla Structures
Так я могу... но хочется чуда...)CuPo>I<a писал(а):можно....палка-палка-огуречик....
phpbb3 styles
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость