Community
cancel
Showing results forĀ 
ShowĀ Ā onlyĀ  | Search instead forĀ 
Did you mean:Ā 

Table driven patterns

Table driven patterns

Dear Community,

I'm sure that this idea isn't new. But we heavily miss this feature in Inventor - and we switched from PRO/E to Inventor so the users have this feature in mind and have lots of effort to work around in Inventor. Every year we expect that it's added to Inventor, but until today it isn't Smiley Sad

We've often feature or component patterns which cannot be patternded by the Inventor feature but by a table. For Inventor this is mission impossible, for Pro/E or SWX no problem.
Have a look at SWX online help how the feature table driven pattern works:

http://help.solidworks.com/2014/English/solidworks/sldworks/HIDD_PATTERN_TABLE2.htm

table-driven-feature-pattern.png

The same for Pro/E

http://www3.eng.cam.ac.uk/DesignOffice/cad/proewild3/usascii/proe/feature/part_six_sub/example__crea...

 

 

SWX hasn't a table driven component pattern, but you can reference the component pattern to a table driven feature pattern. In this point

Pro/E (Creo) is more powerful.

Unfortunately I did not find any nice description for the Pro/E component table driven pattern, only the description how to launch:

http://www3.eng.cam.ac.uk/DesignOffice/cad/proewild3/usascii/proe/asm/asm_four_sub/to_assemble_comps...


Please excuse if this isn't a new idea, I searched for it but had no matches for this keywords Smiley Happy

Cheers,

Thomas

 

 

29 Comments
m.numberger
Advocate

Hello,

 

i know no way to make i irregular pattern link in the pricture. This shows an easy example.

Muster.jpg

 

I think inventor should have a function to make patter controlled by a table (Excel par example).

 

In this example the table should look like ( 2 parameters):

Number      Radius    Angle

1                10            0

2                10            60

...

6                10            300

7                20            0

...

15              20            320

...

 

I think this is useful for a lot of different applications.

This function should be in Part and Assembly.

 

Best regards

 

Michael

 

 

m.numberger
Advocate

Hello,

 

i found an idea which goes in the same direction:

http://forums.autodesk.com/t5/Inventor-IdeaStation/Custom-patterns/idi-p/3686632

 

Best regards

 

Michael

m.numberger
Advocate
sth
Enthusiast
Enthusiast

Hi MIchael,

this is what I mentioned. I've never belived that I'm the first who misses

table driven patterns Smiley Wink . Funny that you used a circular and I 

a rectangular pattern sample.

But I agree we need it for both types to ease workflows and decrease efforts

for model creation.

 

Cheers,

Thomas

sth
Enthusiast
Enthusiast

Hi All,

as I already mentioned the idea isn't new, but the design of the suggestion Smiley Wink
Refer to MIchaels idea post focussing circular patterns and another, already accepted 
one here http://forums.autodesk.com/t5/inventor-ideastation/custom-patterns/idi-p/3686632 

 

Dear Autodesk guys:

I saw that the state of the idea is "accepted", but how will it last to have this feature in Part and Assembly environment to create rectangular and circular table driven patterns of features, solids and components ?
This'll be really a great day Smiley Happy and I'd like to celebrate it Smiley Wink

 

Cheers,

Thomas

a_sima
Enthusiast

Hi,

I agree with this, but, please be warned, some guys here get mad when one tell them there are better programs than this "inventor", especially when names like proe, solidworks are mentioned!

 

sth
Enthusiast
Enthusiast

Hi,
I understand that somebody might be confused when functions of other systems are used to explain the idea.But I work in a Company where a Management decision was to shift from PRO/E to Inventor and I hear daily what the Team misses. And this can explained easily with a reference to the other system .

And it's better for Autodesk to have solutions which are able to compare with powerful solutions like Creo or SWX Smiley Wink.
And never forget: We need to earn the money with Inventor to pay Autodesk's prices Smiley Indifferent.

Cheers,
Thomas

a_sima
Enthusiast

I am a proe (i don't like creo name) user but the situation made me work in a company where inventor is used. I consider Inventor as a newer CAD package and in my opinion Autodesk must look what was good in the other packages not just to throw a colourful product on the market. There are many things in inventor which are not implemented or others which are very bad implemented. The problem is we have to wait 2-3 releases to get some minor changes. I'm not interested in fancy thigs but in having a good tool. I think this is Audodesk missing, they don't supply the best tool.

sth
Enthusiast
Enthusiast

Hi Sima,

I agree - better to have a solid foundation than building the penthouse but foundation is still "under construction". Smiley Frustrated

And the basic things like simply create old fashion 2D drawings are the things we earn our money with regardless if this is hip or not.

 

Cheers

Thomas

dusan.naus.trz
Advisor

OTHER FEATURES = Solve the pattern as a whole

 

http://forums.autodesk.com/t5/ideas/v2/ideapage/blog-id/v1232/article-id/6693/page/1#comments

 

 

Could it work like here ?: https://www.youtube.com/watch?v=HPmMI5jK6Ek

Could it work also in weldment as Machining ?

I agree with text above picture. = Is it able to make pattern of component working in assembly in machining section.

Is it able to make pattern of componnent to be Demoted and Promoted in weldment ? (pattern componnent in assembly- Demote and Promote)

 

sth
Enthusiast
Enthusiast

Hi Nausd,

 

I think table driven patterns are different from sketched noon linear geometry. Table driven patterns allow not linear 

distances without the need (effort) to create lots of dimensions for them. IMO the sketch driven pattern is something

different but I like this idea too, having a feature like this is very efficient (see the first approach in the screw connection

assistant who's able to follow any hole patterns today) Smiley Wink

 

Cheers,

Thomas

dusan.naus.trz
Advisor

Hi Sth,

Pattern = I would like to tackle it together. Solve the pattern as a whole. Table driven patterns = I want both of these functions in the inventor

 

Cheers,

Dusan

 

sth
Enthusiast
Enthusiast

Hi Dusan,

I agree with you - implementing both pattern options would be great and enable us

to do things much more smarter than today Smiley Wink

 

 

Cheers,

Thomas

dan_szymanski
Autodesk
Status changed to: Gathering Support

I am changing the status of this Idea to Duplicate as another Idea is trending more kudos.  http://forums.autodesk.com/t5/inventor-ideastation/table-driven-patterns/idi-p/5539383 .  Thanks - Dan

reinert
Explorer

This idea I have missed for years. And It should be simple to implement.

Why can't Autodesk just improve inventor rather than just change the outlook every second year.

 

The biggest problem with inventor is that sometimes I have to suppress some constraints, save. And then unsuppress them. And everything is ok again. For no apparent reason.

And this has been a problem a least the 10 last years. Autodesk fix that before more implementation of things we don't need!

 

JimmyDoe
Collaborator

As a former (Creo) Pro/E user I was shocked and very saddened by the fact there is no pattern table feature. This is one of the most important features for many companies and I can't believe Inventor hasn't implemented it yet. Before I get on a rant...Upvoted!

dusan.naus.trz
Advisor

Hi JimmyDoe

 

I am designer 8 years. I work in Inventor for 11 years. I am very disappointed as Inventor works, or rather does not work. If I could choose, I would choose Solidworks. This view has more people, Autodesk should try to change it. I'm not good in English. Maybe you understand it.

Good luck. 

 

you look at https://www.youtube.com/watch?v=Hyu3jXcIEEk

 

and next videos

technique
Participant

I would rather have a built-in function, but I have found this work around for irregular patterns in assemblies. I made a macro that copies a component a certain number of times. It recreates the constraints that the starting component has and changes the offset value of one of the constraint for each copy. You end up with a pattern that can be changed one component at a time by changing the value of the offset. I have even made a version of the macro that checks interferences and moves the component if it interferes with other parts.

 

here if the code in french:

 

Sub copie_composant()
'copie un composant et ses contraintes sous forme de rƩseau linƩaire non liƩ. Une fois le rƩseau crƩƩ, on peut dƩplacer chaque composant indƩpendamment
'ne peut traiter qu'un seul composant Ć  la fois

'assemblage actif
Dim assemblage As AssemblyDocument
Set assemblage = ThisApplication.ActiveDocument


'selection active (il faut qu'un composant soit sƩlectionnƩ)
Dim Selection As SelectSet
Set Selection = assemblage.SelectSet
Dim objet_select As Variant


'on sƩlectionne le composant dans la sƩlection
Dim composant As ComponentOccurrence
'For Each objet_select In Selection
' If objet_select.Type = kComponentOccurrenceObject Then
' Set composant = objet_select
' Exit For
' End If
'Next

Set composant = ThisApplication.CommandManager.Pick(kAssemblyOccurrenceFilter, "SƩlectionnez un composant Ơ copier.") 'pour remplacer la sƩlection avant de lancer la macro


'afficher les contraintes dans frm_copie_composant
Call afficher_frm_copie_composant(assemblage, composant)

'sauvegarder la contrainte Ơ incrƩmenter

Dim contrainte_a_incrementer As AssemblyConstraint

For Each contrainte In composant.Constraints
If contrainte.Name = frm_copie_composant.liste_contraintes_copie.Value Then
Set contrainte_a_incrementer = contrainte
Exit For
End If
Next

 

'on copie la piĆØce un certain nombre de fois
Dim nb_copie As Long

nb_copie = InputBox("Combien de copie?", "Copier un composant")


Dim i As Long

For i = 1 To nb_copie

'copie le composant dans l'assemblage
Dim copie_composant As ComponentOccurrence
Set copie_composant = inserer_composant_dans_assemblage(assemblage, composant)


'copie les contraintes du composant actuel
Dim contrainte_incremente As AssemblyConstraint

'on ajuste la valeur de l'incrƩment pour qu'il soit vide sauf si c'est la contrainte Ơ incrƩmenter
Dim increment_applique As String
If frm_copie_composant.positif = True Then
increment_applique = "+" & i & "nd*(" & frm_copie_composant.txt_increment & ")"
Else
increment_applique = "-" & i & "nd*(" & frm_copie_composant.txt_increment & ")"
End If

Set contrainte_incremente = copier_contraintes_en_incrementant(assemblage, composant, copie_composant, contrainte_a_incrementer, increment_applique)

Next

Fin:
End Sub

 

 

 

Sub afficher_frm_copie_composant(assemblage As AssemblyDocument, composant As ComponentOccurrence)

'afficher les contraintes dans frm_copie_composant
Dim contrainte As AssemblyConstraint

frm_copie_composant.liste_contraintes_copie.Clear

For Each contrainte In composant.Constraints
frm_copie_composant.liste_contraintes_copie.AddItem (contrainte.Name)
Next

frm_copie_composant.txt_increment.Value = 0
frm_copie_composant.positif.Value = True
frm_copie_composant.Show

End Sub

 

 

 

Function inserer_composant_dans_assemblage(assemblage As AssemblyDocument, composant As ComponentOccurrence) As ComponentOccurrence

Dim point_zero As Matrix
Set point_zero = ThisApplication.TransientGeometry.CreateMatrix
Set inserer_composant_dans_assemblage = assemblage.ComponentDefinition.Occurrences.Add(composant.definition.Document.fullfilename, point_zero)

End Function

 

 

Function copier_contraintes_en_incrementant(assemblage As AssemblyDocument, composant As ComponentOccurrence, copie_composant As ComponentOccurrence, contrainte_a_incrementer As AssemblyConstraint, increment As String) As AssemblyConstraint

Dim contrainte As AssemblyConstraint
Dim ajoute_a_expression As String

'on traverse les contraintes attachƩes au composant actuel
For Each contrainte In composant.Constraints
'Si une des entitƩs de contrainte n'est rien alors on ne copie pas la contrainte
If Not contrainte.EntityOne Is Nothing And Not contrainte.EntityTwo Is Nothing Then

Dim entite_un As Object
Dim entite_deux As Object
Dim entite_proxy1 As Object
Dim entite_proxy2 As Object

Set entite_un = contrainte.EntityOne
Set entite_deux = contrainte.EntityTwo

If contrainte.Name = contrainte_a_incrementer.Name Then
ajoute_a_expression = increment
Else
ajoute_a_expression = ""
End If

'(vƩrifier si une entitƩ appatient Ơ l'assemblage (ex: un plan de l'assemblage)
If contrainte.AffectedOccurrenceOne Is Nothing Or contrainte.AffectedOccurrenceTwo Is Nothing Then
If contrainte.AffectedOccurrenceOne Is Nothing Then
Set entite_proxy1 = entite_un
Call copie_composant.CreateGeometryProxy(entite_deux.NativeObject, entite_proxy2)
Else
Set entite_proxy2 = entite_deux
Call copie_composant.CreateGeometryProxy(entite_un.NativeObject, entite_proxy1)
End If
Else


'VƩrifier si l'entitƩ de contrainte est prise sur le composant crƩƩ ou sur un autre composant
'On gĆ©nĆØre le proxy sur le composant copiĆ© et on rĆ©utilise l'autre entitĆ©
'VƩrifier l'entitƩ 1
If contrainte.OccurrenceOne Is Nothing Then
If entite_un.parent.parent.Name = composant.Name Then
Call copie_composant.CreateGeometryProxy(entite_un.NativeObject, entite_proxy1)
Else
Set entite_proxy1 = entite_un
End If
Else
If contrainte.OccurrenceOne.Name = composant.Name Then
Call copie_composant.CreateGeometryProxy(entite_un.NativeObject, entite_proxy1)
Else
Set entite_proxy1 = entite_un
End If
End If

'vƩrifier l'entitƩ 2
'contrainte.AffectedOccurrenceOne
If contrainte.OccurrenceTwo Is Nothing Then
If entite_deux.parent.parent.Name = composant.Name Then
Call copie_composant.CreateGeometryProxy(entite_deux.NativeObject, entite_proxy2)
Else
Set entite_proxy2 = entite_deux
End If
Else
If contrainte.OccurrenceTwo.Name = composant.Name Then
Call copie_composant.CreateGeometryProxy(entite_deux.NativeObject, entite_proxy2)
Else
Set entite_proxy2 = entite_deux
End If
End If
End If '(vƩrifier si une entitƩ est appatient Ơ l'assemblage (ex: un plan de l'assemblage)

Dim nouvelle_contrainte As Object
' -De quel type de contrainte s'agit-il?
Select Case contrainte.Type
Case kMateConstraintObject
'crƩation de la contrainte de placage
Set nouvelle_contrainte = assemblage.ComponentDefinition.Constraints.AddMateConstraint(entite_proxy1, entite_proxy2, contrainte.Offset.Expression & ajoute_a_expression)
Case kAngleConstraintObject
'sƩlection du type de contrainte d'angle
Select Case contrainte.SolutionType
Case kDirectedSolution
'crƩation de la contrainte d'angle
Set nouvelle_contrainte = assemblage.ComponentDefinition.Constraints.AddAngleConstraint(entite_proxy1, entite_proxy2, contrainte.Angle.Expression & ajoute_a_expression, kDirectedSolution)
Case kUndirectedSolution
'crƩation de la contrainte d'angle
Set nouvelle_contrainte = assemblage.ComponentDefinition.Constraints.AddAngleConstraint(entite_proxy1, entite_proxy2, contrainte.Angle.Expression & ajoute_a_expression, kUndirectedSolution)
Case kReferenceVectorSolution
Dim entite_trois As Object
Set entite_trois = contrainte.ReferenceVectorEntity
Dim entite_proxy3 As Object
'vĆ©rifie si l'entite est sur la piĆØce copiĆ©e
If entite_trois.parent.parent.Name = composant.Name Then
Call copie_composant.CreateGeometryProxy(entite_un.NativeObject, entite_proxy1)
Else
Set entite_proxy3 = entite_trois
End If
'crƩation de la contrainte d'angle
Set nouvelle_contrainte = assemblage.ComponentDefinition.Constraints.AddAngleConstraint(entite_proxy1, entite_proxy2, contrainte.Angle.Expression & ajoute_a_expression, kReferenceVectorSolution, entite_proxy3)
End Select
Case kFlushConstraintObject
'crƩation de la contrainte de d'alignement
Set nouvelle_contrainte = assemblage.ComponentDefinition.Constraints.AddFlushConstraint(entite_proxy1, entite_proxy2, contrainte.Offset.Expression & ajoute_a_expression)
Case kInsertConstraintObject
'creation de la contrainte d'insertion
Set nouvelle_contrainte = assemblage.ComponentDefinition.Constraints.AddInsertConstraint(entite_proxy1, entite_proxy2, contrainte.AxesOpposed, contrainte.Distance.Expression & ajoute_a_expression)
Case kRotateRotateConstraintObject
'creation de la contrainte de rotation-rotation
Set nouvelle_contrainte = assemblage.ComponentDefinition.Constraints.AddRotateRotateConstraint(entite_proxy1, entite_proxy2, contrainte.Ratio.Expression & ajoute_a_expression, contrainte.ForwardDirection)
Case kRotateTranslateConstraintObject
'creation de la contrainte de rotation-translation
Set nouvelle_contrainte = assemblage.ComponentDefinition.Constraints.AddRotateTranslateConstraint(entite_proxy1, entite_proxy2, contrainte.Ratio.Expression & ajoute_a_expression, contrainte.ForwardDirection)
Case kTangentConstraintObject
'creation de la contrainte de tangence
Set nouvelle_contrainte = assemblage.ComponentDefinition.Constraints.AddTangentConstraint(entite_proxy1, entite_proxy2, contrainte.InsideTangency, contrainte.Offset.Expression & ajoute_a_expression)
Case kTransitionalConstraintObject
'creation de la contrainte de transition
Set nouvelle_contrainte = assemblage.ComponentDefinition.Constraints.AddTransitionalConstraint(entite_proxy1, entite_proxy2)
Case kTranslateTranslateConstraintObject
'creation de la contrainte de translation-translation
Set nouvelle_contrainte = assemblage.ComponentDefinition.Constraints.AddTransitionalConstraint(entite_proxy1, entite_proxy2)
End Select

If contrainte.Name = contrainte_a_incrementer.Name Then
Set copier_contraintes_en_incrementant = nouvelle_contrainte
End If

End If

Next

 

End Function

 

 

 

 

9687sprentz
Contributor

I also posted something very similar to this. I think it's a great idea! One of the biggest lacking features in Inventor to me is patterning and also how inventor processes patterns. https://forums.autodesk.com/t5/inventor-ideas/patterns-with-varying-spacing-quot-multi-pattern-quot-...

dusan.naus.trz
Advisor

I want it. To work with large assemblies, this feature is a great helper. Could it work also in weldment as Machining ? I did hole with function pattern. I put the assembly frame structure into the next assembly. I put the screw and then I wanted to use the pattern assembly of the frame structure for screw it did not work.

 

I already mentioned it in 04-10-2016 02:28 AM in this topic https://forums.autodesk.com/t5/inventor-ideas/sketch-driven-pattern/idi-p/5448551/page/2#comments

 

Unfortunately I was not heard.

 
 

Can't find what you're looking for? Ask the community or share your knowledge.

Submit Idea  

Autodesk Design & Make Report