Changing python dynamic block parameters

Changing python dynamic block parameters

vadimtarasimus
Explorer Explorer
167 Views
1 Reply
Message 1 of 2

Changing python dynamic block parameters

vadimtarasimus
Explorer
Explorer

here is the code itself

from pyautocad import Autocad, APoint

# Инициализация AutoCAD
acad = Autocad(create_if_not_exists=True)

# Имя вашего динамического блока
block_name = "*U2"  # Динамическое имя блока

# Проверка наличия блока
block_found = False
for block in acad.iter_objects("Block"😞  # Проверяем все блоки в чертеже
    if block.Name.lower() == block_name.lower():  # Сравниваем без учета регистра
        block_found = True
        # Изменение параметров блока
        try:
            dynamic_properties = block.GetDynamicBlockProperties()
            if dynamic_properties:
                for attr in dynamic_properties:
                    if attr.PropertyName == "a":
                        attr.Value = 345  # Устанавливаем значение параметра a
                    elif attr.PropertyName == "b":
                        attr.Value = 567  # Устанавливаем значение параметра b
                print(f"Параметры блока '{
                      block_name}' изменены: a=345, b=567.")
            else:
                print(f"Блок '{block_name}' не имеет динамических параметров.")
        except Exception as e:
            print(f"Ошибка при изменении параметров блока: {e}")
        break

if not block_found:
    print(f"Блок '{
          block_name}' не найден в чертеже. Убедитесь, что блок существует или добавьте его.")
    # Дополнительно: выводим список доступных блоков
    print("Доступные блоки:")
    for block in acad.iter_objects("Block"😞
        print(f"- {block.Name}")
0 Likes
168 Views
1 Reply
Reply (1)
Message 2 of 2

TheCADnoob
Mentor
Mentor

Are you needing help with this or are you just sharing?

CADnoob

EESignature

0 Likes