externes Tool berechnen

  • Hallo,

    Ich messe mein externes Tool über einen Punkt ein.: Ich fahre in die Mitte der Spindel. Teache den Punkt und erzeuge daraus das Tool

    MoveJ RelTool(p_Spindel1,0,0,-200),v300,z10,to_R1_Spitze;

    Stop;

    MoveL RelTool(p_Spindel1,0,0,-5),v300,z10,to_R1_Spitze;

    MoveL p_Spindel1,v50,fine,to_R1_Spitze\WObj:=wobj0;

    MoveL RelTool(p_Spindel1,0,0,-200),v300,z10,to_R1_Spitze;

    Dann wird daraus das Tool erzeugt.

    to_R1_Spindel1.tframe.trans:=p_Spindel1.trans;


    Dann habe ich noch ein WOBJ der Grundplatte, auf der die Tools montiert sind. Da habe ich dann immer die Verdrehung( gekippt um x/Y) "händisch" zum Tool übernommen.

    wobj_R1_AusrichtungTools


    Kann man hier:

    to_R1_Spindel1.tframe.trans:=p_Spindel1.trans;

    auch direkt das WOBJ mit berücksichtigen?


    LG

  • ANZEIGE
  • Wahrscheinlich willst Du vom WObj nur die Orientierung, denn Du fährst den Messpunkt in WObj0 an. Wenn nur in einem was drin steht (uframe ODER oframe) sollte es reichen, "rot" rauszukopieren. Wenn in beiden was drinsteht (oder auch wenn nur in einem was drinsteht) dann einmal mit PoseMult zusammenrechnen und aus dem Ergebnis das "rot" kopieren.


    Der entstandene Frame ("pose") ist in beiden gleich, egal ob tool oder wobj. Bei WObj ist's halt blöd, dass immer zwei Frames drin sind.

  • Genau. Nur die Orientierung…aus dem wobj. Mit posemult hatte ich versucht, aber das habe ich irgendwie nicht hinbekommen…. Robotstudio hat mir da immer nen Fehler gebracht. Hast du mal ein Beispiel?


    Lg

  • Das würde ich gar nicht anders versuchen als in zwei Schritten, ich kann mich nicht erinnern, beim Rückgabewert einer Funktion unmittelbar auf eine Teilkomponente zugegriffen zu haben. Zum Debuggen ist es eh besser:


    Code
    var pose wo_frame_kompl
    ...
    wo_frame_kompl:=PoseMult(WO_Grundplatte.uframe,WO_Grundplatte.oframe);
    ...
    ...
    to_R1_Spindel1.tframe.rot:=wo_frame_kompl.rot;
    ... 

    Alternativ, noch einfacher - startest gleich mit der kompl. WobJ-pose und überschreibst trans anschließend:

    Code
    ...
    to_R1_Spindel1.tframe:=PoseMult(WO_Grundplatte.uframe,WO_Grundplatte.oframe);
    to_R1_Spindel1.tframe.trans:=p_Spindel1.trans;
Hilfe und Support für ABB Roboter Programmierung, Konfiguration, Inbetriebnahme finden Sie hier im ABB Roboter Forum. ABB Rapid Programmierung ist einfach, die Roboterforum Community hilft sehr gerne.

Erstelle ein Benutzerkonto oder melde dich an um zu kommentieren

Du musst ein Benutzerkonto haben um einen Kommentar hinterlassen zu können

Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Geht einfach!
Neues Benutzerkonto erstellen
Anmelden
Du hast bereits ein Benutzerkonto? Melde dich hier an.
Jetzt anmelden