Message 1 of 2
Changing python dynamic block parameters
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report
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}")