[SP2]Basic Tutorial Posted (Moved & Improved) 5/11/08
-
@curbs said:
Ahh. Thanks for the different perspective Chris.
In the car example, my thought process was this:
I would Joint-connect the wheel to the thing that makes it spin. (The hinge.) And then group the hinge with the body I wanted it to “stick” to.
But now I see why you might want to do it in reverse. Like you said, it’s easier to move a wheel when it’s grouped with its joint. And if the model becomes more complex, there would be less tracing of groups and broken connections if each object is only grouped to its one joint.
But intuitively, it still just seems backwards to me, so I guess I’ll make the redneck quote of the day and say,
“It just don’t make sense ‘till you think about it.”
I might have to add a full page to the tut about choosing how to group joints and when you would want to do it one way or the other.
I think it seems backward because you are used to the other method. Try it for a while and see if you like it. I sure do.
The built in wheel,door and lift use this method. No one ever seems to use those. Its too bad because I believe that is the easiest way for a new user to build a jointed object. You don't need to use the joint connection tool at all.
To recap. A wheel is a capsule or wheel shaped object that has a embedded hinge (or servo if you hold CTRL) and it is automatically connected to the object you clicked on when you started drawing.
A door is the same thing but the shape is a box and the joint is at one corner. This can be used to make articulated arms quickly. I can do a rag doll in a few minutes.
Lift is a capsule with a slider (or piston) at the center. I dont use it much but it is here because it is a logical extension of the wheel/door. I plan to add a box+slider in the next version.
The advantage is if you do it right you never have to use the JCT tool since objects are connected automatically and logically. Make a car by drawing the body and then drawing in the 4 wheels and it just works.
-
I too did it (intuitively) with the joint first attached to the stationary object. I had much difficulty getting things to work.
Since Chris's note on doing it "the other way", I've had more success.
I now look at joint attachment as......
Put the joint on the part that moves, attach and group it in, and then attach it to the other part. ie: Hinge on the door first, then connect it to the door frame.
I also find this also makes editing the setup easier.
And, those newer joints Chris mentioned above seem better. Gotta experiment my Landing Gear model with them.
jgb
-
I have updated the tutorial based on "the better way" of jointing and grouping.
The basic process boils down to:
- Add a joint for the part you want to make move.
- Make the moveable part and the joint a group.
- Joint-connect the joint to a “parent” object in the model.
Thanks for the suggestions guys, hopefully people will a better understanding with the new tut, I know I do!
New jointing page here: http://curbs77.googlepages.com/sketchyphysicsjoints22
-
I went through your update.
You left out 2 important steps.
1 - You need to Joint Connect the joint to the moving part before you group them.
2 - You need to set the SP shape of the joint/part group as well, and to the same shape as the part alone was set to.I tried it "by the book" and it did not work. When I did the 2 extra steps above, it worked.
BTW, my LG demo is working, at least the bogie comes down as commanded. I had to redesign the upper hinge joint for extra flexibility to get it to work without distortion. I'll post it later in a separate note, and detail what changes, and problems I had making it work thus far.
Still playing with the LG doors. I had them swinging free, then opening with a servo, but I made a minor edit, and the whole thing blew up. Trying to get back to the almost working state first.
jgb
-
OK, here it is. Incomplete, but the main part is working.
Turn layer 1.5 A/C Outer Skin visibility off to see the thing working.
In this version 3 of the demo, there are several significant changes over version 2, aside from getting it to work.I deleted the documentation layer. It just got in the way, and was a bear to update.
The LG door is in 2 parts, and is bigger. The 2 part is really the basic design for the whole thing. My previous demos were 1 piece, because they were a demo. Now I need it in 2 pieces to complete the demo, and this demo has proven to be of more value than I expected. It forced 2 major design changes to the base design.
I am having a lot of frustration properly hinging the 2 doors. I got it working on Friday, but I made a change to the doors, and never got it working the same again, so for Ver 3, they simply drop off.
What I want in the next demo is for the top door to hinge from the skin at its top edge, and the bottom door to hinge from the bottom of the top door. There will be a set of actuation struts connecting the doors to the bogie with various joints, so they open as the bogie extends. I noticed that if the doors simply hang there, they interfere with the bogie and the bogie goes unstable. So to prevent that, I replaced the upper hinge with a servo so the doors partially opened under control, and there was no interference if I opened the doors before trying to extend the bogie. Not being able to keep the bogie up when starting the run (it goes 1/2 way down), I adjusted the door servo to fully open on run start by setting the min/max angle. That's when I shoulda saved it and posted it here. Nope; I just had to try something. It all blew up, and I have not been able to get back to that point since.
Changes to the bogie.
The biggest change was required (and it will be incorporated into my airplane landing gear model) because the bogie is pushed out (red axis) during its motion by the drag strut. At first the excess flexibility in the joints hid this fact, until I got up close to see what was happening. I had to change the top pivot to a 2 joint affair. Can't use a "U"joint or ball joint, as there is nothing strong enough in "real life" to take the kind of loads this LG will impart on that joint. There is such a joint, called a "spherical bearing", but not that big, nor do they have the range of motion needed. It had to be 2 hinges on the red and green axis. So now the bogie can swing free, controlled by the drag strut. The extra lobe on the back of the part is for the up/down lock, to prevent the bogie from moving while handling the landing shock and loads.I had to put the green axis hinge mid point in the part, to avoid perception problems looking at the whole thing. I know the actual joint group does not have to be on the part, but on the joint line common to the 2 parts, but it looked real weird to put it offboard the bogie. And yes, I can turn off the joint layer visibility if I have to.
So here is what I've discovered.....
For the tutorial......
1- Do not attempt to edit a part with a joint connected to it, if the edit changes the part shape, or disturbs the joint line. Delete the joint, edit the part, re-attach the joint.
2- Make sure you can see the joint within the group. If you bury the joint inside the part (as I first did with the top green axis hinge) and you cannot see it, you cannot attach it properly, and the joint will fail. That is why there is a "cutaway" in the top of the bogie.
3- So far I've only played with hinges and servos. They attach differently!
A hinge is placed on the moving part. Then the hinge is jointed to the moving part and grouped to the moving part. Then the hinge is jointed to the parent part.
A servo is placed on either part. It is then jointed to both moving and parent parts. DO NOT group the servo to either part. I have not yet experimented with putting a servo between 2 moving parts. Should be hair pulling fun.
4- Make sure to shape all the relevant parts correctly. Make sure to shape the grouped jointed part the same shape as the part alone. Yes, you have to set shape twice.For Chris........
1- Is it possible to tighten up the joint flexibility? I noticed that I had severe dislocations and joint distortion at motion extremes which seems to be caused by the sheer "weight" of parts hanging from the joints, plus a lot of bounce. That also happens when there is a motion interference. When I changed the SP gravity to .1G, the bounce and distortions lessened significantly. Joints should be quite rigid except along the motion axis.
2- (Asked before) Can we get a "start" angle setting for the servo, between the min & max angles?
3- Also on the servo, when I get very close to the zero (left) setting on the control, the servo spins uncontrollably. At the 1 (right) setting, it just stops as expected.
4- Could you make the [ESC] key equal to reset?I got more, but this is enough for now.
jgb
Landing Gear Demo, bogie extension/retraction under control.
-
JGB: Try the joint tut again, I just did it step by step from a blank SU file, and it worked fine.
I think you may be overthinking the whole joint-grouping thing, and it's probably my fault for posting the tut before Chris' insight.
I am confused as to why you would joint-connect a part and a joint, and then group them together. The grouping will negate the joint-connecting you just did. Usually it is one or the other (joint-connect or group.) I find it helpful to group the joint and object right away, so I can think of them as one piece. Then I just have to find another object to joint-connect them to to make it work.
I don't want to confuse you if you have a method that works, as there are multiple ways to do it, but I think you'll have more success with:
(1 joint/1 object grouped)---joint connected to----(parent object)(Thanks Chris for the simplicity of helping me understand that.)
I also haven't set the shape of the resulting groups, but haven't had a problem yet.
I agree if you edit a shape and it changes it's geometry, the joint may make it work differently, but as long as the original axis is maintained, you should't have a problem. And yes, there is no shame in deleting a joint and putting a new one in if you're thoroughly confused.
As far as a hinge, servo, and motor, I've found they all attach the same way, but this "way" may change from model to model. If you can make a hinge work right in a certain model, then a motor or a servo should be able to be substituted the exact same way in that model.
I think a lot of the problem stems from breaking joint-connections when new groups are made. As soon as you re-group an object with something else, any joint connections made to it previously will be lost.
As far as burying joints where you can't see them, don't be afraid to place a joint off of the part itself, as long as the axis will work for you. I haven't looked at your model yet, but I made a simple 3 arm, 2 servo, 1 hinge model (inspired by your original model) that can show how easy it is to start a "chain" of joint-connected groups.
This first shot shows that there are 2 servos and 1 hinge, each on moving parts:
The second shot shows an exploded view with the joint-part grouping, and even though none of the parts touch, the axis' are all still the same, and it moves exactly like the unexploded model:
Take a look at the model, delete the joints if you want and try to put them back in using the 1,2,3 method:
- Add a joint for a moveable part.
- Group the joint and the part.
- Joint connect the joint to a "parent" to "ride on."
The pics don't show the connecting, but if you start at the ball arm and work your way back to the block, each joint-connected parent is the piece behind it. (Which is another group including a joint.)
The only thing to watch out for is the breaking of joints when you make new groups. I first added all my joints and did the grouping, then I started the joint-connecting process so I knew there wouldn't be any broken connections.
(Also disregard the gyros, they just keep the ball-arms from going crazy when you move them.) And don't apply any of this discussion to the gyros, they seem to be a whole different beast!
Anyway, I'll be traveling out of country for a few days and I don't know what my internet acces will be, but if I get a chance to look at your model, I will, It was already looking great before.
-
For Chris........
1- Is it possible to tighten up the joint flexibility? I noticed that I had severe dislocations and joint distortion at motion extremes which seems to be caused by the sheer "weight" of parts hanging from the joints, plus a lot of bounce. That also happens when there is a motion interference. When I changed the SP gravity to .1G, the bounce and distortions lessened significantly. Joints should be quite rigid except along the motion axis.
2- (Asked before) Can we get a "start" angle setting for the servo, between the min & max angles?
3- Also on the servo, when I get very close to the zero (left) setting on the control, the servo spins uncontrollably. At the 1 (right) setting, it just stops as expected.
4- Could you make the [ESC] key equal to reset?I got more, but this is enough for now.
jgb[/quote]
- How strong a joint is is determined by how big the objects it connects are. This is something the physics engine does and I don't really have any control of it. Make the objects as big as possible. Maybe add some hidden geometry.
- In next version this will not be a problem. You can set the initial value to whatever you want. Even something like this: (3.0*5.0)/sqrt(16)
- Fixed in next version.
- I suppose so.
-
Also you will get some sagging of the joints if you separate them from the objects like Curbs shows in his second image. But it is still a useful way to build the models. And you can move them closer once you have the connections working..
-
-
Chris
It's amazing what the hand of the master can do. Thanks.
Last night I looked at a few working models (mainly the steam engine) and came to realize that jointed objects should touch for stability. I deliberately kept them apart, to preclude interference. I learned that when my ball joint at the apex of the drag strut jammed against the bogie early on, and when I was swinging the gear doors through the outer skin. I opened the joint separation clearances, and the interference problems went away. I guess that gapping now has to be done more judiciously.I was about to change my LG model to tighten the hinge and servo joints, and your edits show I'm on the right track. Based on that revelation, I'm going to experiment with large disks at the joints (to be hidden) just to act as stabilizers. Yet that confuses me as Curbs demo has very widely separated joints, and his is very stable.
Adding mass is a surprise. I noticed you placed capsules on some parts. Any reason why those and not just a simple cube (to be hidden)? What governed the size?
I noticed the servo joint is visually gone, but its physics remain. I know we can delete a joint group drawing, and it still works, but with the joint gone, there seems no way to delete it if needed, or see it for reference. Did you remove it for any reason?
Anxiously awaiting the new SP version. Any idea on its release date?
Curbs.
Thank you as well for the demo.As far as overthinking the problem, I am very prone to that. The old planner in me. I'll spend an hour planning how to do a 10 minute job.
However, my process as stated was the result of about a dozen trial-and-error exercises, mainly on the failed LG door hinging. I have the paper trail to prove it. It is very conceivable I led myself up the proverbial garden path, but I tried all combos of grouping and attaching to get to there, all starting from scratch (deleting the joints). Having little experience in SP, I may not know the better way, and discovery may or may not show me that way. I used your tut as a starting point, and it worked in some cases, but not all. That is how I found that servos and hinges attach a bit differently.
My next planned trial was to do as you suggested, draw everything, attach the joints all at the same time, then group them in a logical order, also, I surmised from the free end back to the base, but I ran out of time yesterday. It seems we think alike in many ways; it just takes my old bones longer to get there.
And so far, I have only played with servos, hinges and used a ball joint and "U"joint a very few times. I've had zero success with sliders for what I want to do with them.
I also came to the conclusion, that I had to tighten my joints (see above to CP).
Yet your right hand demo shows a wide joint separation, but it is stable, with no bounce or dislocations at extreme ends. Why are mine so loosey-goosey?Have a good trip; it's time for me to play.
jgb
-
@jgb said:
Chris
Adding mass is a surprise. I noticed you placed capsules on some parts. Any reason why those and not just a simple cube (to be hidden)? What governed the size?No reason for those shapes or sizes. I just wanted to make sure they didnt touch any other parts. Size was just "bigger". I did the whole thing in about 5 minutes.
@jgb said:
Chris
I noticed the servo joint is visually gone, but its physics remain. I know we can delete a joint group drawing, and it still works, but with the joint gone, there seems no way to delete it if needed, or see it for reference. Did you remove it for any reason?Anxiously awaiting the new SP version. Any idea on its release date?
The servo is still there. Its just inside the geometry a bit. Use xray. Did you know that there is a layer for joints? You can show hide them easily that way.
No release date for the next version yet. I am still trying to finalize what features it will have.
-
Your 5 minutes is my 5 hours, if I succeed.
Yes I knew about the Joint layer, just didn't occur to me.
Thanks
jgb
-
Sorry to be a baby but could you or someone else please give me clear install instructions i get the following error message "Error Loading File SketchyPhysics.rb
No such file to load -- SketchyPhysics\sketchyphysicstool.rb" and nothing appears in the open SU document, thanx for the fantastic tut i hope to get to use it soon, regards -
Just changed the address of the tut:
http://sketchyphysicstutorial.googlepages.com/home
I also added two new pages covering the basics of using the UI, setting multiple joints to move at the same time, and some other stuff I've learned.
-
Absolutely top notch addition to the tutorial.
The new sections were full of "I didn't know that!!!" and now I gotta play with this.
One minor note, a very common spelling error, in section 6, 1/2 way down, the sentence "NOTE: These blocks are SEPERATE groups" is spelled SEPARATE. I do it all the time.
Also I have not lost interest in this "project". I have been sidetracked back to an unrelated (to SU or SP) project, a patent application which is now in final review before the USPTO application, and there is a lot to do in that. The application is about 75 pages, and part is in a language (legalese) I don't work well in. To quote Arnie, "I'll be back" in about a week or 2.
-
Just started using SP and so far your tutorial is the best I have located. i have a question on the UI. When I edit the properties of a joint as you have explained I do not get the same window. My window does not have the UI as you describe with the posibility of the movement slide. My motor setting works as do other atributes but the UI form only has the Controls, Solids, Joints Tools
I can't seem to attach a JPG.
-
@moving2time said:
Just started using SP and so far your tutorial is the best I have located. i have a question on the UI. When I edit the properties of a joint as you have explained I do not get the same window. My window does not have the UI as you describe with the posibility of the movement slide. My motor setting works as do other atributes but the UI form only has the Controls, Solids, Joints Tools
I can't seem to attach a JPG.
Make sure you have the right version:
-
Why does a pin that is built such that it is located through an opening in a block pass through the block walls when the model is operated as if the block had no mass? I was expecting a colision. Picture a 3D leter "D" with a pin that passes through the opening. I thought that when you ran the animation the pin would sit inside the "D" and you could lift the "D" with the pin but the pin just passes through the walls of the "D". I tried the same thing by opening the "D" up so that it was more like a "G" so that the hole was more like an exterior wall folded inside and it still passes through the wall. Once it passes through it will collide with the exterior walls of the object. I atttached the pin to an arm on a slide to hold and control the pin.
I'm just trying out ideas. This idea could have some usefull applications in curving geometry where an object must slide and rotate such as an inside cam. I may need to build a joint with a slide and hinge to simulate the motion but i was hoping the colision of the two objects would accomplish the cation.
-
Without a picture or the skp file, it's hard to see what's going on, but there are two possible reasons for what is happening.
First of all, check the bottom of the shape page of the tutorial. It explains that a "hole" in an object won't behave like a hole unless the object is set to static mesh. But if you want to make the object moveable, the only other way to make a hole is to make the object a "group of groups." (DEBUG your geometry and see what's going on.) Take a look at the pic below, and you'll see the arch is actually seen as a half-circle when debugged.
The other reason is that if the "pin" is not a true 3-D shape, it probably won't interact with the model. If it's just a line, it won't work, instead make it a small cylinder.
Hope that helps, and DEBUG DEBUG DEBUG.
Check out the model below. The "D" objects have their collision geometry turned on so you can see what's happening.
-
Actually, I was going to mention the Arch Example because I tried creating the hole with blocks joined together like the arch just because of the comlications shown in the Arch Example. The pin is a cylinder so that shouldn't be an issue. I'm wondering if it would have anything to do with the way an "L" shaped group would look. The "L" is surrounded by a completly encompasing rectangle similar to your arch example when it is grouped. Actually, I'm still not sure why the arch doesn't fill in even though it's created from a bunch of smaller groups. Maybe I am joining my groups wrong?
Thanks for your time!
Joe
Advertisement