Inventor 2017 Gewichte der iAssembly-Varianten autom. in die Tabelle der Zeichn.

Inventor 2017 Gewichte der iAssembly-Varianten autom. in die Tabelle der Zeichn.

a.schulzECN46
Contributor Contributor
1.371Aufrufe
9Antworten
Nachricht 1 von 10

Inventor 2017 Gewichte der iAssembly-Varianten autom. in die Tabelle der Zeichn.

a.schulzECN46
Contributor
Contributor

Hallo können Sie mir bitte helfen, dass die Gewichte der iAssembly-Kinder auf der Zeichnungsableitung der iAssembly-Mutter in einer Tabelle erscheinen.

Ich brauche von jeder iAssembly-Variante das Gewicht in einer Tabelle.

Am 06-22-2016 wurde im Inventor Forum  das Problem, damit die Gewichte der ipart-Varianten automatisch in die Tabelle auf der Zeichnung erscheinen, durch iLogic gelöst.

Gruß Schulz

 

 

 

@a.schulzECN46,

 

Die Themenüberschrift wurde zum besseren Verständnis editiert

von Sofia Xanthopoulou

0 „Gefällt mir“-Angaben
Akzeptierte Lösungen (2)
1.372Aufrufe
9Antworten
Antworten (9)
Nachricht 2 von 10

matthias_schindler
Alumni
Alumni

Hallo @a.schulzECN46,

 

Willkommen im deutschsprachigen Autodesk-Forum, am heutigen "Autodesk-Answer-Day."

 

Welche Version von Inventor benutzt du?

 

Welches Thema war das von dem du geschrieben hast?

War das im englisch sprachigen Inventor-Forum, oder im deutschen?

 

Da ich es nicht auffinden konnte.

 

Hast du es mit der Lösung von dem Thema schon probiert, oder betrifft es nicht ganz deine Frage, und deswegen hast du das Thema hier eröffnet? Smiley (zwinkernd)

 

Über eine Rückmeldung von dir, welches Thema, es war, von dem du geschrieben hast, würde ich mich freuen.

 

Vielen Dank dir.


Matthias Schindler
Technical Support Specialist for Inventor
0 „Gefällt mir“-Angaben
Nachricht 3 von 10

a.schulzECN46
Contributor
Contributor

Hallo,

ich benutze Inventor 2017,

i-Part Gewichte wurden im nachfolgendem Forum gelöst:I-Part.JPG

Gruß Schulz

0 „Gefällt mir“-Angaben
Nachricht 4 von 10

j_weber
Mentor
Mentor

Hallo,

wie du schon selbst auf der richtigen Spur bist, wird du wohl nicht drum herum kommen, die iLogic-Variante vom iPart auf ein iAssambly zu erweitern. 

Ich bin leider kein Programmierer, aber es sollte denke ich mal gehen. 

Im iAssembly lassen sich die Gewichte wie im iPart eben nicht direkt abgreifen. Sind sie aber erst mal in der Tabelle als Parameter vorhanden, können diese dann auch in der Zeichnungsableitung abgegriffen werden. 




Jörg Weber
CAD Systemtechniker für AutoCAD, Inventor, Vault





0 „Gefällt mir“-Angaben
Nachricht 5 von 10

matthias_schindler
Alumni
Alumni

Hallo zusammen,

 

ich habe nun mal die iPart-iLogic-Regel auf die Variante umgeschrieben, es hat damit aber leider nicht so funktioniert, wie ich mir das gedacht hatte, da zwar auch Parameter in der Baugruppe erstellt werden, die von den Bauteilen zwar auch mit übernommen werden können, aber wenn ich die Regel darauf anwende, bei allen Varianten das selbe "Gewicht" drinsteht, nämlich das von der aktuell in der Baugruppe aktivierten Variante.

 

Im folgenden befindet sich noch die umgeschriebene iLogic-Regel, vielleicht findet jemand dort einen Fehler, oder etwas ausschlaggebendes fehlt noch.

 

@TFoerst oder @Anonymous habt ihr vielleicht noch eine Idee, oder meint ihr auch, dass es so nicht geht, und im Inventor eine bestimmte Funktion fehlt, was ich auch momentan denke, um das durchzuführen zu können?

 

 

 

' File: "Gewicht-iAssembly.txt"

Dim MassProperty As String

'Type in here the iProperty Name
MassProperty = "Gewicht"


Dim ColIndex As Integer
Dim oAsm As Inventor.AssemblyDocument
oAsm = ThisDoc.Document
Dim oFact As iAssemblyFactory
oFact = oAsm.ComponentDefinition.iAssemblyFactory

'Code runs only in iAssembly Factory 
If oAsm.ComponentDefinition.IsiAssemblyFactory = True Then
    Dim oFacCol As iAssemblyTableColumn
'Get the Colum with the iProperty Name
    For Each oFacCol In oFact.TableColumns
        If oFacCol.DisplayHeading = MassProperty Then
            ColIndex = oFacCol.Index
Else MessageBox.Show("Message", "Title")
        End If
    Next

	
    Dim oFacRow As iAssemblyTableRow
    For Each oFacRow In oFact.TableRows
        ' Set Row as active Row
		oFact.DefaultRow = oFacRow
        
		' Get the weight.
        Dim dWeight As Double
        dWeight = oAsm.ComponentDefinition.MassProperties.Mass
		
		'Convert in weight from doc settings
        Dim strWeight As String
		strWeight = oAsm.UnitsOfMeasure.GetStringFromValue(dWeight, 11281) 'In VBA kDefaultDisplayMassUnits
                   
        ' Set the row value for the weight column.
        oFacRow.Item(ColIndex).Value = strWeight
    Next

End If

 

Ich höre mich nochmal intern um bei Uns, und melde mich sobald ich neue Informationen habe.Smiley (zwinkernd)

 

Sollte bis dahin, schon jemand hier einen weiteren Lösungsansatz gefunden haben, würde ich mich auch darüber freuen, und können dann das Thema gemeinsam abschließen. Was meiner Meinung auch nicht schlecht ist, ein gemeinsames "Brainstorming" (Ideenfindungsprozess) durchzuführen.

Bin gespannt auf eure Ideen.Smiley (zwinkernd)Smiley (fröhlich)

 

 


Matthias Schindler
Technical Support Specialist for Inventor
0 „Gefällt mir“-Angaben
Nachricht 6 von 10

a.schulzECN46
Contributor
Contributor

Hallo Matthias,

Dankeschön deine iLogic-Regel funktioniert!

Es kommen nur ein paar Fehlermeldungen Fehler.JPG nach dem mehrmaligen OK werden die Gewichte  berechnet und in die Benutzerparameter "Gewicht" eingetragen.

 

Alles Gute.

0 „Gefällt mir“-Angaben
Nachricht 7 von 10

matthias_schindler
Alumni
Alumni
Akzeptierte Lösung

Hallo @a.schulzECN46,

 

vielen Dank, für deine Rückmeldung.Smiley (fröhlich)

 

Wegen der Meldung, die du angesprochen hast, mit der habe ich getestet ob auch jede Variante "angesprochen" wird.

 

 

Hier nun die Codevariante ohne das die Meldung erscheint:

 

 

' File: "Gewicht-iAssembly-2.txt"

Dim MassProperty As String

'Type in here the iProperty Name
MassProperty = "Gewicht"


Dim ColIndex As Integer
Dim oAsm As Inventor.AssemblyDocument
oAsm = ThisDoc.Document
Dim oFact As iAssemblyFactory
oFact = oAsm.ComponentDefinition.iAssemblyFactory

'Code runs only in iPart Factory 
If oAsm.ComponentDefinition.IsiAssemblyFactory = True Then
    Dim oFacCol As iAssemblyTableColumn
'Get the Colum with the iProperty Name
    For Each oFacCol In oFact.TableColumns
        If oFacCol.DisplayHeading = MassProperty Then
            ColIndex = oFacCol.Index
Else 'i = MessageBox.Show("Die iAssembly-Variante wurde erfolgreich 'angesprochen'.", "iLogic - custom program", MessageBoxButtons.OK, MessageBoxIcon.Asterisk, MessageBoxDefaultButton.Button1)

        End If
    Next

	
    Dim oFacRow As iAssemblyTableRow
    For Each oFacRow In oFact.TableRows
        ' Set Row as active Row
		oFact.DefaultRow = oFacRow
        
		' Get the weight.
        Dim dWeight As Double
        dWeight = oAsm.ComponentDefinition.MassProperties.Mass
		
		'Convert in weight from doc settings
        Dim strWeight As String
		strWeight = oAsm.UnitsOfMeasure.GetStringFromValue(dWeight, 11281) 'In VBA kDefaultDisplayMassUnits
                   
        ' Set the row value for the weight column.
        oFacRow.Item(ColIndex).Value = strWeight
    Next

End If

Was habe ich gemacht:

Ich habe ein Hochkomma "'" vor den Teil gesetzt der nicht ausgeführt soll.

Habe die Meldung aber nun noch verändert und es kommt nun nicht mehr die erwähnte von dir @a.schulzECN46, sondern nun diese hier. Natürlioch nur wenn das Hochkomma nicht davor steht.Smiley (zwinkernd)

 

GER-message-information-ilogic-iassembly.JPG

 

                                                                   Titel: iLogic - custom program

                                                                   

                                                                   Beschreibung: Die iAssembly-Variante wurde erfolreich 'angesprochen'.

 

 

 

Was mich aber allerdings wundert ehrlich gesagt, dass bei dir @a.schulzECN46, die Gewichte alle anders sind, wenn ich dich richtig verstanden habe. Das heißt ich habe da etwas anders gemacht als du, oder?

 

Könntest du uns noch ein Screencast hochladen, wie es bei dir funktioniert hat, sodass ich und andere nachvollziehen können, wie es funktioniert hat?

 

 

Über eine Rückmeldung von dir dazu würde ich mich freuen.

 

Vielen Dank dir.

 


Matthias Schindler
Technical Support Specialist for Inventor
Nachricht 8 von 10

Hallo @a.schulzECN46,

 

bist du schon dazu gekommen den überarbeiteten Code von Matthias auszuprobieren?

 

Was ist dabei herausgekommen? Hast du noch Fragen dazu. 

 

Melde dich einfach kurz.

 

 

LG

 

0 „Gefällt mir“-Angaben
Nachricht 9 von 10

a.schulzECN46
Contributor
Contributor
Akzeptierte Lösung

Hallo,

der überarbeitete Code von Matthias funktioniert  ohne Fehlermeldungen! Sehr Gut!!

Ich habe zuerst Benutzerdefinierte Eigenschaft "Gewicht" angelegtEigenschaft.JPG

dann in die I-Assembly Tabelle übernommen:

Tabelle.JPG

danach iLogic Regel "Gewicht" angelegt und den Code eingefügt:

Regel.JPG

Nach dem Speichern und Ausführen werden alle i-Ass-Varianten nacheinander Aufgebaut und die Gewichte in die i-Assembly Tabelle geschrieben.

Natürlich müssen alle Varianten fehlerfrei aufgebaut sein.

Auf der Zeichnung wird dann eine Allgemeine Tabelle mit den verfügbaren Eigenschaften erstellt.

Tabelle Zeichnung.JPG

Alle i-Assembly Varianten erhalten das Gewicht:Allgemeine Tabelle Zeichnung.JPG

 

Die i-Assembly  Zeichnungsableitung enthält die Bauteilliste mit den Einzelteilgewichten, Anzahl der Einzelteile in den Varianten, Objektnummer und zusätzlich die neu erzeugte Tabelle mit den Gesamtgewichten der Varianten.

Bauteiltabelle.JPG

 

Danke noch mal!

Schulz

Nachricht 10 von 10

matthias_schindler
Alumni
Alumni

Hallo @a.schulzECN46,

 

vielen Dank, für deine Rückmeldung, und die Beschreibung, sogar mit Bildern,Smiley (fröhlich)

 

Freut mich dass es nun bei dir funktioniert hat, mit der neuen Version des Codes, welchen ich dir auf Basis des anderen Themas mit iParts programmiert habe.

 

Wärst du so nett, und markierst noch meine Antwort, mit der neuen Codeversion, als Lösung, da diese ja, letztendlich zusammen mit deiner Beschreibung zur Lösung geführt hat.

 

Danke dir.

 

Solltest du noch Fragen, zu dem Thema haben, kannst du diese hier gerne stellen.

Wenn es aber einen anderen Bereich von Inventor betrifft, erstelle dafür bitte ein neues Thema.

 

Vielen Dank.

 


Matthias Schindler
Technical Support Specialist for Inventor
0 „Gefällt mir“-Angaben