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

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

Блокировка пользовательского атрибута для объекта

Ответ
Поиск в этой теме
Непрочитано 30.07.2018, 12:49 #1
Блокировка пользовательского атрибута для объекта
bartus
 
Регистрация: 06.03.2011
Сообщений: 233

Можно ли заблокировать атрибут REBAR_SEQ_NO (Порядковый номер арматуры) для определенных объектов модели? Для того, чтобы не менялись номера стержней тех объектов, чертежи на которые уже оформлены. Пока есть идея только одна - добавить этот атрибут в objects.inp в качестве атрибута, влияющего на нумерацию, тогда (по идее) при блокировке арматуры - атрибут нельзя будет перезаписать. Но этот метод не очень хочется использовать (неудобно).
Просмотров: 3602
 
Непрочитано 30.07.2018, 20:10
#2
Yuzer

Мозговой штурм
 
Регистрация: 26.10.2008
Рідна ненька - Україна, Харків
Сообщений: 5,705


Проще префиксы назначить и вообще отказаться от этого атрибута.
Yuzer вне форума  
 
Автор темы   Непрочитано 30.07.2018, 23:21
#3
bartus


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


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

Редактировать макрос то можно, дописать бы туда проверку на ВКЛ/ВЫКЛ атрибута блокировки арматуры или родительской детали, если ВКЛ - не менять порядковый номер, ВЫКЛ - милости просим (можно привязать проверку к любому другому атрибуту, этот пример привел как очевидный). К сожалению C# не владею, может кто заглянет и подскажет.
bartus вне форума  
 
Непрочитано 31.07.2018, 06:42
#4
Yuzer

Мозговой штурм
 
Регистрация: 26.10.2008
Рідна ненька - Україна, Харків
Сообщений: 5,705


Все наши беды от того, что хочется, чтобы все ровненько было. Но даже яички не ровненько висят.
На больших объектах количеством арматуры за 10-30 тыс. позиций этот макрос будет делать нумерацию минут 15-20. А если нумерацию нужно сделать раза 3 за день, то это довольно весело.
Если разбить конструкции на префиксы по этажам/захваткам/типу конструкции, то количество позиций по каждому типу будет в пределах 100. И текла легче будет это кушать и в шаблоны спокойно помещается.
Правда придется некоторым пережить инфаркт от увиденного, ведь в спецификациях у арматуры появятся префиксы и позиции будут идти не с единицы, но это уже совсем другая история.
Yuzer вне форума  
 
Автор темы   Непрочитано 31.07.2018, 09:41
#5
bartus


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


Да, нумерация идет с заметной задержкой, причем прогресс не отображается пользователю никак, может показаться, что она вообще не работает. Никто ведь не запрещает запустить еще одну Теклу и в фоне параллельно нумеровать, не задерживая работу. Не хочу (и не могу сейчас) отказываться от метода вывода номеров, повторюсь, часть уже оформлена.
В любом случае, выложу макрос сюда, может кто подскажет как и куда подставить в код проверку - заблокирован ли арматурный стержень, если нет - назначать номер.
Вложения
Тип файла: zip Нумерация арматуры по объекту.zip (1.1 Кб, 24 просмотров)
bartus вне форума  
 
Непрочитано 31.07.2018, 09:53
1 | #6
CuPo>I<a

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


Попробуй....Только аккуратно) я не тестировал. Прогресс в строку состояния добавил (кажется)
Вложения
Тип файла: zip Нумерация арматуры по объекту.zip (1.2 Кб, 25 просмотров)
CuPo>I<a вне форума  
 
Автор темы   Непрочитано 31.07.2018, 16:27
#7
bartus


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


Спасибо! Проверю попозже, отпишусь как и что .
bartus вне форума  
 
Автор темы   Непрочитано 08.08.2018, 12:13
#8
bartus


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



Пробую исполнить этот макрос, выдает ошибку (см. картинку). Что делать, как быть?
Миниатюры
Нажмите на изображение для увеличения
Название: Нумерация арматуры.png
Просмотров: 50
Размер:	14.9 Кб
ID:	205152  
bartus вне форума  
 
Непрочитано 09.08.2018, 08:33
#9
CuPo>I<a

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


так попробуй
Вложения
Тип файла: zip Нумерация арматуры по объекту.zip (1.2 Кб, 14 просмотров)
CuPo>I<a вне форума  
 
Автор темы   Непрочитано 28.08.2018, 10:13
#10
bartus


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


Дошли руки наконец воспользоваться и проверить. Выдало ошибку (см. скрин). Я дописал вместо Operation.DisplayPrompt() -> Tekla.Structures.Model.Operations.Operation.DisplayPrompt() и заработало. Единственное - в прогрессе не отображались символы (знаки вопроса вместо букв, кодировка не та стояла?) - подправил. Если кому надо попользоваться - выкладываю здесь. Работает как штатный макрос, только не затрагивает заблокированную атрибутом арматуру + внизу в статус строке пишется прогресс - сколько стержней пронумеровано.

CuPo>I<a, спасибо Вам!
Миниатюры
Нажмите на изображение для увеличения
Название: фыв.png
Просмотров: 27
Размер:	7.4 Кб
ID:	205713  
Вложения
Тип файла: zip Нумерация арматуры по объекту.zip (1.2 Кб, 20 просмотров)

Последний раз редактировалось bartus, 28.08.2018 в 21:33.
bartus вне форума  
 
Непрочитано 28.08.2018, 11:16
#11
CuPo>I<a

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


я этот макрос не тестировал, если честно - лень было)
Цитата:
Сообщение от bartus Посмотреть сообщение
дописал
можно Operation.DisplayPrompt() оставить, а добавить using Tekla.Structures.Model.Operations;

Сделал пару стержней...
Цитата:
Сообщение от bartus Посмотреть сообщение
знаки вопроса вместо букв
у меня нормально
Почему арматура не нумеруется? Где чего включить надо?
CuPo>I<a вне форума  
 
Автор темы   Непрочитано 28.08.2018, 11:55
#12
bartus


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


Не назначается атрибут с номером? Не знаю почему, попробуй вручную любому стержню вписать случайный номер (99999) и перенумеруй.

Для справки и ориентировке по времени работы: прогнал макрос по проекту с таким количеством арматуры:
78653 арматурных групп (встречаются и отдельные стержни)
Старт: 11:16
Появился прогресс бар: 11:34
Окончание работы макроса (прогресс дошел до конца): 11:44

Итого времени прошло с момента нажатия на макрос до появления строки с прогрессом: 18 минут (макросом составлялся список всех стержней модели все это время)
Само назначение номеров заняло 10 минут.
Все вместе 28 минут на 78653 шт. арматурных групп.

Рекомендую перед началом использования макроса произвести штатную нумерацию проекта. А при нажатии на макрос отказаться от нумерации (чтобы не тратить время). Макрос работает даже если отменить штатную нумерацию.

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

Последний раз редактировалось bartus, 28.08.2018 в 12:02.
bartus вне форума  
 
Непрочитано 28.08.2018, 12:30
1 | #13
CuPo>I<a

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


атрибут назначается, но он для всех стержней 1

убрать нумерацию с помощью макроса можно закомментировав (поставить // в начале) строку:
akit.Callback("acmd_partnumbers_all", "", "main_frame");
CuPo>I<a вне форума  
 
Автор темы   Непрочитано 28.08.2018, 13:08
#14
bartus


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


А текла запущена только одна? Для начала я бы перезашел в теклу, создал новую модель и в ней проверил. У меня был такой глюк, иногда вылечивалось само, при повторной прогонке макроса (на 3-й, 10-й иногда 20-й раз), но в новой модели стабильно всегда правильно нумеровала.

А если всем стержням задать любой порядковый номер, отличный от 1, например 123 и запустить макрос, он вернет обратно на единицу? А может стержни действительно одинаковые по форме и длине? Позиция у них по штатной нумерации должна быть разной.

Еще случалась такая штука, что заходишь в окно атрибутов стержня, там стоит единица, пишу вручную 2, жму изменить-получить, оно выдает, например, 4. То есть показывает одно, а на самом деле вшито другое значение, но почему-то оно скрыто и не отображается правильно.

Последний раз редактировалось bartus, 28.08.2018 в 13:20.
bartus вне форума  
 
Непрочитано 28.08.2018, 14:19
#15
CuPo>I<a

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


да мне в общем-то это не надо...просто решил попробовать макрос, а арматура так нехорошо себя ведёт.

Цитата:
Сообщение от bartus Посмотреть сообщение
Позиция у них по штатной нумерации
(0)? и не нумерует. Да и ... с ней
CuPo>I<a вне форума  
 
Автор темы   Непрочитано 29.08.2018, 16:00
#16
bartus


 
Регистрация: 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?
bartus вне форума  
 
Непрочитано 29.08.2018, 17:17
1 | #17
sivlad

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


bartus, а почему бы просто не сделать такую проверку?
if (rebar != null && (rebar is TSM.BaseRebarGroup || rebar is TSM.SingleRebar))
sivlad вне форума  
 
Автор темы   Непрочитано 29.08.2018, 17:46
#18
bartus


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


sivlad, спасибо! Я с этого и начинал, но по незнанию синтаксиса и языка практически в целом - вместо "is" ставил "=", текла ругалась и я забил на этот подход
bartus вне форума  
 
Автор темы   Непрочитано 09.03.2019, 02:03
#19
bartus


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


Доброго времени суток. Пытаюсь провести нумерацию арматуры по диаметру в порядке возрастания. Работаю с атрибутом шаблона "SIZE".

Сравниваю 2 переменные типа string:

string1 - диаметр в списке нумеруемых стержней
string2 - текущий диаметр в итерации

Код:
[Выделить все]
int MyInt = string1.CompareTo(string2);
if (MyInt == 1)
rebarNo++
(это разорванные выдержки из кода)

То есть, перевожу в int для сравнения диаметра в порядке возрастания (т.к. MyInt == 1, то string2>string1).
В итоге такая проблема вырисовывается, привожу список нумерации после выполнения программы:
1 - D10
2 - D12
3 - D18
4 - D20
5 - D25
6 - D40
7 - D6
8 - D8

Программа отсортировала номера, отдавая приоритет первой "цифре", игнорируя порядок возрастания именно самого числа в целом. Думаю, это распространённый вопрос у новичков, но, тем не менее, прошу помочь
bartus вне форума  
 
Непрочитано 09.03.2019, 05:16
1 | #20
Konstruktiv54


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


ну так вы же сортируете текст, а он именно по такому принципу и сортируется, сравниваются первые символы, потом вторые, затем третьи.
Вам надо конвертировать текст в число, отсортировать, и уже сортированный список обратно конвертировать в текст.
Konstruktiv54 вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Другие CAD системы > Tekla > Блокировка пользовательского атрибута для объекта

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Консервация объектов незавершенного строительства 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