Подсчет длин элементов по ключевой спецификации

Главная Форумы Задать вопрос Подсчет длин элементов по ключевой спецификации

Просмотр 8 сообщений - с 1 по 8 (из 8 всего)
  • Автор
    Сообщения
  • #4445 Score: 0
    Юрий
    Участник

    Коллеги, добрый день!

    Нужна ваша помощь ).

    Задача такая – в модели есть элемент короб, он олицетворяет собой пучок проходящих в нем проводов (т.к. моделить каждый провод по отдельности трудоемко). К категории короб добавлены 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

    #4451 Score: 0
    ИваСерж
    Хранитель
    134 pts

    Идея очень хорошая, реализация на данный момент не продумана.
    Я, пожалуй, тоже хотел бы заняться этим вопросом.

    1. Я бы отказался от ключевых спецификаций. Тип-марку кабеля, проходящего через короб, записывал бы в параметр многострочного текста.
    2. Тип-марку кабеля хотелось бы, чтобы короб получал из спецификации электрических сетей.
      Например, в тексте пишу ЩС-1\гр1..гр5, ЩС2\гр3 – скрипт определяет к каким группам из эл.сетей относится и какие сечения, автоматически подсчитывает диаметр пучка,в параметр электрической цепи записывает длинну кабеля, проходящего в пучке.
    3. Результат будем получать в спецификации электрических сетей в виде: Длина, Длина в пучке№1…Длина в пучке№N
    #4452 Score: 0
    Юрий
    Участник

    Дело в том, у нас тип кабеля может меняться по ходу цепи.. Т.е. от шкафа вышел один тип, дошел до коробки, разделился на два, каждый из которых тоже потом поделится на два.. Поэтому оставить все одной цепью не представляется возможным. Делать коробку электрооборудованием тоже не вариант, т.к. между шкафом и “первой” коробкой может быть несколько кабелей разных типов, по условиям ревита электрооборудование может быть запитано только одной цепью. Если я на ней создам несколько соединителей, то не подсчитываются нагрузки и т.д. Короче я уже больше недели с этим парюсь ). И сейчас задача иметь возможность именно руками выбирать сколько чего проходит в пучке..

    p.s.так что над реализацией я много думал, не надо так ))).

    #4453 Score: 0
    ИваСерж
    Хранитель
    134 pts

    “Делать коробку электрооборудованием тоже не вариант”
    Я  делаю коробку “Щит”ом. Из щита может выйти сколько угодно кабеля. Например, я таким образом реализую выключатели. Пришёл, например, кабель 2×1.5 на двухклавишный выключатель опустился 4×1.5, на светильники ушло две группы 2×1.5. Может, в этом ключе покопаться?
    Над реализацией задачи я думаю уже несколько лет. Стандартными инструментами никак не получалось.
    Ну или много работы надо делать вручную. А хенд-джоб меня не устраивает.
    В общем, я точно этой задачей займусь. Мгновенного решения не обещаю, но втечение 2х 3х недель потихоньку можно.
    Предлагаю начать с формулировки общей задачи. Будем походу разбираться, как лучше сделать.
    Как побочную задачу, я рассматриваю рассчёт сечения лотка. т.е. записываю в параметр лотка все кабели, что проходят через него, дальше скрипт расчитывает сечение кабеля и записывает общее сечение в параметр лотка. Если сечение кабелей меньше 50% сечений лотка, то ОК (на самом деле буду брать 100% запас. Ну всех в баню, с этими лотками).

    #4454 Score: 0
    Юрий
    Участник

    Давайте тогда вместе биться ). Я пробовал коробку щитом. К ней конечно можно подключиться сколько угодно раз, но проблемой стало то, что она сама может быть запитана только от одного щита, а нужно несколько раз  (((.

    #4455 Score: 0
    Юрий
    Участник

    Т.к. я только начал разбираться в питоне – не подскажите почему так выходит:

     

    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 выписать “!”. Не то выводит (.

    #4456 Score: 0
    Dmitry_dronov
    Модератор
    50 pts

    If list1[i] == 5:

    #4457 Score: 0
    Юрий
    Участник

    Спасибо. Уже разобрался. Доделаю скрипт и выложу сюда. Вдруг кому пригодится.

Просмотр 8 сообщений - с 1 по 8 (из 8 всего)
  • Для ответа в этой теме необходимо авторизоваться.