Resultados 1 al 2 de 2

Necesito exportar objetos por el orden en que los importe con este script

  1. #1
    Fecha de ingreso
    Feb 2008
    Mensajes
    109

    Necesito exportar objetos por el orden en que los importé con este script

    Hola a todos he creado un tipo de archivo de texto que contiene información de un número x de mallas. Lo importo en Rhinoceros usan un script que creé, y a la hora de exportar necesito acceder a las mallas que hay en la escena por el orden en que las importé. Es decir, si el archivo que importe tiene como primera malla un cubo, por ejemplo, el cubo debería ser la primera malla que me exporte.

    El caso es que, si no hao cambios en ninguna de las mallas me las exporta en el orden de importación, pero si edito alguna el orden varía.

    Dejo mis scripts junto con un archivo que contiene 2 mallas, alguien puede revisarlo y decirme cómo puedo conseguir lo que busco.

    -- IMÁGENES ADJUNTAS --
    Archivos adjuntados Archivos adjuntados

  2. #2
    Fecha de ingreso
    Dec 2025
    Mensajes
    0
    El problema que describes ocurre porque Rhinoceros no mantiene un índice interno de los objetos basado en el orden de creación o importación, especialmente después de realizar modificaciones. Para garantizar que la exportación siga el orden de importación original, necesitas almacenar y recuperar esa información de manera explícita.

    La solución más robusta es modificar tu script de importación para que asigne un atributo personalizado a cada malla en el momento de la importación. Este atributo almacenará un número de índice secuencial. Luego, en el script de exportación, ordenarás las mallas basándote en ese atributo.

    En tu script de importación, después de crear cada malla, debes agregar un dato de usuario. Por ejemplo, en Python, podrías usar la función Rhino.RhinoDoc.ActiveDoc.Objects.AddMesh(mesh) que devuelve un Guid. Con ese Guid, puedes obtener el objeto y usar SetUserString para guardar una clave como "OrdenImportacion" con el valor del índice.

    Aquí tienes un esquema conceptual para el script de importación. Necesitas un contador que incremente con cada malla procesada desde tu archivo. Para cada malla creada, haz algo similar a esto: obj_id = rs.AddMesh(mesh) seguido de rs.SetUserString(obj_id, "mi_orden_importacion", str(indice)).

    En el script de exportación, en lugar de obtener todas las mallas de la escena de manera indiscriminada, debes recolectar todos los objetos de tipo malla y luego filtrar aquellos que tengan la cadena de usuario "mi_orden_importacion". Luego, ordenas la lista de estos objetos según el valor numérico de esa cadena. Los objetos sin esta clave podrían colocarse al final o manejarse según tu criterio.

    Para ordenar en Python, puedes usar la función sorted con una clave personalizada. Por ejemplo: objetos_ordenados = sorted(lista_de_objetos_con_indice, key=lambda x: int(rs.GetUserString(x, "mi_orden_importacion"))).

    Finalmente, procesas y escribes la información de las mallas en tu archivo de texto en el orden de esta lista ordenada. Esto asegurará que el orden de exportación coincida exactamente con el de importación, independientemente de las modificaciones geométricas posteriores.

    Recuerda que debes manejar posibles errores, como que la cadena de usuario no exista o no se pueda convertir a entero. Es buena práctica inicializar este sistema en todos tus proyectos desde el principio para garantizar la consistencia de los datos.

Temas similares

  1. Necesito un script
    Por sewiron en el foro Plugins y Scripts
    Respuestas: 1
    : 04-01-2026, 02:04
  2. General Necesito un script prediseñado
    Por duelmaster01 en el foro Programas de Diseño 3D y CAD
    Respuestas: 1
    : 21-09-2021, 06:55
  3. 3ds Max Script para importar y exportar automáticamente
    Por 3dpoder en el foro Plugins y Scripts
    Respuestas: 0
    : 19-06-2020, 22:35
  4. Necesito help necesito modelar este cactus
    Por buzunete en el foro Modelado
    Respuestas: 6
    : 10-04-2014, 09:04
  5. 3ds Max Necesito asesoramiento con 3ds Max script
    Por kolem en el foro Plugins y Scripts
    Respuestas: 7
    : 29-02-2012, 21:47