Hot News:
   

Mit Unterstützung durch:

  Foren auf CAD.de
  Inventor
  ilogic Komponentennamen unabhängig

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

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
  
Autodesk Revit: Grundlagen - Online, ein Seminar am 10.12.2025
Autor Thema:  ilogic Komponentennamen unabhängig (146 / mal gelesen)
TimPa
Mitglied
Technischer Produktdesigner

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

Beiträge: 3
Registriert: 30.10.2024

Inventor 2025

erstellt am: 06. Nov. 2025 13: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

Moin,

Ich möchte mir als blutiger ilogic-Anfänger Vorlagen zum kopieren erstellen, bei denen ich in der Baugruppe die Maße eines Einzelteil verändern kann. Mein Problem ist dabei, das ich es nicht hinbekomme, dass die Regel unabhängig vom Komponentennamen ist. Das Bauteil was mit der Regel bearbeitet werden soll ist immer an Pos. 3 im Modell-Baum. Ich bin nach einiger Recherche leider nicht zu dem richtigen Kniff gekommen.


Parameter("100798:1", "Höhe") = E_Höhe - 3 mm

100798 ist in diesem Fall der Komponentenname

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

rkauskh
Moderator
Dipl.-Ing. (FH) Versorgungstechnik, Master Eng. IT-Security & Forensic




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: 2950
Registriert: 15.11.2006

Windows 10 x64, AIP 2020-2025

erstellt am: 06. Nov. 2025 23:48    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 TimPa 10 Unities + Antwort hilfreich

Moin

Variante 1 - Komponentenname normalisieren
Den Namen der Komponente im Teilebrowser überschreiben und auch in den Kopie der Baugruppe beibehalten. Ich vermute das ist wenig praktikabel, wenn im Teilebrowser immer der gleiche Name steht, obwohl es verschiedene Teile sind.


Variante 2 - Namen der Komponente ermitteln
Wenn es immer die dritte Komponente im Teilebrowser ist, kann man deren Namen auslesen. Probier mal:

Code:

Dim oAssDoc As AssemblyDocument = TryCast(ThisDoc.Document, Inventor.AssemblyDocument)
If oAssDoc Is Nothing Then Exit Sub
Dim sName As String = oAssDoc.ComponentDefinition.Occurrences.Item(3).Name

Parameter(sName, "Höhe") = E_Höhe - 3 mm



Variante 3 - Nach etwas eindeutigem in der Komponente suchen
Noch besser wäre der Komponente ein benutzerdefiniertes iProp mit einem eindeutigen Namen zu verpassen und danach zu suchen. Im Teilebrowser mal unbedacht was verschoben oder eingefügt/gelöscht und an Platz 3 steht ein anderes Teil. Dann geht nix mehr und keiner weiß mehr warum.
Der Inhalt des iProps ist nicht von Bedeutung. Es könnte z.B. die Warnung sein, dass es nicht gelöscht werden darf, weil für iLogicregel xyz erforderlich.

Code:

Sub main
Dim oAssDoc As AssemblyDocument = TryCast(ThisDoc.Document, Inventor.AssemblyDocument)
If oAssDoc Is Nothing Then Exit Sub

Dim sName As String = GetCompName("Mein_iPropName", oAssDoc) ' <------------------------------------Name des iProps anpassen

Parameter(sName, "Höhe") = E_Höhe - 3 mm
End Sub

Private Function GetCompName(ByVal sPropName As String, ByVal oAssDoc As AssemblyDocument) As String
Try
Dim oDoc As Document
For Each oOcc As ComponentOccurrence In oAssDoc.ComponentDefinition.Occurrences
If oOcc.Definition.Type = ObjectTypeEnum.kPartComponentDefinitionObject Then
oDoc = DirectCast(oOcc.Definition.Document,Document)
For Each oProp As Inventor.Property In oDoc.PropertySets(4)
If oProp.Name = sPropName Then
Return oOcc.Name
End If
Next
End If
Next
Catch
Return Nothing
End Try
End Function


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

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

TimPa
Mitglied
Technischer Produktdesigner

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

Beiträge: 3
Registriert: 30.10.2024

Inventor 2025

erstellt am: 07. Nov. 2025 07:00    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

Erstmal besten Dank für den Aufwand!

Ich finde Variante 3 am besten.

Allerdings bekomme ich die Fehlermeldung "Parameter: Keinen Parameter mit dem Namen "Höhe" gefunden"
Ich habe dem Bauteil ein Benutzerdefiniertes iPropertie mit dem Namen WT_Fuß_Vorne gegeben, mit Inhalt gefüllt und in die Formel eingefügt. (siehe unten)

Bei Variante 2 funktioniert es allerdings.

Habe ich irgendwas übersehen?

Sub main
Dim oAssDoc As AssemblyDocument = TryCast(ThisDoc.Document, Inventor.AssemblyDocument)
If oAssDoc Is Nothing Then Exit Sub
Dim sName As String = GetCompName("WT_Fuß_Vorne", oAssDoc) ' <------------------------------------Name des iProps anpassen

Parameter(sName, "Höhe") = E_Höhe - 3 mm
End Sub

Private Function GetCompName(ByVal sPropName As String, ByVal oAssDoc As AssemblyDocument) As String
Try
Dim oDoc As Document
For Each oOcc As ComponentOccurrence In oAssDoc.ComponentDefinition.Occurrences
If oOcc.Definition.Type = ObjectTypeEnum.kPartComponentDefinitionObject Then
oDoc = DirectCast(oOcc.Definition.Document,Document)
For Each oProp As Inventor.Property In oDoc.PropertySets(4)
If oProp.Name = sPropName Then
Return oOcc.Name
End If
Next
End If
Next
Catch
Return Nothing
End Try
End Function

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

rkauskh
Moderator
Dipl.-Ing. (FH) Versorgungstechnik, Master Eng. IT-Security & Forensic




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: 2950
Registriert: 15.11.2006

Windows 10 x64, AIP 2020-2025

erstellt am: 07. Nov. 2025 10:21    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 TimPa 10 Unities + Antwort hilfreich

Moin

Vermutlich ist da ein unterdrücktes Exemplar in der Baugruppe. Das löst einen Fehler aus. Neuer Versuch:

Code:

Sub main
Dim oAssDoc As AssemblyDocument = TryCast(ThisDoc.Document, Inventor.AssemblyDocument)
If oAssDoc Is Nothing Then Exit Sub
Dim sName As String = GetCompName("WT_Fuß_Vorne", oAssDoc) ' <------------------------------------Name des iProps anpassen
Parameter(sName, "Höhe") = E_Höhe - 3 mm
oAssDoc.Update
End Sub

Private Function GetCompName(ByVal sPropName As String, ByVal oAssDoc As AssemblyDocument) As String
Try
Dim oDoc As Document
For Each oOcc As ComponentOccurrence In oAssDoc.ComponentDefinition.Occurrences
If oOcc.Suppressed= True Then Continue For
If oOcc.Definition.Type = ObjectTypeEnum.kPartComponentDefinitionObject Then
oDoc = DirectCast(oOcc.Definition.Document,Document)
For Each oProp As Inventor.Property In oDoc.PropertySets(4)
If oProp.Name = sPropName Then Return oOcc.Name
Next
End If
Next
Catch
Return Nothing
End Try
End Function



------------------
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

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