Dafe said:
At my school we spent more time learning ProEngineer than Autocad and general drawing [...]
That is excellent. AutoCAD really is not the mechanical engineer's tool for the job (though the last time I used it was in 2002, so I don't know if it went some way in the meantime).
Dafe said:
[...] but there was nothing said about parametric or programming capabilities. We only modeled a lot, did some analysis and animation.
I had some limited experience with ProEngineer, and it indeed does have these capabilities, and I did make some use of its parametric facilities. The idea is simple.
Imagine you have a metal rod with two holes in it. If you just want to draft it, you put these holes in any way so that they fit where they should. If the rod is 100 cm long, you don't care if you draft the first hole so that it's 20 cm from the rod's left end and second hole 5 cm to the left of the first, or first hole 80 cm from the right end and second hole 75 cm from the right end -- the final effect is the same.
However, as a designer, you may know that the rod length will scale according to some external influence, but that the first hole should always be 20 cm from its left end and second hole always 5 cm further left. Therefore, you draft holes with such positioning, and then when you change the rod length, the holes will remain positioned according to the design intention. That's basically parametric drafting -- where you not only represent an object, but also build up relations between its elements according to design intentions, so that future changes are much easier.
In this sense, each ProE dimension is parametric and should be carefully chosen, and properly linked to other elements either directly (e.g. "make the hole axis normal to the rod axis") or through parameter tables (eg. "let the holes' diameter always be a third of the rod diameter").
Dafe said:
I've actually never witnessed that kind of semi-automatic design process. Do you have some good resources on it?
I don't have any resources as in published stuff, only personal experience. But this is expected, as it is difficult to write something about such processes. They are both natural and heterogenous, very much site dependent: you have a bunch of tools that you need to use, and you wonder how to chain them as smoothly as possible. Both to speed things up, and to avoid stupid errors.
For this you need to be aware of what each particular tool can do in terms of external input/output (for using them in the tool chain) and internal state updates (for automating computation/modelling within the tool itself). Aside from that, it is advantageous to get to know a general purpose scripting language (e.g. Python), which can be used as a glue in the chain (e.g. to convert one tool's output to another tool's input), as well as to do some parts of the computation itself.
(For the rod example above, for example you may wish to know how to make ProE take the rod length from some text file, and write out its updated model in certain format, with only a single command line call -- didn't get to do this, don't ask me :)
Furthermore, heavy-duty computational software (e.g. for fluid dynamics and structural analysis) is frequently run on computing clusters, which run some sort of Unix/Linux operating system. The computational tools are then typically used in command line, non-interactive environment. So, if use of such tools is anticipated, it would be good to gain some knowledge of Unix shell and shell scripting (the above mentioned Python also comes in handy here).
A typical chain would be: from simplified computational model, to CAD model update, to physics simulation, to results extraction into a human-presentable form (and possibly all wrapped in an optimization cycle).
--
Chusslove Illich (Часлав Илић)