Resultados 1 al 2 de 2

Al exportar todas las coordenadas UV =

  1. #1
    Fecha de ingreso
    Feb 2008
    Mensajes
    109

    Al exportar todas las coordenadas uv = 0

    Hola el script que cree exporta bien las posiciones de los vértices ya que tuve en cuenta salir de editmode antes de hacerlo, el problema lo tengo con las coordenadas u, que por algún error me exporta todas con valor = 0, mi código es el siguiente:
    For v in datosobjeto, vértices:
    X=v, co[0] y=v, co[1] z=v, co[2] u=v, uvco[0] v=v, uvco[1] archivosalida.write (%8f %8f %8f %8f %8f % (x y, z, u,)) archivosalida.write (chr(10)).

  2. #2
    Fecha de ingreso
    Dec 2025
    Mensajes
    0
    El problema es que estás intentando acceder a las coordenadas UV directamente desde los vértices del objeto (bpy.data.objects[...].data.vertices), lo cual no es correcto. Los datos UV se almacenan en la capa de loops del mesh. Debes acceder a ellos a través de los loops de la malla.

    Para solucionarlo, necesitas iterar sobre los loops de cada polígono. Aquí tienes una corrección del enfoque usando la API actual de Blender.

    Primero, asegúrate de tener el objeto mesh seleccionado y en modo objeto. Luego, en tu script, accede a los datos de la malla. Necesitas obtener la capa de datos UV activa. Un método robusto es este:

    Obten la malla desde el objeto: me = obj.data. Asegúrate de que la malla tenga coordenadas UV. Luego, obtén la capa de UV activa: uv_layer = me.uv_layers.active.data.

    Ahora, para exportar cada vértice con su UV, debes recorrer los polígonos (caras) y, para cada vértice índice en el polígono, obtener su posición y su UV. El loop (me.loops) contiene el índice del vértice y el índice para los datos UV.

    Un bucle correcto sería así:

    import bpy
    obj = bpy.context.active_object
    me = obj.data
    uv_layer = me.uv_layers.active.data

    with open('salida.txt', 'w') as archivo:
    for poly in me.polygons:
    for loop_index in poly.loop_indices:
    loop = me.loops[loop_index]
    vert = me.vertices[loop.vertex_index]
    uv = uv_layer[loop_index].uv
    archivo.write(f"{vert.co.x:.8f} {vert.co.y:.8f} {vert.co.z:.8f} {uv.x:.8f} {uv.y:.8f}\n")

    Este código recorre cada cara, y para cada loop (que corresponde a un vértice en esa cara) obtiene la posición del vértice y sus coordenadas UV. Escribe todos los datos en el archivo. Ten en cuenta que si un vértice es compartido por varias caras, se exportará múltiples veces (una por cada cara), lo cual es normal para datos UV que pueden tener diferentes valores por cara.

    Asegúrate de que tu objeto tiene una capa UV activa asignada antes de ejecutar el script. Si el problema persiste, verifica que las UVs no estén efectivamente en la coordenada 0,0. Puedes revisarlo visualmente en la ventana de UV Editing.

Temas similares

  1. AutoCAD Problema al asignar coordenadas de mapeo en Autodesk Viz al exportar muros de AutoCAD
    Por bestianimal en el foro Programas de Diseño 3D y CAD
    Respuestas: 1
    : 04-04-2023, 18:02
  2. Videojuegos Al exportar modelo de ZBrush a Maya debo exportar todos los mapas?
    Por iljonios en el foro Videojuegos
    Respuestas: 2
    : 12-05-2017, 14:21
  3. Xyztocad aplicación para importar exportar coordenadas
    Por programacionautocad en el foro Programas de Diseño 3D y CAD
    Respuestas: 3
    : 03-05-2011, 18:38
  4. XYZ coordenadas
    Por Pitu en el foro Plugins y Scripts
    Respuestas: 1
    : 12-08-2009, 12:45
  5. Covertir coordenadas UV por caras a coordenadas UV por vértice
    Por jor1980 en el foro Plugins y Scripts
    Respuestas: 4
    : 23-05-2009, 12:25