Notes and Ideas
features move between parts and assemblies
able to make references and/or condense references from a feature and apply to other features
able to make assembly constraints become design constraints i.e. to drive geometry
references can be copied and or referred to at the part level as well as the assembly level (i.e. skeletons for parts)
geometry engine - all internal representations stored as exact numbers - rational numbers for the most part (and for ALL user entered values). derived numbers are stored as exact real numbers, rational or irrational (e.g. pi and sqrt(2)). use a CAS here? the numbers are expanded/computed to float/double when necessary (such as for display or to calculate mass properties).
UI -> GUI <-> Geometry Display -> Geometry Engine <- Modules (better name needed) <-> UI
"Modules" is no good... something like "features" or "operations"?
Certain parameters should NOT have default values, they should instead be "undefined" or "not specified." e.g. density, modulus, units, surface rougness
REQUIRED: extremely reliable dependency checking. A DAG structure appears to be ideal for a Dependency Graph.
REQUIRED: extremely FAST regeneration (ties in to dependency checking, 'cause you don't need to regen what hasn't changed)
Any circular references need to be FLAGGED IMMEDIATELY at creation, and specified CLEARLY, and before any changes are finalized
features can be stored seperately, sort of like Pro/Engineer "skeleton" parts
parts and assemblies can have several states
special handling for different states, e.g. "read only" or "warn on change", external references allowed or no references allowed
checking/analysis includes concepts such as "minimum part thickness"
entities retain references to how they were constructed and retain history/references to other entities used in construction
"released" part and assembly dimensions are converted to "nominal" values (i.e. no longer exact numbers) according to drawing dimension scheme
robust pattern generation, not exclusively for hole patterns, but also for tiles and other patterns
can be based on a sketch of holes
might be based off of an array of points
some sort of "universal" import/export needed (STEP, IGES, DXF?)
the ability to merge parts with similar features, so a pair of parts based on the same part can be reconciled and features copied to/from each other
Dimensions and Constraints
during design, constraints drive the geometry and dimensions take up the slack
during release, constraints are frozen/no longer appear at the part level, and the part is driven entirely from dimensions
snap to dimension values such as 1/8 inch or .01mm. apply at release?
sketcher can be 2d and 3d
similar to CADDS explicit mode
need checks for open/closed boundaries
checks for self-intersections