-
-
Notifications
You must be signed in to change notification settings - Fork 37
Mechanical engineering standards
This is the landing page for all notes on how we do our mechanical engineering. This is mostly about best practices, but will also contain links to how-to guides and other resources.
We do all of our 3d modelling and drawings in Autodesk Inventor. If you intend to produce or review any of this content, you should install Inventor and configure it according to our standards. Contact the team for a license.
Please go to the RespiraWorks inventor-config repository and follow the steps described therein.
Please also read the wiki that accompanies that repository for additional advice on configuring and using Inventor: Inventor how-to wiki.
When you are done you should come back and read the rest of this page.
We run our mechanical design a lot more like a software project. The source of truth determining all design is the 3d model. In other engineering settings drawings may be king. However, in terms of information, the drawings are only a derivation, expression or projection of a much richer set of design data contained in the 3d model. Therefore, we firstly focus on making these models as robust, informative and extensible as possible. If they are done right, creating and maintaining drawings becomes much easier as well.
Written documentation is also an integral part of the physical design. Every custom part or assembly should have a document explaining the reasoning behind the design, a summary of its history and instructions for manufacturing and integration.
We work in metric (ISO). All our parts, custom components, drawings etc. must be created in/updated to metric units. If you followed the software configuration steps above, you should already have metric set as default for all new parts you create.
If you find non-compliant files, please fix them.
Exceptions are possible, for example - tubing and pipe fittings. In such cases, try to create a variable with an assigned variable of explicit non-metric units, and then use this variable throught your models. This ensures conversion at one point only.
We parameterize all our models as a best practice. While direct modeling may be quick and easy, parametric modeling will allow multiple users working on the same files to easily keep track of changes. This is also in keeping with our philosophy of being open-source. We want anybody to be able to not only freely access our models but also easily understand them and modify them to meet their local needs or manufacturing constraints.
- Name all sketches, features, bodies, reference planes in your model, so they can be easily identified in the hierarchy
- When you finish or update a sketch, make sure all the constraints are named
- Never repeat a numeric value in multiple constraints - if you notice this, you probably need to create a
User Parameter
and then assign that as a value for those constraints that use it - Using
User Parameters
can also help isolate the salient values and make them easier to find, especially in more complex models. Much better than having to hunt for the one important value among many variables in many sketches. - Use
global_params.ipt
. Things like commercially sourced material thickness, screw clearance diameters, etc.. should only be defined once in this file and then imported into the variety of models that use them. - Avoid using numeric values for constraints in general. There is some logical basis for why this is the value. See if it can be derived from some global constant.
- Sometimes derived geometry will affect other parts in the assembly. Use reference sketches and reference constraints to isolate these values and then link them in the other models. This is a very clean way to do it without projections when important values are few.
- For complex shared geometries, use projections and model new parts in assemblies.
Name variables such that they are easy to understand for a person looking at the model for the first time. A good idea is to name them partname_featurename. Since variable names cannot have spaces, use underscore.
Wherever possible, use the 'Hole' tool under the '3D Model' tab to create your hole cutouts. It will greatly simplify the documentation process when creating the 2D drawings by giving you a quick way of creating a 'Hole Table' which gives locations, sizes, depth (and more!) of all holes in the part. This only works with holes created by the 'Hole' tool. The same goes for other features like fillets, chamfers etc. - do similar ones in bulk.
When creating assemblies with for example mounting hardware - use associative patterns. This will help you avoid having to import variables or make additional projections or, worse, place assemblies manually.
Say there is an underlying part with mounting holes. Make sure you have created those holes as follows:
- create a sketch with points only to identify the intended hole locations
- create a hole at one of the locations in the intended pattern
- create a sketch-driven pattern that repeats the one hole using the sketch
If you created the holes as described above, an assembly will allow you to repeat a bolt-nut-washer stack to follow the sketch driven pattern in the underlying part.
Assign correct material properties in the Quick Access Toolbar to allow for renderings to be displayed faithfully. If you followed the software configuration steps above, you may also have custom appearances available to you which conform to the RespiraWorks branding color schemes.
Use short and easily understandable names. Do not include too many technical specifications in the filename or assembly model tree like PHILLIPS BUTTON HEAD SCREW_M2 x 0.4 x 12mm LONG_AISI 18-8 SS v4.ipt
.
For the file name, use just enough information to differentiate the part from similar ones that would be found in this project, not in the entire universe. For example, since all our screws are likely hex-drive, a simple name like m2_12mm_button.ipt
would suffice. Please also note the file naming guidelines outlined in the general documentation guidelines. Supply any further technical information about the part in the iProperties
metadata of the part file.
Once you add this part to the assembly tree, you should rename it according to its function, for example acrylic panel mounting screws
. Use assembly patterns and group logically related parts into folders whenever possible.
Also be sure to update READMEs whenever you add/change parts.
Whenever you import a CAD model from a 3rd party, try to follow these steps:
- rename the original downloaded file to follow our naming conventions before you import it into Inventor. This will make less work for you to correct ALL_CAPS and other junk after the fact
- once the part is imported, clean up the names in the model tree to use regular spaces and more verbose human-friendly language, provide descriptive names for bodies and surfaces if any
- delete the embedded import metadata
html
from the model tree - configure the part material to something realistic if possible
- configure part appearance to something aesthetically realistic and pleasing
- in the
iProperties
, go through all the tabs and make sure:- your name is not in there if you are not the author
- part name is descriptive
- URL points to supplier page for part, or else - to page where model originated
- price is there, if appropriate
- no other junk and custom data is included
All drawings should be made on one of the ISO standard sizes. If you followed the software configuration steps above, all appropriate templates should be available to you.
You will need to edit the title block when you are creating your drawings to reflect your name, the part title and other such details.
- Select your current document in the model tree on the left-hand pane (the highest item in the tree) and right click.
- Select
iProperties
from the contextual menu - You will find the different elements under the different tabs -
Summary
,Project
etc. - You can even navigate to the folder above and open the template that you want to edit. Make changes in that file (e.g. your name), to see these reflected across all your drawings.
Some other points to be noted for drawings:
- The 'Revision History' table reflects the latest changes and edits to the document. Keep this updated so that the individuals working on that file next can get a quick idea about the latest updates and the state of the document. Revision histories are order alphabetically - with '0' being the creation and '1', '2'... being the subsequent edits.
- In the Title block, the 'TITLE' only reflects the name of the part and must not be confused with the 'DWG. NO.' which automatically references the name of the file.
- Label your 'Base View' at the minimum.
- Include assembled and exploded views in your assembly drawings along with a parts list.
If a custom part is meant for manufacturing, it will have a number of exported files, such as drawings, step files for 3d printing, for laser cutting and possibly renderings and illustrations of the final product. If a custom part has any of these "outputs" it is probably a good idea to make them available to the public. This is particularly important because we cannot expect everyone to have access to a licensed copy of Inventor.
Try to keep to these principles:
- Keep the file names the same, have them differ only by extension (type), for example
oxygen_manifold.ipt
andoxygen_manifold.iam
for part and its immediate sub-assembly, except:- Have an appended
_rendering.jpg
for renderings - Have an appended
_printed.jpg
for photo of manufactured item
- Have an appended
- when exporting to
stl
for 3d printing, make sure resolution is set tohigh
and units aremillimeters
- when exporting to
step
(e.g. for sheet metal manufacturing) , chose the following options:- Application protocol =
214 - Automotive design
- Spline fit accuracy = 0.010mm
- Include Sketches = yes
- Application protocol =
- to make a
dxf
export for flat cut parts, right-click a surface in the 3d model and thenExport face as...
- Resize renderings and prefer
jpg
overpng
. See further graphics standards in our Documentation style guide. - Put renderings and screenshots (even of drawings) into an
images
sub-folder next to the CAD files - All manufacturing exports (DXF, STL, STEP, drawing PDFs) should go into one of the
Output files
folders associated with the current version being worked on under the Manufacturing folder on our Google Drive. See more boilerplate links below. - If you ever modify the CAD model, make sure to update all the "exports".
We are currently working on v0.4. If you need to link to the manufacturing outputs, you can just copy-paste some of these lines into your README.md
where appropriate:
Recently exported files for manufacturing can be found on our Google Drive at
[Manufacturing/Output files v0.4](https://tinyurl.com/y4t5tz9f).
Recently exported files for sheet metal components can be found on our Google Drive at
[Manufacturing/Output files v0.4/Sheet metal](https://tinyurl.com/2p89pjja).
Recently exported files for PCB manufacture can be found on our Google Drive at
[Manufacturing/Output files v0.4/PCB](https://tinyurl.com/2p8af3fm).
Recently exported drawings for wiring harnesses can be found on our Google Drive at
[Manufacturing/Output files v0.4/Wiring](https://tinyurl.com/3rcj85m9).
Recently exported files for making gaskets can be found on our Google Drive at
[Manufacturing/Output files v0.4/Gaskets](https://tinyurl.com/yc8cx38z).
Recently exported files for cutting acrylic can be found on our Google Drive at
[Manufacturing/Output files v0.4/Acrylic](https://tinyurl.com/4czevhxs).
Recently exported files for 3d printing can be found on our Google Drive at
[Manufacturing/Output files v0.4/3d printing](https://tinyurl.com/2kuwps9h).
Recently exported drawings for sub-assemblies can be found on our Google Drive at
[Manufacturing/Output files v0.4/Subassemblies](https://tinyurl.com/4d3s7zmw).
Recently exported files for custom test equipment manufacturing can be found on our Google Drive at
[Manufacturing/Output - testing equipment](https://tinyurl.com/bdfnnznf).
Whenever you update a part or sub-assembly, you should also update the most proximate documentation. The original CAD file and all exported views, drawings and step files should be updated and linked from the nearest README.md
. All content should be discoverable via links and not only by crawling the repository directories.
A sub-assembly page should contain the following:
- the reasoning for the design - the fundamental reasons and motivations for why a design is the way it is
- summary of design history, of significant changes
- If multiple CAD files are around, explain how they are interrelated
- Explanation of any nuances in constraint/parameter manipulation for customizing the part
- link to derived step files and possibly 3d-printer files with scaffolding
- a bill of materials needed to produce the component, with links, prices and descriptions
- a list of specialized tools that may be needed in the production process
- fabrication process and common problems to watch out for
- any 3d printing advice, such as required tapping/chasing of threads
- tentative plans or implications for fabrication at scale
- links to characterization tests and data
- links to software that interfaces with component
- links to any validation tests that are available to evaluate individual assemblies
- notes on problems and/or planned improvements, links to tickets
Please become familiar with existing pages to pick up examples of what it should contain and how it should look.
Some of the above may not yet be done for all components. Please help us fill this information out.
All mechanical design content should be visible here, which should also easily lead you to some documentation on the design principles. If you have already cloned the repository to your PC, all the relevant files should also be accessible locally.
Go back to the main wiki and make sure you are familiar with our workflow and collaboration practices.