Schöck
dwg.ru forum rss xml
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны |  Справка по форуму |

Вернуться   Форум DWG.RU > Программное обеспечение > Другие CAD системы > Tekla > Tekla. Open API. Создание пользовательских плагинов и макросов

Tekla. Open API. Создание пользовательских плагинов и макросов

Версия для печати
 
Ответ
Опции темы Поиск в этой теме
Непрочитано 02.03.2017, 12:58 1 |
Tekla. Open API. Создание пользовательских плагинов и макросов
PashaStr
 
инженер-конструктор
 
Минск
Регистрация: 24.04.2011
Сообщений: 306

PashaStr вне форума Вставить имя

Вдохновившись фильмами по пользовательским компонентам на ютьюбе уважаемых 100k и andrejjerdna, написал свой небольшой скрипт по прикреплению вертикальной панели-стены к нижней грани плиты перекрытия. В режиме отладки в Visual Studio всё прекрасно работает. Но появилось пару вопросов:
  1. Как закинуть готовый код (в виде dll или exe) в теклу? Интересует именно сам синтаксис в коде (для того чтобы текла "увидела" компонент). Требуется ли делать форму для плагина или допустимо использовать его без вызова формы? Примеры учебных плагинов просто идут все с формами и в лоб как-то не получилось решить вопрос.
  2. Можно ли в таком простом виде перекинуть его в макрос, сохранив функционал? Если да, есть ли у кого-нибудь простой пример макроса с выбором элементов, точек без формы
Код:
[Выделить все]
 
public class pk_Connect
    {        
        public static void WallSlabAttach()
        {
            Picker picker = new Picker();
            Beam panel=picker.PickObject(Picker.PickObjectEnum.PICK_ONE_OBJECT, "Pick PANEL") as Beam;
            double panelZ = panel.StartPoint.Z;
            ContourPlate TopSlab = PickSlab();
            Point TopSlabPoint = TopSlab.Contour.ContourPoints[0] as Point;
            double SlabZBottom = TopSlabPoint.Z-Convert.ToDouble(TopSlab.Profile.ProfileString);
            double HeightWall = SlabZBottom - panelZ;
            panel.Profile.ProfileString=Convert.ToString(HeightWall) +"*100";
            panel.Modify();
                   }
        private static ContourPlate PickSlab()
        {
            Picker picker = new Picker();
            ModelObject mo = picker.PickObject(Picker.PickObjectEnum.PICK_ONE_PART, "Pick a SLAB");
            ContourPlate slab = mo as ContourPlate;
            return slab;
        }
    }
Сам проект VS во вложении

Вложения
Тип файла: rar pk_tekla_1ext_wall_slab_adjust.rar (1.02 Мб, 65 просмотров)


Последний раз редактировалось PashaStr, 02.03.2017 в 13:19.
Просмотров: 10179
 
Автор темы   Непрочитано 23.12.2018, 15:46
#21
PashaStr

инженер-конструктор
 
Регистрация: 24.04.2011
Минск
Сообщений: 306


Konstruktiv54 не ясна конечная цель. Вы же сами в текле моделируете или балку или фундамент. Зачем ей что-то анализировать, вы сами задали тип. Можно же и колонну замоделировать pad fouting.
PashaStr вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 23.12.2018, 15:56
#22
Konstruktiv54


 
Регистрация: 31.01.2007
Новосибирск
Сообщений: 961
Отправить сообщение для Konstruktiv54 с помощью ICQ


мда...вопрос я конечно поставил неправильно ))
меня интересует как смоделировать pad footing или panel, при помощи api.
В api есть только классы beam и multibeam.
Beam.type может принимать значение pad footing или panel или column, но он является read-only. В общем я в тупике ))

---
upd: если у колонны вы сместите верхнюю точку по горизонтали, то колонна станет балкой, так что она все таки анализирует...
Konstruktiv54 вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Автор темы   Непрочитано 23.12.2018, 16:19
1 | #23
PashaStr

инженер-конструктор
 
Регистрация: 24.04.2011
Минск
Сообщений: 306


в api как вы уже и указали тип можно только зачитать. Для новых элементов тип будет балка (в апи есть примечание об этом). Так, что скорее всего, никак нельзя решить вашу задачу. Моделируйте балками, разницы практически нет между панелью или фундаментом
PashaStr вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 24.12.2018, 10:33
2 | #24
sivlad

Конструктор
 
Регистрация: 23.11.2005
Москва
Сообщений: 217


Konstruktiv54, а почему бы просто при создании экземпляра не использовать перегрузку конструктора?
Например, так:
Beam padFooting = new Beam(Beam.BeamTypeEnum.PAD_FOOTING);
sivlad вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 24.01.2019, 10:13
#25
Konstruktiv54


 
Регистрация: 31.01.2007
Новосибирск
Сообщений: 961
Отправить сообщение для Konstruktiv54 с помощью ICQ


Код:
[Выделить все]
          
const string PluginName = "Каркас плоский вертикальный СП";
Polygon polygon = new Polygon();
polygon.Points.Add(new Point(solid.MinimumPoint.X, solid.MaximumPoint.Y, solid.MinimumPoint.Z));
ComponentInput componentInput = new ComponentInput();
componentInput.AddInputObject(myPart);
componentInput.AddInputPolygon(polygon);
componentInput.AddOneInputPosition(new Point(solid.MinimumPoint.X, solid.MaximumPoint.Y, solid.MinimumPoint.Z));

Component component = new Component();
component.SetComponentInput(componentInput);
component.Number = -100000;
component.Name = PluginName;

component.Insert();
безуспешно пытаюсь вставить компонент плоского каркаса в модель, может кто разъяснить, в чем проблема?
Konstruktiv54 вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 24.01.2019, 10:34
#26
andrejjerdna

Борьба с пустотой
 
Блог
 
Регистрация: 30.01.2014
Владимир
Сообщений: 550
Отправить сообщение для andrejjerdna с помощью Skype™


А там не надо что-то вроде еще добавить (как в примере)?
C.LoadAttributesFromFile("standard");

C.SetAttribute("side_bar_space", 333.0);
andrejjerdna вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 24.01.2019, 10:46
#27
Konstruktiv54


 
Регистрация: 31.01.2007
Новосибирск
Сообщений: 961
Отправить сообщение для Konstruktiv54 с помощью ICQ


C.LoadAttributesFromFile("standard"); - по идее этой строчки должно быть достаточно, да она тоже в коде присутствует, ноль эмоций... (

думаю, как-то я не правильно обращаюсь к компоненту, вот их состояния перед вставкой, компонент из примера имеет свой ID, я мой нет...

Выбрал этот каркас через picker, что бы посмотреть свойства...
Миниатюры
Нажмите на изображение для увеличения
Название: 2019-01-24_14-42-25.png
Просмотров: 28
Размер:	40.0 Кб
ID:	210233  Нажмите на изображение для увеличения
Название: 2019-01-24_14-50-23.png
Просмотров: 19
Размер:	26.4 Кб
ID:	210235  

Последний раз редактировалось Konstruktiv54, 24.01.2019 в 10:53.
Konstruktiv54 вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 24.01.2019, 11:32
1 | #28
100k

Tekla.Structures.Model.Beam
 
Регистрация: 31.01.2010
Сообщений: 1,900


GUID появляется в объекте когда объект вставлен в модель (insert), пользовательские атрибуты можно назначить объекту с GUID
Не факт, что файл атрибутов "standard" есть в модели (возможно надо сохранить такие настройки предварительно)
При установке компонентов, не факт, что вы правильно задаете номер компонента.
У вас этот пример работать не будет, так как используются методы расширения, но идея ясна.
Миниатюры
Нажмите на изображение для увеличения
Название: c_001.png
Просмотров: 38
Размер:	28.0 Кб
ID:	210237  

Последний раз редактировалось 100k, 24.01.2019 в 12:10.
100k вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 24.01.2019, 20:56
#29
Konstruktiv54


 
Регистрация: 31.01.2007
Новосибирск
Сообщений: 961
Отправить сообщение для Konstruktiv54 с помощью ICQ


с первым экстеншеном вроде разобрался, а вот такие записи (с=> c.UIName == ComponentName) меня пока что вгоняют в ступор, но суть да, понятна ))
Если смотреть через CatalogHandler, то номер компонента -1, но беда в том, что таких компонентов с номером -1 много.
Может что-то в консерватории подправить? Можно как нибудь заменить номер компонента, в этой базе компонентов?
Миниатюры
Нажмите на изображение для увеличения
Название: 2019-01-25_00-47-04.png
Просмотров: 33
Размер:	24.5 Кб
ID:	210268  
Konstruktiv54 вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 31.01.2019, 18:08
#30
Konstruktiv54


 
Регистрация: 31.01.2007
Новосибирск
Сообщений: 961
Отправить сообщение для Konstruktiv54 с помощью ICQ


Это снова я ))
Возник вопрос с размещением размеров на видах, размеры на виде в плане с успехом размещаются. Но если пытаюсь расставить размеры на виде детали спереди, то размеры улетают в тьму таракань.
Уже весь мозг сломал, или я BaseView не правильно задаю, или надо как-то трансформирование координат подключать, DimensionExamples из примеров тоже работает только с планом...
Может кто натолкнуть на истинный путь?
Konstruktiv54 вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 01.02.2019, 09:40
1 | #31
100k

Tekla.Structures.Model.Beam
 
Регистрация: 31.01.2010
Сообщений: 1,900


Для повернутых видов дополнительно учитывается другая система координат, кажется DisplayCS. Возможно для видов деталей, надо учитывать дополнительную СК как для повернутых видов, когда происходит трансформация координат модели в СК вида и тд. Для не повернутых видов viewCS и displayCS совпадают.
100k вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 01.02.2019, 09:42
#32
Konstruktiv54


 
Регистрация: 31.01.2007
Новосибирск
Сообщений: 961
Отправить сообщение для Konstruktiv54 с помощью ICQ


Ну да, вроде бы разобрался, надо было применить
Код:
[Выделить все]
Point p1 = beamPlane.TransformationMatrixToLocal.Transform(currentPlane.TransformationMatrixToGlobal.Transform(p1o));
пыхчу дальше )
Konstruktiv54 вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Автор темы   Непрочитано 01.02.2019, 14:28
#33
PashaStr

инженер-конструктор
 
Регистрация: 24.04.2011
Минск
Сообщений: 306


Konstruktiv54 что вы там такое в ж.б. автоматизируете, что дошли до чертежей и автообразмеривания))? Откроете тайну?))
PashaStr вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 01.02.2019, 14:40
1 | #34
Konstruktiv54


 
Регистрация: 31.01.2007
Новосибирск
Сообщений: 961
Отправить сообщение для Konstruktiv54 с помощью ICQ


))) ну не понимаю я, как штатными методами расставить привязки колонн, собрал такой костыль... ), со стенами надо правда еще разобраться

если, поможете разъяснить, как похожие привязки получить без костылей, буду благодарен.
Поднимал тему недавно, но понятней не стало (
Максимум чего удалось добиться, это вот такой картинки, но привязка одной точки - что-то маловато будет.
Миниатюры
Нажмите на изображение для увеличения
Название: 2019-02-01_18-52-43.png
Просмотров: 40
Размер:	34.8 Кб
ID:	210552  

Последний раз редактировалось Konstruktiv54, 01.02.2019 в 14:53.
Konstruktiv54 вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 01.02.2019, 15:16
#35
Darhan


 
Регистрация: 18.06.2010
Сообщений: 114


Можно вашего "кастылом" пользоваться?
Darhan вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Автор темы   Непрочитано 01.02.2019, 15:32
#36
PashaStr

инженер-конструктор
 
Регистрация: 24.04.2011
Минск
Сообщений: 306


Цитата:
Сообщение от Konstruktiv54 Посмотреть сообщение
если, поможете разъяснить, как похожие привязки получить без костылей
я руками расставляю размеры)
Кстати, могу помочь идеей по вашему плагину с ФБС (если проблемы озвученные в видео актуальны)
PashaStr вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 01.02.2019, 15:38
2 | #37
Konstruktiv54


 
Регистрация: 31.01.2007
Новосибирск
Сообщений: 961
Отправить сообщение для Konstruktiv54 с помощью ICQ


Цитата:
Сообщение от Darhan Посмотреть сообщение
Можно вашего "кастылом" пользоваться?
пользуйтесь, если понравилось...

Цитата:
Сообщение от PashaStr Посмотреть сообщение
Кстати, могу помочь идеей по вашему плагину с ФБС (если проблемы озвученные в видео актуальны)
вроде бы все решил... )
Вложения
Тип файла: rar DrawingsUtilsToForum.rar (3.3 Кб, 14 просмотров)

Последний раз редактировалось Konstruktiv54, 01.02.2019 в 15:44.
Konstruktiv54 вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 05.02.2019, 10:08
#38
100k

Tekla.Structures.Model.Beam
 
Регистрация: 31.01.2010
Сообщений: 1,900


Было бы не плохо попробовать установку размеров в чертежах и меток через машинное обучение (я серьезно).
100k вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Автор темы   Непрочитано 05.02.2019, 10:21
#39
PashaStr

инженер-конструктор
 
Регистрация: 24.04.2011
Минск
Сообщений: 306


Цитата:
Сообщение от 100k Посмотреть сообщение
Было бы не плохо попробовать установку размеров в чертежах и меток через машинное обучение (я серьезно)
тогда уже надо программированием на жизнь зарабатывать, а не раскладкой арматуры
PashaStr вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 05.02.2019, 10:25
#40
andrejjerdna

Борьба с пустотой
 
Блог
 
Регистрация: 30.01.2014
Владимир
Сообщений: 550
Отправить сообщение для andrejjerdna с помощью Skype™


Цитата:
Сообщение от 100k Посмотреть сообщение
Было бы не плохо попробовать установку размеров в чертежах и меток через машинное обучение (я серьезно).
Это реально наверное. Только надо где-то достаточно большую подборку готового, чтобы программу можно было обучить. Или как-то по другому двигаться?
andrejjerdna вне форума вставить имя Обратить внимание модератора на это сообщение  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Другие CAD системы > Tekla > Tekla. Open API. Создание пользовательских плагинов и макросов

Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание просечно-вытяжного листа в Tekla. safronsafronov Tekla 8 21.04.2016 03:26
AUTOCAD 2010 перестал переключаться в многооконный режим. Проблемы с переменными Андрей Х. AutoCAD 24 27.05.2015 10:17
Acaddoc.lsp - насколько вредный Alexander88 LISP 1 10.06.2014 09:29
Автозагрузка приложения до загрузки чертежа Ax3 Программирование 14 15.02.2008 23:29

|| Главная || Каталог САПР || Тендеры || Публикации || Объявления || Биржа труда || Download || Галерея ||
|| Библиотека || Кунсткамера || Каталог предприятий || Контакты || Файлообменник || Блоги ||