Author Topic: Tutorial Add-ons  (Read 330 times)

lfs linux

  • Administrator
  • Padawan
  • **********
  • Posts: 58
    • View Profile
Re: Tutorial Add-ons
« on: September 08, 2017, 06:01:27 pm »
Para la documentación de la API de las funciones enumeradas anteriormente, consulte:

  • bpy.types.KeyMaps.new,
  • bpy.types.KeyMap,
  • bpy.types.KeyMapItems.new,
  • bpy.types.KeyMapItem.

Llevar todo junto

Code: [Select]
bl_info  =  {
    "name" :  "Cursor de arrays" ,
    "categoría" :  "Objeto" ,
}

import bpy


clase  ObjectCursorArray ( bpy . tipos . Operador ):
    "" "Cursor objeto Array" ""
    bl_idname  =  "" object.cursor_array
    bl_label  =  "cursor matriz"
    bl_options  =  { 'REGISTER' ,  'Deshacer' }

    total de  =  bpy . apoyos . IntProperty ( nombre = "pasos" ,  por defecto = 2 ,  min = 1 ,  max = 100 )

    def  ejecutar ( auto ,  contexto ):
        escena  =  contexto . escena
        del cursor  =  escena . cursor_location obj = escena . objetos . activo
         

        para  i  en  gama ( auto . total de ):
            obj_new  =  obj . copia ()
            escena . objetos . enlace ( obj_new )

            factor de  =  i  /  auto . total de
            obj_new . ubicación  =  ( obj . ubicación  *  factor de )  +  ( cursor  *  ( 1,0  -  factor de ))

        volver  { 'terminado' }


def  menu_func ( auto ,  contexto ):
    sí . diseño . operador ( ObjectCursorArray . bl_idname )

# Tienda de mapas de teclas aquí para acceder después de registro
addon_keymaps  =  []


def  registro ():
    bpy . utils . register_class ( ObjectCursorArray )
    bpy . tipos . VIEW3D_MT_object . append ( menu_func )

    # Manejar el mapa de teclado
    wm  =  bpy . contexto . window_manager
    # Tenga en cuenta que en modo de fondo (sin interfaz gráfica de usuario está disponible), keyconfigs no están disponibles o bien,
    # así que tiene que comprobar esto para evitar errores desagradables en caso de fondo.
    kc  =  wm . keyconfigs . complemento
    si  KC :
        km  =  wm . keyconfigs . complemento . mapas de teclas . nueva ( nombre = 'Object Mode' ,  space_type = 'vacío' )
        kmi  =  km . keymap_items . nueva ( ObjectCursorArray . bl_idname ,  'espacio' ,  'Pulse' ,  ctrl = Verdadero ,  cambiar = Verdadero )
        kmi . propiedades . totales  =  4
        addon_keymaps . append (( km ,  KMI ))

def  anular el registro ():
    # Nota: cuando la anulación del registro, por lo general es una buena práctica para hacerlo en orden inverso al que se registró.
    # Puede evitar problemas extraños como mapa de teclado sigue refiriéndose a los operadores ya no registrada ...
    # manejar el mapa de teclas
    de  km ,  kmi  en  addon_keymaps :
        km . keymap_items . eliminar ( KMI )
    addon_keymaps . claro ()

    bpy . utils . unregister_class ( ObjectCursorArray )
    bpy . tipos . VIEW3D_MT_object . eliminar ( menu_func )


Si  __name__  ==  "__main__" :
    registrar ()



Ejecutar la secuencia de comandos (o guardarlo y añadirlo a través de las preferencias como antes) y aparecerá en el menú.



Después de seleccionar en el menú, puede elegir cuántas instancias del cubo que desea crear.

Nota

Directamente a ejecutar el guión varias veces agregará el menú cada vez demasiado. Mientras que el comportamiento no es útil, no hay nada de qué preocuparse ya que los complementos no se registren varias veces cuando se activa a través de las preferencias del usuario.


conclusiones

Los complementos pueden encapsular cierta funcionalidad perfectamente para disfrutar de herramientas para mejorar el flujo de trabajo para escribir o para escribir los servicios públicos para uso de otros.

Si bien hay límites a lo que puede hacer dentro de Python Blender, sin duda hay mucho que se puede lograr sin tener que sumergirse en C de Blender / C ++ código.

El ejemplo dado en el tutorial es limitada, pero muestra la API Blender utilizado para tareas comunes que se pueden expandir a escribir sus propias herramientas.

Otras lecturas
Blender viene con las plantillas comentado que son accesibles desde la cabecera del editor de texto, si usted tiene áreas específicas que desea ver el código de ejemplo, este es un buen lugar para comenzar.

Aquí hay algunos sitios que le gustaría ver cómo después de completar este tutorial.

Blender / Python generales del API - Para más detalles de fondo sobre la integración del mezclador / Python.
Cómo Pensar como un Informático - Gran información para aquellos que todavía están aprendiendo Python.
Desarrollo de Blender (Wiki) - Desarrollo de Blender, información general y enlaces útiles.
Los artistas de Blender (sección de codificación) - foro donde las personas hacen preguntas de desarrollo de Python