Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Set of Relation 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:  Set of Relation Löschen (1766 mal gelesen)
moppesle
Ehrenmitglied V.I.P. h.c.
Konstrukteur


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

Beiträge: 3418
Registriert: 28.05.2009

CATIA V5 R19 SP9
WIN 7 64bit

erstellt am: 03. Mai. 2013 10:19    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,

habe mir ein Makro zusammengebastelt, das mir die Relations in allen Parts und Produkten löscht.
Funktioniert soweit sehr gut.

Bei großen Baugruppen dauert das schon ein wenig Zeit.

Wollte nun alle Set of Relation löschen.

Wie kann ich dies umsetzen.


Hier mein Code zum löschen der Relations.

Code:
Function FuncDelete_Relations(RefDoc As Document, Prod As Product) As Integer
   
    Dim iCount        As Integer
    Dim PartProd        As Part
    Dim oRel            As Relations
    Dim boolParam1      As Parameter

    If TypeName(RefDoc) = "PartDocument" Then
        Set PartProd = RefDoc.Part
        Set oRel = PartProd.Relations
        Set oSel = RefDoc.Selection
    ElseIf TypeName(RefDoc) = "ProductDocument" Then
        Set oRel = RefDoc.Product.Relations
Set oSel = RefDoc.Selection
   
    Else
        MsgBox "Unerwarteter Dokumententyp!", vbExclamation, "DOKUMENT: FEHLER"
    End If


    FOR EACH aktiRel IN oRel
    oSel.Add aktiRel
    oSel.Delete
Next
 
  On Error GoTo 0
   
End Function



------------------
Gruß Uwe

Auch Catia ist nur ein Mensch!    

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: 03. Mai. 2013 14:03    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 moppesle 10 Unities + Antwort hilfreich

Servus
Vielleicht kannst du ohne die Verwendung der Selektion die Relations schneller entfernen:
Code:
For iCount = 1 To oRel.Count
      oRel.Remove iCount
Next
Gruß
Bernd

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

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

moppesle
Ehrenmitglied V.I.P. h.c.
Konstrukteur


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

Beiträge: 3418
Registriert: 28.05.2009

CATIA V5 R19 SP9
WIN 7 64bit

erstellt am: 03. Mai. 2013 14:24    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 Bernd,

ich wollte mir die zählerei der Relations ersparen. mehrere 100 Stück
Von den "Set of Relation" sind weniger vorhanden. Ca. 6-8 Stück

Das sollte doch dann viel schneller gehen?

------------------
Gruß Uwe

Auch Catia ist nur ein Mensch!    

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: 03. Mai. 2013 14: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 moppesle 10 Unities + Antwort hilfreich

Servus Uwe
Die einzige Idee die ich noch habe, ist die verwenden der Suche:
Code:
selection2.Search "CATKnowledgeSearch.AdvisorRelationSet,all"
selection2.Delete
Gruß
Bernd

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

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

moppesle
Ehrenmitglied V.I.P. h.c.
Konstrukteur


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

Beiträge: 3418
Registriert: 28.05.2009

CATIA V5 R19 SP9
WIN 7 64bit

erstellt am: 03. Mai. 2013 14: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

Hi Bernd,

wie würde das im Code integriert aussehen?

Weist ja bin ein Programmiergoofy.

------------------
Gruß Uwe

Auch Catia ist nur ein Mensch!    

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

geekv5
Mitglied
Konstrukteur


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

Beiträge: 214
Registriert: 13.07.2011

Notebook<P>MSI GX660R
Intel Core i5 460M
8GB DDR3
1GB Mobility HD5870
80GB Intel X25-M Postville
250GB HDD<P>Desktop<P>AMD Phenom II X4 965
1GB HD4890@ FirePro V8700
8GB DDR3-1600
2,5TB HDD<P>Belinea 2485 S1W 24" MVA

erstellt am: 07. Mai. 2013 09: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 Nur für moppesle 10 Unities + Antwort hilfreich

Hallo Uwe,

müsste doch dann eigentlich so langen, kanns aber gerade nicht testen und bin noch stark angeschlagen vom gestrigen Abend:

Code:

Sub Delete_Relations(RefDoc As Document)

Set oSel = CATIA.ActiveDocument.Selection

Select Case TypeName(RefDoc)

Case "PartDocument","ProductDocument"

Case Else

   MsgBox "Unerwarteter Dokumententyp!", vbExclamation, "DOKUMENT: FEHLER"
   Exit Sub

End Select

oSel.clear
oSel.Add RefDoc
oSel.search "CATKnowledgeSearch.AdvisorRelationSet,sel"
oSel.Delete
   
End Sub


Aus der Function habe ich mal eine Prozedur gemacht, da du ja eh keinen Wert zurückgibst..

Gruß
Stefan

------------------
Seid nicht dumm, lest drin rum!

[Diese Nachricht wurde von geekv5 am 07. Mai. 2013 editiert.]

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

moppesle
Ehrenmitglied V.I.P. h.c.
Konstrukteur


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

Beiträge: 3418
Registriert: 28.05.2009

CATIA V5 R19 SP9
WIN 7 64bit

erstellt am: 14. Mai. 2013 16:55    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 Stefan,

habe jetzt erst gesehen, das du geantwortet hast.

Hab das mal probiert einzubauen. Leider ohne Erfolg.

"The Methode add Failed" ist die Fehlermeldung
Kannst du mir noch einern Tipp geben.

Code:
Function FuncDelete_Relations(RefDoc As Document, Prod As Product) As Integer
   
    Dim iCount        As Integer
    Dim PartProd        As Part
    Dim oRel            As Relations
    Dim boolParam1      As Parameter

    '***BESTIMMUNG DES DOKUMENTENTYPES
    If TypeName(RefDoc) = "PartDocument" Then
        Set PartProd = RefDoc.Part
        Set oRel = PartProd.Relations
        Set oSel = RefDoc.Selection
    ElseIf TypeName(RefDoc) = "ProductDocument" Then
        Set oRel = RefDoc.Product.Relations
Set oSel = RefDoc.Selection
   
    Else
        MsgBox "Unerwarteter Dokumententyp!", vbExclamation, "DOKUMENT: FEHLER"
    End If
   
    oSel.clear
oSel.Add RefDoc
oSel.search "CATKnowledgeSearch.AdvisorRelationSet,sel"
oSel.Delete
 
    On Error GoTo 0
   
End Function


"The Methode add Failed" ist die Fehlermeldung

------------------
Gruß Uwe

Auch Catia ist nur ein Mensch!    

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. Mai. 2013 21:17    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 moppesle 10 Unities + Antwort hilfreich

Servus
Für was übergibst du RefDoc und Prod an die Funktion?
Bei welchem Domententyp kommt der Fehler? Schon mal probiert das Part bzw das Product zu selektieren?
(oSel.Add RefDoc.Part bzw oSel.Add RefDoc.Product)

Gruß
Bernd

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

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

moppesle
Ehrenmitglied V.I.P. h.c.
Konstrukteur


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

Beiträge: 3418
Registriert: 28.05.2009

CATIA V5 R19 SP9
WIN 7 64bit

erstellt am: 14. Mai. 2013 21:26    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 Bernd,

Zitat:
Für was übergibst du RefDoc und Prod an die Funktion?

Weiß ich nicht so genau!?

Es werden recursiv alle Parts und Produkte durchgegangen. Ich hab das so verstanden, das die Funktion bei einem Part und auch bei einem Produkt funktioniert.

------------------
Gruß Uwe

Auch Catia ist nur ein Mensch!    

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. Mai. 2013 21:36    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 moppesle 10 Unities + Antwort hilfreich

Servus
Stefans Code läuft wenn du folgende Zeile änderst:
osel.Add RefDoc.Product
Allerdings kommt teilweise eine Abfrage ob auch das Beziehungsset gelöscht werden soll? (ggf ist das von den Settings abhängig oder kommt nur bei ausgeblendeten Beziehungen vor)

Gruß
Bernd

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

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

moppesle
Ehrenmitglied V.I.P. h.c.
Konstrukteur


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

Beiträge: 3418
Registriert: 28.05.2009

CATIA V5 R19 SP9
WIN 7 64bit

erstellt am: 15. Mai. 2013 09:22    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 Bernd, danke es funktioniert.

Wie könnte man denn die Abfrage übergehen?

------------------
Gruß Uwe

Auch Catia ist nur ein Mensch!    

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

moppesle
Ehrenmitglied V.I.P. h.c.
Konstrukteur


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

Beiträge: 3418
Registriert: 28.05.2009

CATIA V5 R19 SP9
WIN 7 64bit

erstellt am: 12. Dez. 2013 12:59    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


12-12-2013_1.png

 
Hallo zusammen,

ich möchte das Thema wieder auffrischen.

Wie schon geschrieben funtioniert das Makro nun bis auf die Fehlermeldung,ob die im NoShow stehenden Relations gelöscht werden sollen.

Habe jetzt versucht die Relations vor dem Löschen in Show zu bekommen.
Leider mit minderem Erfolg. 

Könnte sich das jemand mal anschauen und mir einen Tip, besser noch eine Lösung dazu geben.


Code:
Function FuncDelete_Relations(RefDoc As Document, Prod As Product) As Integer

    Dim iCount        As Integer
    Dim PartProd        As Part
    Dim oRel            As Relations
    Dim boolParam1      As Parameter

    '***BESTIMMUNG DES DOKUMENTENTYPES
    If TypeName(RefDoc) = "PartDocument" Then
        Set PartProd = RefDoc.Part
        Set oRel = PartProd.Relations
        Set oSel = RefDoc.Selection
    ElseIf TypeName(RefDoc) = "ProductDocument" Then
        Set oRel = RefDoc.Product.Relations
Set oSel = RefDoc.Selection
  
    Else
        MsgBox "Unerwarteter Dokumententyp!", vbExclamation, "DOKUMENT: FEHLER"
    End If
************************* das ist mein Versuch**********************************************************
    FOR EACH aktiRel IN oRel
    oSel.Add aktiRel
    oSel.Hidden = false
*********************************************************************************************************

    oSel.clear
oSel.Add RefDoc.Product
oSel.search "CATKnowledgeSearch.AdvisorRelationSet,sel"
oSel.Delete

   
  
End Function


Vielen Dank schon mal für eure Mühe.

------------------
Gruß Uwe

Auch Catia ist nur ein Mensch!      

[Diese Nachricht wurde von moppesle am 12. Dez. 2013 editiert.]

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

HoBLila
Mitglied
Dipl.-Ing. (BA) praktische Informatik - Senior Entwickler CAx


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

Beiträge: 1118
Registriert: 29.05.2008

DELL PRECISION T3500
Intel(R) Xeon(R) CPU W3540 @ 2.93GHz
12285 MB RAM
NVIDIA Quadro FX 1800
Microsoft Windows 7 Enterprise Service Pack 1
CATIA V5 R19 SP09 HF69
VB6.5
CAA RADE CDC

erstellt am: 12. Dez. 2013 13: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 moppesle 10 Unities + Antwort hilfreich

Edit: Kommando zurück! Meine Annahme mit dem Next war falsch, der Code wär so in Ordnung.

Nächste Vermutung wäre, dass Deine Selection nicht global ist oder Du erst in die entsprechende Workbench (z.B. PartDesign) wechseln musst.

------------------
Mit freundlichen Grüßen,
Henry Schneider
alias Lila

Es gibt einen ewigen Wettkampf zwischen der Natur und den Ingenieuren:
Die Ingenieure versuchen, immer idioten-sicherere Systeme zu bauen,
die Natur versucht, immer bessere Idioten zu bauen

Xing

[Diese Nachricht wurde von HoBLila am 12. Dez. 2013 editiert.]

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

moppesle
Ehrenmitglied V.I.P. h.c.
Konstrukteur


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

Beiträge: 3418
Registriert: 28.05.2009

CATIA V5 R19 SP9
WIN 7 64bit

erstellt am: 12. Dez. 2013 14:17    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 Henry,

grundlegend funktioniert das Makro schon. Nur das ich für jedes Relations-Set bestätigen muß das es nun gelöscht werden soll. (Siehe Bild von meinem letzten Beitrag)
Wenn alle Relations im Show stehen kommt die Meldung halt nicht.   

Das ist bei 5-8 Relations pro Part und einigen 50- 100 Parts dann nicht zumutbar für den Anwender.    

------------------
Gruß Uwe

Auch Catia ist nur ein Mensch!            

[Diese Nachricht wurde von moppesle am 12. Dez. 2013 editiert.]

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: 12. Dez. 2013 17:51    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 moppesle 10 Unities + Antwort hilfreich

Servus Uwe

Müsste es nicht reichen wenn du deinen Code so anpasst (ungetestet)?

Code:
FOR EACH aktiRel IN oRel
    aktiRel.Hidden = false
next
Wie rufst du deine Function auf? Warum verwendest du eine Function, wenn du keinen Wert zurück lieferst?
Hast du ein rekursives Makro durch das Product oder eine Schleife über die Douments-Collecton? (ggf habe ich noch Verbesserungsideen)

Gruß
Bernd

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

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