Помогите вытащить марку провода из параметра

Главная Форумы Задать вопрос Помогите вытащить марку провода из параметра

Просмотр 15 сообщений - с 1 по 15 (из 19 всего)
  • Автор
    Сообщения
  • #8339 Score: 0
    M.Svistun
    Участник

    Всем добрый день. Пытаюсь с помощью динамо автоматизировать разработку проекта электрики. Написал простейший скрипт для совмещения параметров категории Электрический цепи – “Тип провода”, “Количество полюсов” (оба системные) и “MS_сечение для расчета” (пользовательский параметр). Все это должно совместиться и отобразиться в параметре “MS_марка провода”.  Но как обычно что то пошло не так)))) Есть два вопроса:

    1. “Тип провода” в параметрах категории задан “ВВГнг-LS”, но при работе нода Element.GetParameterValueByName получается WireType.
    2. Параметр “MS_сечение для расчета” получается из ключевой спецификации, в формате единицы задан формат без нулей, но при работе скрипта все равно вылезают нули.

    Пожалуйста. помогите, советом. заранее спасибо)))

    #8340 Score: 0
    Александр
    Участник
    16 pts

    Выложи файл для просмотра и поиска решения.

    #8341 Score: 0
    Александр
    Участник
    16 pts

    Так на вскидку , гды ты выбрал Тип провода, сделай code block t.Name  в разрыв передачи на создание(суммирование) значения.

    Насчет нулей, так сделай данные как string и обрежь до нужного знака, тебе все равно нужна строка.Можно поменять настройки в dynamo,но это будет приемлемо для этого скрипта, а других не приемлемо,так что лучше обрезать.

    #8342 Score: 0
    Анатолий
    Участник
    37 pts

    Пост #3460 и #5558 в помощь к переводу в string.

    #8344 Score: 0
    M.Svistun
    Участник

    Ссылка на папку с проектом и скриптом https://cloud.mail.ru/public/KSqH/5Q78YGngK

    String.Split в данном случае не подходит – значения из ряда 1.5, 2.5, 4.0, 6.0 и т.д. Т.е. если отделять запятой до первые два будут неправильно отображаться.

    #8345 Score: 0
    Александр
    Участник
    16 pts

    Ок , вечером посмотрю.

    #8346 Score: 1
    Анатолий
    Участник
    37 pts

    a = IN[0]
    b = IN[1]
    d = []
    for k,l in zip(a,b):
    e = round(l,1)
    c = str(k)+"х"+str(e)
    d.append(c)
    OUT = d
    #8347 Score: 0
    Александр
    Участник
    16 pts

    Тоже самое ,но стандартными нодами

    #8348 Score: 0
    Александр
    Участник
    16 pts

    Питон только начал изучать.Но вопрос именно из-за квадратных скобок, у меня ошибку выдает с фигурными скобками всё получилось.В чем проблема?

    #8349 Score: 1
    Анатолий
    Участник
    37 pts

    Александр, у нас просто разница в версиях динамо. Квадратные скобки работают начиная с версии 2.0. При том, по скрипту у вас, как видете, функция zip обрезает количество получаемых результатов по длине меньшего входящего списка.

    #8350 Score: 0
    Александр
    Участник
    16 pts

    А это насчет первого вопроса по имени параметра.

    #8351 Score: 0
    Анатолий
    Участник
    37 pts

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

    #8352 Score: 2
    Александр
    Участник
    16 pts

    У меня тоже есть вопросы к автору вопроса,но банально точно на них ответил,возможно и помогу чем:

    #8353 Score: 0
    Александр
    Участник
    16 pts

    Вот ошибка выскакивает из-за отсутствия значения параметра в 7 списке,дальше смотреть пока нет смысла.

    #8354 Score: 0
    M.Svistun
    Участник

    C code block t.Name все получилось!!! Александр, большущее спасибо!!! Теперь в параметрах ревита марка определяется верно. Выложил по той-же ссылке текущую версию скрипта и проекта. Седьмую цепь запараметрировал, ошибка ушла.

    Анатолий, у вас не отображается марка провода в параметрах цепи? С питоном пока не дружу, с динамо бы разобраться )))

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