Jump to content

Переменная $P_PFRAME


Иван П.

Recommended Posts

Иван П.

Подскажите, пожалуйста, почему следующий кусок кода не работает:

DEF REAL ALPHA;

...

$P_PFRAME[Z, RT] = ALPHA;

Работает только вариант с $P_UIFR:

DEF REAL ALPHA;

...

$P_UIFR[1, Z, RT] = ALPHA;

Однако, такой способ менее удобен, ввиду того, что возникает необходимость всякий раз указывать смещение нулевой точки (в данном случае 1 соответствует G54). Поскольку в разное время могут использоваться и G55, и G56.

Link to post
Share on other sites


UnPinned posts
Иван П.

Или может быть есть какая-то системная переменная, в которой хранится используемый в данный момент устанавливаемый фрейм? Чтобы не приходилось его явно задавать, указывая число в квадратных скобках?

Что-то вроде:

 

$P_UIFR[$P_FOO, Z, RT] = ALPHA;

Где $P_FOO содержит значение, соответствующее используемому смещению нулевой точки.

Link to post
Share on other sites
3 часа назад, Иван П. сказал:

Или может быть есть какая-то системная переменная, в которой хранится используемый в данный момент устанавливаемый фрейм? Чтобы не приходилось его явно задавать, указывая число в квадратных скобках?

 

Вот так работает, R201, надо тоже присвоить. 

 

R201=$P_UIFR[5,Y,TR]

 

$P_UIFR[5,Y,TR]=$P_UIFR[5,Y,TR]+R201

 

Пример просто из головы, но рабочий

Новостной канал Станкостроение Инфо

https://t.me/stankostroenie

Link to post
Share on other sites
Иван П.

Я имел в виду, что мне необходимо избежать явного задания смещения нулевой точки в $P_UIFR. В вашем случае это 5, что соответствует G505. А поскольку в разное время это может быть G54, G55 или G56, то нужно каждый раз в программе выбирать соответствующее значение. Что-то вроде:

DEF REAL NUM = 1;    1 - G54
                ;    2 - G55
                ;    3 - G56
...
$P_UIFR[NUM, Z, TR] = ...

Нашел сейчас в руководстве "Системные переменные" переменную $P_UIFRNUM. Похоже, что это то, что мне нужно. Пока не проверял.

 

Link to post
Share on other sites

Если вам для всех нулей (G54...G599) нужно повернуть, можно попробовать сделать так

$P_BFRAME[Z, RT] - повернуть базовое смещение.

А в целом, вроде как должен работать и  $P_PFRAME[Z, RT]  фрейм. Это вроде как тот же самый базовый, просто 0 не указан. Но могу ошибаться.

Edited by s_liam
Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...