Hi.
Does anyone know if it possible to choose, by insert of a part in an assembly, wich level of detail it is supposed to be unsupressed and/or supressed in.
Typical i would like it to be supressed in every other LOD that the active one. When you have more that 5 LODs it is very annoying and time consuming to go through all LODs to supress the part.
There must be a smarter way??
Solved! Go to Solution.
Solved by Curtis_Waguespack. Go to Solution.
Tagging along.
I usually recreate the level of details from design view representation
Could you use design view reps instead of LOD? or how/why/what for are you using LODs
I have an ilogic rule that will lock all but the active design view rep to allow me to do exactly what you want.. (Where any newly placed parts are made invisible in all the locked view reps)
Then another rule to unlock all..
You can't lock LOD's
Hi William1337,
Here is a quick iLogic rule that will suppress any selected components in all of the other LOD's, with the exception of the active LOD.
This allows you to place the component in the assembly with the LOD you want to add the component to set active, then select the component (or components) and run this iLogic rule to remove the component(s) from the other LODs.
This iLogic rule also doesn't suppress the selected components in the standard LODs, such as the "Master" LOD, the "All Content Center Suppressed" LOD, etc. Note too that it saves the file each time one of the other LODs is modified in order to make the changes "stick", so if you have a large assembly with many LODs it might take a bit for this rule to run.
I hope this helps.
Best of luck to you in all of your Inventor pursuits,
Curtis
http://inventortrenches.blogspot.com
Dim oDoc As AssemblyDocument oDoc = ThisApplication.ActiveDocument 'find selected components and add to an objectCollection Dim oSelected As ObjectCollection oSelected = ThisApplication.TransientObjects. _ CreateObjectCollection (oDoc.SelectSet) 'define LOD rep Dim oLODRep As LevelOfDetailRepresentation 'define rep manager Rep_Manager =ThisApplication.ActiveDocument. _ ComponentDefinition.RepresentationsManager 'define an arraylist to hold the list of LOD rep names Dim NameList As New ArrayList() 'look at the LOD reps in the assembly For Each oLODRep in Rep_Manager.LevelOfDetailRepresentations 'add the LOD names to the array list NameList.add(oLODRep.Name) Next Dim myLOD as LevelOfDetailRepresentation 'get the name of the active LOD myLOD = Rep_Manager.ActiveLevelOfDetailRepresentation 'remove active LOD from list NameList.remove(myLOD.name) 'remove standard LODs from list NameList.remove("Master") NameList.remove("All Components Suppressed") NameList.remove("All Parts Suppressed") NameList.remove("All Content Center Suppressed") 'step through the LOD list 'and suppress the selected components Dim sName as String For Each sName in NameList
'Activate the LOD
Rep_Manager.LevelOfDetailRepresentations(sName).Activate
For Each oObject in oSelected
Try
'suppress component
Component.IsActive(oObject.Name) = False
Catch ' catch any errors
End Try
Next
ThisDoc.Save
Next 'set the original active LOD back to active Rep_Manager.LevelOfDetailRepresentations(Trim(myLOD.Name)).Activate
And ..... he strikes again.
I haven't thought about using ilogic but your code makes perfect sense.
Thanks.
This is a great help, thanks.
Maybe 2016 will have exactly what i want, the ability to choose wich LOD i want to insert a part/assy into. 😉 and allso if an assembly wich LOD to be used.
It would be a realy cool thing and a time saver for a lot of people.
Kind regards
William.
Hi again
Still works greats but it moves this checkmark on some parts and assemblyes from default to refence,
wich dosnt look great on the drawing...
Any ideas?