Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Linien im GeoSet löschen

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
Autor Thema:  Linien im GeoSet löschen (881 mal gelesen)
Tweety79
Mitglied
Entwicklung Automotive


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

Beiträge: 269
Registriert: 09.12.2007

WPF, VBA, CATScript, Access

erstellt am: 13. Jul. 2016 13:49    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 habe in einem GeoSet nur Linien und Punkte.
Nur bestimmte Punkte und besstimmte Linien müssen gelöscht werden.

Ich kann mit unterem Code die gesuchten Punkte löschen aber Linien mit demselben Namen wie der Punkt werden nicht gefunden.

Anbei menine Funktion:

    Private Sub deleteCopy(myCatiaDoc As MECMOD.PartDocument, prefix As String, mySearchValue As String)
        Dim myHybBody As MECMOD.HybridBody
        Dim myHybShape As MECMOD.HybridShape = Nothing
       
        myHybBody = myCatiaDoc.Part.HybridBodies.Item(1).HybridBodies.Item(prefix)

        On Error Resume Next
        myHybShape = myHybBody.HybridShapes.Item(prefix & mySearchValue)
                On Error GoTo 0

        If myHybShape IsNot Nothing Then

            myCatiaDoc.Selection.Clear()
            myCatiaDoc.Selection.Add(myHybShape)
            myCatiaDoc.Selection.Delete()

        End If
    End Sub

Ich wollte für die Linien nach myHybShape = ... folgendes einbauen:

myCurve = myHybBody.HybridShapes.Item(prefix & mySearchValue)

Die Linie hätte ich deklariert als: Dim myCurve As INFITF.ModelElement = Nothing

Das funkmtioniert aber nicht.

Kann jemand helfen?

Danke

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

bgrittmann
Moderator
Konstrukteur


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

Beiträge: 11780
Registriert: 30.11.2006

CATIA V5R19

erstellt am: 13. Jul. 2016 14: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 Nur für Tweety79 10 Unities + Antwort hilfreich

Servus
Linen und Punkte gehören beide zu Hybridshapes. Somit wird das erste Element das mit dem Namen gefunden wird zurückgeliefert (also wenn du die Funktion nochmal ausführt das 2. Element (zB deine Linie).
Das "ModelElement" ist IMHO zum Zugriff auf den InternalName nützlich.
ggf wäre es einfach über Search der Selection die Punkte und Linien im GeoSet suchen und dann zu löschen.
Oder über eine Schleife aller Hybridshapes die Elemente nach Namen und Typ selektieren.

Gruß
Bernd

PS: darauf zu trauen dass dein GeoSet immer im ersten GeoSet liegt ist "gewagt"

------------------
Warum einfach, wenn es auch kompliziert geht.

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

Tweety79
Mitglied
Entwicklung Automotive


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

Beiträge: 269
Registriert: 09.12.2007

WPF, VBA, CATScript, Access

erstellt am: 13. Jul. 2016 15:31    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

Servus,

es wird aber nicht nur das erste Element mit dem Namen gefunden, sondern alle mit dem Namen.
Dummerweise aber nur alles nur Punkte, wo es aber mit dem NAmen auch Linine gibt.
Deshalb dachte ich, dass sie vielleicht aus einer anderen Bibliothek stammen ...

Hmz ...

Grüße

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

bgrittmann
Moderator
Konstrukteur


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

Beiträge: 11780
Registriert: 30.11.2006

CATIA V5R19

erstellt am: 13. Jul. 2016 15: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 Nur für Tweety79 10 Unities + Antwort hilfreich

Servus
Um was für eine Linie handelt es sich?
Selektiere doch die Linie und lass dir den Type ausgeben (bei VB6 war es noch TypeName).
Wenn alle Punkte zurückgegeben werden, kommt dann keine Fehlermeldung (Collection statt einzelnes Object)?

Gruß
Bernd

------------------
Warum einfach, wenn es auch kompliziert geht.

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

Tweety79
Mitglied
Entwicklung Automotive


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

Beiträge: 269
Registriert: 09.12.2007

WPF, VBA, CATScript, Access

erstellt am: 14. Jul. 2016 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

Servus,

ich habe es nun mit einer Schleife versucht.
Irgend was ist aber falsch dran.

    Private Sub deleteCopy(myCatiaDoc As MECMOD.PartDocument, prefix As String, mySearchValue As String)
        Dim myHybBody As MECMOD.HybridBody
        Dim myHybShape As MECMOD.HybridShape = Nothing


        myHybBody = myCatiaDoc.Part.HybridBodies.Item(1).HybridBodies.Item(prefix)

        myHybShape = myHybBody.HybridShapes.Item(prefix & mySearchValue)

        If myHybShape IsNot Nothing Then
        For Each myHybShape In myCatiaDoc.Part.HybridBodies.myHybBody
            myCatiaDoc.Selection.Clear()
            myCatiaDoc.Selection.Add(myHybShape)
            myCatiaDoc.Selection.Delete()
        Next
    End Sub

So wird das nix.

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

bgrittmann
Moderator
Konstrukteur


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

Beiträge: 11780
Registriert: 30.11.2006

CATIA V5R19

erstellt am: 14. Jul. 2016 12:52    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 Tweety79 10 Unities + Antwort hilfreich

Servus
Was soll die Funktion mal bezwecken? Alle Features im GeoSet mit dem Namen löschen?
Dann muss auch innerhalb der Schleife für jedes Feature der Type/Name geprüft werden.
Gemäß deinem Code wird wahrscheinlich, wenn ein Punkt/Linie gefunden wird, der gesamte Inhalt des GeoSets gelöscht.
ggf geht es so:
Code:
myCatiaDoc.Selection.Clear()
For Each myHybShape In myHybBody.HybridShapes
  if myHybShape.Name = prefix & mySearchValue then
      myCatiaDoc.Selection.Add(myHybShape)
  end if
Next
myCatiaDoc.Selection.Delete()

Gruß
Bernd

------------------
Warum einfach, wenn es auch kompliziert geht.

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

Tweety79
Mitglied
Entwicklung Automotive


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

Beiträge: 269
Registriert: 09.12.2007

WPF, VBA, CATScript, Access

erstellt am: 14. Jul. 2016 13: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

Servus,

genau das ist es !!!

Vielen lieben Dank!

Grüße

[Diese Nachricht wurde von Tweety79 am 14. Jul. 2016 editiert.]

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