Hallo,
ich habe eine .ipt mit 3 Benutzerdefinierten iProperties die für die Allgemeintoleranzen zuständig sind. In der .ipt ist immer nur ein iPropertie auch ausgefüllt.
Jetzt hab ich mir eine Regel geschrieben in der die .ipt die B-iProperties an die .idw übergibt und nachschaut in was für einem B-iPropertie ein Wert eingetragen ist und übergibt mir dann diesen in meinen Zeichnungsrahmen, und trägt ihn ein.
Leider kommt immer wieder die selbe Fehlermeldung.
"Ungültige Konvertierung von der Zeichenfolge in Typ Integer"
Kann mir hierbei bitte jemand helfen oder weiß einer vielleicht eine elegantere Lösung sowas in meine Zeichnung automatisch von der .ipt Einzutragen?
Hier der bisherige Code:
'Schliese Regel wenn kein Bauteil in der Zeichnung vorhanden ist If (ThisDrawing.ModelDocument Is Nothing) Then Return 'Erhalten Sie den Dateinamen des Dokuments, auf das die Zeichnung verweist modelName = IO.Path.GetFileName(ThisDrawing.ModelDocument.FullFileName) 'Lesen Sie die Werte aus den benutzerdefinierten iProperties in der Teildatei und'wenden Sie sie auf die benutzerdefinierten iProperties mit demselben Namen In der Zeichnung an iProperties.Value("Custom", "Allgemeintoleranz DIN 16742 - ") = iProperties.Value(modelName,"Custom", "Allgemeintoleranz DIN 16742 - ") iProperties.Value("Custom", "Allgemeintoleranz ISO 13920 - ") = iProperties.Value(modelName,"Custom", "Allgemeintoleranz ISO 13920 - ") iProperties.Value("Custom", "Allgemeintoleranz ISO 2768 - ") = iProperties.Value(modelName,"Custom", "Allgemeintoleranz ISO 2768 - ") 'Variabeln Dim DIN16742 As Integer = iProperties.Value("Custom", "Allgemeintoleranz DIN 16742 - ") Dim ISO13920 As Integer = iProperties.Value("Custom", "Allgemeintoleranz ISO 13920 - ") Dim ISO2768 As Integer = iProperties.Value("Custom", "Allgemeintoleranz ISO 2768 - ") 'Überprüfung If DIN16742 <> "" Then Write (aString, DIN16742) ElseIf ISO13920 <> "" Then Write (aString, ISO13920) ElseIf ISO2768 <> "" Then Write (aString, ISO2768) Else Write (aString, "") End If
Gelöst! Gehe zur Lösung
Gelöst von TAR_Loki. Gehe zur Lösung
Hey Hodanlump,
ich hätte da eine Idee.
Zuerst legst du unter den Parametern einen Multi-Value Parameter an (als Textparameter)
Hier trägst du deine 3 verschiedenen Normen ein. Zusätzlich noch einen Bindestrich "-"
Als nächstes blendest Du den i-Logic Browser ein und erstellst ein neues Formular.
Das sieht dann so aus.
Jetzt musst du noch etwas tippen.
In den i-Propertys legst Du unter "Benutzerdefiniert" den Wert "Toleranz" an.
Dieser wert wird dann später durch i-logic gefüllt werden.
Als nächstes brauchst Du eine Regel.
in die Tippst Du :
iProperties.Value("Custom", "Toleranz")=Toleranz
Wird nun diese Regel ausgeführt, landet der ausgewählte Wert der Multi-Value Liste in deinen i-Propertys.
Dieses Verhalten können wir noch automatisieren.
Nach dem Motto, wenn die Multi Value Liste auf "-" steht (also der Nutzer keine Auswahl getroffen hat) kommt beim Speichern automatisch das Auswahlformular.
Du brauchst noch eine Weitere Regel die Du "Pflichtfeld" nennst.
In die tippst Du
If Toleranz="-" Then iLogicForm.Show("Toleranzauswahl") End If
Jetzt benötigen wir einen Ereignisauslöser.
Der diese Regel vor dem Speichern ausführt.
Hier kannst Du "vor dem Speichern" auswählen.
Dann ist der passende Wert eingetragen, wenn der Speichervorgang abgeschlossen ist.
Auf der idw kannst du die ipropertys über einen Text abfragen.
Mach Dir am besten ein Skizziertes Symbol.
In diesem kannst du dann die Benutzerdefinierte Eigenschaft (in diesem Fall "Toleranz") abfragen.
Wenn Du die Toleranz auch in der Stückliste brauchst, mach die in der Teileliste einfach ein neues Feld.
Diese neue Feld benennst Du genauso wie die Benutzerdefinierte Eigenschaft heisst und schon taucht der Wert auch in der Stüli auf.
....Irgendwie werden die Bilder garnicht angezeigt.....mh....
Viel Spaß beim ausprobieren !
+dirk+
Hallo @Hodanlumb,
hast du den Vorschlag von Dirk ausprobiert? Hat es den gewünschten Erfolg gebracht?
Es wäre echt super, wenn wir ein Feedback von dir bekommen könnten. Damit können alle Leser aus deinen Erfahrungen profitieren und alle Poster wissen ob und wie sie dich noch unterstützen können.
Danke dir
LG
Das ganze geht auch noch einfacher.
Erstelle Dir 4 Parameter.
Dier ersten drei sind die, die Dir Deinen Wert bestimmen.
Für den vierten Parameter erstellt Du in iLogic einfach eine kurze Textzeile, so zu sagen eine einfach Art Namensgenerator:
Parameter_4 = Par_1 & Par_2 & Par_3
Nun Brauchst Du in Deiner idw nur noch den Parameter_4 auslesen lassen.
Da sich immer nur einer Deiner 3 Parameter füllt, wird in Parameter 4 auch nur ein Text stehen.
Als kurzes Beispiel hier meine ausfühliche Variante: (Ausgelesen wird hinterher nur ein Parameter namens Packer_Type)
Es tut mir leid das ich mich so lange nicht gemeldet habe. Leider hab ich noch keine Zeit gefunden es zu testen da ich seit meiner Anfrage ständig Im Unterricht war. Ich hoffe ich finde nächste Woche Zeit mir die Antworten anzuschaun, die beste Lösung für mich auszuwählen und euch Feedback zu geben.
Danke für Euer Verständnis.
Tobias Aumüller
Handwerkskammer Niederbayern Oberpfalz
Hallo @Hodanlumb,
hattest du schon Zeit hier drüber zu schauen? Welchen Weg bist du nun gegangen?
Wäre super, wenn du deine Erfahrungen hier mit den Lesern teilen würdest
Danke dir
LG
Hallo @Hodanlumb,
na wie schaut es bei dir aus? Hattest du nun einmal Zeit darüber zu schauen? Wäre super, wenn du den Beitrag, der dir geholfen hat deine Frage zu beantworten, als Lösung markieren könntest - du kannst auch zwei oder mehrere Beiträge markieren. Dann sehen aber auch andere Anwender direkt, was dir geholfen hat. 😉
Ansonsten kannst du uns auch gerne ein Update geben. 🙂
You found a post helpful? Then feel free to give likes to these posts!
Your question got successfully answered? Then just click on the 'Mark as solution' button.
Tarek Khodr
Community Manager
Sie finden nicht, was Sie suchen? Fragen Sie die Community oder teilen Sie Ihr Wissen mit anderen.