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

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

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

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

Вдохновившись фильмами по пользовательским компонентам на ютьюбе уважаемых 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 Мб, 103 просмотров)


Последний раз редактировалось PashaStr, 02.03.2017 в 13:19.
Просмотров: 23100
 
Непрочитано 02.03.2017, 13:34
1 | #2
andrejjerdna

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


О пакете с Open API есть примеры плагинов.
Суть в том, что плагин имеет четкую структуру, необходимо соблюдать их логику. Как-то так...
Миниатюры
Нажмите на изображение для увеличения
Название: Скриншот 02-03-2017 133358.png
Просмотров: 666
Размер:	44.0 Кб
ID:	184493  
andrejjerdna вне форума  
 
Автор темы   Непрочитано 02.03.2017, 13:55
#3
PashaStr

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


Цитата:
Сообщение от andrejjerdna Посмотреть сообщение
О пакете с Open API есть примеры плагинов.
Суть в том, что плагин имеет четкую структуру, необходимо соблюдать их логику. Как-то так...
Примеры я смотрел. Правильно ли понимаю, что для плагинов обязателен интерфейс (форма)?
PashaStr вне форума  
 
Непрочитано 02.03.2017, 13:57
#4
andrejjerdna

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


Цитата:
Сообщение от PashaStr Посмотреть сообщение
Примеры я смотрел. Правильно ли понимаю, что для плагинов обязателен интерфейс (форма)?
Можно без формы сделать, если ничего в плагине не хотите менять потом.
andrejjerdna вне форума  
 
Автор темы   Непрочитано 02.03.2017, 20:27
#5
PashaStr

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


Цитата:
Сообщение от andrejjerdna Посмотреть сообщение
Можно без формы сделать, если ничего в плагине не хотите менять потом
Решение оказалось значительно проще. Делать динамический плагин мне нет необходимости. Так что просто скомпилировал в exe и добавил как приложение в теклу.
Но после 2 часов колупания в примерах, понял как синтаксис плагинов, так и "смысловую" разницу плагинов и приложений. Так, что спасибо)
PashaStr вне форума  
 
Непрочитано 06.07.2017, 10:31
#6
DonJad


 
Регистрация: 20.12.2005
Murmansk
Сообщений: 107


Можно сделать кнопочную форму, на кнопки забиндить свои методы. Скопилить, оттестировать.
А потом получившийся класс и методы обернуть в Tekla Macro script.

Как это делается можно посмотреть на примере этого скрита

Но логика в целом примитивна, мы внутри

Код:
[Выделить все]
namespace Tekla.Technology.Akit.UserScript
{

}
закидываем наши классы полностью - например форму, или какие то статик классы с нужными методами.

и там же добавляем собственно сам класс скрипта который вызывает нашу форму
Код:
[Выделить все]
	    
public class Script
        {
            public static void Run(Tekla.Technology.Akit.IScript akit)
            {
                Application.EnableVisualStyles();
                Application.Run(new Form1());
            }
        }

Т.е. получается чтото такое:

Код:
[Выделить все]
...
using TSM = Tekla.Structures.Model; 

namespace Tekla.Technology.Akit.UserScript
{
	    public class Script
        {
            public static void Run(Tekla.Technology.Akit.IScript akit)
            {
                Application.EnableVisualStyles();
                Application.Run(new Form1());
            }
        }

    public class Form1 : System.Windows.Forms.Form
    {
       // тут добавляем всё из нашего приложения form1.design.cs + form1.cs
    }
    public static class WhatEver
   {
   }

}
Таким макаром можно конвертировать приложения в макросы, или наоборот, из макроса стырить функционал и добавить в свое приложение.
Ну и главное преимущество в том что макрос автоматом копилится во время исполнения. Соответственно можно не переживать за перекопиляцию при переходе на новую версию теклы.
__________________
Tekla support
DonJad вне форума  
 
Автор темы   Непрочитано 06.07.2017, 10:45
#7
PashaStr

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


DonJad спасибо за ответ. С макросами разобрался уже.
Для форм всё же на мой взгляд поудобнее будет в VS работать на мой взгляд (отладка и т.д.), но макросы для небольшого количества кода одназначно выигрывают перед полноценными приложениями.
PashaStr вне форума  
 
Непрочитано 06.07.2017, 11:22
#8
DonJad


 
Регистрация: 20.12.2005
Murmansk
Сообщений: 107


При отладке приложения и формы без конечно VS никуда.

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

Чтобы не переживать за то, что исходный код утечет можно применить обсфукацию.
__________________
Tekla support
DonJad вне форума  
 
Автор темы   Непрочитано 06.07.2017, 11:31
#9
PashaStr

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


Цитата:
Сообщение от DonJad Посмотреть сообщение
можно применить обсфукацию.
обсфукация вроде же для dll и exe? или для макросов можно применить?
PashaStr вне форума  
 
Непрочитано 13.04.2018, 16:17
#10
Konstruktiv54


 
Регистрация: 31.01.2007
Новосибирск
Сообщений: 1,009
<phrase 1=


помогите разобраться, как в плагине задать значения параметров по дефолту?
в примерах, есть вот такой метод, но у меня это не работает ((
или надо в форме, для комбобокса какие-то свойства прописывать дополнительно?

Код:
[Выделить все]
private void GetValuesFromDialog()
{
      _Class = _data.Class;

      if (IsDefaultValue(_Class))
           _Class = "4";
}
Konstruktiv54 вне форума  
 
Непрочитано 13.04.2018, 17:25
#11
andrejjerdna

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


Цитата:
Сообщение от Konstruktiv54 Посмотреть сообщение
помогите разобраться, как в плагине задать значения параметров по дефолту?
в примерах, есть вот такой метод, но у меня это не работает ((
или надо в форме, для комбобокса какие-то свойства прописывать дополнительно?

Код:
[Выделить все]
private void GetValuesFromDialog()
{
      _Class = _data.Class;

      if (IsDefaultValue(_Class))
           _Class = "4";
}
class вроде должен быть int, а не string, если ввиду имеется именно цвет объекта.
andrejjerdna вне форума  
 
Автор темы   Непрочитано 13.04.2018, 17:47
#12
PashaStr

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


Я бы предположил, что так более правильно
Код:
[Выделить все]
private void GetValuesFromDialog()
{
      _Class = _data.Class;

      if (IsDefaultValue(_Class))
          { 
          _Class = "4";
          }
}
PashaStr вне форума  
 
Непрочитано 13.04.2018, 17:49
#13
andrejjerdna

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


_Class = "4"; в скобки брать не обязательно в данном случае.
andrejjerdna вне форума  
 
Непрочитано 13.04.2018, 18:32
#14
Konstruktiv54


 
Регистрация: 31.01.2007
Новосибирск
Сообщений: 1,009
<phrase 1=


Цитата:
class вроде должен быть int, а не string, если ввиду имеется именно цвет объекта.
не, класс - точно стринг. ладно, буду дальше воевать )
Konstruktiv54 вне форума  
 
Непрочитано 13.04.2018, 18:49
#15
nieghbor


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


Цитата:
Сообщение от Konstruktiv54 Посмотреть сообщение
не, класс - точно стринг. ладно, буду дальше воевать )
класс (цвет) - int. Если, конечно, имеется ввиду именно цвет в этом случае.
nieghbor вне форума  
 
Непрочитано 13.04.2018, 18:55
#16
Konstruktiv54


 
Регистрация: 31.01.2007
Новосибирск
Сообщений: 1,009
<phrase 1=


может я куда-то не туда смотрю...ну вроде это тот самый класс, который отвечает за цвет.
Offtop: о! 888 сообщение ))
Миниатюры
Нажмите на изображение для увеличения
Название: 2018-04-13_22-54-23.png
Просмотров: 239
Размер:	17.3 Кб
ID:	201276  
Konstruktiv54 вне форума  
 
Непрочитано 13.04.2018, 19:15
#17
nieghbor


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


Свойство "class" для детали должно иметь значение int. Так же и для арматуры.
Хотя, цвет балки к примеру, или жб колонны изменять не пробовал таким способом. Может быть есть различия?
Цвет какого объекта должен меняться?
Миниатюры
Нажмите на изображение для увеличения
Название: 123.jpg
Просмотров: 82
Размер:	56.5 Кб
ID:	201277  

Последний раз редактировалось nieghbor, 13.04.2018 в 19:33.
nieghbor вне форума  
 
Автор темы   Непрочитано 08.09.2018, 09:45
#18
PashaStr

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


Добрый день! Появилась задача "повесить" вызов MessageDialog на сочетание клавиш. Записал макрос встроенным менеджером макросов и получил такой код (см. ниже). Но вызов результирующего макроса, который должен включать данную панель просто не срабатывает, панель не появляется. Может быть кто-нибудь сталкивался с такими проблемами и может подсказать решение?

Код:
[Выделить все]
#pragma warning disable 1633 // Unrecognized #pragma directive
#pragma reference "Tekla.Macros.Akit"
#pragma reference "Tekla.Macros.Runtime"
#pragma warning restore 1633 // Unrecognized #pragma directive

namespace UserMacros {
    public sealed class Macro {
        [Tekla.Macros.Runtime.MacroEntryPointAttribute()]
        public static void Run(Tekla.Macros.Runtime.IMacroRuntime runtime) {
            Tekla.Macros.Akit.IAkitScriptHost akit = runtime.Get<Tekla.Macros.Akit.IAkitScriptHost>();
            akit.CheckValue("MessageDialog", 1);
        }
    }
}
PashaStr вне форума  
 
Непрочитано 22.12.2018, 15:35
#19
Konstruktiv54


 
Регистрация: 31.01.2007
Новосибирск
Сообщений: 1,009
<phrase 1=


Добрый день.
Может кто-нибудь объяснить как им образом class Beam, получает type?
Одно понятно, если второй узел имеет точно такие же координаты X, Y как и первый, то type = Beam.BeamTypeEnum.COLUMN.
а какие условия должны быть выполнены, что бы получить тип Pad_footing или Panel?

Последний раз редактировалось Konstruktiv54, 22.12.2018 в 15:47.
Konstruktiv54 вне форума  
 
Непрочитано 22.12.2018, 17:46
#20
art_rrc


 
Регистрация: 28.01.2013
Минск
Сообщений: 379


Цитата:
Сообщение от Konstruktiv54 Посмотреть сообщение
а какие условия должны быть выполнены, что бы получить тип Pad_footing или Panel?
Материал должен быть бетон, как минимум
art_rrc вне форума  
 
Автор темы   Непрочитано 23.12.2018, 15:46
#21
PashaStr

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


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


 
Регистрация: 31.01.2007
Новосибирск
Сообщений: 1,009
<phrase 1=


мда...вопрос я конечно поставил неправильно ))
меня интересует как смоделировать 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
Минск
Сообщений: 320


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

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


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


 
Регистрация: 31.01.2007
Новосибирск
Сообщений: 1,009
<phrase 1=


Код:
[Выделить все]
          
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
Владимир
Сообщений: 557
Отправить сообщение для andrejjerdna с помощью Skype™


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

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


 
Регистрация: 31.01.2007
Новосибирск
Сообщений: 1,009
<phrase 1=


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

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

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

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

Жалкий инженеришка-проектаст
 
Регистрация: 31.01.2010
Сообщений: 1,981


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

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


 
Регистрация: 31.01.2007
Новосибирск
Сообщений: 1,009
<phrase 1=


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


 
Регистрация: 31.01.2007
Новосибирск
Сообщений: 1,009
<phrase 1=


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

Жалкий инженеришка-проектаст
 
Регистрация: 31.01.2010
Сообщений: 1,981


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


 
Регистрация: 31.01.2007
Новосибирск
Сообщений: 1,009
<phrase 1=


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

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


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


 
Регистрация: 31.01.2007
Новосибирск
Сообщений: 1,009
<phrase 1=


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

если, поможете разъяснить, как похожие привязки получить без костылей, буду благодарен.
Поднимал тему недавно, но понятней не стало (
Максимум чего удалось добиться, это вот такой картинки, но привязка одной точки - что-то маловато будет.
Миниатюры
Нажмите на изображение для увеличения
Название: 2019-02-01_18-52-43.png
Просмотров: 74
Размер:	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
Минск
Сообщений: 320


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


 
Регистрация: 31.01.2007
Новосибирск
Сообщений: 1,009
<phrase 1=


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


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

Последний раз редактировалось Konstruktiv54, 13.03.2019 в 06:13.
Konstruktiv54 вне форума  
 
Непрочитано 05.02.2019, 10:08
#38
100k

Жалкий инженеришка-проектаст
 
Регистрация: 31.01.2010
Сообщений: 1,981


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

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


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

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


Цитата:
Сообщение от 100k Посмотреть сообщение
Было бы не плохо попробовать установку размеров в чертежах и меток через машинное обучение (я серьезно).
Это реально наверное. Только надо где-то достаточно большую подборку готового, чтобы программу можно было обучить. Или как-то по другому двигаться?
andrejjerdna вне форума  
 
Непрочитано 05.02.2019, 10:32
#41
100k

Жалкий инженеришка-проектаст
 
Регистрация: 31.01.2010
Сообщений: 1,981


Цитата:
Сообщение от PashaStr Посмотреть сообщение
тогда уже надо программированием на жизнь зарабатывать, а не раскладкой арматуры
есесна
Цитата:
Сообщение от andrejjerdna Посмотреть сообщение
Это реально наверное. Только надо где-то достаточно большую подборку готового, чтобы программу можно было обучить. Или как-то по другому двигаться?
да, на готовых примерах.

Последний раз редактировалось 100k, 05.02.2019 в 10:37.
100k вне форума  
 
Непрочитано 19.02.2019, 19:33
#42
Konstruktiv54


 
Регистрация: 31.01.2007
Новосибирск
Сообщений: 1,009
<phrase 1=


можно как-нибудь через api достучаться до соседней детали, солид ее определить?
myPart.GetSurfaceObjects(); - ноль эмоций, выдает пустоту, кто-нибудь сталкивался?

Последний раз редактировалось Konstruktiv54, 19.02.2019 в 19:51.
Konstruktiv54 вне форума  
 
Непрочитано 19.02.2019, 21:15
#43
Evgeni U

инженер-проектировщик
 
Регистрация: 07.08.2011
Казань
Сообщений: 33


Цитата:
Сообщение от Konstruktiv54 Посмотреть сообщение
можно как-нибудь через api достучаться до соседней детали, солид ее определить?
myPart.GetSurfaceObjects(); - ноль эмоций, выдает пустоту, кто-нибудь сталкивался?
А вы предварительно создали поверхность для myPart?
Evgeni U вне форума  
 
Непрочитано 20.02.2019, 04:27
#44
Konstruktiv54


 
Регистрация: 31.01.2007
Новосибирск
Сообщений: 1,009
<phrase 1=


хм...нет не задал, а как это сделать? и как потом применить? .GetSurfaceObjects() - не принимает ни одного аргумента
Konstruktiv54 вне форума  
 
Непрочитано 20.02.2019, 19:56
1 | #45
Evgeni U

инженер-проектировщик
 
Регистрация: 07.08.2011
Казань
Сообщений: 33


Цитата:
Сообщение от Konstruktiv54 Посмотреть сообщение
хм...нет не задал, а как это сделать? и как потом применить? .GetSurfaceObjects() - не принимает ни одного аргумента
SurfaceObjects - это обработка поверхности https://teklastructures.support.tekl...tment_to_parts

Для работы просто с гранями детали - myPart.GetSolid() -> mySolid.GetFaceEnumerator()
Evgeni U вне форума  
 
Непрочитано 20.02.2019, 20:02
#46
Konstruktiv54


 
Регистрация: 31.01.2007
Новосибирск
Сообщений: 1,009
<phrase 1=


ааа...понятно, а я уже было обрадовался, когда нашел GetSurfaceObjects, думал он присоединенные к поверхности соседние объекты находит ))
Part.GetSurfaceObjects - Method Returns an enumerator of all the connected surface objects.
Konstruktiv54 вне форума  
 
Непрочитано 20.02.2019, 20:06
1 | #47
Evgeni U

инженер-проектировщик
 
Регистрация: 07.08.2011
Казань
Сообщений: 33


Цитата:
Сообщение от Konstruktiv54 Посмотреть сообщение
ааа...понятно, а я уже было обрадовался, когда нашел GetSurfaceObjects, думал он присоединенные к поверхности соседние объекты находит ))
Это только через костыли.
Evgeni U вне форума  
 
Непрочитано 21.02.2019, 09:44
1 | #48
100k

Жалкий инженеришка-проектаст
 
Регистрация: 31.01.2010
Сообщений: 1,981


Проще всего сначала проверить пересечения тел деталей через OBB. Если нет пересечения OBB деталей значит они не контачат между собой. Если пересечения OBB есть, надо дальше искать контактные поверхности и тд.
100k вне форума  
 
Непрочитано 25.02.2019, 10:44
#49
Konstruktiv54


 
Регистрация: 31.01.2007
Новосибирск
Сообщений: 1,009
<phrase 1=


Еще вопрос возник, а что в плагинах нельзя ссылаться на свои выделенные библиотеки?
Я создал свою dll, по типу cs_net_lib, но если она лежит где-то на диске, то Текла ее не находит, и при запуске плагина ругается.
При попытке положить ее в папку рядом с cs_net_lib, Текла вылетает при самом старте с каким то огромным окном ошибок, никто не сталкивался?
----
upd: разобрался сам, просто библиотека была создана как netstandart, почему-то ((

Последний раз редактировалось Konstruktiv54, 25.02.2019 в 13:25.
Konstruktiv54 вне форума  
 
Непрочитано 26.02.2019, 11:36
1 | #50
100k

Жалкий инженеришка-проектаст
 
Регистрация: 31.01.2010
Сообщений: 1,981


Konstruktiv54, Можно ссылаться на свои библиотеки.
Есть способ лучше. В солюшен можно сделать несколько проектов, добавить ссылки из одного проекта на другой. Это позволит сразу работать над текущим проектом и библиотекой в VS.
Так же необходимо прописать в настройках солюшен "события сборки" и при компиляции dll эта самая dll скопируется по указанному пути. Следовательно в папке теклы у вас будет последняя сборка вашего ПО.
Это очень экономит время.
Выглядит это примерно так
copy "$(ProjectDir)$(OutDir)$(TargetFileName)" "c:\TeklaStructures\$(TSdir)\nt\bin\plugins\sv\$(TargetFileName)"
copy "$(ProjectDir)$(OutDir)$(TargetName).pdb" "c:\TeklaStructures\$(TSdir)\nt\bin\plugins\sv\$(TargetName).pdb"
100k вне форума  
 
Непрочитано 26.02.2019, 14:34
#51
Konstruktiv54


 
Регистрация: 31.01.2007
Новосибирск
Сообщений: 1,009
<phrase 1=


Цитата:
Сообщение от 100k Посмотреть сообщение
copy "$(ProjectDir)$(OutDir)$(TargetFileName)" "c:\TeklaStructures\$(TSdir)\nt\bin\plugins\sv\$(TargetFileName)"
copy "$(ProjectDir)$(OutDir)$(TargetName).pdb" "c:\TeklaStructures\$(TSdir)\nt\bin\plugins\sv\$(TargetName).pdb"
Событиями я пользуюсь, да. А *.pdb разве тоже надо копировать?
С одним солюшеном надо будет попробовать наверно
У меня сейчас так идет, есть рабочий солюшен, в котором весь функционал построен как приложения, в нем же разрабатывается dll. И второй солюшен под под плагины, в нем я работаю когда уже отлажен основной алгоритм на уровне приложения...
Konstruktiv54 вне форума  
 
Непрочитано 26.02.2019, 14:42
#52
100k

Жалкий инженеришка-проектаст
 
Регистрация: 31.01.2010
Сообщений: 1,981


Цитата:
Сообщение от Konstruktiv54 Посмотреть сообщение
pdb разве тоже надо копировать?
Это файл для режима отладки.
100k вне форума  
 
Непрочитано 28.02.2019, 17:36
#53
Konstruktiv54


 
Регистрация: 31.01.2007
Новосибирск
Сообщений: 1,009
<phrase 1=


Цитата:
Сообщение от 100k Посмотреть сообщение
Есть способ лучше. В солюшен можно сделать несколько проектов, добавить ссылки из одного проекта на другой. Это позволит сразу работать над текущим проектом и библиотекой в VS.
Я все думаю над этим делом...а можно как нибудь сделать приложение, которое являлось бы фантомом плагина, что бы оно могло заимствовать его методы и прочее...
что бы отладку производить без подключения к процессу?
Уперся в то, что не могу нестатические методы плагина передать куда-то.
Konstruktiv54 вне форума  
 
Непрочитано 28.02.2019, 19:34
#54
100k

Жалкий инженеришка-проектаст
 
Регистрация: 31.01.2010
Сообщений: 1,981


Konstruktiv54,
Все гораздо проще.
Можно запускать плагин в виде приложения. Достаточно добавить "Main()" и запускать плагин как "Приложение Windows" а не "Библиотека классов"
Миниатюры
Нажмите на изображение для увеличения
Название: test.png
Просмотров: 57
Размер:	39.5 Кб
ID:	211470  
100k вне форума  
 
Непрочитано 28.02.2019, 19:49
#55
Konstruktiv54


 
Регистрация: 31.01.2007
Новосибирск
Сообщений: 1,009
<phrase 1=


а можно все содержимое Мэйна посмотреть?, а то я не могу допереть как это работает
Konstruktiv54 вне форума  
 
Непрочитано 28.02.2019, 20:03
#56
100k

Жалкий инженеришка-проектаст
 
Регистрация: 31.01.2010
Сообщений: 1,981


Konstruktiv54,
Вызов плагина, это нижние две строчки (закоментированные)
100k вне форума  
 
Непрочитано 28.02.2019, 21:41
#57
Konstruktiv54


 
Регистрация: 31.01.2007
Новосибирск
Сообщений: 1,009
<phrase 1=


Разобрался! Заработало! преогромное спасибо!
--------
upd: я правильно понимаю, что в этом случае надо в ДАТУ ручками отдельно вбивать данные?

Последний раз редактировалось Konstruktiv54, 28.02.2019 в 22:29.
Konstruktiv54 вне форума  
 
Непрочитано 01.03.2019, 08:03
#58
CuPo>I<a

Металлоконструкции
 
Регистрация: 28.02.2009
Златоуст
Сообщений: 480


Цитата:
Сообщение от Konstruktiv54 Посмотреть сообщение
ручками отдельно вбивать данные?
да
CuPo>I<a вне форума  
 
Автор темы   Непрочитано 11.03.2019, 15:38
#59
PashaStr

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


Добрый день! При создании программно текста не удаётся избавится от выноски, есть ли возможность как-нибудь программно удалить/изменить свойства текста? Не могу найти нужный метод в справочнике апи.
Миниатюры
Нажмите на изображение для увеличения
Название: text.png
Просмотров: 52
Размер:	82.4 Кб
ID:	211773  
PashaStr вне форума  
 
Непрочитано 11.03.2019, 17:42
#60
100k

Жалкий инженеришка-проектаст
 
Регистрация: 31.01.2010
Сообщений: 1,981


Можно попробовать создать файл атрибутов этой метки с нужными настройками назвать его например "standard001" и загрузить его послед создания экземпляра этой метки, потом отредактивовать нужные поля и сделать insert
100k вне форума  
 
Непрочитано 11.03.2019, 17:44
1 | #61
art_rrc


 
Регистрация: 28.01.2013
Минск
Сообщений: 379


Цитата:
Сообщение от PashaStr Посмотреть сообщение
Добрый день! При создании программно текста не удаётся избавится от выноски, есть ли возможность как-нибудь программно удалить/изменить свойства текста? Не могу найти нужный метод в справочнике апи.
По памяти (суть думаю будет ясна):
text.attributes.frame = FrameTypes.None;
text.modify();
art_rrc вне форума  
 
Непрочитано 12.03.2019, 11:45
#62
Konstruktiv54


 
Регистрация: 31.01.2007
Новосибирск
Сообщений: 1,009
<phrase 1=


PashaStr, а ты что бы эту таблицу вставить, создаешь отдельный вид(View)? или как-то прям непосредственно в чертеж получается вставить ее?
Konstruktiv54 вне форума  
 
Автор темы   Непрочитано 12.03.2019, 12:22
#63
PashaStr

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


Цитата:
Сообщение от art_rrc Посмотреть сообщение
По памяти (суть думаю будет ясна):
text.attributes.frame = FrameTypes.None;
text.modify();
Вроде добавил, однако всё равно не хочет корректировать рамку. Буду искать "косяк"

Цитата:
Сообщение от Konstruktiv54 Посмотреть сообщение
PashaStr, а ты что бы эту таблицу вставить, создаешь отдельный вид(View)? или как-то прям непосредственно в чертеж получается вставить ее?
пользователь вводит точку вставки "таблицы", из точки получаю viewbase и далее передаю в метод создания текста. Получается прямо на чертёж.
PashaStr вне форума  
 
Непрочитано 12.03.2019, 12:30
#64
Konstruktiv54


 
Регистрация: 31.01.2007
Новосибирск
Сообщений: 1,009
<phrase 1=


у меня сначала не получалось выводить текст прямо на чертеж, сейчас да, все как ты пишешь так и работает.
Но странно, у меня нет такой проблемы, текст без всякой выноски вставляется.
textAttr.Frame.Type = FrameTypes.None;
А остальные атрибуты у тебя меняются?

----- добавлено через ~2 ч. -----
попробуй еще textAttr.PreferredPlacing = PreferredTextPlacingTypes.PointPlacingType(); вот этот параметр установить

Последний раз редактировалось Konstruktiv54, 12.03.2019 в 14:38.
Konstruktiv54 вне форума  
 
Автор темы   Непрочитано 12.03.2019, 20:08
#65
PashaStr

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


Цитата:
Сообщение от Konstruktiv54 Посмотреть сообщение
у меня сначала не получалось выводить текст прямо на чертеж, сейчас да, все как ты пишешь так и работает.
Но странно, у меня нет такой проблемы, текст без всякой выноски вставляется.
textAttr.Frame.Type = FrameTypes.None;
А остальные атрибуты у тебя меняются?

----- добавлено через ~2 ч. -----
попробуй еще textAttr.PreferredPlacing = PreferredTextPlacingTypes.PointPlacingType(); вот этот параметр установить
всё оказалось проще. Текст создавался методом Text(ViewBase, Point, String, PlacingBase, Text.TextAttributes), в этом случае не получалось убрать эти линии. При переходе на метод Text(ViewBase, Point, String, Text.TextAttributes) всё ок!
PashaStr вне форума  
 
Непрочитано 14.04.2019, 06:20
#66
kiter

конструктор
 
Регистрация: 21.08.2011
г. Пермь
Сообщений: 112


Поделитесь макросом вывода "Ведомости чертежей" для Теклы_21.0 . \... спрашиваю , наверно, какую-то ерунду... \
kiter вне форума  
 
Непрочитано 22.04.2019, 10:30
#67
Кореш

Самоходная нейросеть
 
Регистрация: 12.12.2007
Питер
Сообщений: 909


Здравствуйте.

Есть ли у кого пример рабочего кода с обработкой событий Tekla.Structures.Drawing.UI.Events?
Не могу понять, даже код из хэлпа не слушает события.

Нужно, чтобы программа работала только когда открыто редактирование чертежа, думаю через событие Events.DrawingEditorOpened.
Кореш вне форума  
 
Непрочитано 22.04.2019, 10:57
#68
CuPo>I<a

Металлоконструкции
 
Регистрация: 28.02.2009
Златоуст
Сообщений: 480


Метка сборок и деталей
CuPo>I<a вне форума  
 
Непрочитано 22.04.2019, 11:11
#69
art_rrc


 
Регистрация: 28.01.2013
Минск
Сообщений: 379


Цитата:
Сообщение от Кореш Посмотреть сообщение
Нужно, чтобы программа работала только когда открыто редактирование чертежа, думаю через событие Events.DrawingEditorOpened.
Вы уверены, что вам нужны именно события?
Код:
[Выделить все]
//Определить где находимся в модели или на чертеже
        private string GetWorkSpaceDWGRU()
        {
            if (TeklaModel.GetConnectionStatus())
            {                
                drawingHandler = new DrawingHandler();               
                if (drawingHandler.GetConnectionStatus())
                {
                    curDrawing = drawingHandler.GetActiveDrawing(); // Текущий чертеж
                    if (curDrawing != null)
                    {
                        TSD.DrawingHandler.SetMessageExecutionStatus(TSD.DrawingHandler.MessageExecutionModeEnum.BY_COMMIT);
                        return "Drawing";
                        //MessageBox.Show("Находимся на чертеже");
                    }
                    else
                    {
                        return "Model";
                        //MessageBox.Show("Находимся в модели");
                    }
                }
                else
                {
                    return null;
                    //MessageBox.Show("Не удалось подключиться к чертежам.");
                }
            }
            else
            {
                return null;
                //MessageBox.Show("Не удалось подключиться к модели.");
            }
        }
art_rrc вне форума  
 
Непрочитано 22.04.2019, 11:28
#70
Кореш

Самоходная нейросеть
 
Регистрация: 12.12.2007
Питер
Сообщений: 909


Цитата:
Сообщение от art_rrc Посмотреть сообщение
Вы уверены, что вам нужны именно события?
Код:
[Выделить все]
//Определить где находимся в модели или на чертеже
        private string GetWorkSpaceDWGRU()
        {
            if (TeklaModel.GetConnectionStatus())
            {                
                drawingHandler = new DrawingHandler();               
                if (drawingHandler.GetConnectionStatus())
                {
                    curDrawing = drawingHandler.GetActiveDrawing(); // Текущий чертеж
                    if (curDrawing != null)
                    {
                        TSD.DrawingHandler.SetMessageExecutionStatus(TSD.DrawingHandler.MessageExecutionModeEnum.BY_COMMIT);
                        return "Drawing";
                        //MessageBox.Show("Находимся на чертеже");
                    }
                    else
                    {
                        return "Model";
                        //MessageBox.Show("Находимся в модели");
                    }
                }
                else
                {
                    return null;
                    //MessageBox.Show("Не удалось подключиться к чертежам.");
                }
            }
            else
            {
                return null;
                //MessageBox.Show("Не удалось подключиться к модели.");
            }
        }
Честно говоря, не уверен.
Ага, спасибо, попробую.

Супер, работает, спасибо! Я - чайник со свистком.

Последний раз редактировалось Кореш, 22.04.2019 в 11:39.
Кореш вне форума  
 
Непрочитано 11.07.2019, 18:30
#71
raider1530


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


Добрый день. может кто то подскажет с чего начать работать с OpenAPI? Я пока что не могу даже понять как в visual studio загрузить среду теклы?? может есть уроки или что то такое
raider1530 вне форума  
 
Непрочитано 11.07.2019, 21:02
#72
andrejjerdna

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


Цитата:
Сообщение от raider1530 Посмотреть сообщение
Добрый день. может кто то подскажет с чего начать работать с OpenAPI? Я пока что не могу даже понять как в visual studio загрузить среду теклы?? может есть уроки или что то такое
Качайте Tekla OpenAPI. Там и вся справка и шаблоны проектов.
andrejjerdna вне форума  
 
Непрочитано 12.07.2019, 04:53
#73
raider1530


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


Цитата:
Сообщение от andrejjerdna Посмотреть сообщение
Качайте Tekla OpenAPI. Там и вся справка и шаблоны проектов.
а как его скачать? я у теклы на сайте полазил так и не понял где его скачать
raider1530 вне форума  
 
Автор темы   Непрочитано 12.07.2019, 10:03
#74
PashaStr

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


Цитата:
Сообщение от raider1530 Посмотреть сообщение
а как его скачать? я у теклы на сайте полазил так и не понял где его скачать
https://warehouse.tekla.com/#!/catal...4-1f4febe853a9
PashaStr вне форума  
 
Непрочитано 24.11.2019, 14:56
#75
Ann24


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


----- добавлено через ~1 мин. -----
Цитата:
Сообщение от PashaStr Посмотреть сообщение
Вдохновившись фильмами по пользовательским компонентам на ютьюбе уважаемых 100k и andrejjerdna, написал свой небольшой скрипт по прикреплению вертикальной панели-стены к нижней грани плиты перекрытия. В режиме отладки в Visual Studio всё прекрасно работает.
можно ссылку на уроки / каналы youtube?
Ann24 вне форума  
 
Непрочитано 26.11.2019, 09:07
#76
100k

Жалкий инженеришка-проектаст
 
Регистрация: 31.01.2010
Сообщений: 1,981


https://developer.tekla.com/

И еще стрим признанного авторитета в области Текла АПИ
https://www.youtube.com/watch?time_c...ature=emb_logo

Последний раз редактировалось 100k, 26.11.2019 в 10:30.
100k вне форума  
 
Непрочитано 13.04.2020, 02:56
#77
Georgiy_KN


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


Можете помочь мне? Пытаюсь подключиться к модели и выбрать объекты, а выдается ошибка. Внутреннее исключение DelProxy. Я новичок в этом деле. Может у кого-нибудь возникали подобные сообщения?
Нигде не могу найти информацию.
Картинка тут

https://yadi.sk/i/vrRL-kvKhcl4tA

----- добавлено через ~15 мин. -----
[quote=Georgiy_KN;1866882]Можете помочь мне? Пытаюсь подключиться к модели и выбрать объекты, а выдается ошибка. SystemTypeInitialisation Exception. Внутреннее исключение. DelProxy. Я новичок в этом деле. Может у кого-нибудь возникали подобные сообщения?Нигде не могу найти информацию. Программа не видит объекты внутри сборки. Саму модель видит, но при щелчке мыши по объекту tekla программа до точки остановки не идет. Ругается на эту строчку.
*Даже пытался запускать программу visual от имени админа. Но сообщение все возникает и возникает. Версия*visual 2017 . Tekla также запускалась от админа и нет. Пробовал разные комбинации и не помогло.*Картинку с подробностями можно посмотреть тут
https://downloader.disk.yandex.ru/pr...&size=1366x576

Последний раз редактировалось Georgiy_KN, 13.04.2020 в 03:27.
Georgiy_KN вне форума  
 
Непрочитано 13.04.2020, 10:43
#78
Konstruktiv54


 
Регистрация: 31.01.2007
Новосибирск
Сообщений: 1,009
<phrase 1=


Вообще в похожих случаях часто спасает волшебная перезагрузка.
ТопИнженером пользуетесь? У меня их приложение не дает нормально работать программкам. Убил его из автозагрузки, сначала вчключаю теклу, потом только топинж.
Konstruktiv54 вне форума  
 
Непрочитано 05.06.2020, 01:15
#79
Кореш

Самоходная нейросеть
 
Регистрация: 12.12.2007
Питер
Сообщений: 909


Добрый день.
Пытаюсь сделать вставку ведомости деталей через приложение.
Можно ли как-то в ContainerView открытого чертежа показать ReinforcementPulloutElement?
К примеру, вставить Mark на ContainerView?
Кореш вне форума  
 
Непрочитано 05.06.2020, 06:39
#80
CuPo>I<a

Металлоконструкции
 
Регистрация: 28.02.2009
Златоуст
Сообщений: 480


Цитата:
Сообщение от Кореш Посмотреть сообщение
Добрый день.
Пытаюсь сделать вставку ведомости деталей через приложение.
Можно ли как-то в ContainerView открытого чертежа показать ReinforcementPulloutElement?
К примеру, вставить Mark на ContainerView?
А что Вас останавливает? ContainerView наследуется от ViewBase.
Например:
Код:
[Выделить все]
 
private static void InsertSymbol(TSD.ViewBase viewBase, double height, double SymAngle, Point startSym, TSD.SymbolInfo Symbol)
{
TSD.Symbol xs = new TSD.Symbol(viewBase, startSym, Symbol);
xs.Attributes.Angle = SymAngle;
xs.Attributes.Height = height;
xs.Insert();
}
CuPo>I<a вне форума  
 
Непрочитано 05.06.2020, 15:37
#81
Кореш

Самоходная нейросеть
 
Регистрация: 12.12.2007
Питер
Сообщений: 909


Вставить символ, линию или текст в ContainerView не проблема. У конструктора класса Mark нет параметра с видом, только Drawing.ModelObject входящий. Видимо он берет вид для вставки как вид объекта. Может есть какой-то объект аналогичный, который можно вставить на ContainerView, параметры получив с Part там, или Rebar? Еще вопрос - можно ли через API вставить шаблон на ContainerView без механизма изменения компоновки чертежа? Шаблон к детали поставить понятно как, через метку.
Кореш вне форума  
 
Непрочитано 08.06.2020, 07:14
#82
CuPo>I<a

Металлоконструкции
 
Регистрация: 28.02.2009
Златоуст
Сообщений: 480


Цитата:
Сообщение от Кореш Посмотреть сообщение
Может есть какой-то объект аналогичный
Есть. И даже не один - линия, текст
Вставить шаблон - вроде как только через компоновки. Можно файлы .lay распарсить и изменить компоновку
CuPo>I<a вне форума  
Ответ
Вернуться   Форум 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