Odkaz na složku ve zdrojových kódech

Odpovědět
Uživatelský avatar
zz912
Příspěvky: 1475
Registrován: 25. 5. 2008, 7:16

7. 2. 2025, 6:00

Zdravím,

asi po roce se mi podařilo prosadit, aby byl do budoucí verze LCNC 2.10 přidán Pull Request, který odstraňuje z Gmoccapy automatické nastavení nástroje korekcí při změně nástroje.
https://github.com/LinuxCNC/linuxcnc/pull/3113
Pokud to teď čte nějaký uživatel Gmoccapy, který si na tuto vychytávku zvykl a spoléhá na ni, tak mě teď bude proklínat. Proč jsem to proboha udělal? No cesta k tomu byla zdlouhavá. Chápu, že je to nebezpečné, když jste byli zvyklí na to, že se korekce nástroje sami nastavili a teď to tak automaticky nebude. (Nebojte, udělá se to jinak.) Bohužel ono to nijak jinak nešlo. Tato vychytávka byla napsána na úrovni GUI a při remapu pomocí ngc kódu vznikal race condition, který se choval v určitých situacích náhodně. Pro ty zvás, kteří používají Gmoccapy a nepoužívají ani tabulku nástrojů, tak pro Vás se nic nemění. Pro ty z Vás, kteří mají na svém stroji Gmoccapy + automatickou výměnu napsanou v ngc kódu, tak se zbavíte občasných chybových hlášek typu: "Must be in MDI mode". Jednou z podmínek autora Gmoccapy aby tato změna moha být prosazena, tak bylo, aby bylo možné tuto funkcionalitu zachovat. Zachování této funkcionality je realizováno pomocí remapu, který obsahuje G43. Součástí podmínky bylo, aby všechny simulační konfigurace pro Gmoccapy tento remap obsahovaly. To jsem splnil, ale chtěl bych jít dál a chtěl bych aby tento remap byl vygenerován PNCconfigem. protože kdo z nás si píše vlastní konfugaruci ručně?

Úpravu INI souboru mám nachystanou, tam nebyl problém. Ovšem potřebuji aby PNCconf vygeneroval i několik souborů vlastního remapu. Nakopíroval jsem dvě složky remapových souborů do složky zdrojových souborů a kopíruji je do vygenerovaných dat.

Kód: Vybrat vše

            if self.d.frontend == _PD._GMOCCAPY:
                dirbase = "%s/macros" % base
                dirpython = "%s/python" % base

                if not os.path.exists(dirbase):
                    shutil.copytree('/home/zdenek/linuxcnc/linuxcnc-master/src/emc/usr_intf/pncconf/macros', dirbase)
                
                if not os.path.exists(dirpython):
                    shutil.copytree('/home/zdenek/linuxcnc/linuxcnc-master/src/emc/usr_intf/pncconf/python', dirpython)   
Ovšem, jak na první pohled vidíte, tak absolutní cesta by fungoval jen na mém počítači a to je nesmysl. Potřebuji se na výchozí soubory pro kopírování odkázat nějak obecněji a ještě aby to fungovalo jak pro balíčkovou instalaci tak pro RIP instalaci.

Tento problém řeším i na EN fóru, ale nenašel se tam nikdo, kdo by mi uměl pomoci. Aciera měl zlepšovák, že bych si ty data tahal přímo z sim konfigurací Gmoccapy, ale problém je stejný. Musel bych se umět odkázat na zdrojové data.
https://forum.linuxcnc.org/gmoccapy/550 ... =10#320344

Vím, že tento dotaz je velmi odborný, ale už se mi stalo, že v EN fóru mi neporadili a tady mi porazeno bylo. Takže zkouším, jestli se nebude opakovat situace.
LinuxCNC - MESA 7i96
zz912.webnode.cz
Odpovědět

Zpět na „LinuxCNC - drive pod nazvem EMC2“