Nirtec Studio Forum

General Category => Machines Simulator => Topic started by: Alvaro_ATOX on June 25, 2025, 06:31:56 PM

Title: Script Code Editor girar objeto
Post by: Alvaro_ATOX on June 25, 2025, 06:31:56 PM
Hola a todos, estoy buscando algún ejemplo en Script Code Editor para aplicar un giro continuo a una caja.

Lo quiero para hacer que las cajas giren cuando pasen por una cinta en curva. Ahora solo se trasladan, no giran. Cuando son rodillos giran y se trasladan, pero en cinta no.

Gracias de antemano.
Title: Re: Script Code Editor girar objeto
Post by: EasyPLC_Master on June 25, 2025, 09:17:05 PM
Puedes usar la función OrbitTo(Vector3 pos,float sp) del componente WorkPart.
Por ejemplo si usas un plano usando la función  List<WorkPartLogic> WorkPartCollisionList te devolverá una lista de todos los componentes WorkParts que se encuentran en el plano.
Puedes orbitar los WP respecto a un punto de origen para simular el giro de la cinta.
Title: Re: Script Code Editor girar objeto
Post by: Alvaro_ATOX on June 26, 2025, 10:26:35 AM
Hola, gracias por la respuesta.
Creo que mi problema es anterior, adjunto el código con los intentos anteriores comentados para que veas por dónde he ido:

int i = 0;

Vector3 a, b;

public void Init()
{
 //a = new Vector3();
}

public void Main()
{
a = new Vector3 (0, i, 0);
b = new Vector3 (-12, 0, 26);
i++;

//WorkPart25.ApplyMovement(true, 15.0f, true, false);
//WorkPart25.OrbitTo(Cam104.transform.position, 15.0f);
//WorkPart25.OrbitTo(b, 15.0f);
}

public void Physics()
{
//WorkPart25.MoveRotation(a * 10);
//WorkPart24.MoveRotation(a * 10);
WorkPart25.OrbitTo(b, 15.0f);
}

public void Finish()
{
 
}


Title: Re: Script Code Editor girar objeto
Post by: Alvaro_ATOX on June 26, 2025, 03:24:32 PM
Hola, sigo sin ser capaz de acceder al WorkPart y hacerlo girar. En el transportador de banda que estoy simulando en Init() arranco todos los caminos, el workpartCreator, el destructor, pero ni en Main() ni en Physics() soy capaz de modificar el estado de movimiento de la caja. Necesito el código para trabajar a partir de ahí. Adjunto el código que tengo hasta ahora, arranca los caminos pero no hace nada más.

Sabéis si hay algún ejemplo de código en el que se modifique el movimiento de un objeto?

Gracias


int i = 0;
Vector3 pos;
Vector3 a, b;

public void Init()
{
 //a = new Vector3();
 WorkPart25.WorkPartType = 2;
 
 Cam101.Advance(true);
 Cam102.Advance(true);
 Cam103.Advance(true);
 Cam104.Reverse(true);
 Cam105.Advance(true);
 Cam106.Reverse(true);
 Cam107.Advance(true);
 Cam108.Advance(true);
 Cam109.Advance(true);
 Cam110.Advance(true);

IOManager.SetInput(24, true);

//WorkPart25.transform.IKEnable(false);
}

public void Main()
{
    a = new Vector3 (0, i, 0);
    b = new Vector3 (-12, 0, 26);
    i++;
   
    //WorkPart25.ApplyMovement(true, 15.0f, true, false);
    //WorkPart25.OrbitTo(Cam104.transform.position, 15.0f);
    //WorkPart25.OrbitTo(b, 15.0f);//// DIGITAL OUTPUTS ////
    WorkPartCreator22.CreateByTime(2, 4);
    //pos = WorkPart25.CurrentPosition();
    //pos = WorkPart25.transform.position;
    //WorkPart25.transform.Rotate(2, i, 10, 0);
   
    //EditorUtils.ShowText(pos.ToString());
   
}

public void Physics()
{
    //WorkPart25.MoveRotation(a * 10);
    //WorkPart24.MoveRotation(a * 10);
        //WorkPart25.OrbitTo(b, 15.0f);
        WorkPart25.transform.Rotate(2, -i * 10, 10, 0);
        pos = WorkPart25.transform.position;
        EditorUtils.ShowText(pos.ToString());
}

public void Finish()
{
 
}

Title: Re: Script Code Editor girar objeto
Post by: EasyPLC_Master on June 27, 2025, 08:48:16 AM
Aquí tienes un ejemplo.