quinta-feira, 14 de julho de 2016

Autodesk Inventor - Análise de Interferência

Senhores,

Todos sabem que uma das grandes vantagens de se usar um software 3D na mecânica é a tal da Análise de Interferência, para quando queremos saber se alguma peça esta ocupando o espaço da outra, se irão colidir em um determinado ponto e assim por diante.

Bom, todos os softwares tem essa análise, porém, todos requer um grau de conhecimento no software e leva algum tempo, selecionando os objetos a serem analisados e por ai vai.

Pesquisando nos Fóruns gringos achei um código em iLogic (Ambiente de programação do Autodesk Inventor), que é muito útil e simples para se executar, e resolvi compartilhar com vocês.

É bem simples, primeiro criamos a regra no Ambiente de Montagem.



Rodamos a Regra no Browser, que eu chamei de Análise de Interferência.



Logo que rodar a regra, ele exibirá quanto elementos estão com interferência.


Em seguida, após clicar no OK, ele irá detalhar as interferência, com as informações dos nomes das peças e suas respectivas cores, e o Volume em cm³ que está sobre posto de uma peça a outra.


Bem simples, certo?

Espero que tenha ajudado vocês, esse tipo de código pode ser implantado dentro de uma outra regra (Rotina) da sua Automação.

Segue o Código:



Sub Main

Dim oAsmDoc As AssemblyDocument

oAsmDoc = ThisApplication.ActiveDocument



Dim oAsmCompDef As AssemblyComponentDefinition

oAsmCompDef = oAsmDoc.ComponentDefinition


' Add each occurrence in the assembly to the object collection.

Dim oCheckSet As ObjectCollection

oCheckSet= ThisApplication.TransientObjects.CreateObjectCollection

Dim oOcc As ComponentOccurrence

For Each oOcc In oAsmCompDef.Occurrences

oCheckSet.Add (oOcc)

Next



' Call the AnalyzeInterference method, passing in a single

' collection. This will cause it to compare everything against

' everything else.

Dim oResults As InterferenceResults

oResults = oAsmCompDef.AnalyzeInterference(oCheckSet)



' Display the results of the interference.

MessageBox.Show(oResults.Count & " Interferences found ","iLogic")



Dim oResult As InterferenceResult

Dim iCount As Integer

iCount = 0

For Each oResult In oResults

iCount = iCount + 1

Component.Color(FullOccurrenceName(oResult.OccurrenceOne)) = "Yellow"

Component.Color(FullOccurrenceName(oResult.OccurrenceTwo)) = "Magenta"

MessageBox.Show("     " & FullOccurrenceName(oResult.OccurrenceOne) & "      (colored yellow)" _

& vbLf & "interferes with " _

& vbLf & "     " & FullOccurrenceName(oResult.OccurrenceTwo) & "      (colored magenta)" _

& vbLf & "" _

& vbLf & "Volume: " & Round(oResult.Volume,5) & " cm^3", _

" Interference "& iCount)

Component.Color(FullOccurrenceName(oResult.OccurrenceOne)) = "As Material"

Component.Color(FullOccurrenceName(oResult.OccurrenceTwo)) = "As Material"



Next



End Sub



' Used to display the full path of an occurrence. This is the path of the

' occurrence within the assembly structure.

Private Function FullOccurrenceName(Occ As ComponentOccurrence) As String

Dim i As Integer

For i = 1 To Occ.OccurrencePath.Count

If i = 1 Then

FullOccurrenceName = Occ.OccurrencePath.Item(i).Name

Else

FullOccurrenceName = FullOccurrenceName & "\" & Occ.OccurrencePath.Item(i).Name

End If

Next

End Function


Att,

Paulo Ito

0 comentários :

Postar um comentário