%%HP: T(1)A(G)F(.);
 { OBRA HT ZE YE
XE COM HP } PURGE
  IFERR "INICIA" {
{ "OBRA"
"ESCRIU NOM DE L'OBRA"
} { "X"
"X DE L ESTACIO" }
{ "Y"
"Y DE L ESTACIO" }
{ "Z"
"Z DE L ESTACIO" }
{ "H TAQUI"
"ALTURA TAQUIMETRE"
} { "NOM EST"
"DESCRIPCIO DE L'ESTACIO"
} } { 2 1 } { } { }
INFORM 'OK' STO
    IF OK 0 ==
    THEN '2/0' EVAL
    END OBJ DROP
'NOMEST' STO 'HT'
STO 'ZE' STO 'YE'
STO 'XE' STO 'OBRA'
STO
    IFERR "
" OBRA
STO 1 'NOM' STO ""
'ESTACIO' STO
    THEN
"CONTINUACIO DE FITXER"
MSGBOX
    END "" COM STO
0 HP STO
    DO 0 'DD' STO 0
'AV' STO 0 'AH' STO
NOM 'VELL' STO
"ENTRAR DADES" { {
"PUNT"
"ESCRIU O CONFIRMA EL NOM DEL PUNT"
} { "PRIS"
"CONFIRMA O CANVIA L'ALCADA PRISMA"
} { "HORI"
"ENTRA ANGLE HORITZONTAL"
} { "VERT"
"ENTRA ANGLE VERTICAL"
} { "DIST"
"ENTRA DISTANCIA DIRECTA"
} { "COME"
"ESCRIU O CONFIRMA EL COMENTARI"
} } { 2 0 } { } {
NOM HP AH AV DD COM
}
       RCL
       DOLIST
INFORM 'OK' STO
      IF OK 0 ==
      THEN '2/0'
EVAL
      END OBJ DROP
'COM' STO 'DD' STO
'AV' STO 'AH' STO
'HP' STO 'NOM' STO
OBRA STD NOM " " +
'XE+DD*SIN(AV)*SIN(
AH)' EVAL 3 FIX +
" " + 'YE+DD*SIN(AV
)*COS(AH)' EVAL +
" " + 'ZE+DD*COS(AV
)+HT-HP' EVAL + " "
+ COM + "
" + +
'OBRA' RCL STO COM
STR 'COMP' STO STD
      IF COMP
"'ESTA'" ==
      THEN ESTACIO
"NOM: " NOM +
" X: " + 'XE+DD*SIN
(AV)*SIN(AH)' NUM
3 FIX + " Y: " + '
YE+DD*SIN(AV)*COS(
AH)' NUM + " Z: "
+ 'ZE+DD*COS(AV)+HT
-HP' NUM + " AH: "
+ AH + " DH: " + '
DD*SIN(AV)' NUM +
"" + NOMEST + "
"
+ + 'ESTACIO' STO
"ESTACIO GENERADA"
MSGBOX VELL 'NOM'
STO STD "" 'COM'
STO
      END 1 NOM +
'NOM' STO NOM
'VELL' STO
    UNTIL 1 1 =
    END
  THEN { OBRA XE YE
ZE HP COM HT COMP
VELL AH AV DD
NOMEST OK } PURGE
CLEAR "CARLES PINA"
"cpina@linuxfan.com"
"TOPO V 1,05"
  END

