К основному содержанию
правило

blender-python-addon — правило для Cursor: что делает и как установить

Свод правил для разработки расширений к Blender на Python. Задаёт стандарты для операторов, панелей интерфейса и безопасного вызова Blender API в Cursor.

Установить в Cursor · Вручную: положить файлы Все способы и платформы ↓
.cursor/rules/blender-python-addon.mdc
Открыть на GitHub

Что делает blender-python-addon

Правило настраивает Cursor для работы с файлами **/*.py, blender_manifest.toml и __init__.py. Оно предписывает разделять расширение на отдельные модули операторов, панелей интерфейса, свойств и настроек. Точкой входа остаётся __init__.py, где обязательно объявляются парные функции register() и unregister().

В инструкциях собраны строгие ограничения для Blender API. Операторы обязаны проверять контекст через poll(), отделять запуск в invoke() от выполнения в execute() и явно указывать bl_idname и bl_options. При программном изменении геометрии правило требует использовать bmesh и пакетную обработку.

Запрет на изменение данных сцены прямо из методов отрисовки draw() предотвращает зацикливание интерфейса. Небрежная очистка обработчиков и свойств при выгрузке аддона приведёт к утечкам состояния прямо в сессии Blender.

Какие задачи решает

  • структурировать модули аддона для Blender вокруг __init__.py
  • предотвратить случайное изменение данных сцены из метода draw()
  • настроить валидацию контекста в операторах через poll()
  • пакетно редактировать полигональные сетки через bmesh
  • корректно удалять зарегистрированные классы и обработчики при выгрузке

Примеры запросов агенту

  • Сделай оператор с модальным режимом и таймером, чтобы не блокировать интерфейс Blender.
  • Добавь в __init__.py регистрацию группы свойств PropertyGroup и панели интерфейса.
  • Напиши smoke-тест, который импортирует аддон, регистрирует его и проверяет вызов операторов.

Как установить blender-python-addon

Вручную: положить файлы

.cursor/rules/blender-python-addon.mdc

Во frontmatter: description, globs, alwaysApply

По шагам, с командами для каждой платформы: Cursor rules: файлы .mdc, четыре режима и замена .cursorrules

Вопросы о blender-python-addon

Как установить blender-python-addon в Cursor?

Создайте файл .cursor/rules/blender-python-addon.mdc в корне вашего проекта и сохраните в него текст правила. Cursor будет применять эти инструкции при редактировании **/*.py, blender_manifest.toml и __init__.py.

Что делает blender-python-addon?

Оно направляет ИИ-ассистента на соблюдение архитектуры Blender API. Это исключает мутацию данных в UI-панелях, предупреждает зависания интерфейса в модальных операторах и следит за чистой выгрузкой через unregister().

Как правило рекомендует редактировать меши?

Инструкции требуют объединять правки сетки в пакетные операции и использовать модуль bmesh. Прямое сканирование сцены в методах отрисовки запрещено из-за просадок производительности.

Исходный текст

blender-python-addon.mdc · CC0-1.0
---
description: Blender Python add-on rules for operators, panels, properties, registration, testing, and API-safe scripting
globs: ["**/*.py", "blender_manifest.toml", "__init__.py"]
alwaysApply: false
---

# Blender Python Add-on Rules

## Add-on Structure

- Keep add-on entry points in `__init__.py` with clear `register()` and `unregister()` functions.
- Group operators, panels, properties, preferences, and utilities into separate modules for non-trivial add-ons.
- Use `bl_info` or `blender_manifest.toml` according to the Blender version and packaging target.
- Keep UI labels concise and user-facing text translatable where appropriate.

## API Usage

- Use `bpy.types.Operator` for actions, `bpy.types.Panel` for UI, and `bpy.types.PropertyGroup` for grouped settings.
- Define `bl_idname`, `bl_label`, and `bl_options` explicitly.
- Validate context in `poll()` before enabling operators.
- Use `invoke()` for interactive setup and `execute()` for the actual operation.
- Return `{'FINISHED'}` or `{'CANCELLED'}` consistently.
- Use dependency graph updates and evaluated objects when reading final scene state.

## Data and Properties

- Register custom properties through `PropertyGroup` classes instead of loose global state.
- Store add-on preferences in `AddonPreferences`.
- Use `PointerProperty`, `CollectionProperty`, and typed properties with names and descriptions.
- Clean up custom properties and handlers during `unregister()`.

## Safety and Performance

- Do not run destructive scene operations without explicit user action.
- Avoid blocking UI work in modal operators; use timers or modal state machines for long operations.
- Batch mesh changes and use `bmesh` when editing mesh data programmatically.
- Avoid repeatedly scanning large scenes in draw methods.
- Keep file paths configurable and use Blender path utilities.

## Testing and Debugging

- Test scripts in a clean Blender profile and a representative production scene.
- Add smoke tests that import the add-on, register it, run core operators, and unregister cleanly.
- Log actionable messages with `self.report()` for user-facing operator feedback.
- Keep version-specific API differences isolated behind helper functions.

## Common Mistakes

- Do not forget to unregister classes, handlers, timers, and keymaps.
- Do not mutate Blender data from panel `draw()` methods.
- Do not assume an active object, selected object, or mode without checking context.
- Do not hardcode absolute asset paths.

© PatrickJS · CC0-1.0 · PatrickJS/awesome-cursorrules

Похожие правила IDE

Всё по теме «Геймдев и 3D: Unity, Unreal, Godot, Blender» →

Из того же набора140

cloudflare-workers-hono-angular-saas-cursorrules-prompt-file Правило для Cursor задаёт стек и соглашения для SaaS на Cloudflare Workers: Hono API, Angular, Drizzle, Clerk, Stripe. ★ 41 024звёзд репо cloudflare-email-telegram-cursorrules-prompt-file Инструктирует Cursor по настройке пересылки писем с домена в Telegram через Cloudflare Workers и утилиту mail2tg. ★ 41 024звёзд репо clean-code Правило задаёт единый стиль для читаемого и поддерживаемого кода. Оно пригодится при написании, ревью и рефакторинге. ★ 41 024звёзд репо chrome-extension-dev-js-typescript-cursorrules-pro Правило для Cursor, которое настраивает агента писать код расширений Chrome на JavaScript и TypeScript по единому своду соглашений. ★ 41 024звёзд репо beefreesdk Правило задаёт Cursor структуру интеграции Beefree SDK: установку, авторизацию через прокси, контейнер, конфигурацию и callback-функции. ★ 41 024звёзд репо beefreesdk-nocode-content-editor-cursorrules-prompt-file Правило Cursor, которое ведёт агента при встраивании редакторов Beefree SDK для писем, страниц и попапов в веб-приложение. ★ 41 024звёзд репо automl-hyperparameter-optimization Правило задаёт рамки для подбора гиперпараметров и AutoML в Python. Оно требует фиксировать базовые модели, метрики и изолировать тестовые выборки. ★ 41 024звёзд репо astro-typescript-cursorrules-prompt-file Правило задаёт Cursor стандарты для Astro, TypeScript и TailwindCSS, а также добавляет слэш-команду для подготовки Git-коммитов. ★ 41 024звёзд репо

Спонсоры проекта

Компании, которые помогают держать аналитику открытой