• Login
sketchucation logo sketchucation
  • Login
Oops, your profile's looking a bit empty! To help us tailor your experience, please fill in key details like your SketchUp version, skill level, operating system, and more. Update and save your info on your profile page today!
⚠️ Important | Libfredo 15.6b introduces important bugfixes for Fredo's Extensions Update

SketchyPhysics Keyboard Controls

Scheduled Pinned Locked Moved SketchyPhysics
4 Posts 2 Posters 4.9k Views 2 Watching
Loading More Posts
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • A Offline
    ashscott
    last edited by 4 Apr 2012, 11:02

    Hi all,

    discussion on sketchyphysics sure seems to have cooled off since I was last in this part of the forum 2 years ago - thats a shame, over the last few days I have been using SP to model a proposed walking machine and it really is an extraordinary plugin.

    I have a couple of questions for you folks that are more familiar with SP and Ruby:

    1. Using (rightx) how do I get servo to sit in a position and stay there without spring loading back to its midway point? I am lifting a leg with the servo, pressing one arrow raises the leg and pushing the opposing arrow lowers the leg but if I release the arrow at any time the leg springs back to the middle position. How can I set things up so the leg maintains it's position when I release the arrow key? Currently the controller says this:
    slider('A2_Tilt',0)+(rightx)
    
    1. Is there a way to apply the same set of keys for certain objects and toggle between them, for example my walking machine has four legs. I can use (rightx) and (righty) to lift and place one leg - is there a way that I can set up a toggle function to apply those keys to each leg in real time so I can move each one individually? IE press spacebar so that the (rightx) and (righty) functions apply to the next leg on the machine?

    Any help is much appreciated - I love the plugin and would pay for it if it would encourage Cphillips and co in their endeavours (you can't work for free) 😉

    Thanks

    Ash

    Just some stuff I do with Sketchup.

    1 Reply Last reply Reply Quote 0
    • A Offline
      ashscott
      last edited by 14 Apr 2012, 05:03

      Answers to these questions:

      1. Use a motor not a servo
      2. Toggling between keys looks something like this:
      if key("m")==1
      @B1_Tilt=(righty) and @B1_Twist=(0.5-rightx) and @B1_Ext=key("b")
      elsif key("m")==0 and key("n")==0
      @stick=0.5-(righty)
      
      

      If I hold down ("m") the joystick controls a different set of functions than if I hold down ("n"). I also have another set of functions for the joystick if no key is pressed so I have three joysticks in one.

      "m" and "n" have been assigned to my second joystick using the software 'joytokey' which I highly recommend. It allows you to set functions to the keyboard but then run them through a second joystick to your primary joystick.

      Thus, I am running my sketchyphysicks sim with a logitech attack3 joystick in each hand.

      It is an industrial simulation and I haven't seen anything else like it done online. I can't share more because its under NDA but if anyone wants help with something like this then let me know.

      Ash

      Just some stuff I do with Sketchup.

      1 Reply Last reply Reply Quote 0
      • A Offline
        ashscott
        last edited by 24 Apr 2012, 07:51

        There is a much better answer than using a motor to place a joint where you want it - you need to use a servo and a little ruby script

        Step1: place your servo within the group you want to move and attach it to a base group
        Step2: select the servo and open the sketchyphysics UI
        Step3: within the UI apply the following settings
        [list=]min:0
        max:1
        accel:4000
        damp:1000
        controller:@servo1 (you can actually call it anything starting with @
        [/list]
        Step4: Select the base of your model and open the sketchyphysics UI
        Step5: place the following rubyscript in there:

        if frame<1.00
        @servo1=0.00
        end
        # this allows servo to incrementally increase based on joystick input (righty) you can change it to any of the joystick axes
        @servo1+=(0.5-righty)
        # this sets range of movement for the servo as it is not set in the servo's UI
        if @servo1>45;@servo1=45;end
        if @servo1<-45;@servo1=-45;end
        
        

        It took me a long time to work this out (reverse engineering another model) so I am more than happy to help anyone out with it if these instructions are too hard to follow.

        I believe this is a very powerful function in sketchyphysics and I have only seen it in one model in the 3DWH

        Just some stuff I do with Sketchup.

        1 Reply Last reply Reply Quote 0
        • D Offline
          DL xyz
          last edited by 14 Apr 2013, 14:52

          This post is deleted!
          1 Reply Last reply Reply Quote 0
          • 1 / 1
          • First post
            Last post
          Buy SketchPlus
          Buy SUbD
          Buy WrapR
          Buy eBook
          Buy Modelur
          Buy Vertex Tools
          Buy SketchCuisine
          Buy FormFonts

          Advertisement