Monday, March 16, 2009

Design In-Context - What's the Big Deal?

In-context design is a term used to describe the process of creating models of parts and assemblies within the context of other parts and assemblies.  Recently I have been forcing myself to spend more time using several of the more popular history-based tools just to make sure I still have some understanding of the “other side”.  While doing this I am learning that I have been taking for granted the ability to easily and almost unconsciously do in-context design within my usual history-free environment, which in my case is typically CoCreate Modeling.
With most parametric history-based modeling tools (and maybe all) there are two modes that users work in; part modeling mode and assembly modeling mode.  One of the first things you must do after starting up one of these history-based applications is to decide whether you will be working with a part or an assembly.  This is so frustrating to me, but it does make sense considering history-based technology.  Keeping these two environments separate is important with a history-based system.  The system needs to know which part history tree or which assembly history tree the modeling operation will be recorded into.  Because of the need for two separate environments, in-context design is naturally a challenge for a history-based system.  Makers of history-based CAD systems have had to develop specific functionality to work around the related complexities that come with history-based in-context design.  But even with the special functionality and workarounds, users still need to be somewhat careful when taking advantage of these special capabilities.
With a history-free design system, there is no need to have two separate environments, one for part modeling and one for assembly modeling; since there is no history tree to manage.  Users can always create parts and assemblies in context and simultaneously.  History-free design systems provide a very natural environment for top-down or in-context design. No special functionality or workarounds need to exist.  It’s like working on your desk with physical parts.  In this environment an assembly is just a structure.  Parts and subassemblies can be placed into the assembly structure anytime.  Once in the structure, the owning assembly manages the positions and relationships of the parts and subassemblies.
Here is just a simple demonstration showing an example of in-context design using PTC CoCreate Modeling.  A few key points to watch for during the demo:
  • Creating multiple, unique parts in one modeling operation
  • Modifying multiple parts with one sketch and one modeling operation
  • Modifying multiple parts with many sketches in one operation
  • Modifying a part by referencing geometry from another part
  • Moving multiple parts while modifying a part, in one operation, without constraints
  • Manipulating assemblies and parts in one environment
This demo seems so simple and trivial to me, but I can’t figure out how to do the same with any of the history-based systems I've been using. Can it be done? I know that with some of the history-based tools you can create multi-body parts, and then extract one of those bodies as a part, but the resulting part turns into a dumb solid with no history.  Can history-based in-context design really be that difficult? I guess so.

1 comment:

al dean said...


Nice post - the comments about multi-body parts being externalised into dumb geometry is kind of innaccurate, as you'd have a single part file, which controls the form, then individual parts which are then derived from each body.. I guess it's the same of old thing. Each system has its strong points and weak points. CoCreate excels at this sort of work. But when it comes to editing more complex geometry, I seem to remember that it has one hell of a rough time when you try to edit sweeps and such..

If only all this, where in one system ;)

Al Dean