[Open Manufacturing] Constraints in CAD

3 views
Skip to first unread message

Bryan Bishop

unread,
Apr 6, 2009, 12:34:15 PM4/6/09
to Charles Collis, Bryan Bishop, Smári McCarthy, Open Manufacturing
Hey Charles, (for those on OM, this was originally written to Charles
Collis, but it should really be posted to OM)

I was talking with Smári this morning. I've been putting some work
into SKDB. I'll jump right to the chase. I'm wondering about
constraints in CAD for assemblies of different parts. There are two
main types of constraints that I can imagine. (1) geometrical and
tolerancing constraints such as parallelism, perpendicularity, angles,
or algebraic expressions relating to other surfaces, faces, basic
shapes in a CAD file, which parametric CAD apps are fairly good at
allowing you to mess with, both CSG and Brep types; (2) a type of
constraint that I call "physical quantities" which would be like
attached to a surface and be "20 kg s-1 m-2 plus or minus some sigma"
(read as 20 kg 1/sec 1/m^2). Imagine a part file that consists of a
plate with a 10-by-10 array of holes (ports) into some amorphous
machine for the sake of an example. Each of these ports has a radius
and a geometrical shape, maybe some have a helical threading inside,
others have super weird geometry, but the majority are straight
drill-through holes. Now, attached to each of these holes is
information regarding "what comes out". Some spit out water, some spit
out hydrofluoric acid, others push out teddy bears; all of these have
a certain rate, and this is where the "physical quantities"
information comes in. Anything that connects to any given port must
not display geometrical interference (checked via a collision
detection algorithm when the two surfaces of the two parts are set to
each other), and anything that connects to any given port must "be
able to handle"- or, rather, "know" about the output coming out from
that other port. For instance, something made for a 20 psi flow should
*not* be connected to something that is going to be giving 3000 psi of
a flow. There are other types of constraints though to consider in
terms of physical quantities- what about making sure that material
going through an input/output port pair is of a certain type? Maybe
using CAS IDs, one of the web-accessible indices of chemical
compounds. It is entirely imagineable that there are other types of
constraints that are not related to the chemical structure of the
materials being transferred in and out of the ports-- so what might
end up happening is that there will be evaluation modules that are
made to evaluate specific types of constraints, and then the metadata
for a part is tagged with that information (which the evaluator will
read over to decide whether or not a constraint is satisfied for a
given connection).

What this looks like is a simple data structure that would consist of
tracking (1) the name of the evaluator to be used for the type of
constraint (for instance, "physical quantities" would do basic
dimensional analysis (plus tolerancing if we go submit it to their
code base)), (2) the string expression that contains the actual
constraint- and this can be anything since the evaluators can
basically read anything that they want to parse, and (3) some way of
attaching it to a specific part of the part model (surface, region,
face, vertex, edge, volume within the bounding box, ..). These
"attachment packages" for part models remind me of packages from the
mail that come with styrofoam shaped to the contours of a product, or
how ear plugs don't exactly have to match the contours of an ear
entirely, so when you imagine some object in a human ear canal, that
would be a 'tagged volume' or something, which would have this
attachment or this 'simple data structure' described in this
paragraph.

But I still wonder if that's enough to be able to capture all possible
types of constraints that are important in CAD systems. It's possible
that I am missing something due to inexperience with CAD. So, what
type of constraints do you expect to be able to apply to objects in
CAD systems? Anyone? Anything that breaks this model, or something
that you can't tell whether or not it breaks this model? I'd like to
hear.

Another topic that I have been reading about and working on for the
past few days is a search metric for shape similarity in CAD
databases. There is a method known as a Reeb graph which basically
splits a model up into regions of a thresholded value of a sum of
geodesic distances from each point to all other points (assigned to
that point)- the regions are defined by some value 'p' which
thresholds the geodesic distances, and then for contiguous regions of
similarly valued/thresholded reseults of the sums of geodesic
distances at the vertices, these become 'faces' and then edges between
faces become "nodes" in the Reeb graph. Then, the resolution of this
can be changed of course; and attaching this to the metadata would
allow a quick way to search through a database for shape similarity.
Taking the cut of a CAD part in a block would then produce the shape
that a compatible port interface would have to look like- so it would
be possible to search for "things that it looks like this part would
be able to interface with", and get a similarity metric as a result.
The papers on Reeb graphs or (nearly) anything by Regli below talk
about these methods. Really interesting, although volumetric plus "do
two parts physically intersect when two labeled surfaces are in
contact with each other" might be sufficient for checking part mating.
I'm still not entirely sure how Solidworks does its part mating- all
I've had to do is select surfaces for mating and it somehow assembles
them automatically, but surely there's a catch behind their algorithms
(it probably gets annoying when you have thousands of parts).

I have been keeping track of different ways of talking about mating
conditions and port interfacing, compatibility, interoperability,
since it doesn't seem like the literature is entirely decided on how
to speak of these issues. Also, below I have assembled a brief
bibliography/paper-collection of stuff from the literature that has
worked on this, sort of.

http://heybryan.org/mediawiki/index.php/Part_mating

Port-compatibility and connectability based assembly design (esp. pg 4)
http://heybryan.org/books/papers/Port-compatibility%20and%20connectability%20based%20assembly%20design.pdf

Bibliography of literature related to tolerancing
http://heybryan.org/books/papers/Bibliography%20of%20literature%20related%20to%20tolerances.pdf

Determining interference between parts in CAD STEP files for automatic
assembly planning
http://heybryan.org/books/papers/Determining%20interference%20between%20parts%20in%20CAD%20STEP%20files%20for%20automatic%20assembly%20planning.pdf

A method for the automatic identification of contacts in assemblies of
cylindrical parts
http://heybryan.org/books/papers/A%20method%20for%20the%20automatic%20identification%20of%20contacts%20in%20assemblies%20of%20cylindrical%20parts.pdf

Assembly-part automatic positioning using high-level entities of mating features
http://heybryan.org/books/papers/Assembly-part%20automatic%20positioning%20using%20high-level%20entities%20of%20mating%20features.pdf

Web-based modular interface geometries with constraints in assembly models
http://heybryan.org/books/papers/Web-based%20modular%20interface%20geometries%20with%20constraints%20in%20assembly%20models%20-%20products%20interface%20geometries%20table.pdf

Automatic generation of assembly instructions using STEP
http://heybryan.org/books/papers/Automatic%20generation%20of%20assembly%20instructions%20using%20STEP.pdf

Review - 3D shape searching methods and computational costs - 2005
http://heybryan.org/books/papers/Review%20-%203D%20shape%20searching%20methods%20and%20computational%20costs%20-%202005.pdf

Pattern recognition of 3D CAD objects - towards an electronic yellow
pages of mechanical parts
http://heybryan.org/books/papers/Pattern%20recognition%20of%203D%20CAD%20objects%20-%20towards%20an%20electronic%20yellow%20pages%20of%20mechanical%20parts.pdf

Scale-space representation of 3D models and topological matching
http://heybryan.org/books/papers/Scale-space%20representation%20of%203D%20models%20and%20topological%20matching%20-%20Dmitriy%20Bespalov.pdf

A novel means of generating assembly sequences using the connector concept
http://heybryan.org/books/papers/A%20novel%20means%20of%20generating%20assembly%20sequences%20using%20the%20connector%20concept.pdf

Geometric reasoning about assembly tools
http://heybryan.org/books/papers/Geometric%20reasoning%20about%20assembly%20tools.pdf

The analysis of potential mating trajectories and grasp sites
http://heybryan.org/books/papers/The%20analysis%20of%20potential%20mating%20trajectories%20and%20grasp%20sites%20-%201993.pdf

An interconnect-centric design flow for nanometer technologies
http://heybryan.org/books/papers/An%20interconnect-centric%20design%20flow%20for%20nanometer%20technologies.pdf

Survey of Automated Feature Recognition Techniques (Regli)
http://heybryan.org/books/papers/Survey%20of%20Automated%20Feature%20Recognition%20Techniques%20-%20Regli.pdf

Using assembly representations to enable evolutionary design of Lego
structures (Regli)
http://heybryan.org/books/papers/Using%20assembly%20representations%20to%20enable%20evolutionary%20design%20of%20Lego%20structures%20-%20Regli.pdf

Topology matching for fully automatic similarity estimation of 3D shapes
http://heybryan.org/books/papers/Topology%20matching%20for%20fully%20automatic%20similarity%20estimation%20of%203D%20shapes.pdf

Reeb graph based shape retrieval for CAD
http://heybryan.org/books/papers/Reeb%20graph%20based%20shape%20retrieval%20for%20CAD.pdf

Augmented Reeb graphs for content-based retrieval of 3D mesh models
http://heybryan.org/books/papers/Augmented%20Reeb%20graphs%20for%20content-based%20retrieval%20of%203D%20mesh%20models%20-%202004.pdf

A systems approach to structural topology optimization - designing
optimal connections (de novo- not useful for matching)
http://heybryan.org/books/papers/A%20systems%20approach%20to%20structural%20topology%20optimization%20-%20designing%20optimal%20connections.pdf

Evolutionary structural optimization for connection topology design of
multi-component systems (de novo- not useful for matching)
http://heybryan.org/books/papers/Evolutionary%20structural%20optimization%20for%20connection%20topology%20design%20of%20multi-component%20systems.pdf

Btw, can anyone help me track down this paper? "An assembly
recognition algorithm for automatic tolerancing." It was in
Transactions of NAMRI/SME, authored by Eyada and Ong, 1991. Not sure
how useful it is, but it does sound interesting.

- Bryan
http://heybryan.org/
1 512 203 0507

Reply all
Reply to author
Forward
0 new messages