Hírek:

Fontos tudnivalók a migrációval kapcsolatban, Kérlek nézd meg a Régi fórumról új fórumra való költözés

Main Menu

UCCNC vezérlő program

Indította gaben, 2024 április 09, 16:54

Előző téma - Következő téma

svejk

Működik!!  [#finom]

Élesben majd valószínű a gépi koordinátákat kell elmenteni, az a tuti és csak gépi koordinátákban kell az egész program során gondolkodni.

Szép feladat lesz ez!
Teljes új képernyőt szerkeszteni, meg még egy jó pár macrot megírni.

Minden esetre ez a kezdő lökésnek nagyszerű amit összehoztál! [#worship]

dezsoe

Na, helyes! Ha kész lesz, akkor videót is kérünk hegesztés közben!

dezsoe

Át lehet írni gépi koordinátákra, csak nem tudom, van-e értelme. Ha minden jól van beállítva, akkor minek? Ha meg nem, akkor meg azért minek? Aztán egyszer jön valami, ami csak picivel nagyobb/kisebb/mittudomén, és kezdheted újra tanítani. Már a másik fórumon is találkoztam valakivel, aki megrögzötten gépi koordinátákat használ, de őt sem értettem. Elveszel egy lehetőséget magadtól. Persze, mindez a privát véleményem. :)

Motoros

Hát ez tényleg szuper![#taps]
Kár hogy nem látom, ....de benned megbízok.
Viszont visszaemlékezve a TCNC-re ott nekem az volt a gondom, hogy a koordináták ugyan megvoltak, de utólag belenézve a fájlba fingom nem volt hogy mi micsoda. (anno SMD beültető tanítása)
Az lett volna  az igazi, hogy egy másik ablakban a gomb megnyomása után rögtön oda tudok írni egy kommentet, vagy esetleg bármi mást (G, M kód stb)
De ugye ez DOS alatt nem ment. Itt viszont megy??

dezsoe

Technikailag semmi akadálya, megoldható némi programozgatással.

Motoros

Némi programozás úgy látom neked nem gond [#eljen]
Sok egyszerű esetben, egyszerű alkatrészeknél ez jól jönne.

svejk

Én sem látom, mert "vakon" működik.
Csak myomogatom a mentés gombokat, aztán a végén kész a file.

De ez ugye csak ugródeszka, bizonyítása annak, hogy értő kezekben elég univerzális ez a mozgásvezérlő is.

svejk

Mivel a forgástengely mindig ugyan az, ezért max tengelyirányban lehet/kell a koordinátarendszert eltolni.
Meggondolandó....
De a tapasztalat az, hogy nehezen értik meg az emberek a gépi és munka koordinátarendszer lényegét.
Nálam is eltelt pár év mire rájöttem az előnyeire.

dezsoe

Na jó, legyen megjegyzés. :)

Kell a képernyőre egy mező, amibe beírható a megjegyzés, legyen 21000 az azonosítója. Kell plusz egy gomb/trigger/hotkey, ami a 20103-as makrót hívja. Ekkor nem csak a koordináta, hanem a megjegyzés is beíródik. Ha nem volt eltérés a koordinátákban, akkor csak a megjegyzést tárolja. Az új makró tartalma:

--- M20103.txt ---
exec.Code("M20100 Q3");
while(exec.IsMoving()){}

Az eredeti program pedig így fog kinézni (szmájlikat kéretik cserélni...):

--- M20100.txt ---
int Qint = 0;

double ax = exec.GetXpos();
double ay = exec.GetYpos();
double az = exec.GetZpos();
double aa = exec.GetApos();
double ab = exec.GetBpos();
double ac = exec.GetCpos();

string ujsor = "";
string megj = AS3.Getfield(21000).Trim(); // Megjegyzes mezo szama a kepernyon

if (Qvar != null) Qint = Convert.ToInt32(Qvar);

switch (Qint)
{
  case 0:
  case 3:
    if (mode == 1)
    {
      if (ax != px) ujsor = ujsor + " X" + ax.ToString();
      if (ay != py) ujsor = ujsor + " Y" + ay.ToString();
      if (az != pz) ujsor = ujsor + " Z" + az.ToString();
      if (aa != pa) ujsor = ujsor + " A" + aa.ToString();
      if (ab != pb) ujsor = ujsor + " B" + ab.ToString();
      if (ac != pc) ujsor = ujsor + " C" + ac.ToString();
      if (ujsor != "") ujsor = "G01" + ujsor;
      if ((Qint == 3) && (megj != ""))
      {
        megj = megj.Replace("(", "["); // Nem lehet zarojel a megjegyzesben!
        megj = megj.Replace(")", "]");
        if (ujsor == "")
          ujsor = "(" + megj + ")";
        else
          ujsor = ujsor + " (" + megj + ")";
      }
      if (ujsor != "") System.IO.File.AppendAllText(SaveTo, ujsor + "\r\n");
      px = ax;
      py = ay;
      pz = az;
      pa = aa;
      pb = ab;
      pc = ac;
    }
    break;
  case 1:
    SaveTo = AS3.Getfield(2017);
    System.IO.File.WriteAllText(SaveTo,
      "G00 X" + ax.ToString() + " Y" + ay.ToString() + " Z" + az.ToString() +
      " A" + aa.ToString() + " B" + ab.ToString() + " C" + ac.ToString() + "\r\n");
    px = ax;
    py = ay;
    pz = az;
    pa = aa;
    pb = ab;
    pc = ac;
    mode = 1;
    break;
  case 2:
    mode = 0;
    break;
}

#Events

static int mode = 0;

static double px = 0.0;
static double py = 0.0;
static double pz = 0.0;
static double pa = 0.0;
static double pb = 0.0;
static double pc = 0.0;

static string SaveTo = "";

000000000

Dos alatt is megy minden, ha te írod meg a programot. Nekem pl. 25 éve van már ilyen "teach in-play back" rendszerű vezérlőprogramom.

svejk


ium8w94xp

Valaki használ negyedik tengelyt esetleg forgatásra? el vagyok veszve kalibrálásában. Hisz mekkora átmérőjű tárgynál állítsam be? Vagy minden egyes tárgynál az átmérő függvényébe kéne beállítanom?

svejk

A forgató tengelyeknél az egység a fok.

A setupban azt kell beállítani, hogy hány step impulzus kell 1 fok elmozduláshoz..

A CAM progik meg majd tudják amit kell.

ium8w94xp

Akkor mondj egy jó cam programot, ami bármekkora tágy átmérőjénél a teljes kört 360-nak adja meg A tengelyen gcode-ba.

svejk

Öőőő... szerintem mindegyik, mivel ezeknek így kell működniök.

Én nem értek a szoftverekhez és nagyon ritkán használom a gépemet is.
Az A tengelyemet meg talán egyszer fogaskerék készítésére, de akkor kézzel írtam a kódot.

A CAM-es topicban biztos kapsz választ a kérdésedre.