Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  NX Programmierung
  Komonente suchen mit Joker

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 NX
Autor Thema:  Komonente suchen mit Joker (479 mal gelesen)
Holgi2010
Mitglied



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

Beiträge: 49
Registriert: 29.06.2010

NX8.5

erstellt am: 28. Aug. 2018 09: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

Hallo Zusammen,

ich möchte eine Baugruppen-Komponente über den Namen auswählen.
Wenn ich den vollen Namen in den String schreibe funktioniert das.
Leider ändert sich der Name von Baugruppe zu Baugruppe.
Deshalb müsste ich mit Joker arbeiten.
Hat jemand eine Idee?
Dankeschön.

Option Strict Off
Imports System
Imports NXOpen
Imports NXOpen.Assemblies
Imports System.Collections


Module NXJournal


  Sub Main()

KomponenteWaehlen
 
End sub

    Sub KomponenteWaehlen()

        Try
            Dim part1 As Part = theSession.Parts.Work
            Dim origPart As Part = part1

            alreadyProcessed = New Hashtable

            Dim c As ComponentAssembly = part1.ComponentAssembly
Walk(c.RootComponent, 0)

        Catch e As Exception
        End Try
    End Sub

'Module NXJournal
    Dim theSession As Session = Session.GetSession()
    Dim alreadyProcessed As Hashtable
    Dim prototype As Part
    Dim knt As Integer = 0
Dim Komponente_01 as String


    Sub Walk(ByVal c As Component, ByVal level As Integer)

        Dim children As Component() = c.GetChildren()
        Dim child As Component
        prototype = CType(c.Prototype, Part)

        If Not alreadyProcessed.Contains(prototype) Then

            alreadyProcessed.Add(prototype, prototype)
            knt = knt + 1

        End If

'Komponente_01 = "MHL 7235" 'der volle Name wird gefunden
Komponente_01 = "MHL " & "*" 'mit Joker wird nix gefunden :-(

        For Each child In children

If child.name = Komponente_01
' 'child.Suppress()
child.Highlight()
End if

            'Walk(child, level + 1)
        Next
    End Sub


End Module

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

matthias-p
Moderator
Konstruktion / Anwenderbetreuung


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

Beiträge: 491
Registriert: 09.06.2006

Teamcenter 11.3 / NX 11
Windows 10

erstellt am: 28. Aug. 2018 09:58    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 Holgi2010 10 Unities + Antwort hilfreich

Code:
If child.name = Komponente_01

du musst hier mit den String-Befehlen von VB arbeiten.
Wenn du "=" ist gleich sagst, dann sucht er auch genau nach dem string xyz*. Es gibt aber Funktionen wie StartsWith, EndWitch oder Contains...die brauchst du hier...
Hat jetzt nichts mit NXOpen zu tun, sondern mit VB und .net an sich.

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

Holgi2010
Mitglied



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

Beiträge: 49
Registriert: 29.06.2010

NX8.5

erstellt am: 28. Aug. 2018 11:08    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

Perfekt !!
Danke Matthias       

If child.name.StartsWith(Komponente_01) = True Then
'If child.name.EndsWith(Komponente_01) = True Then
'If child.name.Contains(Komponente_01) = True Then

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