Top.Mail.Ru
Ответы
Аватар пользователя
5лет
Аватар пользователя
Аватар пользователя
Аватар пользователя
Программирование
+2

Python как правильно записать цикл

Не получается правильно сделать цикл для копирования прямоугольника .
Нужно чтобы он вначале копировался вверх (это получается, копирует вверх по игрекам 10 раз через интервалы shift=2000) а затем получившаяся пачка отрезков копировалась вправо несколько раз (в моём примере 11 раз вправо по иксам)

iRectangleParam = kompas6_api5_module.ksRectangleParam(kompas_object.GetParamStruct(kompas6_constants.ko_RectangleParam))
iRectangleParam.Init()
iRectangleParam.x = x14
iRectangleParam.y = y14
iRectangleParam.ang = 0
iRectangleParam.height = x24
iRectangleParam.width = y24
iRectangleParam.style = style14
obj = iDocument2D.ksRectangle(iRectangleParam)

i=0
j=0
shift=2000
while j<11:
x14=x14+shift
while i<10:
y14=y14+shift
iRectangleParam = kompas6_api5_module.ksRectangleParam(kompas_object.GetParamStruct(kompas6_constants.ko_RectangleParam))
iRectangleParam.Init()
iRectangleParam.x = x14
iRectangleParam.y = y14
iRectangleParam.ang = 0
iRectangleParam.height = x24
iRectangleParam.width = y24
iRectangleParam.style = style14
obj = iDocument2D.ksRectangle(iRectangleParam)
i=i+1
j=j+1

(если упрощенно то мне нужен такой цикл чтобы копировал точку вверх допустим 10 раз, а затем эту пачку полученых точек он копировал вправо 10 раз)

По дате
По рейтингу
Аватар пользователя
Искусственный Интеллект
5лет

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

Аватар пользователя
Знаток
3мес
123456789101112131415161718192021222324252627282930313233343536373839404142434445
 

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

print("Введите высоту прямоугольника:")
h = int(input())

print("Введите ширину прямоугольника:")
W = int(input())

print("Введите интервал между прямоугольниками по горизонтали:")
interval_gor = int(input())

print("Введите интервал между прямоугольниками по вертикали:")
interval_vert = int(input())

print("Введите количество прямоугольников по вертикали:")
vert = int(input())

print("Введите количество прямоугольников по горизонтали:")
goriz = int(input())

# Начальные координаты
delta = 0  # Смещение по горизонтали
alpha = 0  # Смещение по вертикали

for i in range(goriz):
    for j in range(vert):  
        iRectangleParam = kompas6_api5_module.ksRectangleParam(kompas_object.GetParamStruct(kompas6_constants.ko_RectangleParam))
        iRectangleParam.Init()
        iRectangleParam.x = delta
        iRectangleParam.y = alpha
        iRectangleParam.ang = 0
        iRectangleParam.height = h
        iRectangleParam.width = W
        iRectangleParam.style = 2
        obj = iDocument2D.ksRectangle(iRectangleParam)
            
        alpha = alpha + h + interval_vert  # Смещение по вертикали
    
    # Сброс alpha для следующего столбца
    alpha = 0
    # Смещение по горизонтали
    delta = delta + W + interval_gor