ZPL string variables and operations Строчные переменные и операции с ними

ZPL поддерживает строчные переменные и операции с ними. Строчные переменные не нуждаются в их заблаговременном объявлении, а могут создаваться в любое время путем определения операций, таких как:

newstring$ = "Here is the new string"

Заметьте, что строчная переменная отличается от числовой переменной наличием в конце первой знака $. Строчные переменные могут быть соединены между собой с помощью оператора +. Синтаксис такого соединения следующий:

total$ = "A$ is " + A$ +" and B$ is " + B$

Есть также функции строчных переменных, которые могут быть использованы для извлечения текстовых данных, такие как:

title$ = $LENSNAME()

Заметьте, что функция $LENSNAME () начинается с знака $. Это идентифицирует функцию строчной переменной как функцию, производящую строчный результат. Функции строчных переменных могут быть использованы для определения таких операций, как:

this$ = "Here is the lens title: " + $LENSNAME ()

Строчные переменные выводятся на печать точно таким же образом, как другие строчки:

PRINT "Here is A$: ", A$

Заметьте, что функция PRINT может выводить на печать только одну единственную строчную переменную; нет возможности для связывания операторов или строчных

24-12                                                      Chapter 24: ZEMAX PROGRAMMING LANGUAGE


функций внутри операции печати. Правильная процедура для связывания строк в новую строку с последующей ее печатью выглядит так:

А$ = В$ + С$

PRINT A$

Альтернативой этому является использование запятой для связки операторов:

PRINT А$, В$, С$

Функции строчных переменных не могут печататься непосредственно, например, как:

PRINT $LENSNAME ()! NOT CORRECT!!!

Вместо этого следует результат функции записать в виде новой строчной переменной и затем печатать эту новую переменную:

Z$ = $LENSNAME()

PRINT Z$

Одна очень важная функция - это $STR (). Эта функция имеет в качестве аргумента какое-либо числовое выражение. Функция $STR полезна для внесения числовых данных в строчки:

A$ = "The expression evaluates to " + $STR (SQRT (3*3+4*4+z*y))

В нижеследующей таблице перечислены имеющиеся функции строчных переменных.

                                                     ZPL STRING FUNCTIONS

                                      ФУНКЦИИ СТРОЧНЫХ ПЕРЕМЕННЫХ

 

Функции   Описание (Принимаемое значение)  
$COMMENT(i)   Строка комментария для i-поверхности. Берется из Lens Data Editor  
$DATE()   Текущее время и дата. Берется из диалогового окна Environment Text Data.  
$FILENAME()   Имя файла текущей схемы без записи директория.  
$FILEPATH()   Имя файла текущей схемы с полной записью директория.  
$GLASS(i)   Имя стекла i-поверхности.  
$LENSNAME()   Наименование схемы, определенное в диалоговом окне General System.  
$NOTE(line#)   Примечание к схеме, определенное в диалоговом окне General System.  
$PATHNAME()   Имя директория и поддиректория, в котором записан файл с текущей схемой. Это полезно для определения поддиректория, в котором записана схема.  
$STR(expression)   Записывает результат вычислений в формате, заданном ключевым словом FORMAT. Числовым выражением может быть какое-либо уравнение, включая комбинацию постоянных, переменных и функций.  
$UNITS()   Принимает значения MM, CM, IN или М в зависимости от того, какие выбраны и используются единицы измерения.  

 

Глава 24: ЯЗЫК ПРОГРАММИРОВАНИЯ ZEMAX                                                         24-13




ZPL keywords

Ключевые слова ZPL

С помощью ключевых слов обеспечивается управление программой, генерация выходных данных и решение некоторых важных задач, таких как трассировка лучей и модификация установок в схеме. Каждое ключевое слово детально описано в следующем разделе. Некоторые ключевые слова с подобными или сходными функциями сгруппированы вместе.

APMN. АРМХ

Назначение:

Используется для установки максимального и минимального радиусов апертуры для указанной поверхности.

Синтаксис:

APMN(поверхность)=(новое_значение) АРМХ(поверхность) = (новое значение)

Обсуждение:

Эти ключевые слова требуют два выражения: одно, определяющее номер поверхности, и другое - для определения новой величины радиуса. Выражение поверхность вычисляется и затем округляется до меньшего целого числа, которое и определяет номер поверхности. Если вычисленный номер окажется меньше нуля или будет больше числа заданных в схеме поверхностей, то эта команда просто игнорируется. Во всех других случая вычисляется выражение новое_значение и устанавливаются новые величины минимального радиуса (APMN) и максимального радиуса (АРМХ) апертуры.

Минимальные и максимальные величины радиусов используются для всех видов апертур, хотя они имеют различный смысл в зависимости от типа используемой апертуры, как это описано в нижеследующей таблице.

Тип апертуры   APMN используется для установки:  
None   Игнорируется  
Circular aperture   Минимального радиуса круглой апертуры  
Circular obscuration   Минимального радиуса круглого экрана  
Spider   Ширины растяжек  
Rectangular aperture   Полуширины прямоугольной апертуры по оси Х  
Rectangular obscuration   Полуширины прямоугольного экрана по оси Х  
Elliptical aperture   Полуширины эллиптической апертуры по оси Х  
Elliptical obscuration   Полуширины эллиптического экрана по оси Х  
User aperture   Игнорируется  
User obscuration   Игнорируется  
Floating aperture   Игнорируется  

 

Пример:

APMN(3)=1.75

АРМХ(З) =3.50

24-14                                                       Chapter 24: ZEMAX PROGRAMMING LANGUAGE



APXD.APYD

Назначение:

Используется для установки величины децентрировки апертуры поверхности по осям Х и Y.

Синтаксис:

APXD(поверхность) = (новое значение) APYD(поверхность) = новое значение)

Обсуждение:

Эти ключевые слова требуют два выражения: одно для определения номера поверх­ности и другое для определения нового значения. Выражение поверхность вычисляется и затем округляется до меньшего целого числа, которое и определяет номер поверхности. Если вычисленный номер поверхности окажется меньше нуля или будет больше числа заданных в схеме поверхностей, то эта команда просто игнорируется. Во всех других случая вычисляется выражение новое значение и устанавливаются новые величины децентрировки апертуры поверхности по оси Х (APXD) и по оси Y (APYD).

Пример:

APXD(3) = -3.6

APYD(5) = -1 * APYD(3)

АРТР

Назначение:

Используется для установки типа апертуры поверхности.

Синтаксис:

АРТР (поверхность) = (кодовое число)

Обсуждение:

Эти ключевые слова требуют два выражения: одно для определения номера поверхности и другое для определения нового типа апертуры. Выражение поверхность вычисляется и затем округляется до меньшего целого числа, которое и определяет номер поверхности. Если вычисленный номер окажется меньше нуля или будет больше числа заданных в схеме поверхностей, то эта команда просто игнорируется. Во всех других случая вычисляется выражение кодовое число; полученная величина округляется до целого и устанавливается новый тип апертуры. Кодовые числа различных типов апертур приведены в нижесле­дующей таблице.

Кодовое число   Тип апертуры  
0   None  
1   Circular aperture  
2   Circular obscuration  
3   Spider  
4   Rectangular aperture  
5   Rectangular obscuration  
6   Elliptical aperture  
7   Elliptical obscuration  
8   User aperture  

 

Глава 24: ЯЗЫК ПРОГРАММИРОВАНИЯ ZEMAX                                                         24-15


Кодовое число   Тип апертуры  
9   User obscuration  
10   Floating aperture  

 

Пример:

АРТР (З) = 1


ATYP. AVAL

Назначение:

Используется для установки типа апертуры системы и ее значения.

Синтаксис:

ATYP = (кодовое_число)

AVAL = (новое_значение)

Обсуждение:

Эти ключевые слова используются для определения типа апертуры системы и задания ее величины. Тип апертуры системы определяется с помощью следующих кодовых чисел:

Тип апертуры   Кодовое число  
Entrance Pupil Diameter   0  
Image Space F/#   1  
Object Space Numerical Apertute   2  
Float By Stop Size   3  

 

Пример:

! Set the EPD to be 35

ATYP = 0

AVAL =35.0

CLOSE

Назначение:

Закрывает ASCII файл, открытый ранее командой OPEN.

Синтаксис:

CLOSE

Обсуждение:

Смотри описание команды OPEN.

CLOSEWINDOW

Назначение:

Не позволяет появляться на экране окну с выходными данными.

Синтаксис:

CLOSEWINDOW

Обсуждение:

Команда CLOSEWINDOW используется для выполнения ZPL программы в быстром режиме. Обычно появляющееся на экране после выполнения программы окно с выходными данными не будет высвечиваться после этой команды, записанной в

24-16                                                       Chapter 24: ZEMAX PROGRAMMING LANGUAGE


любую строку программы. Эта команда не оказывает никаких других действий на выполнение программы.


COLOR

Назначение:

Установка цвета, используемого для линий в графиках и в тексте.

Синтаксис:

COLOR(n)

Обсуждение:

Число n должно быть целым. Если аргумент n равен нулю, то цвет устанавливается черным. В противном случае, цвет, определенный целым числом, будет использо­ваться для всех линий и текста, записанного в графическом режиме. В распоряжении имеется 12 различных цветов плюс черный цвет; эти цвета имеют нумерацию от 0 до 12. Цвета обычно используются в ZEMAX для выделения различных полей и длин волн; цвет 1 может быть использован либо для выделения поля 1, либо для выделе­ния длины волны 1, и так далее.

CONI

Назначение:

Слово CONI используется для задания величины конической постоянной для указанной поверхности.

Синтаксис:

CONI(поверхность) = (новое_значение)

Обсуждение:

Ключевое слово CONI требует два выражения: одно - для определения номера поверхности и второе - для определения новой величины конической постоянной. Выражение поверхность вычисляется и затем округляется до меньшего целого числа, которое и определяет номер поверхности. Если вычисленный номер поверхно­сти окажется меньше нуля или будет больше числа заданных в схеме поверхностей, то эта команда просто игнорируется. Во всех других случая вычисляется выражение новое значение и устанавливается новая величина конической постоянной.

Пример:

CONI 1 = - 1

Родственные слова:

UPDATE

CURV

Назначение:

Слово CURV используется для задания величины кривизны указанной поверхности.

Синтаксис:

CURV(поверхность) = (новое значение)

Обсуждение:

Ключевое слово CURV требует два выражения: одно - для определения номера поверхности и второе - для задания кривизны этой поверхности. Выражение

Глава 24: ЯЗЫК ПРОГРАММИРОВАНИЯ ZEMAX                                                             24-17


поверхность вычисляется и затем округляется до меньшего целого числа, которое и определяет номер поверхности. Если вычисленный номер поверхности окажется меньше нуля или будет больше числа заданных в схеме поверхностей, то эта команда просто игнорируется. Во всех других случая вычисляется выражение новое_значение и устанавливается новая величина кривизны поверхности.

Пример:

CURV(3) = - CURV(4) + 0.00.1

Родственные слова:

UPDATE DELETE

Назначение:

Удаляет поверхность из таблицы редактора.

Синтаксис:

DELETE (n)

Обсуждение:

Число n должно быть целым. Смотри также INSERT.

Пример:

DELETE 5

DELETE I + 2 * j


EDVA

Назначение:

Задние величин внешних (дополнительных) данных для поверхности.

Синтаксис:

EDVA поверхность, ed значение, новое значение

Обсуждение:

Выражение поверхность указывает номер поверхности, которая должна быть модифицирована. Выражение ed значение должно быть целым числом, соответствующим одной из позиций в записи внешних данных. Смотри главу "Surface types", в которой описаны внешние данные. Выражение новое_значение вычисляется и полученная величина присваивается указанному номеру внешних данных для данной поверхности.

Пример:

EDVA 5, 6, x+y

DELETE i + 2 * j

END

Смотри GOSUB.

FINDFILE

Назначение:

Используется для нахождения (имен) файлов, записанных на диск.

24 -18                                                              Chapter 24: ZEMAX PROGRAMMING LANGUAGE


Синтаксис:

FINDFILE TEMPNAME$, FILTER$

Обсуждение:

Это ключевое слово требует два выражения: одного - для определения названия строчной переменной, которая будет использоваться для записи имени файла, и другого (содержащего строку "filter") - для определения строчной переменной, которая будет использоваться для записи пути к файлу. Строка "filter" обычно определяет путь к файлу и символ, описывающий тип файла. Смотри данный ниже пример. Команда FINDFILE полезна для получения списка всех файлов определенного типа, содержащихся в директории, или для анализа большого числа файлов с подобными схемами.

Пример:

FILTER$ = "C:\ZEMAX\ *.ZMX"

PRINT "Listing of all ZEMAX files in ", FILTER$

FINDFILE TEMPFILE$, FILTER$

LABEL 1

If (SLEN(TEMPFILE$))

PRINT TEMPFILE$

FINDFILE TEMPFILE$, FILTER$

GOTO 1

ENDIF

PRINT "No more files."



Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: