| |  | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte | | |  | Phoenix/PDM von ORCON bei Atlanta Antriebssysteme , ein Anwenderbericht
|
Autor
|
Thema: Suchen und Ersetzen im Modellbaum (587 / mal gelesen)
|
Hommel80 Mitglied

 Beiträge: 12 Registriert: 21.03.2015 Inventor 2022 Pro
|
erstellt am: 22. Jan. 2023 16:57 <-- editieren / zitieren --> Unities abgeben:         
Hallo Inventor gemeinde, ich brauch nochmal eure Hilfe. Ich versuche eine Ilogic-Code, mit einer "suchen und ersetzen" Funktion, den ich im Forum gefunden habe umzuschreiben das nicht bei den Volumenkörpern gesucht und ersetzt wird sondern bei den Elementen weiter unten im Modellbaum wie z.B. Skizze1, Extrusion1, Arbeitsebene, Umdrehung1, etc. Beispiel: Suche nach "Skizze1" und ersetze diese durch "Skizze Flachstahl" Hat da jemand einen Lösungsvorschlag für mich ? response = MessageBox.Show("Are you sure?", "Reminder",MessageBoxButtons.YesNo) If response = vbNo Then Exit Sub
myparam = InputBox( "/", "Replace In Solid Name", "Suchen/Ersetzen") If (myparam <> "") Then myparams = myparam.Split("/") replaceString = myparams(0) withString = myparams(1) For Each solid In ThisDoc.Document.ComponentDefinition.SurfaceBodies name = solid.Name name = name.Replace(replaceString, withString) solid.Name = name Next End If Gruß, Hommel Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
rkauskh Moderator Dipl.-Ing. (FH) Versorgungstechnik
      

 Beiträge: 2825 Registriert: 15.11.2006 Windows 10 x64, AIP 2020-2025
|
erstellt am: 23. Jan. 2023 09:40 <-- editieren / zitieren --> Unities abgeben:          Nur für Hommel80
Moin Wirf den Code weg, der ist von Grund auf untauglich. Nimm das BrowserPane Objekt der Modellbrowsers und gehe rekursiv durch die BrowserNodes. Jedes Objekt hat eine BrowserNodeDefinition und die hat ein Propertie "Label". Dort kannst du den Namen ändern. EDIT: Sorry, Irrtum von mir. Label ist ein ReadOnly Property. Aber mit dem NativeObject des BrowserNodes geht's auch... Code:
Option Explicit onPrivate Sub Main Dim oApp As Inventor.Application = ThisApplication Dim oDoc As Document = oApp.ActiveDocument Dim response As DialogResult = MessageBox.Show("Are you sure?", "Reminder",MessageBoxButtons.YesNo) If response = vbNo Then Exit Sub Dim myparam As String = InputBox( "/", "Replace In Solid Name", "Suchen/Ersetzen") If (myparam <> "") Then Dim myparams As String() = myparam.Split("/") Dim replaceString As String = myparams(0) Dim withString As String = myparams(1) Dim oBP As BrowserPane= oDoc.BrowserPanes.ActivePane Dim oBN As BrowserNode For Each oBN In oBP.TopNode.BrowserNodes If oBN.BrowserNodes.Count > 0 Then Call TraverseSubNodes(oBN, replaceString, withString) End If Try oBN.NativeObject.Name = oBN.NativeObject.Name.Replace(replaceString, withString) Catch End Try Next Else Exit Sub End If End Sub Private Sub TraverseSubNodes(ByVal oSBN As BrowserNode,ByVal replaceString As String, ByVal withString As String )
Dim oBN As BrowserNode For Each oBN In oSBN.BrowserNodes If oBN.BrowserNodes.Count > 0 Then Call TraverseSubNodes(oBN, replaceString, withString) End If Try oBN.NativeObject.Name = oBN.NativeObject.Name.Replace(replaceString, withString) Catch End Try Next End Sub
------------------ MfG Ralf
RKW Solutions GmbH www.RKW-Solutions.com Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |

| |
Hommel80 Mitglied

 Beiträge: 12 Registriert: 21.03.2015 Inventor 2022 Pro
|
erstellt am: 25. Jan. 2023 23:04 <-- editieren / zitieren --> Unities abgeben:         
|
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
 |