Нумерация листов в Tekla Structures
Переодически в Текле возникает необходимость в сквозной нумерации группы чертежей в модели. Задача эта может быть решена разными способами. Лично я предпочитаю делать это с помощью простенького скрипта. Всего то и надо — пройтись по списку чертежей и каждому присвоить номер.
Чтобы это сделать надо вопервых получить список выбранных чертежей. Во вторых пройтись по нему, и в третьих назначить пользовательское свойство, в моем случае Page — которое потом можно использовать на ряду с другими своствами в шаблоне. Например в штампе.
Кстати, по списку можно пробежать и еще разок, присвоив общее число страниц в качестве свойства например Pages.
Собственно сам листинг скрипты который позволяет это сделать получился довольно не большим так, что привожу его здесь полностью.
namespace Tekla.Technology.Akit.UserScript { using TSD = Tekla.Structures.Drawing; using System.Windows.Forms; //used for messageBox.show() public class Script { public static void Run(Tekla.Technology.Akit.IScript akit) { MessageBox.Show("Total number of drawings: " + CAD_NumberSelectedDrawings().ToString()); } static int CAD_NumberSelectedDrawings() { try { int i = 0; //register number counter var CurrentDrawingHandler = new TSD.DrawingHandler(); // get current drawing handler var drawingsEnum = CurrentDrawingHandler.GetDrawingSelector().GetSelected(); //list of selected drawings while(drawingsEnum.MoveNext()) //going through it one by one { var _drawing = drawingsEnum.Current as TSD.Drawing; //particular drawing i++; //and finally set number as "DRAWING.USERDEFINED.Page" UDA property. _drawing.SetUserProperty("Page", i.ToString()); //change "Page" to name of your UDA } return i; } catch (Exception ex) { MessageBox.Show("Something goes wrong: " + ex.Message); } } } }
Еще по теме:
- Устанавливаем и запускаем Скрипты в Текле
- Tekla Advanced Options — Настройка путей доступа в Текле
- Tekla Open API FAQ
- Tekla Structures — стуктура файлов в модели
- Tekla Template Editor — редактор шаблонов
Не работает, Tekla 2017, выскакивает большое окно с ошибкой https://yadi.sk/i/qNwHbm323RTShP
Добавил в скрипт блок try{}catch()
Сам скрипт должен быть в папке скриптов model. и должна быть выделена группа страниц в менеджере чертежей.
Протестировать в 2017й версии пока возможности нет.
К сожалению такая же ошибка
а можно ввести начальный номер нумерации?
по ГОСТу общее число страниц ставится только на первом листе
Большое спасибо. У меня получилось. Подскажите пожалуйста, как добавить к этому скрипту чтобы он выводил окошко с запросом начального номера? Заранее спасибо за ответ.
Можно, но это изрядно усложнит скрипт.
Я делал немного иначе — отдельное приложение которое генерит и запускает скрипт в текле. В самом приложении уже добавлял поля, формы, кнопки и алгоритмы.