Hallo Passi2,
Ich gebe zu, ich habe mich bis jetzt eigentlich nur mit den DocumentProperties auseinandergesetzt und kenne mich somit in der Inventor-API nicht so gut aus wie andere, aber mir sind ein paar Sachen aufgefallen:
1. In der ersten Zeile definierst du "Element". Durch den Typrückschluss kannst du auf solche redundante Deklarationen ("As WorkPlane") verzichten.
2. Zweite Zeile: Du brauchst nicht den Boolean-Rückgabewert der Funktion abzurufen und mit True vergleichen. Lass' das "= True" einfach weg.
3. Zweite Zeile/PlaneSuppress-Function: Ich bin selbst zu faul, um bei Parameter-Übergaben zwischen ByVal/ByRef zu unterscheiden. Aber wenn du das Zeug schn hinschreibst, dann bitte richtig: Mit ByVal wird die aktuelle Klasseninstanz kopiert. Somit wären Änderungen in der Funktion nichtig. Zudem kopierst du die GANZE Inventor-Instanz, aber OHNE sie überhaupt zu nutzen. weg damit
4. PlaneSuppress-Function: Warum schaltest du die Ebenensichtbarkeit zuerst auf True, um dann zu prüfen, ob sie auf True gesetzt wurde? (oh, wieder Punkt 2)
Noch was: Lass' doch die Funktion gleich mit dem Rückgabewert beenden:
Code:
If Plane.Visible Then
Return False
Else
Return True
End If
5. Zeile 3: "MsgBox(...)" ist veraltet: Bitte nutze
Code:
MessageBox.Show(...)
6. Zeile 3-5 (If-Statement): Wenn du nur im True-Fall reagierst, empfehle ich der Übersicht wegen ein Einzeiler-If-Statement: (gemäss Punkt 2, 5, + Die Funktion PlaneSuppress ist ja eigentlich redundant)
Code:
If Not Element.Visible Then MessageBox.Show(...
Ich wollte dich mit diesen Punkten nicht entmutigen, sondern dir was Anderes/Besseres zeigen. Sobald ich genug Zeit habe, werd' ich mir mal die API nochmals ansehen. Bis dahin...
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP