Design and Manufacturing solutions through Digital Prototyping and Interoperability

Tag Archives: Inventor

5 Inventor Sketching Tips You Need to Know Right Now!

At this year’s Autodesk University I was fortunate to have the opportunity to present three Inventor classes. All three were well attended and had lively discussion. It was a blast! For the second year in a row I presented a class on sketching within Inventor. I presented a collection of tips and tricks that I have learned and gained from others over the years. Since sketching is such an integral part of parametric modeling, even the slightest in time savers can pay big dividends.

MD4857 – Sketching with Autodesk Inventor

Sketching is the basis of any model. In this class we will explore sketching within Inventor software, and we’ll give you the timesaving tips and tricks to make you more productive. This includes the timesaving tools introduced with the 2015 release of Inventor software, including Relax Mode and the new onscreen right-click tools. Come to this class to learn the skills you need to build a rock-solid foundation for your models.

Where did I gather all of this sketching information? Firstly, from my 14+ years of using Inventor, I have collected a lot of tips-and-tricks regarding sketching; some from using the software and many from other users. Unfortunately I have forgotten many of the sources of these tips and tricks but there are some great places to get information on Inventor, not just sketching

The old saying is “it’s not what you know, it’s who you know”, but with Inventor it’s really both. I’m always on the lookout for any time saving steps that will reduce the time to get things done within Inventor or will build stronger, better models. Here are some of my recent favorites:

This is the first of a two part series. The second part will be featured on Paul Munford’s CAD Setter Out site, so keep an eye out for that.

What does Inventor’s help says about sketching… The Inventor Sketch environment consists of a sketch plane (where the sketch is located) and sketch commands. You create edit, constrain, and dimension sketches only when the sketch environment is active. With the sketch command selected, you can specify a planar face, work plane, or sketch curve as the sketch plane

Creating and Working with Sketch Planes

TIP: You can create an offset Workplane while defining the sketch plane. You can generate an offset workplane with a sketch on it in one step by dragging off the desired face with the create sketch command active

Inventor - Offset Workplane While Defining Sketch

TIP: Sketches can be used to define Work Features. Sketch geometry, especially lines can provide an easier method for creating difficult to locate work features. For an example look at Ben Curtin’s example Inventor Holes at a Compound Angle on the Tata CAD Geek Speak blog

TIP: Slice Graphics. Autodesk Inventor Help Definition: “Sometimes geometry obscures your sketch plane, or other components in a part model hide it. When the sketch tool is active, use the context menu option Slice Graphics to slice away temporarily the portion of the model that obscures the plane.” When the model is in the way on your sketching Slice Graphics removes everything between you and the sketch plane. You can initiate Slice Graphics when the editing a sketch via the right-click menu or by using F7. If by chance the model is sliced in the wrong direction, turn off the slice graphics, rotate the model, and try slice graphics again.

Inventor - Slice GraphicsTIP: Project Cut Edges. Use Project Cut Edges to associatively projects edges of the model that intersect with the sketching plane. Think of it as the edges of a section view and your sketch is the section line.

TIP: Project Flat Pattern. Autodesk Inventor Help Definition: “Unfolds a disjointed face or faces into the sketch plane.” Project Flat Pattern is great for the situations where you don’t need the overhead and advanced options of the Sheet Metal Unfold / Refold features, just wanting to reference existing geometry edges

Inventor - Project Flat PatternSee the tips live in action!

Feature Image “Sketching with Reshma” by Juhan Sonin courtesy of Flickr

iParts / iAssemblies be gone! Well almost…

I hate iParts and iAssemblies. There, I said it. I’ve never really liked them, and I don’t think I ever will. The difficulties they cause with Vault are my primary issue, and I’ve usually just “found another way” to avoid dealing with them. I do however, love iLogic, and it’s introduction to Inventor provided a breath of fresh air for configurable components and assemblies. A relatively under-utilized, and frequently misunderstood feature in Inventor is the “Place iLogic Component” command. At this point you may be thinking “I don’t want to use iLogic, that’s all about code and stuff.” Well actually, this command doesn’t necessarily require any code to be written at all. You can think of it as “Place” and “Save Copy As” rolled into one command. It allows you to insert a unique component in an assembly and configure it’s options as you go. If you’re familiar with placing custom components from Content Center, it works in a similar way, but doesn’t require authoring in the same way, and is much more flexible. The really handy thing is, if you use it on an assembly, it will create copies of all the children as well, and fix up the references for you.

To demonstrate, I will first provide an example, with no coding required, that just allows you to place a part with size options. For a second example, I’ll use a component with a little bit of code, to really extend it’s usefulness.

So first thing first, where is it? Just click the little drop-down under the “Place Command” and you’ll see it.

Place iLogic Component

 Place iLogic Component Command

The steps that you go through to use it are as follows:

  1. Click the “Place iLogic Component” button.
  2. Select the file that you want to use. It needs to have been configured to allow options to be set on placement. This can be as simple as a user parameter that can be edited.
  3. If you have already added assembly parameters that you want to use, you can set the iLogic component properties to match, using the drop-downs. If not, you can type in a number, or just place the component and then configure it later.
  4. Place the component in the graphics window. If you click multiple times, multiple instances of the same configuration will be placed.
  5. Restart the command to place other unique instances.

I have created a quick play-by-play of these steps using Autodesk Screencast:

Place iLogic Component Workflow

You’ll notice that I first created 3 parameters in the assembly, so that I could quickly assign the lengths to the components as I placed them. This is not compulsory, but can augment some skeletal modelling workflows really nicely.

Now for something slightly more interesting. You may remember my post on “Normalizing iLogic Assemblies.” In it, I touched on “Place iLogic Component” but didn’t really explain it well. The main point of that post was to explain the need for normalising component names. Here I want to focus more on the process of placement, and the flexibility that this command gives, as well as pointing out the “Preview” window.

Consider a plate that can be various widths and lengths, but the number of holes used to fix it, depend on the size. So if it’s less than 65mm long, it only has 4 corner holes, but if it’s over 65mm in length, then it gets additional holes in the center of the long edge. You could build this with an iPart table and conditional suppression, so let’s make it change colour too. This is just a silly example, but it’s here to demonstrate a point. So, we just put the following code into the plate part to watch the named parameters and update it to suit:

Now when we place using “Place iLogic Component,” the rules will run and configure the part based on the parameters we set in the placement process. As a bonus, the “Preview” window allows us to see what the component will look like, with the parameters we have assigned, before we even place it. Just remember to hit the ‘enter’ key after entering each parameter value.

Here it is in action:

I hope this may launch a heated debate in the comments below about the pros/cons of iParts/iAssemblies. The reason I say this, is that I have seen some really effective use of them, and I suspect that there may be some use cases where they are actually a better solution than iLogic, but I haven’t found these cases yet, and I want to!

Feature image credit: dmelchordiaz via photopin cc

Autodesk Inventor: Copy Items Between Sheets Easily

It is easy to create another standard view in Inventor drawings, but what about when the view has been detailed or you have a customized Parts List? You can easily copy Views and Parts Lists from sheet to sheet, complete with all the annotations associated.

Copy / Paste

  • Select the items to copy: Select from the Graphics Window or from the Browser.
  • Pick the Sheet header in the browser
  • Paste through the context menu: After picking the header, right-click -> and select Paste.

Autodesk Inventor Copy Paste View

Drag / Drop Between Sheets

Alternately, you can drag to copy the items.

  • Select the items to be copied: The same procedure applies from above
  • Pick / drag the selected items towards the browser
  • Drop into the view tree: This is the odd part. You need to drop the items down into the tree organization. Just pull you cursor down below where the Views are organized; you should notice the darkened line marker alerting you to where the items will be copied. When satisfied, release the mouse button.

Autodesk Inventor Drag Views to copy them between sheets

Autodesk Inventor Pasted views

In the example above notice the Parts List and views that were copied. All annotations were copied over with the views. In this example I’ve edited the parts list and balloons according the the sheet purpose after the copy was complete.

@%#&! Autodesk Vault just overwrote my file

Recover Overwritten Vault CAD FilesIf you’ve used Autodesk Vault at any time, then its highly likely you have downloaded a file you already have checked out and overwrote a chunk of your work. Unfortunately that’s just one of several scenarios, which can result in you losing your work. The real trick to preventing this of course, is to check your work into Vault every couple of hours (similar to continually saving within your CAD application). Nevertheless, there could be a number of reasons why checking in your work continuously isn’t feasible. I often hear the comment “I wish Vault had a recycle bin”, I’ve even murmured those words myself and you know what it’s a reasonable request. Why can’t Vault create an old version of the files it’s overwriting? Although its likely possible, it could get mighty confusing.

Just over a year ago, one of my staff downloaded a skeletal / master model from Vault while trying to work around a problem he had, the problem was he already had it checked out, but worse he hadn’t checked in the file for a couple of days. He had created components, built a main assembly and even produced a drawing. Needless to say overwriting his skeletal model with what was essentially a template file, was highly undesirable. Don’t judge him though, he’s new to this Autodesk Inventor / Vault game, all while dealing with a temperamental VPN connection & a new replicated Vault, so he’s been doing a grand job. All of my staff and myself have all made this mistake once or twice.

Autodesk Vault Inventor Project File Old Versions Setting

In the past the Inventor Old Versions folder has been our first port of call, depending on how your Inventor Project File is setup, these folders can be a gold mine during these arse puckering moments. The project file setting I am referring to is shown in the image above, I like to set Old Versions To Keep On Save to equal 5 on all Vault project files. Of course, this tactic is of no use to AutoCAD users, but it does have some of it’s own backup treasures which may or may not be useful within any given situation.

This time however, I’m glad he made the mistake, because it prompted me to ponder if some of the new Windows Explorer features in Windows 7 on wards would help out here. The particular feature which inspired me to Google for a solution, was the undo tool. In Windows 7 or 8 if you delete a file in a folder, then press Ctrl + Z, it will undo the delete command and restore the file. In this case the file had been overwritten by an application and not as a result of the user interacting directly with the folder. So I took a punt and searched for:

“Recovering an overwritten file”

The first search return took me to this site. Method 3 of 4 was a particular surprise, I couldn’t believe it, I’d seen this tab in the Windows 7 Property menu before but I’d never realized it’s impact. The command worked perfectly, the 2 days of lost work was returned thanks to this hidden gem. You can even open or copy the previous version to a different location if you aren’t confident it’s the right way to go. Be warned though, this isn’t a fail safe, but this is always worth a check in this situation. The best part though? This is handy for all Windows users, not just Vault users.

Windows 7 Restore Previous Version Tab

Then I went and took a look at Windows 8 to make sure this behaviour still existed, it turns out it doesn’t and this article explains why. Thankfully Microsoft just improved it out right, the only catch is you have to enable it and point it to a non system drive. Take a look at this well written article explaining how to do that. Another bit of good news is Windows 10 has maintained the same system as Windows 8, so we are looking good into the future. If you are the owner of your Autodesk software, then you could re-purpose your Autodesk USB installation media, to leverage this native Windows benefit.

These tools for Windows 7 & 8 are cracking little gems, lurking in the background, rarely used but invaluable all the same just waiting for the opportunity to shine and save your butt. The best part is they can be used on any file stored on your hard drive and not just those your use for CAD. Check them out and if you need to, enable it. With respect to the title of this post, I haven’t really shown you how to prevent it happening in the first place, I will do this in an upcoming post covering dialog and prompt suppression within Vault and it’s application add-ins.

Autodesk Inventor API: Assembly Document Hierarchy

We will look briefly at raw document references in this article, and then take a bit of time stepping into the Assembly Document container hierarchy in a follow up.

For the scope of this discussion, I will limit that object hierarchy as follows:

Document -> AssemblyDocument -> AssemblyComponentDefinition -> ComponentOccurences -> ComponentOccurence

and

ComponentOccurancesEnumerator

Assembly Components

This is what cleaned up my code tremendously. I am dividing into parts so that it is (hopefully) easier to digest.

Assembly Component Occurrences are all components in an assembly, which contain Occurrences, or each component. This section will discuss using these, and the functionality associated with extracting each portion.

Assembly Component Definition

The complete component container; similar to the CAD Bill of Materials (BOM), except that the actual BOM definition data is contained separately inside this structure.

Base Object Class: AssemblyDocument

Type: Standard Object

Object Definition: AssemblyComponentDefinition

Returned By: AssemblyDocument.ComponentDefinition Function

Access to the Assembly component structure is performed through this object. We need to declare an ‘AssemblyComponentDefinition’ object, and assign it with data from a call to the Assembly Document’s ‘ComponentDefinition’ function.

Example:

Enter

Now that the Assembly Component Definition is filled, it is time to do some digging.

Component Occurrences

As you might expect, these are the containers that each component document is present in.

If a part definition occurs 10 times in an assembly, there are 10 Component Occurrences, and all 10 will show up in this container. The benefit here is that skeleton and reference files are not part of the ‘Assembly Component Definition’ structure, so they don’t get in the way here.

Base Object Class: AssemblyComponentDefinition

Type: Collection Object

Object Definition: ComponentOccurrence

Referenced at: AssemblyComponentDefinition.Occurences

The Occurrences collection is the whole enchilada of Component Occurrences, which you can access directly.

Now we can declare a ‘ComponentOccurence’ object, and use it to inspect each ‘ComponentOccurrence’ that exists in our ‘AssemblyComponentDefinition’.

In this example, I used a For Each function to pull each component.

Example:

This is a great way to quickly run through the Assembly and get every component. What follows is more functionality when you want to be specific about what you are getting.

Occurrence Enumeration

This object goes hand in hand with the next function. While its complete functionality is still not quite understood by me, this object acts as a container to catch a collection of Component Occurrences, and disseminate them by type into an intelligent object with appropriate functions.

Base Object Class: ComponentOccurences

Type: Collection Object

Object Definition: ComponentOccurrencesEnumerator

Referenced At: itself as dimensioned object

In the last example, we bypassed the need for this and iterated through our Assembly Component Definition’s collection of Components directly, like a book, one page at a time. However when we want the Assembly Component Definition to hand us a big list of components, we need somewhere to put them.  The Inventor API has provided this container for that purpose.

We need to define the ‘ComponentOccurrenceEnumerator’ object for the next section.

Example:

‘ Define the Component Occurrence Enumerator 
Dim oLeafOccs As ComponentOccurrencesEnumerator

All Leaf Occurrences

Leaf Occurrences are part files in an assembly, the end of any branching in the structure.

Base Object Class: AssemblyComponentDefinition

Type: Function

Function Call: Occurences.AllLeafOccurrences

Returns: ComponentOccurrence

This function returns the very same Component Occurrences as we iterated through previously, however this function only returns a collection of those components that represent the end of assembly branches, Part or ‘Leaf’ objects.

While we were able to peruse the Assembly Component Definition’s components like reading a book, in this function, the Assembly Component Definition object will dump an appendix in our lap.

Here, we will fill our Component Occurrence Enumerator by a call to the Component Definition’s ‘AllLeafOccurrences’ function. Then define another Component Occurrence to represent and investigate each Leaf Occurrence that is in our filled Enumerator.

Example :

All Referenced Occurrences

The Inventor API will also permit users to extract all occurrences of specific Inventor documents.

Base Object Class: AssemblyComponentDefinition

Type: Function

Function Call: AssemblyComponentDefinition.Occurences.

AllReferencedOccurrences(Document)

Returns: ComponentOccurrences

This function will return all instances of the specified document, at any level within a Component Definition.

This example takes a file name, and returns all occurrences of it that exist. It uses a call to opened documents expecting that if it exists, Inventor has it opened. Some good bounds checking could be applied to catch any error associated with an unopened file.

Example:

Closing Thoughts

I used this code to automate the production of drawings, running out as many as 20 at a time, right out of an assembly drawing file. I added substantial enhancements so that each drawing contained views, parts lists, as well as automating the population of various key iProperty values as well.

Help Button

I hope this helps you get a jump start on iLogic Assembly code as much as it did for me. If you’d like more information on Inventor, iLogic, or even how we built the drawing generator, stop by Design & Motion.

 

REFERENCES:

Mod The Machine article “Accessing Assembly Components” from 2009

The Autodesk Inventor 2014 API chart

Mod the Machine Article “Understanding File References” from 2008

Autodesk Inventor API: General Document Notes

It has been some time since I was regularly programming. My background was C++ and I was moving to C# when, well, I started writing; it appears as though there is only enough time to either research engineering software, or research software API.

Recently I decided I wanted some drawing automation; something to take care of the repetitive tasks beyond a good template. Being quite detail oriented, I like a complete drawing. This requires a lot of copying parent exploded views, parts lists, and so forth. While creating an iLogic drawing iProperties checker, I thought iLogic could help me with the drawing creation as well.

What follows is a collection of key notes that I made during my iLogic Assembly document function research; these are the same functions we used to develop the automated drawing creation tool.

Autodesk Inventor API Chart

We will look briefly at the general Document class in this article, and then take a bit of time stepping into the Assembly Document container hierarchy in a follow up.

Introduction

It is very important to understand the Inventor assembly document structure and hierarchy. Each component in an assembly is a Document. Each Document is simply a reference to a file that is, or will be upon saving, stored on a file server or local drive.

Documents however can be interpreted in numerous ways. In our case, Documents represent Parts, Assemblies, Spreadsheets, Drawings, etc. Inventor has Class Objects that have intelligence built in to deal with how an Assembly Document, for example, will behave.

Just Give Me Everything

First, we can get all file references by calling for ‘AllReferencedDocuments’. This function is basically a document dump.

Base Object Class: Document

Type: Function Call

Object Function:  AllReferencedDocuments

Returns: Document object

This function does a jam-up job of returning all FILE instances within any Document object. Only one instance per file is returned, regardless of how many times a part is used in an assembly.

This function is not reserved to Assembly files and will work on any Document class based object. This makes it a great, universal front end build for code that needs to work in a broad range of Inventor documents.

Caution should be used to provide significant bounds checking as to what type of Document is being returned, as AllReferencedDocuments will return anything at all; Spreadsheets, Part files, you name it.

Example: (working with only the part files in a document)

‘ Get the active assembly document.
Dim oAsmDoc As AssemblyDocument
oAsmDoc = ThisApplication.ActiveDocument
‘ Iterate through all of the documents referenced by the assembly.
Dim oDoc As Document
For Each oDoc In oAsmDoc.AllReferencedDocuments

‘ Verify that the document is a part.
If oDoc.DocumentType = kPartDocumentObject Then
Dim oPartDoc As PartDocument
oPartDoc = oDoc

‘——————
‘Do something with the part document here
‘——————-

End If
Next

This is great when you want everything, but I need to see some structure, and having some refinement would be nice. We’ll return with those details and the Assembly Document container hierarchy in the follow-up article.

REFERENCES:

Mod The Machine article “Accessing Assembly Components” from 2009

The Autodesk Inventor 2014 API chart

Mod the Machine Article “Understanding File References” from 2008

Join the Community