PolyScope X: Calling a .urp program as a subprogram?

Hi everyone,

I’m currently working with PolyScope X and I’m struggling with something that feels very basic, so I wanted to ask here before giving up completely.

I’m trying to execute an existing .urpx program as a subprogram (i.e. call it from another program).
However, so far I have not been able to find any way to do this:

  • not in the PolyScope X manual

  • not by clicking through the UI and trying things

  • and not even with AI assistance so far

So my questions are:

  1. Is it explicitly not possible in PolyScope X to call a .urpx program as a subprogram?

  2. If it is possible: how is this supposed to work exactly?

  3. Is there any official statement or announcement that this functionality is missing / removed in PolyScope X?

  4. If so, is it known whether this is planned to be added later?

If calling a .urpx as a subprogram is indeed not supported, I’d also like to ask:

  • What is the recommended workaround in PolyScope X?

It’s important for me to keep the effort minimal:
I already have the process logic fully implemented in an existing .urpx program, and I would really like to avoid rewriting everything from scratch (e.g. converting the whole flow into functions or scripts) if possible.

Thanks a lot in advance for any clarification or pointers!

First, so far I have not found any feature in PolyScope that allows a created program to be called as a subprogram.

Second, a PolyScope 5 program (.urp) cannot be used in PolyScope X (.urpx). Please see the link below for more details.

Convert URP to URPX? - Technical Questions / URScript - Universal Robots Forum

Thanks for your fast response.

Ah yes, I know there is no backwards compatibility. Actually I was not referencing to a Polyscope 5 Program but to a Polyscope X one, that was created on the same robot, just forgot that they are now called urpx instead of urp. I will edit my post to avoid the confusion.

Hi. Another way is to use urscript.

  1. Export the program you want to use as a subprogram.
  2. Access ChatGPT, import the .urpx file and use the following prompt:

“This is a .urpx file in JSON format.
program is a root-level key (same level as application).
Extract only the value at the following path:
program → urscript → script.
Do not extract any other urscript entries in the JSON.
Return only the content of the script field.
Format it as valid URScript, and replace all occurrences of the character $ with //.”

  1. Copy the content and paste it into the script command in the main program.

I don’t have a dog in this fight, since I’m not using Polyscope X, but it CAN’T be that complex to use a subprogram. Reading stuff like this is exactly why I don’t use X yet. If it’s lacking this kind of base functionality, it’s not consumer-ready,

1 Like

Hi, that sounds very interesting, I might try that one day!

for my case now I already changed everything to be in one script. It was already mainly in differnt script files, there was just a little variable assignment and logic in the urpx part.

yes I got the same impression… we also needed to “hack around” to get the gripper running:

Automatically Scan for a Robotiq Gripper in Polyscope X

1 Like