Baseverschiebung/Basedrehung wie genau?

  • Hi Leute,


    wie genau werden die Werte bei einer BASE Verschiebung, bzw. Drehung verrechnet?
    Ich möchte z.B. Meine BASE 1 um 11,61290322° Drehen, wie genau geschiet dass? wenn ich es so angebe.


    BASE_DATA[1].A=BASE_DATA[1].A+11,61290322....
    (Kreis(360° durch 31(Zähne),)


    Sollte er diesen Wert Runden, erhalte ich ja eine wiederkehrende Ungenauigkeit. Habe das Gefühl das es von Versatz zu Versatz immer enormer Abweicht. NEED HELP
    z.B.
    gerundet sollwert reproduziert
    11,613 11,6129 11,613
    23,226 23,2258 23,226
    34,839 34,8387 34,8375
    46,45 46,4516 46,45
    .........
    .........
    360,003 359,9999 360,003


    Sollte er auf ein Zehntel Runden,


    gerundet sollwert reproduziert
    11,61 11,6129 11,611
    23,23 23,2258 23,23
    34,84 34,8387 34,84
    46,45 46,4516 46,45
    .........
    .........
    359,91 359,9999 359,91


    Erhalte ich eine Abweichnung von 9Hundertstel.


    Weiß Jemand wie er sich diese Werte Rundet, oder wie ich sie so genau wie Möglich eingeben kann?
    Hatte schon Überlegt, diese Werte für jede Bearbeitung einfach per Hand einzugeben(BASE_DATA[1]={X 25.000,Y 100.000,Z 950.000,A 180.000, B 0.000, C 0.000}. Würde aber ein Haufen arbeit bedeuten.


    MFG GUTSCHI

    Kuka ist eine Echte Herrausforderung!<br />Aber ,kommt Zeit kommt Rat!

  • Schritt für Schritt zum Roboterprofi!
  • Moin Gutschi!


    Die Runderei würde ich komplett dem Roboter überlassen. Und wenn Du weißt, daß Du einmal rum bist einfach wieder den Initialwert nehmen.


    Könnte so oder ähnlich aussehen:


    Erstmal im *.dat - File:


    FRAME Originalbase={x ...........}
    FRAME Versdrehung={x............}
    Dann das *src - File:


    ;Beginn von das Ganze. Noch nix gedreht


    (Wenn Anfang)


    If Zaehler=1 then


    Originalbase=base_data[1]
    else
    if zaehler=32 then
    base_data[1]=originalbase
    endif


    ;so und bei jedem Zahn:
    Verdrehung.a=(360 / 31)
    base_data[1]=base_data[1]:Verdrehung



    Naja, so grob halt. Dadurch daß Du ohne Rundung und allem den Wert (360/31) nimmst, hast Du schon eine höchstmögliche Genauigkeit. Wenn Du dann einmal rum bist - also alle 31 Zähne - dann einfach wieder den Originalwert nehmen und das sollte dann alles genau genug sein.


    Ich hoffe, daß Dir das weiterhilft.


    Gruß

    Weniger als 100% wird nicht akzeptiert :)

  • Alles soweit verstanden,


    wusste nicht das ich einfach den Bruch in die Formel schreiben kann(360/31) dadurch ist ja ein s´o genau wie mögliches Arbeiten gewährleistet.


    Danke Robodoc für deine Programmierhilfe, da wäre ich nie drauf gekommen.


    Muss echt sagen das in manchen fällen die Kuka Doku bisschen zu knappe Infos ausspuckt.


    MFG GutschiPK
    DANKE!!! :merci: :danke: :gutidee:

    Kuka ist eine Echte Herrausforderung!<br />Aber ,kommt Zeit kommt Rat!

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