Проблемы со скриптом

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

В этой теме 3 ответа, 3 участника, последнее обновление  Анатолий 2 мес., 3 нед. назад.

Просмотр 4 сообщений - с 1 по 4 (из 4 всего)
  • Автор
    Сообщения
  • #8284 Score: 0

    Denis
    Участник

    Добрый вечер, помогите разобраться со скриптом, что делаю не так? выдает ошибку….

    #8285 Score: 0

    Ренат Я.
    Модератор
    72 pts

    приветствую. тело цикла “for” и оператора “if” надо отделять табуляцией.

    P.S. ну и скрин ошибки тоже не помешал бы

    #8287 Score: 0

    Анатолий
    Участник
    18 pts

    Так понимаю, тема та же. Хорошо, что вы начали работать. Дело дошло до скрипта, посмотрел, у вас там много напутано, но идею постарался понять с помощью также поста с предыдущей темы. Итого: сложно варьировать когда у вас две переменные (отступ от стены и расстояние между спринклерами), потому принял расстояние между семействами 1500 а расстояние между стенами меняется от 800 и до почти 1600 (опустить до 1500 можно дополнительными условиями). Получается нюанс, с которым сейчас самому трудно справиться: у нас есть привязка центра помещения, мы можем узнать координаты по Х левой (или правой) стороны помещения (я принял левой) с учетом уже высчитанного расстояния от стены (800 или больше), также посчитал количество вставляемых семейств по Х. Теперь собственно то, что не получается – создать список с координатами по Х по каждому помещению, в зависимости от количества вставляемых семейств. Потом также создать необходимое количество координат по X и Z и затем нод FamilyInstanceByPoint. Как то так.

    #8288 Score: 0

    Анатолий
    Участник
    18 pts

    Будто-бы получилось все сделать. Единственное, нужно добавить фильтр по стадиям помещений, если они у вас различаются.
    import clr
    clr.AddReference('ProtoGeometry')
    from Autodesk.DesignScript.Geometry import *

    W = IN[0]
    L = IN[1]
    a = IN[2]
    b = IN[3]
    c = IN[4]
    d = IN[5]
    pointX = IN[6]
    pointY = IN[7]
    pointZ = IN[8]
    l1,i1 = [],[]
    k = []
    n = []
    xlev = []
    kkk = []
    for l,w,pX in zip(L,W,pointX):
    k1 = (l-c*2)//a #узнаём количество вставляемых семейств по х
    if k1>0:
    k2 = k1
    n1 = (l-k2*a)/2 #новый отступ от стен
    xlev1 = pX - l/2 + n1 #координата по Х первого вставляемого семейства
    k.append(k2)
    n.append(n1)
    xlev.append(xlev1)
    kn = range(1,int(k2)+1)
    kkk.append(kn)
    else:
    k2 = 0
    k.append(k2)
    kn = range(1,int(k2)+1)
    #kkk.append(kn)
    listX,listY,listZ = [],[],[]
    for kk,xl,y,z in zip(kkk,xlev,pointY,pointZ):
    listX1,listY1,listZ1 = [],[],[]
    for ks in kk:
    xx = ks*a+xl
    yy = y
    zz = z
    listX1.append(xx)
    listY1.append(yy)
    listZ1.append(zz)
    listX.append(listX1)
    listY.append(listY1)
    listZ.append(listZ1)
    OUT = listX,listY,listZ

Просмотр 4 сообщений - с 1 по 4 (из 4 всего)

Для ответа в этой теме необходимо авторизоваться.