Welcome to MCAD Central

Join our MCAD Central community forums, the largest resource for MCAD (Mechanical Computer-Aided Design) professionals, including files, forums, jobs, articles, calendar, and more.

Register Log in

Assembling multiple mechanisms


New member
I need to connect two mechanisms that are already partially
constrained and move relative to each other, much like assembling a piston unit
to an excavator arm mechanism


New member
Hi Sam,

As with the other replies, a picture would be handy. One thing worth checking is that the piston and cylinder c/w rod eyes/attachments should be one assembly. Then, create a pair of axes in that assembly through the centres of the attachments. When this sub assembly is brought into the next assembly level up, which includes the arm mechanism, use these newly created assembly level axes and one of the assembly planes to constrain the sub-assembly to the ground component. The same procedure follows for the arm mechanism. You may have already done and known this, but it's worth checking to make sure. Pro/E requires taht only two parts can be constrained relative to each other in order for a mechanism to be dragged. The same notion is carried through with su-assemblies assembled into a larger assembly.

Consider the following: assemble the hydraulic ram sub-assembly to the ground component using the sub-assembly level axis defined through the actuator attachment centreand one of the sub-assembly planes; create an assembly level axis (in the top assembly) through the piston attachment centre and a plane with a zero offset to the ram sub-assembly plane used in the last step; create an assembly (top level) axis through the ground component pivot centre; assemble the arm sub-assembly to these three references created in the lst step and arm sub-assembly axes and planes.

It seems a long way around, but is the method I've applied with success. There are a couple of ways to do the same thing, such as putting the ram and ground component into a sub assembly and creating axis references in that assembly, but it remains that only the references from two bodies (be they parts or sub-assemblies) can be used to create dragable mechanisms.

I hope this is helpful.


New member
Thanks for the replies. I should have added a picture before, rather
than going into that long explaination. As you can see from my images,
the model is not actually an excavator at all, I just thought that was
something that people could relate to. The images of what I'm actually
trying to do should make it all clear...

The First image is of a slider assembly that moves up and down a splined shaft; the shaft is attached to ground.

View attachment 608

I then add a the potentiometer assembly as shown below. I originally
created the potentiometer assembly with the base part (shown in blue)
as the ground. I then added the shaft with a cylinder connection. As I
tried to explain above, if I do things this way around, I can't drag
the mechanism once I add this potentiometer assembly to the main
assembly. I have got it to work by redefining the shaft to be the
ground feature, but I am sure there is a better solution?

View attachment 609


New member
Hi Sam.

Is the attached mpeg what you're trying to achieve? Assembly method was base plate>>spline shaft to base plate>> createassy axis through spline shaft plus assy dtm plane through spline shaft and parallel to assy front dtm plane>> assemble slider assy using assy level references>> assemble potentiomer assy using assy level references.

I can send the pro/e files if this sounds like what you're after.



New member
Yes, that looks like what I need. It would be really
appreciated if you could e-mail me the files. What is the deal with assembly
level datum features? I genrally try and avoid them; they just seemed to be
extra features to define when the part-level datum features can be used instead.
I'd be grateful for some clarification on this.

Thanks very much for the help.


Active member

It would be appreciated if you attach your solution here in the forum reply so that other could benefit from that as well.



New member
Hi there.

Attached is the solution in the method I know of -I assume there are others.

The exact reasoning for the extra assembly datum features I cannot provide, other than to say it makes things work. Somewhere in the help files I've read that for mechanisms to work, each component can only be constrained to one other component.The whereabouts of said help file I can't remember, other than it's in the standard set that comes with pro/e. The same rule extends with sub-assemblies, as each sub-assembly is considered to be a component and as such, extra datumreatures need to be created in the sub-assembly as they are considered to be part of that "component" regardless of which parts and or features within the sub-assembly are utilised to define them. I agree with you Sam that they seem to be extraneous features, and that it would be better if part features within a sub-assembly could be used. I've not found a way to achieve this, but you never know...

Anyways, the zip file below contains all assemblies and parts. In the TLA, (0000-1-spline_slider.asm.4), there are four features that can be suppressed as the TLA contains two solutions. One solution has feature i.d.'s 131, 122, 126 and 132 suppressed - the included playback file works with this one. The alternate solution has these four resumed and feature i.d. 107 suppressed and no playback file has been created for this solution.

Please note that everything has been suppressed to reduce the file size for uploading.

Happy modelling, and please let me know how it works out.



New member
Thanks very much for both the model and the explaination. When I am
doing this sort of thing in future, am I right in saying I should
create each sub-assembly, then add assembly level datum features inside
these sub-assemblies, in order to define the mechanism connections
between sub-assemblies?

Thanks again for the help.


New member
Hi Sam.

Yes, the method of creating sub-assemblies and defining datum features in those for use in higher level assemblies to create mechanisms is the best way I know of. Although in one way, there is extra work involved, I think that for the level of control and the ability to test each mechanism seperate to other mechanisms, it is worth it.

No worries for the help. If there is a way to get around the creation of "extra" datum features, I'd like to hear about it / find it, just as much as the next person. Happy modelling.



Mr infinidof

good job but do not forget to set limits to your mechanism in order to control them better.....