Community Tip - Did you get called away in the middle of writing a post? Don't worry you can find your unfinished post later in the Drafts section of your profile page. X
Hello all, I have been a Creo user since proENGINEER 2001. I have never run into an issue where I needed to accomplish this task and I have exhausted every work around I can think of and am looking for some advice on how you all would attack this problem. Moderators, if this belongs in a different category, please feel free to move as you feel suitable. See the attached pictures for a better understanding.
Basically I have a linear actuator attached to a beam. This linear actuator moves with a stroke length of 1500mm driving a drill head. I have some snap together flexible wire tray that I want to show in the model and have mechanism correctly reposition it as the carriage moves. The bottom side is stationary as you will see in the photos. The other end is attached to the carriage (some detail is missing but the end bracket is constrained to the carriage). I have attempted to make the connection multiple ways.
I have assembled the links with all pin connections which works, sort of. The carriage can move but the tray acts incorrectly and dips below the bracketry with collision detection off. With detection on it causes the carriage to bind up.
After giving up on this approach I decided to use a sketch that dynamically updates using a perimeter dimension and relations so that the path is correctly displayed. I then attempted to use a series of pin joints on one side of each link with a slot on the second, rinse, repeat. This causes the mechanism to fail however as the sketch becomes part of the ground body and wont allow the carriage to move.
I then decided, if I cant get the mechanism to work, maybe I can just get it to display and update position on regen. At least I could take snapshots and animate this way.... I used Leo Greene's approach found here‌. This also worked.... sort of. It also causes the mechanism to fail and I no longer can move the carriage. This lead me to try using a second sketch parametrically updated with relations by the first one (requiring 2 regens) but this still causes odd performance.
Any help or recommendations would be greatly appreciated! I have wasted way too much time on such a simple, insignificant issue but now I am determined to make it work.
PS, I am using Creo 3.0, Build M060. I do have AAX.
sincerely,
Losing hair by the minute, Chris
Solved! Go to Solution.
It was about time someone made this available...
Again, this is my way, and certainly not the only way. Linking each link with 2 sets of constraints is a real pain. Repeat and temporary assembly references don't seem to work when you have two separate constraints.
One of the gotcha's is the ground body reference. When installing the chain to the mechanism, be sure to only constrain it with only the end piece references.
Obviously the point on curve I referred to earlier is a slot constraint. Each link therefore has a slot constraint and a pin constraint. The slot path does not require the shift|select... it is one of the few that you can pick multiple curves.
Creo 2.0 commercial version attached
If someone cam make this work with patterned links... POST UP!
I like the Leo Greene method for quick and dirty; but it doesn't accurately represent the polygon shape of fixed length links going around a sprocket. The big problem is the chain straight path isn't tangent to the polygons. A minor problem is the sag should be a catenary, not an arc.
I'm not sure there are good solutions in the Creo toolbox without a lot of programming, either with relations or by driving it externally via trail/training file.
Perhaps if PTC adopts the Bullet Physics engine?
Hi David. Thank you for the response. The concerns you have raised don't really apply to this issue. I'm not too concerned with 100% accurate depiction of the physics related to the "chain path". I am only concerned with making the mechanism connections that do not fail upon regen. Even if I use the Leo approach which is sufficient for displaying the chain, I have to suppress that entire subassembly before I can dynamically move the carriage again. This becomes a problem when attempting to generate an animation for the customer. I can't use snapshots with this method as it causes the mechanism to fail and Creo wont let me even take snaps...
As far as PTC adopting another physics engine.... dont hold your breath. I remember some years ago there was a bunch of hype about them adopting a new photorendering package. I haven't seen any improvement in photorendering since WF3. I will say however that I spent the last year working with Autodesk Inventor and boy am I glad to be back with Creo. Although the photorealism stuff in inventor is way better than Creo, the way it handles modeling data, sketches, and assemblies will make you want to puke.
I've done much more complex animations via trail file. Change a dim, regen, then save image, repeat. Then collect the images into a video. Since everything is handled in the trail file, base geometry and camera moves can be automated as can fades on component appearances.
David, I have never used trail files. Could you provide me with a link or expand upon this method?
(Also Pro/ENGINEER: Anatomy of a Trail File, Part 1)
Have you used Mapkeys? It's a bit like that, but using some other programming language to create the file and make substitutions for values that you would otherwise type in. There's even a button for loading and running them. Main trick is that PTC requires the file name to be anything but 'trail.'
The main thing is to type in all values. It will also be easier to use 'Find' and set the names of dimensions to recognizable values, such as gantry_x, instead of d2.
Easiest is to drive dimensions with parameters so that a number of changes can be made from the parameter interface. I think there is a 'old_parameter_ui' setting that makes this more straightforward, but I probably have the name incorrect.
Work up to it by creating a part with a dim driven by a parameter and relation, save and close Creo. Then start a clean session and open the part and change the parameter and regen. Then exit Creo and examine the trail file to see how the change was done. You should copy that trail file to something like test.txt and then remove the 'exit creo' bit at the end and change the value in the test.txt file. Open Creo again, select the 'Trail File' button and select test.txt, which should open the test part, make the new value change, and regen.
After that it's a matter of trying more complicated changes, such as altering the view orientation by angle, or the colors of appearances. Make small changes and create the small parts of the process so they can be linked together to build a full solution.
A lot of trail file creation can be skipped - comment lines and lines that record the building of character strings, for example.
VERY INTERESTING! I can think of a ton of uses for this. Especially the appearance changes which I cant believe PTC has yet to integrate that into a family table. I am definitely going to give this a shot sometime. Thanks for the info!
About "I'm not too concerned with 100% accurate depiction of the physics related to the "chain path". I am only concerned with making the mechanism connections that do not fail upon regen."
It's not physics, it's kinematics. If the chain can't follow correctly, the kinematics fail. Which is the result you are getting, but don't like.
I tried to find a complicated mechanism video from Creo, but they were pretty trivial. This is the closest I see to your situation, but it is in Creo Direct Modeling. Direct Modeling with Chain and Sprocket - YouTube
Compare to Blender with Bullet. KEVA Planks - Bullet Physics (HD) - YouTube which did not require assigning any cam surfaces or Bicycle chain falling Blender Physics - YouTube
Those Blender videos are f-ing awesome! I never knew Blender had a physics component. I used it years and years ago for simple rendering but nothing more. Haven't touched it since though.
The Blender team has been on a roll. You can see their conference videos on YouTube where the plans for development are discussed as are the results of recent efforts. I think the main driver is the developers are also users of the software, so the features they add and the way they add them are productivity based. A while back they discovered their interface was too confusing and had a big rewrite to make the commands uniform, so that the command to move an item is the same no matter the module. This rewrite was done specifically to gain new users.
Blender has a video editing segment and compositing that may be of some use to you. They also support a camera tracking/match move mode for overlaying models onto recorded footage
The UI was the sole reason I never did much with it. I used it once for something super simple and was like, "nope not enough time to learn this". I am layed up from a recent back surgery so I am definitely going to check it out. Having a development team that actively uses the software is definitely important! I think that's one of PTC's downfalls in that the developers don't necessarily understand how we as daily users interact with the software and the small things that really hinder productivity. I will say that I spent the last year with only an Autodesk Inventor license. My god I could not wait for the subscription to be up so I could drop the coin on a new Creo License. It is so nice to be back home.
It is possible to do this. I've needed this in a few instances already.
You want to use paths to drag the chain along, however you make the chain assembly.
Behind the scene, you need to make the path "skeleton" (rotated U-shaped curve) move with one end of the chain fixed in the assembly. This will push and pull the floating end. Done properly, you can fix the moving end to your moving body and all will stay connected.
Make snapshots for quick resets. Be patient... this is fairly CPU intensive.
Antonius, Thank you for your reply. I think what you are describing is one of the methods I attempted. Would it be possible for you to elaborate on this a bit? I am quite patient with Creo. I have a pretty stout system but over the years I have learned that sometimes its best to hit regen, get up and get a drink and come back.
The image above shows my sketch constraints. The "moving" end of the sketch is constrained to a reference on the moving table. Perimeter is controlled via the overall length of the chain of links. The other dimensions are locked or references used in relations elsewhere. The bottom length dimension is the one that varies with the position of the carriage. The sketch updates correctly and the path is right after moving the table and regenerating. However as soon as I assemble anything to that path it freezes the mechanism.
What is true with Creo is what is logical may not be the best way to skin the cat.
In this case, the skeleton... or path is much longer than the moving end. The links will control themselves as far as position goes.
In the chain assembly, assembly an end fixed.
Next, assemble the rotated-U-shaped curve model. This can be a mechanism constraint that allows the skeleton to move in one direction up until the 1st link with whatever factor this chain requires. In the end, this skeleton is free to move back and forth; optionally locking the max endpoints.
Next, begin adding links that use the fixed link as a hinge and the following constraints will be to tie a point of the link to the full chain of the skeleton curves. When the link comes upon the arc of the "U", it should follow it as you drag the skeleton.
You keep building until you finish the chain. You leave the assembly unresolved. In the using assembly, you tie the fixed link to the fixed part of the assembly. On the moving side, tie the end link to the moving object in your assembly. Now the chain is fully dynamic where the U-shaped skeleton just floats due to the link constraints. Hence the reason for the extra required length on both legs. This is what circumvents sketch or part regeneration during a mechanism run at the higher level assembly. The whole assembly is passive yet highly constrained.
I've come to rely on snapshots using complex mechanism assemblies that spans many levels. If it is not working, you are not holding your mouth right. Just use the default "snapshot1" name as it seems to work. You just have to continually update them when you change your model. They also become useful for animations using mechanism profiles.
...tip: use angle limits on the hinge constraint. This keeps links from flipping over on themselves.
Thanks again Antonius! I was definitely using the angle limits on the hinge constraint. Just to clarify in the above post when you speak about the U-shaped curve model, are you saying to create a model, be it skeleton or solid, and in that use a DATUM CURVE instead of a sketched curve? I just want to be sure I fully understand what you are stating.
The way I read this is that I would have a straight curve at the top that extends horizontally from the limit of travel left, past the limit of travel right. At the bottom I would have a similar straight curve independent of the top one. Then the U-Shape curve would also be an independent feature which moves similar to a slider along those two paths. Please correct me if I am misinterpreting this. I really do appreciate your help and input!
What I mean by skeleton is simply a part with the sketch required to make the path along which the chain can ride.
In a normal chain, you can do this path sketch within the assembly, but in this case, it has to float, bound between constraints not requiring regeneration to move.
You might assign an intent curve if you can. Remember that by default, the point on curve constrain picks the single segment... and you have to make sure it picks the chain of curves, or shift|select the remainder.
No matter what, this is a tedious task. There are several ways you can bind the links to the skeleton. In general, it is very robust using the hinge and point on curve constraints.
Thanks Antonius. I'm going to get some dinner and give this a try. I will report back later with what I find. Thank you again I really appreciate all of the advice!
It was about time someone made this available...
Again, this is my way, and certainly not the only way. Linking each link with 2 sets of constraints is a real pain. Repeat and temporary assembly references don't seem to work when you have two separate constraints.
One of the gotcha's is the ground body reference. When installing the chain to the mechanism, be sure to only constrain it with only the end piece references.
Obviously the point on curve I referred to earlier is a slot constraint. Each link therefore has a slot constraint and a pin constraint. The slot path does not require the shift|select... it is one of the few that you can pick multiple curves.
Creo 2.0 commercial version attached
If someone cam make this work with patterned links... POST UP!
Oh man! Thank you so much. This actually makes alot of sense after disecting the connections. I completely misunderstood what you were saying in the earlier posts. I have no idea what I was thinking. I was close the way I constrained the links was correct but the sketch "skeleton" of the curve driving the general connection makes so much sense. Bravo! Thank you to you so much Antonius for sharing and your help in this.
Happy to help.
It took me a few tries to get to this method. I wanted to know where that track would travel to the millimeter.
I normally disconnect it and use a space-claim model going forward. It just chokes when you try to drag a gantry around with 40 links.
There's quite a few techniques in the file including servo motors and gear links. Pretty much the basics for dealing with linear motion.
That is awesome, I will definitely have to check into the mechanism stuff again I cant thank you enough. PTC should pay people for putting stuff like that up lol.
Nice work!