Workspaces im Programm verändern [Gelöst]

  • Hallo,


    ich habe nur eine kurze Frage. Ich habe hier eine KRC4 8.5.7 Steuerung mit Workspaces [WS]. Diese kann ich am Panel auch eintragen und nutzen. Meine Frage lautet, kann ich die Position der WS auch nachher noch im Programmcode mit Variablen verändern. Ich habe folgende Dinge probiert:


    $Workspace[1].X = realVAR

    $Workspace[1] = {X realVAR}

    $Workspace[1] = E6POS_VAR


    Was geht wäre:

    $Workspace[1] = {X 100.000} ;aber das ist nicht was ich brauche.


    Alle drei Varianten funktionieren nicht und scheitern entweder schon in Workvisual oder spätestens auf dem Roboter. Kennt jemand eine Methode mit der es funktioniert.

    Hintergrund der Frage ist, dass diese WS ja als Raum um einen Punkt definiert sind. Und statt jedesmal den Punkt händisch einzutippen würde ich den gerne einfach aus einer gespeicherten Position übernehmen. Falls ich dann mal mehr aus die 8 WS brauche, könnte ich diese auch dynamisch verändern ... so Zeug halt.


    Vielen Dank für die Aufmerksamkeit.:)

  • Schritt für Schritt zum Roboterprofi!
  • Hallo Roland,


    Also bei mir wird die Erste Schreibweise nicht angemeckert. hab mal ne Funktion zusammen geschrieben



    dann kannst du im Programm mal schreiben


    Code
    $WORKSPACE[1]=SetWorkSpace(Punkt1, Punkt2, #Outside)

    noch nicht getestet aber sollte so gehen


    Gruß Loipe

    Einmal editiert, zuletzt von Loipe ()

  • Roland_NRW

    Hat den Titel des Themas von „Workspaces im Programm verändern“ zu „Workspaces im Programm verändern [Gelöst]“ geändert.
  • Was auch funktioniert:


    $Workspace[1].X=xPosition1.X

    $Workspace[1].Y=xPosition1.Y

    $Workspace[1].Z=xPosition1.Z

    $Workspace[1]={X1 25.0,Y1 25.0,Z1 25.0,X2 25.0,Y2 25.0,Z2 25.0,}


    So kannst den Workspace Positionsbezogen setzen und vorher deinen Raum definieren.


    Wobei ich Loipes Lösung besser finde.


    Gruss

  • Wow hätte nie gedacht dass es so auch funktioniert! Passt perfekt für meine Anwendung.


    wie ist das dann mit outside stop, inside stop? Kann man das dann auch direkt im Programm machen?


    Loipes Lösung habe ich nach mehrmaligem Hinsehen nicht nachvollziehen können. Kann das vielleicht auch jemand kurz erläutern was in dem Code passiert?


    Grüße


  • Klar kannst du auf dem gleichen weg auch den Mode setzen:

    $Workspace[1].Mode = #INSIDE_STOP

  • Servus,


    so hats schon funktioniert.

    ; Zentumkoordinaten

    $WORKSPACE[1].X = 100

    $WORKSPACE[1].Y = 200

    $WORKSPACE[1].Z = 500

    $WORKSPACE[1].A = 0

    $WORKSPACE[1].B = 0

    $WORKSPACE[1].C = 0

    $WORKSPACE[1].MODE = #OUTSIDE

    ; Ausdehnung bezogen auf Zentrum

    $WORKSPACE[1].X1 = -700

    $WORKSPACE[1].Y1 = -300

    $WORKSPACE[1].Z1 = -2000

    $WORKSPACE[1].X2 = 50

    $WORKSPACE[1].Y2 = 700

    $WORKSPACE[1].Z2 = 100


    Gruß Martl

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