Nirtec Studio Forum

General Category => Machines Simulator => Topic started by: picophino on August 01, 2025, 11:06:47 AM

Title: Fijar un UDC a un otro UDC
Post by: picophino on August 01, 2025, 11:06:47 AM
Hola!

Estoy intentando hacer una etapa en la cual se simula de forma muy simple el tapado de un bidón, las etapas son las siguientes:

1. Un bidón vacío llega y para en una cinta, listo para ser tapado
2. El brazo robot coge la tapa y la coloca encima del bidón
3. El robot suelta la tapa (como si la estuviese colocando)

Es justo después de la tercera etapa que necesito que la tapa se quede pegada de alguna forma al bidón, simulando que este ha sido tapado.

También me gustaría saber si existe alguna forma de que la tapa siempre se posicione bien (se tape bien) en el bidón, porque a veces por el retraso que hay en comunicación con TIA Portal tarda un poco más en parar y no es muy preciso.

Importante remarcar que este es un proceso que se va a realizar repetidas veces, y que los bidones y las tapas son creadas por un WorkPartCreator, quiero tratar de evitar utilizar salidas o entradas para la lógica del tapado y tan solo utilizar el Script.

Tanto la tapa como el bidón son UDCs.

Adjunto captura, un saludo y gracias!
Title: Re: Fijar un UDC a un otro UDC
Post by: EasyPLC_Master on August 01, 2025, 02:27:20 PM
Si trabajas con WorkParts, tienes la función AttachMe que une el WP con el componente que se le pase, o la función FixToWP que une el WP con otro WP que se pase como argumento en la función.

Para detectar los WP o componentes (UDCs), puedes usar un Static Component, hacerlo no colisionable y no visible, usar la propiedad .Ghost(true) para detectar los WP o UDC que están en la zona para unir y usar la función .SetParent(Space) de cada uno de los componentes, y unirán los dos componentes, el que llama a la función y el que se pasa como argumento.

Cuando unas la tapa con el bidón, podrás modificar la posición de la tapa (ya que tienes el objeto Component que te ha devuelto el Static) y puedes modificar la posición para que siempre sea la deseada.
Title: Re: Fijar un UDC a un otro UDC
Post by: picophino on August 03, 2025, 06:47:39 PM
Por favor, ¿podrías darme un ejemplo del código que tendría que utilizar en script del UDC bidón?

No entiendo muy bien como implementar lo que me comentas en el código script, aunque entiendo la idea...

Un saludo y gracias
Title: Re: Fijar un UDC a un otro UDC
Post by: picophino on August 06, 2025, 12:49:05 PM
Hola de nuevo, por favor, necesitaría algún ejemplo de código, llevo ya dos días y no consigo nada.

Explico el contexto general para que se entienda bien:

1- Tanto para los bidones y tapas utilizo UDCs
2- Tanto los bidones como las tapas son generadas por unos WorkPartCreators
3- En la etapa de tapado, necesito juntar ambos UDCs (Tapa y Bidón) para que sean una entidad única
4- El tapado se va a repetir muchas veces y con UDCs "diferentes"
5- Luego le sigue otra etapa en la que necesito que el bidón sea una entidad única.

Seguro que el código es sencillo, pero no encuentro ningún ejemplo que me sirva y la información proporcionada en los manuales no me es suficiente para poder comprender como hacer el código.

Por favor, ayuda, la frustración ya es grande.

Muchas gracias, un saludo!
Title: Re: Fijar un UDC a un otro UDC
Post by: EasyPLC_Master on August 06, 2025, 02:58:27 PM
Recordamos que para asistencia personalizada disponemos del producto:
https://www.nirtec.com/products/support-service/ (https://www.nirtec.com/products/support-service/)
Donde el compromiso de respuesta es de 24H en horario laboral y 48H en caso de fines de semana/festivos.

Mediante el foro damos respuestas orientativas, pero en caso de necesidad de ejemplos puntuales o suministro de código que requiera invertir tiempo, no podemos comprometernos a daros respuestas inmediatas o a corto plazo debido a nuestra carga de trabajo.

Gracias por la comprensión.


Title: Re: Fijar un UDC a un otro UDC
Post by: picophino on August 06, 2025, 05:08:43 PM
Gracias por su respuesta!

Tengo en cuenta lo que me indicáis.

Sin embargo, tan solo pido un ejemplo sencillo del código a implementar.

Creo que es una función muy básica y nada muy complejo, no requiero de un ejemplo con un .maq personalizado.

Un saludo.