What it's forEdit
The UI (User Interface) is the general-purpose config window for SketchyPhysics joints and bodies. When the UI is open, and an object is selected, all primitive shapes within are displayed. Here you can set thruster, magnet, and emitter settings for the selected body, including entering formulas and Ruby script. Any internal or connected joints are also shown, and you can click on one to configure its parameters and controller, which, again, can be a formula. Object states for any object can also be changed here.
How to use it:Edit
- The UI is like a properties panel in many other programs. When you have something selected you can view and edit settings. With a shape selected, connected and internal joints are displayed at the top, with links to each one to change their individual settings. Below that, internal shape primitives are displayed graphically; then the State properties. The properties section, for changing various advanced aspects of the shape's behavior, is just below that. For joints, the properties are at the top. The settings you can change vary from joint to joint, from min/max settings for constraining movement, to settings for acceleration and dampening. You will also, in most cases, see a blue formula box, which is the joint's controller. This is where script or simpler formulas can be entered to control the joint's movement in real time.
- The joint properties are displayed according to the type of joint that is selected. Some properties are not relevant to certain types of joints, and so are not available to be modified.
- This determines the range of motion of the joint. For instance, a linear movement joint like a Piston or Slider can be constrained to move a certain distance forward and backward from its origin. By default, the Min value is often zero, while Max is set by the length that the linear joint was drawn to.
- When the simulation starts, a joint will move itself to the middle setting between the Min and Max. This is annoying when you have set up a piston, only to have your piston-joined object suddenly jump when the simulation starts. [There is a way to change this behavior, but I can't remember how]. One way to avoid this is to set the Min parameter to the negative of the Max parameter. The joint will then start at zero.
- Some joints are created with opposite Min and Max values. A Servo joint is created with '-90' and '90' as its default values. These represent plus and minus 90 degrees, giving the Servo a range of 180 degrees to start. You can alter these to suit your needs.
- Example: a hinge is given a motion value "accel", (1.0), if set - Min. 0 / Max. 90
"Play" will move it to "middle" or "neutral between the two values. eg. 45 degrees.
Equal motion either way from neutral requires setting - Min. 90 / Max. -90.
- "Play" will NOT move an object until the "slider/controller" is used.
- Example: a hinge is given a motion value "accel", (1.0), if set - Min. 0 / Max. 90
- Some joints are created with Min and Max values at zero, letting them move freely. A Hinge joint is made in this way, so one can constrain a hinge to rotate only a certain number of degrees by adjusting Min and Max values.
- This is roughly translated as the speed at which the joint moves through its range. I do not know if the units are arbitrary, or if they represent a certain number of 'frames' or something else. [I think Accel can also be set as a negative number, reversing the direction of the joint]
- This seems to slow the movement of the joint. High Accel and High Damp gives you a joint that has less 'slush' to it, I think.
- This names the type of controller that operates the joint. To use, enter text or paste, make sure you click somewhere inside the background, then click the Arrow or "Select" tool. Otherwise the text entry won't "stick". Check by using the joint-connector tool. The default appears to be a Slider control, and the control is given a name that appears in the Control Panel when the simulation runs.
- One can enter a custom name for a control by changing the text within the single-quotation marks. This also changes the order in which controls appear in the Control Panel. This makes it easier to control a machine, since you can easily identify which control slider works for which joint.
- A neat trick is to give a number of different joints a Slider control of the same name. You can coordinate the movement or speed of many different joints in this way. They do not need to be the same kind of joint, so if a motor's speed needs to be proportionately coordinated with the movement of a piston, they can be controlled by a single slider.
- Clicking "Play" will NOT move the object until the "slider/controller" is used.
- Non-slider Controllers
- Another kind of controller is the "Oscillator()", which makes the joint go from its max to min range at a specific rate. I am guessing that entering oscillator(40) into the Controller field will make the joint oscillate at a rate of once per 40 frames during the simulation. I'll do some experiments and have more precise information when I get it. [Thanks to mptak at Sketchucation for the information]
- I know that there are other kinds of controllers that are not sliders, but I do not know how to learn about them. If anyone can add a list of controller types and their characteristics, it would be good.
- Connected Collide
- Connected collide is where if a box is stuck inside a joint, it will be "collideing"
- Density sets the "heaviness" of an object, relative to other objects. Technically, density is the amount of mass in a given volume, so a cube that measures one meter on each side with a density of 2 will have twice as much mass, and be twice as heavy, as an object the same size with a density of 1.
- Magnets, contrary to their name, act like gravity fields; they pull in (or, indeed, push out) 'magnetic' objects with a customizable force. The magnet will be 'off' if the force is set to 0; anything over that will be 'on'. Because the force is a blue formula box, you can use Ruby or a formula to turn it on and off, and modify the power in real time. If a negative value is used, the magnet will repel magnetic objects. Note that both the magnet and magnetic settings can be turned on for one object.
- The thruster property propels the selected object with a customizable force along its Y (blue) axis. The force is a formula box, much like the magnet, and like the magnet, it can be turned on and off, and have its force modified in real time. Here, a negative value will simply thrust the object in the opposite direction, but still along its Y axis.
- Emitters create copies of themselves, which can be created with momentum along their Y axis. The lifetime setting dictates how many frames the emitted objects will remain; in this case, a setting of 0 will cause them to remain for the duration of the simulation. Strength is the momentum of the object when it is created, and rate is the number of frames between emissions; a setting of 0 for either of these will turn it off. These are dynamic, so you can turn emitters on and off, change their power and the rate of fire all during the simulation, using a formula or script. Note that complex 'objects' like a vehicle made up of many jointed groups cannot be emitted. Emitted items also lose a variety of settings applied to the parent object, such as whether it's hidden, any state changes, and any Thruster, Magnet or Emitter settings.
- It is permitted to set an Emitter object as "static", so it will stay in one place, while its emitted copies are freely moving. If this is not done, the Emitter object will be moved around by the thrust of the emitted copies. I do not know if other Object State properties are cleared or inherited by the copies.
The Joint connector toolEdit
The Joint connector tool is used to connect objects to joints, and to connect joints together to create gears. Clicking any grouped object or joint will select it; you can now connect it to another joint or object with a (left) ctrl+click (PC) or option (Mac) on the desired item. If you select the wrong item by mistake, or decide you don't want to have the items connected any more, you can disconnect one from the other with a shift+click (PC) or shift (Mac) on a connected item.
There are three basic steps when adding a joint to a model:
Add a joint for the part you want to make move. 1. Make the moveable part and the joint a group. 2. Joint-connect the joint to a “parent” object in the model. 3. These three steps will work for MOST joints in MOST situations.
Rule of Thumb:
You can joint-connect Object A to Parent X.
You can joint-connect Object B object to Parent X.
To move 2 different "jointed objects" at the same time...
You can joint-connect Object B to Object A (parent)
Dowload simple "Axis Movement". Reverse engineer samples to understand.
The joints toolbarEdit
The Joints toolbar holds all of the joints that are available for placement in your model. Select the one you want, then place it using one click to define its origin, and the second to define its axis.
The shapes toolbarEdit
The shapes toolbar holds a number of primitive shapes you can use, along with a quick-build wheel, door and lift selection, which automatically connects the internal joint to whatever you place them on. You create these shapes using 2, 3 or 4 clicks to define the origin, then points to size the shape.
You can also create SketchyPhysic's default floor, a static mesh base for the model (Otherwise, everything would fall into infinity!).
Using the Physics settings window under Plugins/SketchyPhysics, you can customize global settings like the 'gravity', 'object density' and 'framerate'. The 'gravity' setting will affect both the speed that objects fall at, and their overall weight. 'Framerate' will affect the speed of the simulation; the higher the number, the faster it will run, but with the possible compromise of physics accuracy.
If you wish, you can change the version of SketchyPhysics that you are using (any change will not take effect until you restart SketchUp). This allows some outdated SketchyPhysics 2 (SP2) models, that use deprecated features, to work correctly.
The buoyancy planeEdit
The buoyancy plane setting creates an infinite 'water' plane. This is represented by a large, semi-transparent blue square. Any object that enters the plane will have buoyancy physics applied to it. NOTE: Small objects may not work correctly, causing it to float. Settings like the 'density' are applicable to the plane. This affects how strong the buoyancy is. Other settings, like the X,Y, and Z current, create a virtual current in the 'water', pushing objects that are in it, and the linear and angular viscosity affect how 'thick' the 'water' is. Example: how much force is required to move through it.
The SketchyReplay toolbarEdit
This allows you to start and stop recording of your simulations, and play back, rewind or restart a recording you have made. SketchyReplay won't save the camera angles, but rather, the position of each object in each frame as the simulation progresses. This consumes large amounts of memory, massively boosting the file size. When uploading models, it is recommended you delete any recordings.
Here, you can delete the recording you have made, or export it. The exporting option allows you to create a jpeg or png image, or a full SketchUp file/static mesh for each frame of the recording; the latter allows rendering, using a separate rendering program.
When you right click a grouped object, you will see at the bottom of the menu an option for SketchyPhysics. In this section of the right-click menu, you can change the physics shape of the highlighted object, or change its state. The advantage of using the right-click menu over the UI is that you can apply these changes to multiple selected objects at once. You can also 'debug' objects, forcing them to show their physics geometry as a wireframe. This shows you where other objects will impact it, and may help if an object is behaving strangely.
--SP Wacov 16:43, 3 April 2009 (UTC)