Skip to main content

Hi!

When using a ZPL macro, is there the possibility of using a keyword that function like quickadjust?

 

There is the keyword QUICKFOCUS but it works only on the last surface thickness

Dear Nicolò,

 

To the best of my knowledge, there isn’t such a keyword readily available. However, I can think of two workarounds.

First, you can reproduce the Quick Adjust feature in ZPL. There is one limitation (described below), but this allows you to stick with the ZPL langage. Here’s an example of what could be done:

# Edit surface:
adjust_surface = 3

# Edit parameter (0: Radius | 1: Thickness):
parameter = 1

# Edit criterion (1: Spot Size Radial | 2: Spot Size X Only
#                   3: Spot Size Y Only)
criterion = 1

# Edit evaluation surface:
eval_surface = 4

# Save Merit Function
SAVEMERIT "temporary.MF"

# Clear Merit Function
DELETEMFO ALL

# Setup Default Merit Function
DEFAULTMERIT 0, criterion, 0, 1, 3, 6, 1, -1, 0, -1, 1, 1, 0

# Clear variables
REMOVEVARIABLES

# Setup variable
IF (parameter == 0)
    SOLVETYPE adjust_surface, CV, 1, 1, 1, 1
ELSE
    SOLVETYPE adjust_surface, TV, 1, 1, 1, 1
ENDIF

# Optimize
OPTIMIZE

# Update
UPDATE ALL

# Clear Merit Function
DELETEMFO ALL

# Load Merit Function
LOADMERIT "temporary.MF"

# Clear variables
REMOVEVARIABLES

In the screenshots below, I’m illustrating the macro behaviour (before/after) on a dummy file:

Before running the macro
After running the macro

The main limitation is that you can’t seem to generate an angular Default Merit Function.

Second, the Quick Adjust feature is available through the ZOS-API. So, you may want to switch from ZPL to ZOS-API for your application. See the ZOS-API Syntax Help excerpt below:

Let me know if this helps, and take care,

 

David


Thank you for the detailed and complete answer! I was hoping there was a way of doing it without touching the Merit function, but this method works as expected


Hi Nicolò,

 

Sorry I wasn’t clear, this is not a limitation of ZPL. You can save the Merit funciton before and load it again once the quick adjust is done with the keywords SAVEMERIT and LOADMERIT, I will update my answer with the proper lines of codes for you to try. You could even think about using DELETEFILE to remove the temporary file.

Let me know if it works for you.

Take care,

 

David

 


Reply