Advantages to use JointSU:
- Easier to handle assembles (specially when reusable).
- Re-assemble after move components (explode view).
- Animation
Workflow:
- Create a JointSU component (one per model).
- Apply an instance of JointSU on any component ("joint-enable" the component).
- Structure 2 joint-enabled components as parent-child.
- Establish a connection between them.
- Repeat for other joints.
- Assemble, Animation, Hide/Unhide/Select.
Pack files:
The zip pack (MS Windows) has 4 files. JointSU_GUI.rb, JointSU.rb, bike.skp and this file
For developers, the idea is to have one Ruby file for GUI and Menus stuff and a GUI-less file with classes and modules. Both are necessary to make it work with my proposed GUI.
The bike.skp demo is my test bed ready for use. You can open the bike file and use << Plugins/JointSU/Animate/Start>> to check the animation. You can move components and sub-components (using normal StechUP move tool) or use << Plugins/JointSU/Explode >> and re-assemble all using << Plugins/JointSU/Assemble >>.
You can open the SkecthUP Outliner and see my proposed structure for the bike and play around.
Workflow in Details:
1.1. Use << Plugins/JointSU/Create JointSU compo >> menu to generate a component with a geometry easy to position on its parent. Or you can create your own geometry. What is important is just this component axis and the name: it must be "JointSU".
2.1. From << Window/Components >> drag an instance of JointSU into the model and use << Window/Outliner >> to allocate it below the component that will be "joint-enabled".
2.2. To position the JointSU instance, use SketchUP Move function or << JointSU/Position >> contextual menus over the joint (in Outliner or in the View). The UI (user interface) can be mouse, keyboard or panel.
2.3. On OUTLINER, edit the associated component of the JointSU and take note of its axis positions, specially, the Z-axis for Alpha rotation. The position tools will be based on these axis.
Alpha: rotation of the JointSU around this Z-axis.
Beta: angle relative this XY-plane
Torsion: rotation around JointSU X-axis
tip1: use SketchUp "Show component axes" (on Window/Model Info/Components menu) to see the axes.
3.1. Use << Window/Outliner >>. This is the trick part to establish the behavior of the mecanism.
4.1. To (easier) establish the joint-joint connection: on OUTLINER, use << JointSU/CameraOnTarget >> on parent-joint and zoom-in. Then on OUTLINER, use << JointSU/Set >> on child-joint and pick in the model view the parent-joint that is zoomed-in. The child-joint (with the corresponding attached joint-enabled component) will snap-on the parent-joint.
4.2. To handle JointSU geometric parameters (axial translation, axial rotation and flip) use << JointSU/Joint >> contextual menus over the joint (in Outliner or in the View). The UI (user interface) can be keyboard or panel.
6.1. Use menu << Plugins/JointSU/Assemble >> to re-assemble all the joints back on its original (in dictionary) parameters. You can use SketchUP Move tools to mess all around with the components and than just re-assemble in one click.
6.2. Use menu << Plugins/JointSU/Explode >> to create an exploded view of the structure. OBS: This must be improved because the generated exploded view is "ugly" to say minimal. But at least it is a starting point to manually create a looking better exploded view.
6.3. Use contextual menu << JointSU/Joint/Set anime >> to set animation parameters (active true/false and the rotation step) ... this will be improved in the future.
6.4. Use menus << Plugins/JointSU/Animate/Start>> and << ../Stop >> to initiate the animation.
6.5. Use menus << Plugins/JointSU/Hide/Unhide >> to hide/unhide/select the joints.
Extra: JointSU/CameraOnTarget
- Select component (on Model View or Outliner).
- Activate CameraOnT (on JointSU contextual menu).
- The Component axis will be centered on the View.
- Rotate (LButton), Zoom (+Shift) and Pan (+Ctrl) the View related this axis.
- ReCenter (Double click) to bring back the Component axis to View center.
- Escape (Esc) or select another tool to exit.
Works only for Components and the target is always fixed (on Component axis). There is another plugin for general use.
JointSU pack.zip
ENJOY
Regards
Marcio de A. Braga - Jan/2009