An SP newbie, trying to write a tutorial.
-
Dude, this was a GREAT problem, and I may have to change my beginners Tut to reflect what I learned from this model. I also think your model was excellent with the text explaining exactly what each part was. It was easy to see what you wanted to do, and why it wasn't doing it. (Waaaay better than just a box of random parts and someone saying, "Fix it!")
Looking back at the rest of this thread, I see Lildood pretty much nailed it: The ball joints weren't grouped to anything and were static. (Wish I would've read his post before I started this, but it was fun learning anyway.) But i don't think you need a double link to make it work, it should be fine with one simple servo and three joints.
So here's what I came up with:
Simple solution: The ball joints couldn't move. So I grouped the ball joints to make them moveable and fixed the problems that this caused.
And here's the entire troubleshooting process:
Problem: Something is preventing the servo from turning. (Most likely another joint is static.)
NOTE: Ball joints suspect.
Troubleshooting Procedure:
-
Checked ball joint connections: OK.
-
Checked ball joint grouping: No grouping. This makes them STATIC...and therefore their slave groups are STATIC.
NOTE: Problem found.
RESOLUTION:
- Grouped each ball joint to its respective door so it will move with the door.
Tested results:
Solution caused new problem: Doors fall off original hinge and servo.
Suspected Cause: Grouping of ball joints and doors created a "NEW" group...thus breaking the original hinge/door & servo/door connections.
RESOLUTION:(Using Joint connector) Re-connected servo to "newly" grouped door & Re-connected hinge to "newly" grouped door.
Tested: Success.
Other Problems noted: When door is swung completely closed (to the right) servo binds and becomes separated slightly from static wall.
Solution not explored because in a "real-world-environment" the door would never be forced past the "closed" position. Therefore the model works perfectly in its "normal operating ranges."
Suggestions for new model:
-
Replace Ball joints with hinges, they will serve a similar, but simpler solution.
-
Move servo and hinge down to mid-points of doors to make a better "hinge motion" instead of a "corners-connection".
Here's the fixed model:
http://curbs77.googlepages.com/NeedHelp01_Resolved.skp
-Curbs
-
-
Curbs,
Thanks for the trouble shooting on the landing gear demo.
Thanks to your tutorial, I know understand shape and debug far better.When I looked at your solution, and noted the disconnections still occurring at the far ends of motion, I figured the joints must be OK now, but perhaps an element shape error is the culprit.
So I changed the shape of the connecting rod to CONVEXHULL, and lo, it works properly, with no disconnects, at least on the left side. You are absolutely correct that the door would not be moved past its normal position to the right. I need to figure how to limit that direction of motion within the joints, in particular, the servo.
Now the conn.rod spins on its joints, which is another problem to solve.
Also, I do not think a simple hinge would work on the conn.rod. You will note it is at an angle (blue axis) which was deliberate, so the rods angular relation to the actuator and door does change in 3 dimensions. The hinge has only a single axis of freedom. The only other joint I can try is the "U"joint.
Need some time to play more....
jgb
I played a bit more. I adjusted the servo range to min -90.0 and max 0.0. Now there are no disconnects at either side of servo motion. However, and this is a problem that has been highlighted before, the servos default run start position is 1/2 the motion range, in this case, 45 degrees. I really want it to start at its rightmost or max position, in this particular case. I and others may need some other arbitrary run start position between min and max, so I am not suggesting the run start position be fixed at just min or max.
I tried raising the servo max to +90 and putting a physical static block to prevent motion from 0 to +90, but that only resulted in disconnects if I tried to go from .5 right to 1 in the servo control.
Chris, what we need is a modified servo control joint setting, with a "start" angle input, between the min and max positions. An also nice addition would be to show the actual servo angle in the controller rather than a 0 to 1 position, or a choice if possible of angle or 0-1. That would go a long way to finessing the control of model motions.
Oh, and I changed the left-most ball joint to a "U"joint, and the con.rod spinning has stopped. Assembly motion is what I was looking for, except for the run start position.
jgb
-
I was so emboldened by getting the demo to almost work, after Curbs clued me in, I spent the afternoon creating and testing a near model of the landing gear, that is part of my main model. Frustration Station!
I've attached it here. First, what you see is a rough replica of the Landing Gear model. I've omitted a lot of detail that has no bearing on the problem at hand, and it is not quite to scale. It is also (temporarily) missing several elements that are not important at this time, such as the drag struts and the LG door linkage. Use the layer visibility to see it better. Mainly turn on/off layer 1.5 A/C outer skin which can hide the works, as well as layer 2.0 Documentation.
The main parts are the Drive crank with a servo attached. The crank is fixed to the airplane structure at its lower part and it rotates 180 deg clockwise to push the bogie straight down. Before I add the drag struts, the bogie should simply hang loose from the top part of the crank. I have left out the upper hinge on this demo.
I have servo control of the crank, but when I try to hinge the bogie to it, the crank and the bogie lock up at that upper hinge point. I've tried various combinations of state and grouping; nothing seems to work. I even tried hanging just a simple box off the crank, same results. And other joint types make no difference either.
WTF am I doing wrong?????
jgb
-
The problem here is the Out Skin, it is one object set as default and such nothing can pass through the hole, the solution to this is to make it out of multiple objects. Four would be the best option as you would have one object on each side of the hole. You can see this if you remove the outer skin, you may also wish to change the accel of the servo, 10 seems to work.
-
Thanks, LilDood
I'll check into that, but the real problem is I cannot functionaly link the bogie to the crank with a hinge. When I do, the bogie just hangs from the hinge and blocks the crank from moving.jgb
-
Lildood is spot on about the gear hanging up on the fuselage. Try making the gear work in a blank model with nothing else in it. I bet you'd get your servo and hinge to work.
When you add the problem of the fuselage getting in the way, it makes it look like your joints aren't working right and leads you in the wrong troubleshooting direction.
I fixed your joints by adding the hinge you were talking about. (It is grouped to the bogie and jointed to the crank.) It then looked like it wasn't moving, but it was "trying" so I knew the problem was somewhere else in the model. I set everything else in the model to "ignore" and got the gear to work by itself. I also added two gyros to simulate the missing drag struts. (You can delete them to see how floppy the gear is with no struts or gyros.)
Then it was just a matter of finding the piece that it was hanging up on. When I changed the fuselage state to "ignore" it worked fine.
As far as I know, there is no good way to make a shape with a hole in it work in SP besides static mesh.
If the fuselage isn't going to be static in the final model, you would have to make a group of groups to simulate the hole like Lildood said. (See pic below.)
I guess the troubleshooting for this one would be:
-
Make a back-up copy of the original model.
-
Delete everything not directly related to the parts you're trying to make move. (Or set them to "ignore")
-
Solve jointing issues and make just the part work correctly.
-
Add back the rest of the model a piece at a time to see where it's hanging up.
When in doubt, delete everything else so you're only dealing with one problem at a time.
Attached is your model with the mods. It is 99% complete, but still has a problem: The wheels don't fit through the door, so the fuselage is still set to ignore. From this point, Debug your wheels (I think they're square.) And move your fuselage to where the wheels will fall through it. (You'll have to change its state from ignore so you see where the wheels are hitting.)
Have fun, I think you were closer than you thought.
-
-
Curbs,
What you did is great
The presence of the outer skin and door were not part of my first attempts to hinge the bogie to the crank. So at that point I had no problem pushing the bogie through a hole, but that lesson is now understood.
However, I noticed you set the skin state to ignore, to account for the bogie interference. When the drag struts are in place, the bogie will not interfere with the skin. That is part of why I needed motion control on this design to see such interactions. I would change the door opening to suit the bogies motion, and maintain the ignore state, rather than breakup the skin into 4 groups to leave a hole. Reduces model complexity.
Oh, and I know the wheels are square. I have no intention of rotating them, so they can stay that way.
When I first added the hinge to the bogie, and linked it to the crank, it all seized up. I now see that I failed to group the hinge AND the bogie, after attaching the hinge. I thought the joint connector tool did the attachments complete.
The tutorial should include a section on grouping related to joints. What to group, and when. I am still not clear on that concept. I see the crank works yet its servo is not grouped with the crank group. But the bogie hinge had to be grouped to the bogie group to work properly.
So, please correct me if I'm wrong, or left stuff out, but I see the following steps to creating a set of linked objects.
- Create the model with each linked object in the chain as separate groups. Use layers to control visibility.
- Set the object shape that best matches each part. Make sure things that are not to move, but interact with moving parts are defined as staticmesh (not exclusively, but seems best overall).
- Take the first MOVING part1 adjacent the static part (ie: a moving wheel on the static car body) as a group, and connect a joint to it.
- Using the joint connector, lock the joint to the moving part1. Then link the joint to the static part. This is also consistent with Chris Phillips revised way of linking joints.
- Group the joint and the moving part1. (the part I didn't do)
- Test it.
- Attach a joint to the next moving part2 in the chain.
- Using the joint connector, lock the joint to the moving part2. Then link the joint to the previous part1.
- Group the joint and the moving part2.
- Test it.
- Repeat 7-10 for the rest of the chain.
The gyros are a nice touch. Hadn't thought of that to keep the motion civil, before I make the drag links. But why do they stay static and not move with the bogie?
Now I will modify my copy and try to add the drag struts and door linkage. Future enhancements include a controlled sliding joint on the vertical strut to model the Oleo Strut shock absorber. Right now the bogie is modeled with the strut compressed for the retracted position. When the LG is lowered, the Oleo will extend and pressurize to absorb the landing shock.
Thanks again;
jgb -
Curbs, dude, you do a hell of a job at explaining hard things.
-
@cphillips said:
Curbs, dude, you do a hell of a job at explaining hard things.
I absolutely concur!
jgb -
I think I am getting the hang of it.
I did some editing of the LG door and surrounding airplane skin, to open up the opening. Then I drew the drag struts and connected them to the fuselage with a hinge, and to the LG bogie with a ball joint. Worked FIRST TIME!!!!
Then SU crashed, and I had to start much of it over from the autosave copy.
SU has been crashing a lot lately as I am playing a lot with joints. It seems to crash about 4 hours into my playtime. I've now learned if SU crashes, I need to reboot my PC to clear the crap out of RAM, otherwise SU will crash again soon after reloading the file.
When playing with SP, SAVE OFTEN!!!! Or keep the autosave running on short intervals.Anyway, it's NOT posted here yet, because I had a dimension error in the strut, so it looks real weird when running. But it does do what I want it to do. I'll fix that and post it later.
My process flow as above seems to work.
Rule #1: Best to put the joints on the moving parts, as Chris suggested. I've tried both ways now, and the new way is far less problematic as you get deeper into the model.
Now the following may not be entirely true for the newer capsule joints, but I haven't had time to test them yet.
Step 1) Make your moving part, and group it, including any other parts attached to it.
2) Set the shape of the moving part appropriately.
I have found that Convexhull is great for anything that cannot be adequately defined by the geometrical shapes (box, cylinder, etc)
3) Attach a joint to the part.
3) Connect the joint with the Joint Connector, first clicking on the joint, then CTRL-Click on the moving part.
4) CRITICAL: Group the joint and the moving part group.
5) With the Joint Connector, click on the joint and then CTRL-click on the stationary group.
Do not group these.If your moving part is connected at the other end to another moving part (chain linked), you have a choice. You can put the joint on either part.
If you chose the other part, do as above steps 1 - 5.
If you chose to put the joint on the first moving part, you need to UNGROUP (explode; not edit) the part and the first joint, place the second joint, connect the second joint to the part, then regroup both joints and the part. Only then connect the second joint to the second part, but DO NOT group them.
This way, the whole assembly can be as complex as you want, and the joints/parts are easily edited. Again, if you have a main part with other moving parts hanging off it, put all the joints on the other moving parts hanging off it.
One other thing I have noticed. If you need to edit a part where the joint is attached, ie: lengthen it at that end, explode the joint/part group, DELETE the joint, make the edits, and then replace the joint, regroup and reattach as new. Editing a part which may move the joint in place will cause problems.
More later. I feel a whole lot better now.
jgb
-
For those of you who are following, I have a Landing Gear Demo version 3 and associated notes now posted in the "Basic Tutorial Posted" topic. http://www.sketchucation.com/forums/scf/viewtopic.php?f=61&t=9115
I put it there as it now is part of my contribution to the tutorial Curbs is writing instead of me.
jgb
Advertisement