Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Löschen von Relations und Parameters

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:  Löschen von Relations und Parameters (4397 mal gelesen)
J.Streit
Mitglied


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

Beiträge: 5
Registriert: 22.10.2008

MS Windows XP Prof. x64
3,0 GHz DualCore Proz.
Nvidia Quadro Fx1700

erstellt am: 22. Okt. 2008 16:50    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 erstmal an die Gemeinde,
Bin neu hier (zumindest als Mitglied, nicht als Leser) und versuche auf diesem Wege Hilfe zu bekommen.

Ich habe zur Aufgabe, produktübergreifend aus Parts und Products verschiedene Parameters und Relations zu entfernen. Bislang habe ich das mit der Suchfunktion von Hand realisiert. Dieses ist auch soweit okay, läuft leider nicht automatisch durch, da bei Hidden Relations bzw. Hidden Parameters eine Warnmeldung im Catia erscheint, welche man bestätigen muss, um auch versteckte Objekte zu löschen.

Ich habe nun seit einigen Tage die Lektüre von Herrn Ziehten und hänge leider an einem Punkt. Folgendes habe ich schon erreicht.

##############

Sub CATMain()

Dim partDocument1 As Document
Set partDocument1 = CATIA.ActiveDocument

'Set of Relations suchen-------------------------------------------------------------------------------
Dim Liste1 As Selection
Set Liste1 = CATIA.ActiveDocument.Selection
Liste1.Clear
Liste1.Search "CATKnowledgeSearch.AdvisorRelationSet.NameInGraph=Relations;all"


'Set of Relations definieren und leeren--------------------------------------------------------------
Dim USel1 As Selection
Set USel1= CATIA.ActiveDocument.Selection

'Gefundene 'Set of Relations selektieren und entfernen------------------------------------------

USel1.Cut

'Parameters suchen-------------------------------------------------------------------------------
Dim Liste2 As Selection
Set Liste2 = CATIA.ActiveDocument.Selection
Liste2.Clear
Liste2.Search "(CATKnowledgeSearch.AdvisorParameterSet.NameInGraph!=Parameters & CATKnowledgeSearch.AdvisorParameterSet.NameInGraph!=Stueckliste),all"


'Parameters definieren und leeren--------------------------------------------------------------
Dim USel2 As Selection
Set USel2= CATIA.ActiveDocument.Selection

'Gefundene Parameters selektieren und entfernen------------------------------------------

USel2.Cut

End Sub

############

Solange sich keine versteckten Parameter bzw. Relations in der Selektion befinden, läuft mein Script durch und entfernt die Auswahl. Wenn keine gesuchten Relations bzw. Parameters vorhanden, bzw. einige oder Alle als Hidden deklariert sind, hängt sich das Script auf.

Ich bin vielleicht noch nicht weit genug in dem Buch vorwärts gekommen und alle swürde sich von selbst erklären. Die Aufzeichnung des ganzen mit dem Macrorecorder hat mich auch nicht weiter gebracht.

Also falls jemand Lust hat, sich mit mir darüber Gedanken zu machen, wäre ich sehr dankbar.

Ansonsten finde ich das Forum seit Jahren schon echt klasse, sehr sachlich und informativ.

Gruß Jan

------------------
Wenn hier jemand glaubt, ich sei verrückt, dann hat der Recht. 

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

denyo_1
Moderator
Manager


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

Beiträge: 2506
Registriert: 10.08.2005

HP Compaq 8710w, Intel Core Duo T7700, 2,40 Ghz, 3GB RAM, Windows XP Professionel @32bit, Quadro FX 1600M, CATIA V5 R19 SP3

erstellt am: 22. Okt. 2008 17:27    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 J.Streit 10 Unities + Antwort hilfreich

Hallo Jan,

ich habe gleich zwei Vorschäge für dich. Der erste basiert auf einer Schleife in der alle Parameter/Relations des Parts durchlaufen werden. In dem If-Block (siehe Code) kannst du dann einen Namen bestimmen. Der Parameter/Relation der den Namen trägt wird gelöscht. Sollen mehrere Parameter/Relations mit unterschiedlichen Namen gelöscht werden muss der If Block mit einem -> or erweitert werden (siehe Code Kommentar)

Code:

Sub CATMain()

Set oDoc = CATIA.ActiveDocument
Set partDoc = oDoc.Part
Set oSel = oDoc.Selection
Set oPara = partDoc.Parameters
Set oRel = partDoc.Relations
oSel.Clear
Dim i As Integer


For i = 1 To oPara.Count
    Set aktiPara = oPara.Item(i)
    If aktiPara.Name = "Adapter\Length.1" Then 'or aktiPara.Name = "xxx" ... usw. (das or muss natürlich vor dem THEN stehen)
        oSel.Add aktiPara
        oSel.Delete
    End If
Next
oSel.Clear

For j = 1 To oRel.Count
    Set aktiRel = oRel.Item(j)
    If aktiRel.Name = "DesignTable.1" Then 'or aktiRel.Name = "xxx" ... usw. (das or muss natürlich vor dem THEN stehen)
        oSel.Add aktiRel
        oSel.Delete
    End If
Next
oSel.Clear

End Sub


Mein zweiter Vorschlag baut auf deinem auf. Du sagtest ja du hast Probleme mit "hidden" Parameter. Wenn du es so machen willst wie du schon angefangen hast, emfiehlt sich erst in einer Schleife alle Parameter/Relation abzulaufen und die Eigenschaft "HIDDEN" auf "FALSE" zu stellen (siehe Code). Damit werden erst alle Parameter / Relations wieder sichtbar gemacht. Dann sollte dein Makro ja laufen

Code:

Sub CATMain()

Set oDoc = CATIA.ActiveDocument
Set partDoc = oDoc.Part
Set oPara = partDoc.Parameters
Set oRel = partDoc.Relations
Dim i As Integer


For i = 1 To oPara.Count
    Set aktiPara = oPara.Item(i)
    aktiPara.Hidden = False
Next

For j = 1 To oRel.Count
    Set aktiRel = oRel.Item(j)
    aktiRel.Hidden = False
Next
End Sub


------------------
MFG Daniel

Die KATJA ist halt doch nur ne zickige Französin

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

J.Streit
Mitglied


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

Beiträge: 5
Registriert: 22.10.2008

MS Windows XP Prof. x64
3,0 GHz DualCore Proz.
Nvidia Quadro Fx1700

erstellt am: 23. Okt. 2008 08:39    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 Daniel,
vielen Dank für die schnelle Hilfe. Wie schon in meinem ersten Beitrag beschrieben, bin ich Neuling im Thema der Scripte. Ich kann mit der Schleifenfunktion noch nicht viel anfangen, zumindest beim Einbau ins Script.
Also habe ich mich für die 2. Variante entschieden und blende nun erst die Parameters und Relations ein.
Dies passiert problemlos bis zu der Zeile:
USel1.cut

Ich denke aber, dass ich noch einen Fehler beim Setzen der Variablen habe und werde es vorerst mal allein versuchen.
Wenns laufen sollte, stell ichs hier ins Forum. Das Ganze soll später natürlich im Product ausgeführt werden und jedes Part einbeziehen.
Sollte ich nicht zurecht kommen, würde ich gern nochmal auf Unterstützung zurück greifen.
Jedenfalls nochmals Danke.

Gruß Jan

------------------
Wenn hier jemand glaubt, ich sei verrückt, dann hat der Recht. 

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

J.Streit
Mitglied


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

Beiträge: 5
Registriert: 22.10.2008

MS Windows XP Prof. x64
3,0 GHz DualCore Proz.
Nvidia Quadro Fx1700

erstellt am: 23. Okt. 2008 10:56    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 Daniel,
ich bitte nochmal um Hilfe. Ich wollte erstmal versuchen, nur alle Hidden Parameters und Relations einzublenden. Im einzeln geöffneten Part funktioniert das auch ohne Probleme. Nun möchte ich das ganze von aktivierten RootProduct machen, wobei er in jedem geladenen Part suchen und einblenden soll. Welche Variable muss ich dafür setzen.
Hier nochmal das bisherige:
###############################

Sub CATMain()

Set oDoc = CATIA.ActiveDocument
Set partDoc = oDoc.Part
Set oPara = partDoc.Parameters
Set oRel = partDoc.Relations
Dim i As Integer
Dim j As Integer

For i = 1 To oPara.Count
    Set aktiPara = oPara.Item(i)
    aktiPara.Hidden = False
Next

For j = 1 To oRel.Count
    Set aktiRel = oRel.Item(j)
    aktiRel.Hidden = False
Next

End Sub

#######################

Vielleicht hast Du eine Lösung oder wer anders.
Danke im Voraus.

Gruß Jan

------------------
Wenn hier jemand glaubt, ich sei verrückt, dann hat der Recht. 

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

denyo_1
Moderator
Manager


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

Beiträge: 2506
Registriert: 10.08.2005

HP Compaq 8710w, Intel Core Duo T7700, 2,40 Ghz, 3GB RAM, Windows XP Professionel @32bit, Quadro FX 1600M, CATIA V5 R19 SP3

erstellt am: 23. Okt. 2008 16:25    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 J.Streit 10 Unities + Antwort hilfreich

Hallo Jan,

du hast doch in deinem ersten Beitrag erwähnt das du gerade ein Buch durcharbeitest. Ich würde dir emfehlen zuerst das Buch durchzuarbeiten, denn das ganze in einem Produkt zu realisieren ist ein bisschen komplizierter. Dazu braucht man schon ein bisschen Erfahrung. Im Forum gibt es schon ein fertiges Makro das eine Produktstruktur rekursiv durchläuft. In dieses Makro müsstest du dann dein eigenes einbauen.

Warum willst du überhaupt die Parameter und Relation ausschneiden. Ch dachte du willst sie löschen? Ich denke mal es liegt am xxx.CUT. Versuch einfach mal xxx.DELETE

------------------
MFG Daniel

Die KATJA ist halt doch nur ne zickige Französin

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

J.Streit
Mitglied


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

Beiträge: 5
Registriert: 22.10.2008

MS Windows XP Prof. x64
3,0 GHz DualCore Proz.
Nvidia Quadro Fx1700

erstellt am: 23. Okt. 2008 16: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

Hallo Daniel,
Ich glaub auch, dass es mir eigentlich nichts bringt, wenn ich nicht allein dahinter steig. Werde Deinen Rat befolgen. Problem bei mir ist leider, dass ich mein Geld eigentlich mit Großwerkzeugkonstruktion verdiene, nicht mit Programmierung.
Werde das Forum mal durchsuchen. Als Anregung ist was Fertiges oft nützlich.
DELETE hatte ich auch schon versucht, gleiches Ergebnis.

Also, nochmals Dank.

Gruß Jan

------------------
Wenn hier jemand glaubt, ich sei verrückt, dann hat der Recht. 

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

denyo_1
Moderator
Manager


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

Beiträge: 2506
Registriert: 10.08.2005

HP Compaq 8710w, Intel Core Duo T7700, 2,40 Ghz, 3GB RAM, Windows XP Professionel @32bit, Quadro FX 1600M, CATIA V5 R19 SP3

erstellt am: 23. Okt. 2008 16: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 Nur für J.Streit 10 Unities + Antwort hilfreich

Hallo,

Code:

...
Liste1.Clear
Liste1.Search "CATKnowledgeSearch.AdvisorRelationSet.NameInGraph=Relations;all"


'Set of Relations definieren und leeren--------------------------------------------------------------
Dim USel1 As Selection
Set USel1= CATIA.ActiveDocument.Selection

'Gefundene 'Set of Relations selektieren und entfernen------------------------------------------

USel1.Cut
...



USel1.Cut kann nicht funktionieren da in der Selektion nicht drinnen ist! Mit Liste1.Cut bzw. Liste1.Delete sollte es gehen, da in dieser Selektion die Werte liegen.

------------------
MFG Daniel

Die KATJA ist halt doch nur ne zickige Französin

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



Elektroplaner (m/w/d) Fertigung und Montage
Technologien auf das nächste Level zu heben, sich Herausforderungen zu stellen und an den Innovationen von morgen zu arbeiten - dafür benötigen wir bei FERCHAU Expert:innen wie dich: als ambitionierte Kolleg:innen, die wie wir Technologien auf die nächste Stufe bringen möchten. Wir realisieren spannende Projekte für namhafte OEMs und Zulieferer der Automobilindustrie und übernehmen Verantwortung für komplexe Entwicklungsprojekte....
Anzeige ansehenElektrotechnik, Elektronik
J.Streit
Mitglied


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

Beiträge: 5
Registriert: 22.10.2008

MS Windows XP Prof. x64
3,0 GHz DualCore Proz.
Nvidia Quadro Fx1700

erstellt am: 23. Okt. 2008 17:13    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

Daniel,
das hat geholfen. Es funzt im Part. Um das Pruduktübergreifende kümmere ich mich anschließend.
DANKE, DANKE, DANKE 

Jan

------------------
Wenn hier jemand glaubt, ich sei verrückt, dann hat der Recht. 

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