Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Inventor
  Regel reagiert nicht bei Parameteränderung

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte
Autor Thema:  Regel reagiert nicht bei Parameteränderung (1523 mal gelesen)
kiri2
Mitglied
Tech.Produktdesigner


Sehen Sie sich das Profil von kiri2 an!   Senden Sie eine Private Message an kiri2  Schreiben Sie einen Gästebucheintrag für kiri2

Beiträge: 34
Registriert: 13.03.2014

erstellt am: 01. Sep. 2014 13:54    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo,

ich brauch mal wieder euren iLogic Rat. Ein teil meines Codes funktioniert leider nicht.

Code:
'Prüft ob der Parameter sich geändert hat
If Not  Parameter("Position_1") = Length_MemoryEL1 Then
  ...
End If

'Speichert den eingegebenen Wert
Length_MemoryEL1 = Parameter("Position_1")


Der Parameter ist nicht immer vorhanden deswegen muss ich es so: Parameter("Position_1")  schreiben und halt die Fehlermeldungen ausstellen wenn er nicht gefunden wird.

Jedoch reagiert die Regel nicht wenn ich den Wert für den Parameter ändere.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

muellc
Ehrenmitglied V.I.P. h.c.
ICT Specialist



Sehen Sie sich das Profil von muellc an!   Senden Sie eine Private Message an muellc  Schreiben Sie einen Gästebucheintrag für muellc

Beiträge: 3501
Registriert: 30.11.2006

Inventor 2017.4.12 64 bit
Windows 10 Enterprise 64 bit
3DEXPERIENCE R2016x
--------------------
HP Z-Book 15 G4
32 Gig Ram
NVIDIA Quadro M2200
2x HP E243i

erstellt am: 03. Sep. 2014 10:02    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für kiri2 10 Unities + Antwort hilfreich

Hallo kiri2,

du könntest mit dem Try Befehl testen ob du den Parameter überschreiben kannst und ihn bei einer Fehlermeldung anlegen lassen.

Code:

oMyParameter=ThisApplication.ActiveDocument.ComponentDefinition.Parameters.UserParameters

Try
Parameter("Position_1") = Lenght_MemoryEL1
Catch
'Setting an userParameter as Millimeteres
oParameter=oMyParameter.AddByExpression("Position_1", "1", UnitsTypeEnum.kMillimeterLengthUnits)
End Try


Wenn du einen Textparameter anlegen willst schaust du hier:

http://forums.autodesk.com/t5/inventor-customization/ilogic-code-to-create-a-user-parameter/td-p/3109178

------------------
Gruß, Gandhi
"Dem guten Frager ist schon halb geantwortet" - Friedrich Nietzsche

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

kiri2
Mitglied
Tech.Produktdesigner


Sehen Sie sich das Profil von kiri2 an!   Senden Sie eine Private Message an kiri2  Schreiben Sie einen Gästebucheintrag für kiri2

Beiträge: 34
Registriert: 13.03.2014

erstellt am: 11. Sep. 2014 12:06    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo,

danke erstemal für deine Antwort. Damit komme ich leider nicht weiter.

Ich habe ja schon eine Regel die steuert ob der Parameter da ist oder nicht. Aufgrund einer Anzahl.

Hier die Regel:

Code:
Imports Inventor.UnitsTypeEnum

Sub Main()

Dim oDoc As Document
oDoc = ThisApplication.ActiveDocument

Dim oCompDef As ComponentDefinition
oCompDef = oDoc.ComponentDefinition

Dim oParams As Parameters
oParams = oCompDef.Parameters

Dim oUserParams As UserParameters
oUserParams = oParams.UserParameters

If Anzahl >= 1 Then
Dim Leiste_1 As Parameter
Try
oTester = oUserParams.Item("Position_1")
Catch
oMaterialType = oUserParams.AddbyValue("Position_1", "0", kTextUnits)
End Try
End If
If Anzahl < 1 Then
Try
Dim param As Parameter
param = oDoc.ComponentDefinition.Parameters.Item("Position_1")
param.Delete
Catch
End Try
End If


If Anzahl >= 2 Then
Dim Leiste_2 As Parameter
Try
oTester = oUserParams.Item("Position_2")
Catch
oMaterialType = oUserParams.AddbyValue("Position_2", "0", kTextUnits)
End Try
End If
If Anzahl < 2 Then
Try
Dim param As Parameter
param = oDoc.ComponentDefinition.Parameters.Item("Position_2")
param.Delete
Catch
End Try
End If

If Anzahl >= 3 Then
Dim Leiste_3 As Parameter
Try
oTester = oUserParams.Item("Position_3")
Catch
oMaterialType = oUserParams.AddbyValue("Position_3", "0", kTextUnits)
End Try
End If
If Anzahl < 3 Then
Try
Dim param As Parameter
param = oDoc.ComponentDefinition.Parameters.Item("Position_3")
param.Delete
Catch
End Try
End If

End Sub


Diese gibt an wie viele Parameter für die verschiedenen Positionen der Extrusionen im Bauteil vorhanden sind.

Diese Regel:

Code:
Parameter.Quiet = True

Pos_1 = Parameter("Position_1")
Pos_2 = Parameter("Position_2")
Pos_3 = Parameter("Position_3")


' Check if Position parameter has changed
If Not Pos_1 = Pos_Memory_1 Then
MessageBox.Show("parameter has changed do rule update again")
End If

' Set memory parameter again
Pos_Memory_1 = Pos_1

' Check if Position parameter has changed
If Not Pos_2 = Pos_Memory_2 Then
MessageBox.Show("parameter has changed do rule update again")
End If

' Set memory parameter again
Pos_Memory_2 = Pos_2

' Check if Position parameter has changed
If Not Pos_3 = Pos_Memory_3 Then
MessageBox.Show("parameter has changed do rule update again")
End If

' Set memory parameter again
Pos_Memory_3 = Pos_3


Soll nun Prüfen ob sich einer der eben erstellten Parameter noch durch eine Nutzereingabe verändert hat. Doch leider aktualisiert er die Parameter in der Regel nicht wenn der Benutzer in den Parametern einen neuen Wert eingibt.

Gibt es da eine Lösung?

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

muellc
Ehrenmitglied V.I.P. h.c.
ICT Specialist



Sehen Sie sich das Profil von muellc an!   Senden Sie eine Private Message an muellc  Schreiben Sie einen Gästebucheintrag für muellc

Beiträge: 3501
Registriert: 30.11.2006

Inventor 2017.4.12 64 bit
Windows 10 Enterprise 64 bit
3DEXPERIENCE R2016x
--------------------
HP Z-Book 15 G4
32 Gig Ram
NVIDIA Quadro M2200
2x HP E243i

erstellt am: 12. Sep. 2014 08:04    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für kiri2 10 Unities + Antwort hilfreich

Automatikmodus ist aber eingeschaltet?

------------------
Gruß, Gandhi
"Dem guten Frager ist schon halb geantwortet" - Friedrich Nietzsche

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

kiri2
Mitglied
Tech.Produktdesigner


Sehen Sie sich das Profil von kiri2 an!   Senden Sie eine Private Message an kiri2  Schreiben Sie einen Gästebucheintrag für kiri2

Beiträge: 34
Registriert: 13.03.2014

erstellt am: 12. Sep. 2014 08:47    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Ja, der Haken ist bei beiden Regeln gesetzt.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2024 CAD.de | Impressum | Datenschutz