Community
Inventor - Deutsch
Das Forum für alle Fragen rund um Autodesk Inventor, iLogic, Factory Design, Automation und mehr. Der Ort zum Fragen stellen, Antworten erhalten und Wissen teilen.
abbrechen
Suchergebnisse werden angezeigt für 
Anzeigen  nur  | Stattdessen suchen nach 
Meintest du: 

iLogic/VBA: Über eine Regel den wert einer Zelle in einer iPart Zeile ändern

7 ANTWORTEN 7
GELÖST
Antworten
Nachricht 1 von 8
Paddy66024194
977 Aufrufe, 7 Antworten

iLogic/VBA: Über eine Regel den wert einer Zelle in einer iPart Zeile ändern

Hallo ich versuche vergeblich den wert einer Zelle in einer iPart Tabelle zu ändern.

 

das habe ich versucht:

 

 iPart.CurrentRowValue("Extrusion_Zahn") = "Unterdrücken"

Aber dann bekomme ich folgenden Fehler:

 

Regelkompilierungsfehler in Unterer Anschluss, in Mitnehmer.ipt

Fehler in Zeile 2 : Der Ausdruck ist ein Wert und kann nicht als Ziel einer Zuweisung verwendet werden.

 


@Paddy66024194,

Die Themenüberschrift wurde zum besseren Verständnis editiert von Dennis.Ossadnik
Original: Über eine Regel den wert einer Zelle in einer iPart Zeile ändern


7 ANTWORTEN 7
Nachricht 2 von 8
TAR_Loki
als Antwort auf: Paddy66024194

Moin Paddy,

 

könntest Du uns Dein Model hier zur Verfügung stellen oder vieleicht etwas mehr von deiner Regel posten. Smiley (fröhlich)

So könnten wir sehen, warum Inventor die Meldung so ausschmeißt.

Nachricht 3 von 8
Dennis.Ossadnik
als Antwort auf: Paddy66024194

Hi @Paddy66024194,

 

ich bin nicht sicher, was Du eigentlich machen willst und in welchem Zusammenhang, aber wenn mich nicht alles täuscht, dann ist "CurrentRowValue" nicht in der Lage, Werte in die Tabelle zu schreiben, sondern nur diese abzufragen.

 

Schau mal hier, vielleicht hilft Dir das schon ein Stück weiter:

iPart- und iAssembly-Funktionen - Referenz (iLogic)

 

 

iPart.CurrentRowValue
Nachdem Sie die gewünschte Zeile mithilfe der Funktion iPart.FindRow gefunden haben, werden die verknüpften Spaltenwerte aus dieser Zeile unter Verwendung dieser Funktion gelesen.
Mit dieser Funktion können nur numerische Werte gelesen werden. Verwenden Sie zum Lesen von Spalten mit Text die Funktion iPart.CurrentRowStringValue. Syntax d0 = iPart.CurrentRowValue("columnName") Die aktuelle Zeile lässt sich mithilfe folgender Funktionen festlegen: iPart.FindRow iPart.ChangeRow iPart.RowName iPart.RowNumber iPart.FindRow oder iPart.ChangeRow “columnName” Der Name der gewünschten Spalte in der iPart-Tabelle Beispiel In diesem Beispiel wird in der Spalte Port_Size der iPart-Tabelle port_1_flare_flange nach dem genauen Wert gesucht, der mit dem Wert des Inventor-Parameters Port_1_Size übereinstimmt. Nachdem Sie die gewünschte Zeile gefunden wurde, wird iPart.CurrentRowValue verwendet, um die Bemaßungen aus den Tabellenspalten A_dim und B_dim abzurufen. Anschließend werden diese Werte den Inventor-Parametern Port_1_screw_A_dim und Port_1_screw_B_dim zugewiesen: i = iPart.FindRow("port_1_flare_flange", "Port_Size", "=", Port_1_Size) Port_1_screw_A_dim = iPart.CurrentRowValue("A_dim") Port_1_screw_B_dim = iPart.CurrentRowValue("B_dim")

 

Deine Fehlermeldung sagt übrigens auch, dass genau das nicht geht:

"Fehler in Zeile 2 : Der Ausdruck ist ein Wert und kann nicht als Ziel einer Zuweisung verwendet werden."

 

Hilft Dir das ein Stückchen weiter?



Dennis Ossadnik
Senior Technical Support Specialist
Nachricht 4 von 8
Paddy66024194
als Antwort auf: Dennis.Ossadnik

Ok vielen Dank,

aber ist es grundsätzlich möglich Werte in die Tabelle zu schreiben und wenn ja wie?

Nachricht 5 von 8
Juergen_Wagner
als Antwort auf: Paddy66024194

iLogic kann die Inventor API nutzen, also reicht es nach "Inventor API help ipart" zu googlen und zu schauen was da raus kommt. Ich denke, da findest du alles, was du brauchst.  http://adndevblog.typepad.com/manufacturing/2013/07/inventor-api-ipart-functionality.html

 

Und da das VBA Beispiele sind: VBA in iLogic umwandeln geht so: https://inventorfaq.blogspot.de/2017/04/vba-code-in-ilogic-code-umwandeln.html

 

Nachricht 6 von 8
Paddy66024194
als Antwort auf: Juergen_Wagner

Ja das habe ich schon gefunden, aber ich dachte es gibt vielleicht eine einfachere Lösung um in einer iPart Tabelle die Bauteilunterdrückung zu ändern.

Nachricht 7 von 8
Juergen_Wagner
als Antwort auf: Paddy66024194

das ist supereinfach, wenn du die Struktur verstanden hast. 

1. Schau dir mal diesen Blogpost an: https://inventorfaq.blogspot.de/2017/03/inventor-automatisieren-programmieren_13.html

das siehst du wie du Infos aus einem Inventorobjekt auslesen kannst. 

 

markiere das iPart im Baum und führe den Code aus.

 

2017-11-14 21_19_12.png

 

Das ergibt bei einem iPart das. so siehst du was du wo ändern musst

2017-11-14 21_15_33.png

 

Hier zur Erläuterung was der Code macht

 

2017-11-14 21_12_09.png

 

iLogiccode zum ändern des Wertes. Das ist alles ohne "Schnickschnack". 

 

SyntaxEditor Code Snippet

oFactory = ThisApplication.ActiveDocument.ComponentDefinition.iPartFactory
oFactory.DefaultRow.Item(4).Value = "0"

 

 

 Am besten, du lernst das programmieren, dann wird es einfacher 😉

 

Nachricht 8 von 8
Paddy66024194
als Antwort auf: Juergen_Wagner

Ja so sieht es schon einfacher aus 😄 vielen Dank, und auch für den Link mit dem Programmierkurs diesen Kurs habe ich vorher noch nicht gesehen, aber ganau das was ich brauche.

Sie finden nicht, was Sie suchen? Fragen Sie die Community oder teilen Sie Ihr Wissen mit anderen.

In Foren veröffentlichen  

Autodesk State of Design & Make Report