|
||
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
30.07.2018, 12:49 | #1 | |
Блокировка пользовательского атрибута для объекта
Регистрация: 06.03.2011
Сообщений: 233
|
||
Просмотров: 3602
|
|
||||
Регистрация: 06.03.2011
Сообщений: 233
|
Не вижу плюсов этого метода, если не иметь под рукой готового плагина, который назначает каждой одинаковой марке ж/б элемента свой префикс арматуры - придется всегда контролировать уникальность префикса вручную. По сути - на выходе получается тот же самый макрос REBAR_SEQ_NO.
Редактировать макрос то можно, дописать бы туда проверку на ВКЛ/ВЫКЛ атрибута блокировки арматуры или родительской детали, если ВКЛ - не менять порядковый номер, ВЫКЛ - милости просим (можно привязать проверку к любому другому атрибуту, этот пример привел как очевидный). К сожалению C# не владею, может кто заглянет и подскажет. |
|||
|
||||
Мозговой штурм Регистрация: 26.10.2008
Рідна ненька - Україна, Харків
Сообщений: 5,705
|
Все наши беды от того, что хочется, чтобы все ровненько было. Но даже яички не ровненько висят.
На больших объектах количеством арматуры за 10-30 тыс. позиций этот макрос будет делать нумерацию минут 15-20. А если нумерацию нужно сделать раза 3 за день, то это довольно весело. Если разбить конструкции на префиксы по этажам/захваткам/типу конструкции, то количество позиций по каждому типу будет в пределах 100. И текла легче будет это кушать и в шаблоны спокойно помещается. Правда придется некоторым пережить инфаркт от увиденного, ведь в спецификациях у арматуры появятся префиксы и позиции будут идти не с единицы, но это уже совсем другая история. |
|||
|
||||
Регистрация: 06.03.2011
Сообщений: 233
|
Да, нумерация идет с заметной задержкой, причем прогресс не отображается пользователю никак, может показаться, что она вообще не работает. Никто ведь не запрещает запустить еще одну Теклу и в фоне параллельно нумеровать, не задерживая работу. Не хочу (и не могу сейчас) отказываться от метода вывода номеров, повторюсь, часть уже оформлена.
В любом случае, выложу макрос сюда, может кто подскажет как и куда подставить в код проверку - заблокирован ли арматурный стержень, если нет - назначать номер. |
|||
|
||||
Регистрация: 06.03.2011
Сообщений: 233
|
Дошли руки наконец воспользоваться и проверить. Выдало ошибку (см. скрин). Я дописал вместо Operation.DisplayPrompt() -> Tekla.Structures.Model.Operations.Operation.DisplayPrompt() и заработало. Единственное - в прогрессе не отображались символы (знаки вопроса вместо букв, кодировка не та стояла?) - подправил. Если кому надо попользоваться - выкладываю здесь. Работает как штатный макрос, только не затрагивает заблокированную атрибутом арматуру + внизу в статус строке пишется прогресс - сколько стержней пронумеровано.
CuPo>I<a, спасибо Вам! Последний раз редактировалось bartus, 28.08.2018 в 21:33. |
|||
|
||||
Металлоконструкции Регистрация: 28.02.2009
Златоуст
Сообщений: 480
|
я этот макрос не тестировал, если честно - лень было)
можно Operation.DisplayPrompt() оставить, а добавить using Tekla.Structures.Model.Operations; Сделал пару стержней... у меня нормально Почему арматура не нумеруется? Где чего включить надо? |
|||
|
||||
Регистрация: 06.03.2011
Сообщений: 233
|
Не назначается атрибут с номером? Не знаю почему, попробуй вручную любому стержню вписать случайный номер (99999) и перенумеруй.
Для справки и ориентировке по времени работы: прогнал макрос по проекту с таким количеством арматуры: 78653 арматурных групп (встречаются и отдельные стержни) Старт: 11:16 Появился прогресс бар: 11:34 Окончание работы макроса (прогресс дошел до конца): 11:44 Итого времени прошло с момента нажатия на макрос до появления строки с прогрессом: 18 минут (макросом составлялся список всех стержней модели все это время) Само назначение номеров заняло 10 минут. Все вместе 28 минут на 78653 шт. арматурных групп. Рекомендую перед началом использования макроса произвести штатную нумерацию проекта. А при нажатии на макрос отказаться от нумерации (чтобы не тратить время). Макрос работает даже если отменить штатную нумерацию. Если использовать стандартный макрос, метки армирования на уже оформленных чертежах могут сместиться и придется заново их двигать, обновлять метки и так далее. Тут - блокируем в модели стержни (в определенных пользователем атрибутах) уже оформленных на чертеже жб элементов и номера арматуры не изменятся. Последний раз редактировалось bartus, 28.08.2018 в 12:02. |
|||
|
||||
Регистрация: 06.03.2011
Сообщений: 233
|
А текла запущена только одна? Для начала я бы перезашел в теклу, создал новую модель и в ней проверил. У меня был такой глюк, иногда вылечивалось само, при повторной прогонке макроса (на 3-й, 10-й иногда 20-й раз), но в новой модели стабильно всегда правильно нумеровала.
А если всем стержням задать любой порядковый номер, отличный от 1, например 123 и запустить макрос, он вернет обратно на единицу? А может стержни действительно одинаковые по форме и длине? Позиция у них по штатной нумерации должна быть разной. Еще случалась такая штука, что заходишь в окно атрибутов стержня, там стоит единица, пишу вручную 2, жму изменить-получить, оно выдает, например, 4. То есть показывает одно, а на самом деле вшито другое значение, но почему-то оно скрыто и не отображается правильно. Последний раз редактировалось bartus, 28.08.2018 в 13:20. |
|||
|
||||
Регистрация: 06.03.2011
Сообщений: 233
|
Понадобилось из нумерации исключить арматурные сетки, т.к. они пойдут в спецификации виде сборочных единиц, а не стержнями, пытаюсь поправить код:
TSM.Reinforcement rebar = moe.Current as TSM.Reinforcement; меняю на: TSM.BaseRebarGroup rebar = moe.Current as TSM.BaseRebarGroup; Тем самым включаю в нумерацию только группы стержней (Tekla.Structures.Model.BaseRebarGroup), а нужно еще и отдельные стержни (Tekla.Structures.Model.SingleRebar). Но в этом равенстве я не вижу способа подставить два значения. Была мысль использовать здесь: TSM.ModelObjectEnumerator moe = model.GetModelObjectSelector().GetAllObjects(); не GetAllObjects() а GetAllObjectsWithType Method (Type[]) , но не получается настроить типы, не хватает знаний - как перечислить здесь BaseRebarGroup+SingleRebar? |
|||
|
||||
Регистрация: 06.03.2011
Сообщений: 233
|
Доброго времени суток. Пытаюсь провести нумерацию арматуры по диаметру в порядке возрастания. Работаю с атрибутом шаблона "SIZE".
Сравниваю 2 переменные типа string: string1 - диаметр в списке нумеруемых стержней string2 - текущий диаметр в итерации Код:
То есть, перевожу в int для сравнения диаметра в порядке возрастания (т.к. MyInt == 1, то string2>string1). В итоге такая проблема вырисовывается, привожу список нумерации после выполнения программы: 1 - D10 2 - D12 3 - D18 4 - D20 5 - D25 6 - D40 7 - D6 8 - D8 Программа отсортировала номера, отдавая приоритет первой "цифре", игнорируя порядок возрастания именно самого числа в целом. Думаю, это распространённый вопрос у новичков, но, тем не менее, прошу помочь |
|||
|
||||
Регистрация: 31.01.2007
Новосибирск
Сообщений: 1,040
|
ну так вы же сортируете текст, а он именно по такому принципу и сортируется, сравниваются первые символы, потом вторые, затем третьи.
Вам надо конвертировать текст в число, отсортировать, и уже сортированный список обратно конвертировать в текст. |
|||
|
Опции темы | Поиск в этой теме |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Консервация объектов незавершенного строительства | msv_mnv | Обследование зданий и сооружений | 6 | 11.11.2017 23:07 |
СПДС 10. С чего начать при создании пользовательского объекта, к примеру "стропильная нога"? | erikbond | ПО от CSoft | 63 | 19.05.2016 17:53 |
Применение в графике пользовательского объекта СПДС текста (проблемы при _mirror) | AlexV | ПО от CSoft | 7 | 01.02.2016 12:47 |
Ввод в эксплуатацию салона красоты - нужно ли (и в какой форме) согласование с пожарниками ? | drill_man | Прочее. Архитектура и строительство | 4 | 20.09.2013 12:03 |
Ищу 3д модель (приложение к паспорту антитеррористической защищенности объекта) | Lirikk | Поиск литературы, чертежей, моделей и прочих материалов | 2 | 20.09.2012 21:53 |