Ik had graag de volgende functie in linuxcnc geimplementeerd:
Wanneer een bepaalde G code voorbij komt, bvb G01 A <aa>, waarbij <aa> dan een getal is dat in de gcode staat, dan zou ik willen de machine in pause gooien en een dialoog laten verschijnen die vraagt om de A as manueel te verplaatsen naar <aa>. Wanneer men op OK klikt dan gaat de machine verder. Een beetje zoals de functie van het manuele toolchange script dus.
Het dialoog deel en zo zie ik wel zitten, alleen heb ik zo niet direct kunnen vinden hoe je de interpretatie van een bepaalde G code kan aanpassen. Ik denk dat dit ook niet zo eenvoudig kan. Iemand een idee in welke richting ik best kan gaan zoeken? Liefst met een macro of python script dat naast de gewone besturing loopt zonder daar in te moeten gaan prullen zodat dit makkelijk aan en uit te schakelen is. Dat de traject planner dan ook echt een pad genereerd naar pos A <aa> maakt mij niet zo veel uit, die is dan gewoon hardwarematig niet aangesloten.
Klopt het dat het afhandelen van de G code naar feed commandos hier gebeurd?:
Lijn 172 in https://github.com/LinuxCNC/linuxcnc/bl ... emodule.cc
Code: Selecteer alles
void STRAIGHT_FEED(int line_number,
double x, double y, double z,
double a, double b, double c,
double u, double v, double w) {
_pos_x=x; _pos_y=y; _pos_z=z;
_pos_a=a; _pos_b=b; _pos_c=c;
_pos_u=u; _pos_v=v; _pos_w=w;
if(metric) { x /= 25.4; y /= 25.4; z /= 25.4; u /= 25.4; v /= 25.4; w /= 25.4; }
maybe_new_line(line_number);
if(interp_error) return;
PyObject *result =
callmethod(callback, "straight_feed", "fffffffff",
x, y, z, a, b, c, u, v, w);
if(result == NULL) interp_error ++;
Py_XDECREF(result);
}
Een alternatief waar ik aan denk zou zijn om voor of na elke G01 A <aa> lijn een user M-code op te roepen. Dan zou ik kunnen bij het inladen van een G code een find kunnen doen op G01 A en G00 A en na elke lijn die M code er in steken. Dat is wellicht de makkelijkste optie. Ik ben echter wel benieuwd of iemand een idee heeft om de eerste optie aan te pakken?
Groeten
Julien