Подсчет длин элементов по ключевой спецификации
Главная › Форумы › Задать вопрос › Подсчет длин элементов по ключевой спецификации
- В этой теме 7 ответов, 3 участника, последнее обновление 8 лет, 3 месяца назад сделано Юрий.
-
АвторСообщения
-
ЮрийУчастник
Коллеги, добрый день!
Нужна ваша помощь ).
Задача такая – в модели есть элемент короб, он олицетворяет собой пучок проходящих в нем проводов (т.к. моделить каждый провод по отдельности трудоемко). К категории короб добавлены 3 ключевых спецификации – т.е. можно указать три разных типа провода, проходящих в пучке (пока в скрипте тренируюсь только на 1 ключе). В итоге нужно подсчитать длину каждого типа провода из пучка.
Что делаю я – беру все короба и формирую список из тех у кого тип у кого кабель назначен (список 1). Для этих элементов составляю второй список с их длинами (список 2).
Дальше, т.к. в списке 1 элементы 0 и 1 имеют одно имя мне нужно сложить их длину. Я представляю что для этого нужно: 1) узнать количество элементов в списке 1 2) создать список уникальных имен этих элементов (список 3) 3) в цикле для списка 1 проверить по маске уникальных имен (список 3) каждый элемент 4) в случае TRUE выписать индекс элемента в новый список (список 4) 5) на основе списка индексов (список 4) сложить длины элементов с такими же индексами из списка 2 и записать это в список 5.
Сначала я попытался сделать это через LoopWhile, но не смог. Потом почитав форумы понял что лучше делать это через питон. Стал пробовать, но тоже не смог. Поиск аналогичных примеров зачастую кончался там, что я не до конца понимал описанные решения задач и не мог их интерпретировать для решения своей ((. Мне кажется наиболее близкий случай описан здесь:http://dynamobim.ru/forums/topic/%D0%B3%D1%80%D1%83%D0%BF%D0%BF%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0%B0-%D0%BF%D0%BE-%D0%BE%D0%B1%D1%89%D0%B8%D0%BC-%D1%8D%D0%BB%D0%B5%D0%BC%D0%B5%D0%BD%D1%82%D0%B0%D0%BC-%D1%81%D0%BF%D0%B8%D1%81%D0%BA/. Но опять же у меня не вышло. Очень надеюсь на вашу поддержку ).
Прикладываю скрипт и тестовый файл: http://dropmefiles.com/gdjBN
Идея очень хорошая, реализация на данный момент не продумана.
Я, пожалуй, тоже хотел бы заняться этим вопросом.- Я бы отказался от ключевых спецификаций. Тип-марку кабеля, проходящего через короб, записывал бы в параметр многострочного текста.
- Тип-марку кабеля хотелось бы, чтобы короб получал из спецификации электрических сетей.
Например, в тексте пишу ЩС-1\гр1..гр5, ЩС2\гр3 – скрипт определяет к каким группам из эл.сетей относится и какие сечения, автоматически подсчитывает диаметр пучка,в параметр электрической цепи записывает длинну кабеля, проходящего в пучке. - Результат будем получать в спецификации электрических сетей в виде: Длина, Длина в пучке№1…Длина в пучке№N
ЮрийУчастникДело в том, у нас тип кабеля может меняться по ходу цепи.. Т.е. от шкафа вышел один тип, дошел до коробки, разделился на два, каждый из которых тоже потом поделится на два.. Поэтому оставить все одной цепью не представляется возможным. Делать коробку электрооборудованием тоже не вариант, т.к. между шкафом и “первой” коробкой может быть несколько кабелей разных типов, по условиям ревита электрооборудование может быть запитано только одной цепью. Если я на ней создам несколько соединителей, то не подсчитываются нагрузки и т.д. Короче я уже больше недели с этим парюсь ). И сейчас задача иметь возможность именно руками выбирать сколько чего проходит в пучке..
p.s.так что над реализацией я много думал, не надо так ))).
“Делать коробку электрооборудованием тоже не вариант”
Я делаю коробку “Щит”ом. Из щита может выйти сколько угодно кабеля. Например, я таким образом реализую выключатели. Пришёл, например, кабель 2×1.5 на двухклавишный выключатель опустился 4×1.5, на светильники ушло две группы 2×1.5. Может, в этом ключе покопаться?
Над реализацией задачи я думаю уже несколько лет. Стандартными инструментами никак не получалось.
Ну или много работы надо делать вручную. А хенд-джоб меня не устраивает.
В общем, я точно этой задачей займусь. Мгновенного решения не обещаю, но втечение 2х 3х недель потихоньку можно.
Предлагаю начать с формулировки общей задачи. Будем походу разбираться, как лучше сделать.
Как побочную задачу, я рассматриваю рассчёт сечения лотка. т.е. записываю в параметр лотка все кабели, что проходят через него, дальше скрипт расчитывает сечение кабеля и записывает общее сечение в параметр лотка. Если сечение кабелей меньше 50% сечений лотка, то ОК (на самом деле буду брать 100% запас. Ну всех в баню, с этими лотками).ЮрийУчастникДавайте тогда вместе биться ). Я пробовал коробку щитом. К ней конечно можно подключиться сколько угодно раз, но проблемой стало то, что она сама может быть запитана только от одного щита, а нужно несколько раз (((.
ЮрийУчастникТ.к. я только начал разбираться в питоне – не подскажите почему так выходит:
list1 = IN[0]
list2 = IN[1]
list3 = IN[2]
list5=[]for i in range(len(list1)):
if list1==”5″:
list5.append(“!”)
else:
list5.append(“?”)#Назначьте вывод переменной OUT.
OUT = list5Я хотел построчно проверить список и когда найду 5 выписать “!”. Не то выводит (.
If list1[i] == 5:
ЮрийУчастникСпасибо. Уже разобрался. Доделаю скрипт и выложу сюда. Вдруг кому пригодится.
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.