Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de
  Inventor
  iLogic RangeBox bringt Fehlermeldung bei Baugruppen Zeichnungen

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
  
3-D-Konstruktion, Zeichnungserstellung, Dokumentation , eine Pressemitteilung
Autor Thema:  iLogic RangeBox bringt Fehlermeldung bei Baugruppen Zeichnungen (221 / mal gelesen)
TRL
Mitglied
Konstruktionsassistent

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

Beiträge: 8
Registriert: 12.03.2024

Inventor 2022, iLogic

erstellt am: 03. Mrz. 2025 15:07    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 habe mir vor einer ganzen weile eine RangeBox zusammen gesucht aus diversen Forenbeiträgen mit der ich meine 3 Parameter Bruttobreite, Bruttotiefe, Bruttohöhe mit den Abmaßen füllen kann. Das ganze funktioniert auch prima in allen Bauteilen und Baugruppen. Das ganze führe ich als Globale Regel aus bei Bauteilen und Baugruppen.

Ich habe allerdings jetzt festgestellt das gelegentlich in Baugruppenzeichnungen nun Fehlermeldungen auftauchen. Ich habe leider nicht mal ansatz weise viel ahnung von iLogic benötige aber etwas was diese Paramter sauber erzeugt.

Er meldet folgendes:

Fehler in Zeile 27 in Regel RangeBox xyz, in Document xxxxxx.idw

Mitglied nicht gefunden. (Ausnahme von HRESULT:0x80020003(DISP_E_MEMBERNOTFOUND))

Weiter Informationen in der Fehlermeldung sind noch :

System.Runtime.InteropServices.COMException (0x80020003): Mitglied nicht gefunden. (Ausnahme von HRESULT: 0x80020003 (DISP_E_MEMBERNOTFOUND))
  bei Microsoft.VisualBasic.CompilerServices.LateBinding.LateGet(Object o, Type objType, String name, Object[] args, String[] paramnames, Boolean[] CopyBack)
  bei Microsoft.VisualBasic.CompilerServices.NewLateBinding.LateGet(Object Instance, Type Type, String MemberName, Object[] Arguments, String[] ArgumentNames, Type[] TypeArguments, Boolean[] CopyBack)
  bei ThisRule.Main() in Externe Regel: RangeBox xyz:Zeile 34.
  bei Autodesk.iLogic.Exec.AppDomExec.ExecRuleInAssembly(Assembly assem)
  bei iLogic.RuleEvalContainer.ExecRuleEval(String execRule)

Mein Code schaut wie folgt aus.

Sub Main()

Try
If iProperties.Value("Custom", "Bruttobreite") = True Then
Else
iProperties.Value("Custom", "Bruttobreite") = ""
End If
Catch
End Try

Try
If iProperties.Value("Custom", "Bruttotiefe") = True Then
Else
iProperties.Value("Custom", "Bruttotiefe") = ""
End If
Catch
End Try

Try
If iProperties.Value("Custom", "Bruttohöhe") = True Then
Else
iProperties.Value("Custom", "Bruttohöhe") = ""
End If
Catch
End Try

oCompDef = ThisApplication.ActiveDocument.ComponentDefinition      '' Hier meldet es den Fehler in Zeile 27

Ax= Round(10*(oCompDef.RangeBox.MaxPoint.X - oCompDef.RangeBox.MinPoint.X),2)
Ay= Round(10*(oCompDef.RangeBox.MaxPoint.Y - oCompDef.RangeBox.MinPoint.Y),2)
Az= Round(10*(oCompDef.RangeBox.MaxPoint.Z - oCompDef.RangeBox.MinPoint.Z),2)

iProperties.Value("Custom", "Bruttobreite") = Ax
iProperties.Value("Custom", "Bruttotiefe") = Ay          ''Zeile 34
iProperties.Value("Custom", "Bruttohöhe") = Az

InventorVb.DocumentUpdate()

End Sub


Der Fehler scheint auch nicht immer zu kommen.

Kann mir hier jemand weiterhelfen?

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

rkauskh
Moderator
Dipl.-Ing. (FH) Versorgungstechnik




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

Beiträge: 2788
Registriert: 15.11.2006

Windows 10 x64, AIP 2020-2025

erstellt am: 04. Mrz. 2025 08:40    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 TRL 10 Unities + Antwort hilfreich

Moin

Doch, ich glaube der Fehler kommt in jeder IDW. Ein Zeichnungsdokument hat keine ComponentDefinition auf die man zugreifen könnte. Was willst du auch mit Länge, Breite, Höhe einer Zeichnung? 
Wenn überhaupt, musst du dir das referenzierte Dokument der Zeichnung holen. Das macht aber null Sinn, da die Abmessungen schon beim Speichern des referenzierten Bauteil-/Baugruppendokumentes geschrieben wurden. Lass die Regel in Bauteilen und Baugruppen beim Speichern laufen, das reicht.

Ich empfehle in Abmessungsproperties kein NULL-Werte zu verwenden. Leere Felder bei Zahlenangaben können in Drittanbieterprogrammen zu Rechnfehlern führen. Es wäre besser eine 0 zu schreiben. Aber wenn es leer sein soll, könnte man es auch kürzen.

Code:

Sub Main()

If Measure.ExtentsLength = 0 Then
iProperties.Value("Custom", "Bruttobreite") = ""
Else
iProperties.Value("Custom", "Bruttobreite") = Round(Measure.ExtentsLength, 2)
End If
If Measure.ExtentsWidth = 0 Then
iProperties.Value("Custom", "Bruttotiefe") = ""
Else
iProperties.Value("Custom", "Bruttotiefe") = Round(Measure.ExtentsWidth,2)
End If
If Measure.ExtentsHeight = 0 Then
iProperties.Value("Custom", "Bruttohöhe") = ""
Else
iProperties.Value("Custom", "Bruttohöhe") = Round(Measure.ExtentsHeight,2)
End If

End Sub


Mit einer 0 könnte man es so schreiben:

Code:

Sub Main()
Try
iProperties.Value("Custom", "Bruttobreite") = Round(Measure.ExtentsLength, 2)
iProperties.Value("Custom", "Bruttotiefe") = Round(Measure.ExtentsWidth, 2)
iProperties.Value("Custom", "Bruttohöhe") = Round(Measure.ExtentsHeight, 2)
Catch
MsgBox("Fehler beim Erstellen der Abmessungen in " & System.IO.Path.GetFileName(ThisDoc.Document.FullFileName , MsgBoxStyle.Critical, "iLogic Abmessungen")
End Try
End Sub


P.S.: Bitte nicht ohne Grund Try-Catch Anweisungen mit leerem Catch Zweig verwenden. Du rennst so in einen Fehler, nichts passiert und du merkst nichts davon. Wenn in deinem Fall das Leeren der iProps fehlschlägt, dürfte mit hoher Wahrscheinlichkeit auch das anschließende Schreiben eines neuen Wertes fehlschlagen. Dann bekommst du deinen Fehler dort geworfen. Hier mag es noch überschaubar sein, in größeren Codes leitet dich so etwas an eine völlig falsche Stelle im Code, wo angeblich der Fehler liegen soll.

------------------
MfG
Ralf

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

TRL
Mitglied
Konstruktionsassistent

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

Beiträge: 8
Registriert: 12.03.2024

Inventor 2022, iLogic

erstellt am: 04. Mrz. 2025 11:35    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

Erst mal danke für den hinweiß mit den Nullen.

Leider ist es es das ich eigentlich überhaupt keine ahnung von der Materie habe.

Ich möchte eigentlich auch garnicht das es in Zeichnungen ausgeführt wird. Ich vermute bald ich habe die Ereignisauslöser hier falsch eingestellt.
Sie ist als Externe Regelabgespeichert und ich habe die Ereignisauslöser für Bauteile und Baugruppen eingestellt.

Als auslöse Ereignis habe ich "Vor dem speichern von Dokument", "Beliebige" Modellparameteränderung" und "Beliebige Änderung von Benutzerparametern" ausgewählt.
Eventuell kommtes durch das Speichern der Zeichnung auch zu einem speichern des Modells in dem moment?

Oder wie verhindere ich das es in Zeichnungen ausgeführt wird?


Hintergrund ist das ich gerade tausende Bauteile und Baugruppen für ein neues PDM System aufarbeite (welches die 3 Parameter verarbeitet). Die 3 Parameter gab es vorher bei uns nicht und ich setze sie gerade in jede Datei (Bauteile und Baugruppen). Die Bauteile sind im großteil Parametrisch so das es auch oft zu neuen Teilen mit neuen abmessungen kommt und die Parameter sollten in dem fall mit automatisch aktualisiert werden.

[Diese Nachricht wurde von TRL am 04. Mrz. 2025 editiert.]

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

rkauskh
Moderator
Dipl.-Ing. (FH) Versorgungstechnik




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

Beiträge: 2788
Registriert: 15.11.2006

Windows 10 x64, AIP 2020-2025

erstellt am: 04. Mrz. 2025 11:53    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 TRL 10 Unities + Antwort hilfreich

Moin

ThisApplication.ActiveDocument ist immer die Datei deren Name im Inventor oben in der Titelleiste steht. Ich vermute bei dir, dass die Zeichnung geöffnet ist und das verknüpfte 3D-Modell gespeichert wird. Du musst dabei in deiner Regel die Zeile

Code:
oCompDef = ThisApplication.ActiveDocument.ComponentDefinition

ersetzen mit
Code:
oCompDef = ThisDoc.Document.ComponentDefinition

Das benutzt nicht das aktive Dokument, sondern das Dokument von dem aus die Regel aufgerufen wurde.
Nimm die beiden Ereignisauslöser für die Parameteränderung wieder raus. Du löst deine Regel sonst mehrfach aus, das kostet nur Performance und Zeit. Einmal vor dem Speichern genügt.
Das Bauteile und Baugruppen auch verdreht im Koordinatensystem liegen können und die Abmessungen dann, sagen wir mal suboptimal ermittelt werden ist dir bewusst? Òder das sichtbare Skizzen und Arbeitselemente in der Abmessungsermittlung berücksichtigt werden?

------------------
MfG
Ralf

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

TRL
Mitglied
Konstruktionsassistent

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

Beiträge: 8
Registriert: 12.03.2024

Inventor 2022, iLogic

erstellt am: 04. Mrz. 2025 12:32    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,

das mit dem verdrehten Kordninatensystem ist mir bekannt, aber das bringt auch nix wenn die Konstrukteure jedes mal auf einer anderen Ebene anfangen zu konstruieren .

Das mit den sichtbaren Arbeitselementen und Skizzen habe ich noch nicht gewusst. Danke für den Hinweiß.

Ob es vieleicht gescheitere Lösungen gibt für diesen Fall weiß ich leider nicht, ich war schon froh das ich nach Stundenlangen suchen in foren und ausprobieren dann endlich eine Lösung gefunden hatte die funktionierte. Es ist leider relativ schwer für Neulinge das Thema iLogic zu verstehen oder Erklärungen zu finden.

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

rkauskh
Moderator
Dipl.-Ing. (FH) Versorgungstechnik




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

Beiträge: 2788
Registriert: 15.11.2006

Windows 10 x64, AIP 2020-2025

erstellt am: 04. Mrz. 2025 13:18    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 TRL 10 Unities + Antwort hilfreich

Moin

Für deinen Fall bringt es wenig, aber man könnte mit einem Benutzerkoordinatensystem die Ausrichtung korrigieren, wenn man dieses als Basis für die Amessungen hernimmt. Das jetzt nachträglich in alle Bauteile und Baugruppen zu packen ... ist eher eine Strafe als ein Aufgabe.

Die Skizzen und Arbeitsebenen könnte man mit der Objektsichtbarkeit (ThisDoc.Document.ObjectVisibility.AllWorkFeatures = False) ausknipsen. Eventuell muss man noch mehr der möglichen Optionen auf Sichtbar=False stellen, das hab ich nicht im Kopf.

Hier im "Inventor VBA" und "Inventor .Net" Forum ist das Thema Abmessungen schon mehrfach diskutiert worden. Da tauchen dann auch Problemstellungen wie "ein gewundener Schlauch oder ein Rohrmäander hat andere Abmessungen als die BoundingBox ausgibt" oder "zählen beim Blechteil die Abwicklungsmaße oder die gekanteten" auf.

------------------
MfG
Ralf

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)2025 CAD.de | Impressum | Datenschutz