Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Inventor
  ILogic verhält sich unterschiedlich

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
  
PNY bietet das umfangreichste Ökosystem von B2B als auch B2C-Lösungen für IT-Akteure auf dem Markt
Autor Thema:  ILogic verhält sich unterschiedlich (1773 mal gelesen)
Barbatoss
Mitglied
Ingenieur


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

Beiträge: 38
Registriert: 17.02.2016

Inventor Professional 2018
Build 227 - Release 2018.2
Intel Xeon E5-1620 v3
32GB DDR4
Nvidia Quadro K2200
Win10 Pro

erstellt am: 27. Apr. 2016 09:12    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


GF-BE01092017549.ipt


560506_ELGR-TB-45-400-0H-ST-E-AD-FR_1_5E_C5DION.ipt

 
Hallo zusammen!

Ich kämpfe derzeit ein bisschen mit ILogic (deshalb auch schon die ein oder andere Frage in anderen Beiträgen).
Nun habe ich eine ILogic gebaut, die mir in einer Datei alle benutzerdefinierten IProperties löscht, die nicht vorher im Code definiert wurden, bzw. diese dann auch anlegt, wenn sie noch nicht existieren.
(Ok, der Code ist grauslig aber ohne Eingabehilfe selbst schreiben kann ich nicht, und die ILogic Hilfe ist leider nicht so wirklich hilfreich. Also muss ich irgendwie bestehendes aus dem Netz kopieren)

Mein Problem ist, dass der Code (eingefügt in zwei unterschiedliche IPT´s) einmal läuft und einmal abbricht mit:
Fehler in Regel: Regel0 in Dokument: GF-BE01092017549.ipt

Falscher Parameter. (Ausnahme von HRESULT: 0x80070057 (E_INVALIDARG))

Meine Frage nun: Wieso tut der das?

Der Code lautet:

Code:
'define list of custom properties to keep

Dim MyArrayList As New ArrayList

MyArrayList.add("Abmessung")

MyArrayList.add("Baugruppen-Name")

MyArrayList.add("Bemerkung")

MyArrayList.add("Werkstoff")

'define custom property collection

oCustomPropertySet = ThisDoc.Document.PropertySets.Item("Inventor User Defined Properties")


'look at each property in the collection

For Each oCustProp In oCustomPropertySet

'check property name against the list you don't want to delete

If Not MyArrayList.Contains(oCustProp.Name)Then

'skip it

'Else

'delete the custom iProperty

oCustProp.Delete

End If

Next

Dim propertyName1 As String = "Abmessung"

Dim propertyName2 As String = "Baugruppen-Name"

Dim propertyName3 As String = "Bemerkung"

Dim propertyName4 As String = "Werkstoff"


customPropertySet = ThisDoc.Document.PropertySets.Item("Inventor User Defined Properties")


Try

          prop = customPropertySet.Item(propertyName1)

          prop = customPropertySet.Item(propertyName2)
 
  prop = customPropertySet.Item(propertyName3)

          prop = customPropertySet.Item(propertyName4)

Catch

      ' Assume error means not found

          customPropertySet.Add("", propertyName1)

          customPropertySet.Add("", propertyName2)
 
  customPropertySet.Add("", propertyName3)
 
  customPropertySet.Add("", propertyName4)

End Try



Um eine kleine Anregung wäre ich euch wie immer sehr dankbar!

Grüße,
Thomas

[Diese Nachricht wurde von Barbatoss am 27. Apr. 2016 editiert.]

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

Chris 31
Mitglied
Konstrukteur und Mädchen für alles


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

Beiträge: 575
Registriert: 23.04.2013

Inventor 2013
Windows 7 64 bit
16GB RAM
nVidia Quadro 600

erstellt am: 27. Apr. 2016 09:44    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 Barbatoss 10 Unities + Antwort hilfreich

Hallo Thomas,

du hast in deinem Try das Prop nicht definiert. So läuft der Code vermutlich gleich in das Catch rein, in dem er ja das iProp anlegen soll. Was natürlich nicht geht, wenn es schon existiert. Deshalb mal der Fehler und mal nicht. Wenn es nicht existiert, dann läuft der Code, wenn es existiert, dann steigt er aus.

------------------
MFG

Chris

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

Barbatoss
Mitglied
Ingenieur


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

Beiträge: 38
Registriert: 17.02.2016

Inventor Professional 2018
Build 227 - Release 2018.2
Intel Xeon E5-1620 v3
32GB DDR4
Nvidia Quadro K2200
Win10 Pro

erstellt am: 27. Apr. 2016 10:31    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

Zitat:
Original erstellt von Chris 31:
Hallo Thomas,

du hast in deinem Try das Prop nicht definiert. So läuft der Code vermutlich gleich in das Catch rein, in dem er ja das iProp anlegen soll. Was natürlich nicht geht, wenn es schon existiert. Deshalb mal der Fehler und mal nicht. Wenn es nicht existiert, dann läuft der Code, wenn es existiert, dann steigt er aus.


Hallo Chris!

Vielen Dank für die schnelle Unterstützung!
Ich habe jetzt die Try/Catch Befehle für jeder IProperty einzeln eingefügt, damit scheine ich das Problem beseitigen zu können.
Der Code ist insgesamt nicht schön, aber er funktioniert :-)

Danke,
Thomas

Code:
Try
'set property value
oProp = oCustomPropertySet.Item(propertyName1)
Catch
' Assume error means not found so create it
oCustomPropertySet.Add("", propertyName1)
End Try

Try
'look for property
oProp = oCustomPropertySet.Item(propertyName2)
Catch
' Assume error means not found so create it
oCustomPropertySet.Add("", propertyName2)
End Try

Try
'look for property
oProp = oCustomPropertySet.Item(propertyName3)
Catch
' Assume error means not found so create it
oCustomPropertySet.Add("", propertyName3)
End Try

Try
oProp = oCustomPropertySet.Item(propertyName4)
Catch
' Assume error means not found so create it
oCustomPropertySet.Add("", propertyName4)
End Try


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