MathOverflow will be down for maintenance for approximately 3 hours, starting Monday evening (06/24/2013) at approximately 9:00 PM Eastern time (UTC-4).
0

I'm making a program to view 3D CAD models and would like to build in automated exploded views. All the assemblies that will be viewed are axi-symmetric. Some may not be, but the majority are. I'd like to figure out an algorithm for automatically moving parts in an assembly into an exploded view position. Here is an example of what I want to achieve through an algorithm (Sorry, don't have enough reputation to embed images):

http://i1238.photobucket.com/albums/ff487/davidohyer/exploded.jpg?t=1301331812

The only value I have to work with is the center of the bounding box of each part. If more information than that is needed, I can calculate more information, but it seems like it should be sufficient. The rough approach I have in mind is to calculate a vector from the origin of the assembly to the center of each part along the axi-symmetric axis, then calculate a radial vector to the center of the part with respect to the center axis. From there, I'd need to figure out some calculation that would be able to scale the position of each part along some combination of those two vectors. That's the part where I'm not quite sure what direction to go with this. The image I've included shows the exact functionality I'd like, but I want to be able to scale the position by any float value to expand or contract the exploded view, with 1.0 being the original assembled model. Any ideas?

flag
2 
This question does not seem on-topic to this site. As the FAQ explains, this site is devoted to math research questions. I don't know where to redirect you to, sadly... – Mariano Suárez-Alvarez Mar 28 2011 at 17:57
I figured this would fit here since it is dealing with the mathematical aspect of an exploded view. One paper that is along the lines of where I'm headed is here: vis.berkeley.edu/papers/exview3D/… – Davido Mar 28 2011 at 18:12
Perhaps the Graphic Design forum is appropriate? graphicdesign.stackexchange.com/faq – Ryan Budney Mar 28 2011 at 20:17
It seems that complex interlocking (think of Burr puzzles research.ibm.com/BurrPuzzles/…) will present challenges to any general algorithm. The SIG08 paper to which you link employs reasonable heuristics. Unless you abstract out a cleanly defined special case, this is not a question of mathematics, but rather a question of selecting heuristics appropriate for your circumstances. – Joseph O'Rourke Mar 28 2011 at 21:02
@Ryan: I tried out the graphicdesign page, and it seems that it is only for graphic artists, they don't like technical questions over there. @Joseph: That seems like it might be a good place to look. I'll check it out. Thanks. – Davido Mar 28 2011 at 22:13

closed as off topic by Andrew Stacey, Mariano Suárez-Alvarez, Ryan Budney, Andy Putman, S. Carnahan Mar 31 2011 at 4:10

1 Answer

0

The question is not proper for MathOverflow; you will probably do well to search USENET groups and other group forums that have groups specific to CAD software users; one of them might lead you to a CAD software designer who can help. Nevertheless, you might find the following suggestions useful.

First approximate the exploded assembly by a tree. Ideally, there will be very few branches and each branch will be orthogonal to the main trunk (your axi-symmetric axis if I interpret correctly). You will need to find the perspective which gets you an appropriate view of all branches, and you will need to "eyeball" the result; I doubt that there will be any algorithm for the general problem but there might be something for say four or fewer branches that you can automate. Note that this will determine your scale coefficients for some parts, and you may have to adjust them manually depending on part count and on size of paper. (Hopefully, you will have two or fewer levels of branching.)

Once you have branch placement, then you can do whatever degree of spacing is needed to give, say, 90% or more of each bounding box visible (not hidden by other boxes) from the given perspective. Even so, some positions will need to be manually tweaked for emphasis. I suspect the general problem is like that of paragraph alignment in mathematical typesetting: there are general heursitics for lining things up on a page, but most who care about the placement are glad for the tools that allow final tweaking and adjusting of some of the fonts (images) on the page. You will probably find it desirable to have a heuristic for rough placement, and be grateful for whatever tools allow for fine adjustment.

Gerhard "Ask Me About System Design" Paseman, 2011.03.28

link|flag

Not the answer you're looking for? Browse other questions tagged or ask your own question.