IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
Patrik Zárybnický:22.12.2020 0:26

Ahoj,
Mám vytvořený aplikace windows form C# s připojením na comport. RichTextBox jako výpis konzole a textbox pro odesílání G a M kodů. Mám tam nastavení šířky a délky postele.

(int, int) BedDimensions
{
    get
    {
        return (int.TryParse(bedWidth.Text, out int width) ? width : 0,
            int.TryParse(bedHeight.Text, out int height) ? height : 0);
    }

}

(bool, int, int) CheckedDimensions
{
    get
    {

        var (w, h) = BedDimensions;
        if (w >= 10 && h >= 10) return (true, w, h);

        MessageBox.Show("Zkontrolujte, zda jste do polí šířky a výšky postele zadali celá čísla.", "Nelze přečíst rozměry postele", MessageBoxButtons.OK, MessageBoxIcon.Error);
        return (false, 0, 0);
    }
}

To je propojený s tlačítkem Měření rohy

private void MeasureCorners(object sender, EventArgs e)
     {
         var (valid, w, h) = CheckedDimensions;
         if (!valid) return;


         if (serialPort != null)
         {
             serialPort.WriteLine("G30");
             serialPort.WriteLine($"G1 X3 Y35 Z16 F6000");
             serialPort.WriteLine("G30");
             serialPort.WriteLine($"G1 Y35 X{w} Z16 F6000");
             serialPort.WriteLine("G30");
             serialPort.WriteLine($"G1  Y{h} X{w} Z2 F6000");
             serialPort.WriteLine("G30");
             serialPort.WriteLine($"G1  Y{h} X3 Z2 F6000");
             serialPort.WriteLine("G30");

         }
     }

Chci docílit: Nevím jak do toho zakomponovat korekci. Když nastavím text boxy bedWidth.Text a bedHeight.Text třeba 300 a 300m podle G kodu to jezdí správně třeba X odjede 300. Ale já potřebuji od té 300 odečíst nebo přičíst korekci od BlTouch( je to automatický vyrovnávací senzor pro 3D tiskárny). V mém případe by to měla být korekce 300-36 v ose X. tudíš osa X by měla urazit 264mm. Na konec postele a začít odměřování G30.
Při zadaní kodu M851 vypíše konzole korekce BlTouch od trysky v ose X,Y Z- od postele. Lze tyto hodnoty nějak načíst do proměnných? Aby s tím posléze komunikovaly proměnné w a h ve kterých je uložená hodnota postele 300 a 300.

Děkuji za rady a případnou pomoc.

Editováno 22.12.2020 0:28
 
Odpovědět
22.12.2020 0:26
Avatar
JerryM
Člen
Avatar
JerryM:23.12.2020 14:34

pokud máš správně zapojený COM port tak by měl být oboustranný .... obousměrná komunikace ..
ale nepíšeš jestli jedeš ve virtuálním COM portu nebo USB, protože základní desky mají i COM port jako to bylo dřív...

 
Nahoru Odpovědět
23.12.2020 14:34
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 2 zpráv z 2.