Reverse engineering a cockpit, lessons learned.

The 3d model of the cockpit I was working on is now complete and I want to list some do’s and don’ts which may come in handy if you have a similar project. I will write another blog about the complete high res – low res workflow some time later.

First off, if you have access to a high resolution 3d scanner, use that to make a scan of each individual part. Use the scan as an overlay (reference) to model the parts in 3ds Max (or any other non-parametric modeller). Make another overview scan at a lower resolution which is just used to position the parts relative to each other. This process will be quicker than measuring everything by hand and re-modelling it in Inventor like I did. The downside is that these scanners are incredibly expensive, ranging from 30k to 150k USD.

That being said, here are some things to keep in mind when you do need to reverse engineer something in Inventor.

-Use a variety of measuring tools. You will need at least a:

  • Calliper
  • Tape measure
  • Ruler
  • Angle gauge

-Take photos of the object, print them out, and take notes on that, instead of making manual sketches.

-Make sure you have unrestricted access to the object you are working on, as you are likely need to re-measure things which don’t add up. If you have only one day, you have no choice but to use a 3d scanner.

-Don’t measure everything first and then start to model afterwards. Instead, measure some parts, model it, assemble them together, and then repeat this process. This is because some measurements are inevitably wrong or forgotten. You don’t want a small change affect the entire part because even if the design is parametric, changing something often causes errors.

-You cannot see the mesh model (triangles) in Inventor, so when modelling, think about what geometry will be created. You can import the ipt or iam file into 3ds Max at any time to see what it looks like once triangulated.

For example, if you model a cylinder on top of a square shape, you generally do not want to extrude the cylinder out of the square surface. This is because the square surface will receive additional polygons wrapping around the cylinder. Instead, create the square and cylinder as separate parts and assemble them together. Or model them in a single part but insert a Split feature at the base.

Note that if you use the split feature, it will create multiple solid bodies or surfaces. These will be imported into 3ds Max as separate objects/nodes. If you want to save draw calls in a real time renderer, you need to attach those separate objects together so they are a single object again.

Also note that if you split an object in Inventor, it creates additional surfaces at the split. Some of them will be out of view and you need to delete those surfaces using the Delete Face feature in Inventor.

Here is an example of the workflow to reduce polygons by splitting an object in Inventor. Let’s have a look at this object:

cylinder inventor

It looks fine, but if it is imported into 3ds Max and the wireframe view is turned on, it looks like this. Note the additional polygons at the square base.

cylinder 3ds max

Back in Inventor, split the part at the base:

cylinder split solid

Now it looks like this in 3ds Max. There are still unnecessary polygons at the base of the cylinder.

cylinder split wireframe

In Inventor, delete the face at the bottom of the cylinder. Note that you can select a face hidden behind other geometry by hovering the mouse over the hidden face for a while. This will give you a dropdown list where you can select the hidden face. After deleting this face, it looks like this in Inventor. It basically looks the same.

cylinder split solid delete face

But if the part is imported into 3ds Max, it looks like this. Note that the redundant polygons at the base of the cylinder are removed:

cylinder split delete wireframe

Now the square and the cylinder can be attached together to make it a single part again.

-Think about the level of detail you want to model right from the start. You can model all surface details in the geometry as most of that can be baked into textures, but adding these details afterwards can be a source of trouble.

Here is an example of a part with all surface detail modelled in.

knob inventor

The wireframe looks like this. Note the excessive amount of triangles:

knob wireframe high

However, all surface detail can be removed in Inventor by simply deleting those features (using a duplicate project). Now the wireframe looks like this:

knob wireframe

The high detail mesh can be baked into a normal map, which looks like this:

knob normal

When the normal map is applied to the low poly object, it looks nearly identical to the original, but it is much faster to render.

knob shaded

-If you want to model all surface details, make sure you model it in such a way that it can be easily removed from the hierarchy. For example, bending a part using the Bend feature is a bad idea because this will create geometry at the rounded sides which cannot be removed. Instead, make a straight angle and add fillets to “simulate” the bend. The fillets can be removed from the hierarchy, allowing you to create a high and a low res model, which is required for baking into a texture. Also, avoid putting fillets in a sketch as it is easier to delete a fillet feature from the hierarchy then it is to modify it in a sketch.

Here is part with a Bend feature:

bend

This is the same part but now the bend is modelled using fillets, which can be easily deleted and replaced with a normal map:

bend fillet

-If you are making the model for realtime rendering then don’t model geometry you can’t see.

-Cumulative measurement errors are an issue. If you have 10 objects stacked together, measure the total distance to crosscheck any individual part measurements.

-Related to cumulative errors, don’t measure any angles unless the distance it effects is no longer then 20 or 30 cm. Never use compounded angles as this makes it even worse. A small angle error will cause a large displacement of geometry if the distance is large. If you do need to work with angles, measure distances instead and derive the angles from that.

-Assemble individual parts together from the top down. Assembling a large amount of parts using parent-child constrains are unlikely to fit together with a tight tolerance. Again, cumulative errors are the issue here.

-Organic shapes are very hard or impossible to measure and/or to model in Inventor. You can use the freeform modeller but this requires a skill on its own. You can use photogrammetry (Agisoft PhotoScan) as a reference if you don’t have access to a 3d scanner, but the results will vary.

-If an object needs to be animated, think about where the pivot point should be. The pivot point is the part origin (center point).

-Delete faces on the low poly model in Inventor, not in 3ds Max, because it can be done much faster in Inventor (and easily undone since it is feature based).

-Use G2 fillets where possible, as these have smoother shading than G1 fillets.

-Do not use the default material on everything. Give each part its appropriate material because this makes the texturing process much easier. If you have 2 materials which are the same color but should have a different normal detail map (such as a leather surface and a smooth surface with the same color), give them each a slightly different color. This is done so that the different materials can be easily identified during the texturing process.

-Do not be shy of using multiple materials on a single part. These can be easily baked into an ID map which can be used to reconstruct complex materials in 3ds Max or any other modelling program.

-Model text on surfaces by using the Emboss feature with a very small depth. Do this only for non-flat surfaces, as you have to apply a material for each letter individually. It is faster to add text or other decals as a regular texture in 3ds Max.

That’s pretty much it. Let me know in the comments if you have any other suggestions.