Stránka 1 z 1

Volání programu

Napsal: 9. 2. 2009, 7:42
od vwq
Ahoj lidi.Potřebuji poradit.Umí mach3 volat program do programu?
V heidenhain je to pgm call.

Napsal: 9. 2. 2009, 7:50
od PavelZ
Výtah z manuálu:

10.8.7. Volání podprogramů - M98
Volání podprogramů má dva formáty
(a) K volání podprogramů v rámci nahraného programu zadejte M98 P~ L~ nebo M98 P~ Q~.
Program musí obsahovat návěstí specifikované slovem O se stejným číslem, jaký má parametr P
při volání podprogramu. Řádka s návěstím O označuje začátek podprogramu a nesmí obsahovat
číslo řádku (slovo N). Návěstí a další řádky podprogramů jsou většinou umístěny za M2, M30
nebo M99 a nevykonávají se přímo během zpracování hlavního programu.
(b) K volání podprogramu, který je uložen na disku jako samostatný soubor, zadejte M98
(filename)L~ např. M98 (test.tap)

Pro oba formáty platí:
Slovo L~ (případně slovo Q~) reprezentuje počet, kolikrát se bude podprogram volat, než se bude
pokračovat ve vykonávání následujícího řádku. Pokud slovo L (Q) není uvedeno, je jeho hodnota
implicitně 1.
S použitím parametrů nebo inkrementálního režimu odměřování lze opakováním podprogramů
provádět několik hrubovacích řezů kolem obráběného tvaru nebo obrábět několik identických tvarů z
jednoho kusu.
Podprogramy mohou být skládány, tedy jeden podprogram může volat jiný podprogram. Vzhledem k
tomu, že není umožněno podmíněné větvení programu, není myslitelné, aby podprogramy volaly
rekurzivně samy sebe.

10.8.8. Návrat z podprogramu - M99
Pro ukončení podprogramu a návrat k místu volání použijte příkaz M99. Provádění kódu bude
pokračovat na řádce hned za řádkou M98, kde byl podprogram volán.
Pokud je příkaz M99 zadán v hlavním programu (tedy ne v podprogramu), pak dojde k vykonávání
programu od první řádky. Podívejte se rovněž na M47, jehož použití má stejný efekt.

Napsal: 9. 2. 2009, 8:15
od vwq
Děkuju.
Pokud je volaný program ve stejném adresáři jako volací program.Musí se ještě psát odkud má volaný program nasát?
Volání přímo v programu je mi jasné ale volání od jinud ne.

Napsal: 9. 2. 2009, 9:08
od PavelZ
Pokud jde o cestu k souboru, tak to netuším, nikdy jsem to nezkoušel, ale když se zadá celá cesta "c:\Data\........\sample.txt", tak se nic nezkazí.
Volání odjinud ? To myslíš jak, třeba z MDI ? Nebo se dá udělat makro ve VB Scriptu a to přiřadit buď nějakému tlačítku nebo M-kódu (v makru se mpak použije třeba Sub LoadRun (pathname as String)).

Napsal: 9. 2. 2009, 9:09
od ferguson
ak tomu rozumiem spravne, tak tych 1000 riadkov, co zobere MACH, mmoze byt vlastne 1000 "odkazov" na ine subory, pricom kazdy z nich bude mat 1000 riadkov?
teoreticky teda mozem mat az 1 000 000 riadkov?

Napsal: 9. 2. 2009, 9:27
od vwq
Napsal jsem do programu
M98 (test.txt)
M30

a ve stejném adresáři mám podprogram s názvem test.txt
který je zakončen M99 a nějak to nechodí.

Napsal: 9. 2. 2009, 9:49
od rawen
ferguson píše:ak tomu rozumiem spravne, tak tych 1000 riadkov, co zobere MACH, mmoze byt vlastne 1000 "odkazov" na ine subory, pricom kazdy z nich bude mat 1000 riadkov?
teoreticky teda mozem mat az 1 000 000 riadkov?
Nesnaž se to obe...t, ale normálně kup plnou verzi. Vyhneš se spoustě problémů, podpoříš vývoj a v neposlední řadě je cena (ve srovnání s náklady na HW) zanedbatelná.

Radek

P.S.: Anebo přejdi k EMC :)

Napsal: 9. 2. 2009, 1:09
od ferguson
tak u mna by to vlastne aj vychadzalo, ze naklady na HW su rovnake ako na licenciu :D
ale chcel som to vediet len teoreticky, mne tych 1000 riadkov bude stacit. bola to len taka myslienka

Napsal: 13. 2. 2009, 10:37
od vwq
Chtěl bych používat své podprogramy které jsou univerzální a tak je chci mít mimo hlavní program a jen je volat.
Verzi machu mám zakoupenou,nechci tím nic obcházet.

re

Napsal: 13. 2. 2009, 12:07
od Radek-B
Ne volat podprogramy z adresaru nelze.

RADEK

Napsal: 11. 11. 2010, 7:22
od vwq
Už to jde :D