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.:)

  • 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
    1. $WORKSPACE[1]=SetWorkSpace(Punkt1, Punkt2, #Outside)

    noch nicht getestet aber sollte so gehen


    Gruß Loipe

    [size=1pt]wer das hier liest hat zuviel zeit oder einen viel zu großen bildschirm[/size]

    Edited once, last by Loipe ().

  • Roland_NRW

    Changed the title of the thread from “Workspaces im Programm verändern” to “Workspaces im Programm verändern [Gelöst]”.
  • 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

  • Hallo zusammen,


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

    $WORKSPACE[2]=SetWorkSpace(Punkt3, Punkt4, #INSIDE_STOP)

    $WORKSPACE[3]=SetWorkSpace({X 100,Y 200,Z 300,A 90,B 0,C 0}, FrameGroeße, #INSIDE_STOP)

    $WORKSPACE[4]=SetWorkSpace({X 100,Y 200,Z 300,A 90,B 0,C 0}, {X 1000,Y 1000,Z 1000},#Outside)



    die Funktion macht das was martl beschreibt. sieht nur aufgeräumter aus


    Gruß Loipe

    [size=1pt]wer das hier liest hat zuviel zeit oder einen viel zu großen bildschirm[/size]

  • Hab die Funktion mal zusammen gezogen copy paste hats irgendwie auseinander gezogen

    [size=1pt]wer das hier liest hat zuviel zeit oder einen viel zu großen bildschirm[/size]