Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  ParameterSets löschen, neu erstellen - für jedes Part in Produkt wiederholen

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:  ParameterSets löschen, neu erstellen - für jedes Part in Produkt wiederholen (3202 mal gelesen)
Sylas
Mitglied



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

Beiträge: 322
Registriert: 19.11.2012

Dell Precision T3500
Intel Xeon W3550 @ 3,07 GHz
12 GB RAM
CATIA V5 R28

erstellt am: 26. Nov. 2012 13:57    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

Halo Forum!
Ich habe einfache Aufgabe:
bei solche Parameter Struktur:

--Parameters
----ParameterSet1
-------ParameterSet1.1
-------ParameterSet1.2
-------ParameterSet1.3

----ParameterSet2
----ParameterSet3

muss ich alle Sets welche heißen ParameterSet1.* wo * ist ein Variabel, löschen, und dort (unter ParameterSet1) neues Set, welches heißt ParameterSet_x erstellen.

Das problem ist, dass ich muss das machen für jedes Part im gantztes Baum-Struktur.
Kann mir jemand yeigen wie kann ich das schaffen?

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: 26. Nov. 2012 16: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 Sylas 10 Unities + Antwort hilfreich

Servus Sylas
Entweder verwendest du ein rekursives Makro (siehe zB hier) zum Prüfen/Löschen/Anlegen der ParameterSets oder d arbeitest die Document-Colletion durch, dann darf nur deine Baugruppe (gff noch Einzelteile oder Unterbagruppen davon) geöffnet sein) zB:
Code:
for each oDocument in CATIA.Documents
'tu was
next

Gruß
Bernd

PS: Hat dein anderes Makro (anderes Thema) nicht die gleiche Funktion?

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

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

Sylas
Mitglied



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

Beiträge: 322
Registriert: 19.11.2012

Dell Precision T3500
Intel Xeon W3550 @ 3,07 GHz
12 GB RAM
CATIA V5 R28

erstellt am: 26. Nov. 2012 20: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

Zitat:
Original erstellt von bgrittmann:
Servus Sylas
Entweder verwendest du ein rekursives Makro (siehe zB hier) zum Prüfen/Löschen/Anlegen der ParameterSets oder d arbeitest die Document-Colletion durch, dann darf nur deine Baugruppe (gff noch Einzelteile oder Unterbagruppen davon) geöffnet sein) zB:
Code:
for each oDocument in CATIA.Documents
'tu was
next

Gruß
Bernd

PS: Hat dein anderes Makro (anderes Thema) nicht die gleiche Funktion?



Gruß Bernd

Du bist der Mann  !

Jaein (Ja und Nein). Ich versuche Etwas zu schaffen, aber leider habe ich nicht geschaft :(

Bei ändere Thema haben wir was probiert - aber dort ist was anders ;) siehe meine Antwort dort.

Grundsätzlich, ich habe Probleme mit richtige Definition von ParameterSets :)
also,

Code:

Dim sel as oDocument.selection
'hier ich suche mit Selection für alle ParameterSets im gantzt Baum welche heißen ParameterSet1.*
sel.delete
For each oDocument in CATIA.Documents
Dim Target as ParameterSet
If oDocument.parameters.ParameterSet.Parent.Name = "ParameterSet.1"
then
    oDocument.parameters.ParameterSets.CreateSet "ParameterSet_x"
    Set Target = oDocument.GetItem("ParameterSet_x")
    Target.DirectParameters.CreateString("Parameter1","Wert1")
    Target.DirectParameters.CreateString("Parameter2","Wert2")
    Target.DirectParameters.CreateString("Parameter3","Wert3")
end If


Ich möchte sowas haben. Ist das ok?


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: 26. Nov. 2012 20: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 Sylas 10 Unities + Antwort hilfreich

Servus
Was läuft an deinem Code nicht? Was hat schon funktioniert? Wo liegt das Problem (bei den Docments, ...)?
Ich hab mal dienen Code etwas überarbeitet (Zugriff auf das RootParameterSet, unter dem de ParameterSet wie im Baum angeordnet sind):
Code:
For each oDocument in CATIA.Documents
Dim TargetSet as ParameterSet
If oDocument.parameters.ParameterSet.Parent.Name = "ParameterSet.1"
then
    Set TargetSet = oDocument.Parameters.RootParameterSet.ParameterSets.CreateSet "ParameterSet_x"
    TargetSet.DirectParameters.CreateString("Parameter1","Wert1")
    TargetSet.DirectParameters.CreateString("Parameter2","Wert2")
    TargetSet.DirectParameters.CreateString("Parameter3","Wert3")
end If

Gruß
Bernd

PS: das Ganze in VBA zu erstellen (Watchfenster) wäre bestimmt einfacher.

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

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

Sylas
Mitglied



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

Beiträge: 322
Registriert: 19.11.2012

Dell Precision T3500
Intel Xeon W3550 @ 3,07 GHz
12 GB RAM
CATIA V5 R28

erstellt am: 26. Nov. 2012 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

Zitat:

   
Code:

TargetSet.DirectParameters.CreateString("Parameter1","Wert1")


[/i]

Argument not optional

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: 26. Nov. 2012 21:41    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 Sylas 10 Unities + Antwort hilfreich

Servus
Weiße mal den neuem Parameter einer Variable zu:
Code:
Dim StrParameter as Parameter
Set StrParameter = TargetSet.DirectParameters.CreateString("Parameter1","Wert1")

Gruß
Bernd


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

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

Sylas
Mitglied



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

Beiträge: 322
Registriert: 19.11.2012

Dell Precision T3500
Intel Xeon W3550 @ 3,07 GHz
12 GB RAM
CATIA V5 R28

erstellt am: 27. Nov. 2012 00:15    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

Zitat:
Original erstellt von bgrittmann:
Servus
Weiße mal den neuem Parameter einer Variable zu:
Code:
Dim StrParameter as Parameter
Set StrParameter = TargetSet.DirectParameters.CreateString("Parameter1","Wert1")

Gruß
Bernd


Gruß Bernd
Ich siehe dass ich muss mit dir mit geöffnete Karten spielen ;)
Das ist meinen Baum:

und das ist meines aktuelles Makro:

Code:

Sub CATMain()
For Each oDocument In CATIA.Documents

Dim TargetSet As ParameterSet
Dim Sel1 As Selection
Set Sel1 = oDocument.Selection
Sel1.Search "(Name=*Aenderung_* & CATKnowledgeSearch.AdvisorParameterSet),all"
Sel1.Delete
'---------------------------------------------------
Projekt = InputBox("Podaj wartość parametru:", "Wartość parametru Projekt", "xxx")
Operation = InputBox("Podaj wartość parametru:", "Wartość parametru Operation", "xxx")
Entworfen = InputBox("Podaj wartość parametru:", "Wartość parametru Entworfen", "xx")
Datum = InputBox("Podaj wartość parametru:", "Wartość parametru Datum", "xx.xx.xx")
BG = InputBox("Podaj wartość parametru:", "Wartość parametru Beschriftung_der_Baugruppe", "xxxxxx")

'-----------------------------------
Sel1.Clear
Sel1.Search "Name=Projekt,all"
'Set product1 = productDocument1.Product
'Set product1 = product1.ReferenceProduct
Dim oParameter
For i = 1 To Sel1.Count
Set oParameter = Sel1.Item(i).Value

oParameter.Value = Projekt

Next
'------------------------------------

Sel1.Clear
Sel1.Search "Name=Operation,all"
For i = 1 To Sel1.Count
Set oParameter = Sel1.Item(i).Value

oParameter.Value = Operation

Next
'-------------------------------------

Sel1.Clear
Sel1.Search "Name=Entworfen,all"
For i = 1 To Sel1.Count
Set oParameter = Sel1.Item(i).Value

oParameter.Value = Entworfen

Next
'-------------------------------------
Sel1.Clear

Sel1.Search "(Name=Datum & CATKnowledgeSearch.InternalParameter),all"
For i = 1 To Sel1.Count

Set oParameter = Sel1.Item2(i).Value


  If InStr(oParameter.name, "Konstruktionseigenschaften") <> 0 Then
        oParameter.Value = Datum
    End If
Next
'-------------------------------------
Sel1.Clear
Sel1.Search "Name=Beschriftung_der_Baugruppe,all"
For i = 1 To Sel1.Count
Set oParameter = Sel1.Item(i).Value

oParameter.Value = BG

Next
'-------------------------------------
Sel1.Clear
Sel1.Search "Name=Beschriftung_des_Teils,all"
For i = 1 To Sel1.Count
Set oParameter = Sel1.Item(i).Value

oParameter.Value = BG

Next
'-------------------------------------

If oDocument.Parameters.ParameterSet.Parent.DisplayName = "Aenderungen" Then
    Set TargetSet = oDocument.Parameters.RootParameterSet.ParameterSets.CreateSet("Aenderung_x")
    Dim StrParameter As Parameter
    Set StrParameter = TargetSet.DirectParameters.CreateString("Konstrukteur", "xxx")
    Dim StrParameter2 As Parameter
    Set StrParameter2 = TargetSet.DirectParameters.CreateString("Datum", "xx.xx.xx.")
    Dim StrParameter3 As Parameter
    Set StrParameter3 = TargetSet.DirectParameters.CreateString("Aenderungsgrund", "xxx")
Else
End If

Next
End Sub



nach welches alle Parameters aus ParameterSet Konstruktionseigenschaften sind perfekt umbenennt, und "Alte Aenderungen" Sets waren gelöscht mit Sel1.delete . Ich komme jetzt zum dieser Linie:
Code:

If oDocument.Parameters.ParameterSet.Parent.DisplayName = "Aenderungen" Then


und kriege ich dieser Meldung:

Beides .DisplayName und .Name funktioniert nicht.

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: 27. Nov. 2012 07:15    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 Sylas 10 Unities + Antwort hilfreich

Servus
EDIT: ich hab wohl diene Frage nicht richtig durchgelesen. Über "Parent" kommst du von einem Parameter nicht auf dessen ParameterSet. Vergleiche die Lösung beim Datum.

Gruß
Bernd

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

[Diese Nachricht wurde von bgrittmann am 27. Nov. 2012 editiert.]

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

Sylas
Mitglied



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

Beiträge: 322
Registriert: 19.11.2012

Dell Precision T3500
Intel Xeon W3550 @ 3,07 GHz
12 GB RAM
CATIA V5 R28

erstellt am: 27. Nov. 2012 12:28    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

Zitat:
Original erstellt von bgrittmann:
Servus
EDIT: ich hab wohl diene Frage nicht richtig durchgelesen. Über "Parent" kommst du von einem Parameter nicht auf dessen ParameterSet. Vergleiche die Lösung beim Datum.

Gruß
Bernd


Servus

Sorry Mann, ich siehe keine Verbindung zwischen Datum und dieses Problem... Ich verstehe, dass ich soll prüfen, ob ParameterSet heißt Aenderungen und wenn ja, dann ParameterSet mit Parameters erstellen. Aber schieß mich Tot. Ich weiß nicht wie kann ich dass mit Kode schreiben 

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: 27. Nov. 2012 12: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 Sylas 10 Unities + Antwort hilfreich

Servus
Welches ParameterSet? Wie willst du auf diese Zugreifen? (ggf über die Suche)
Bei deinem Code ist "oDocument.Parameters.ParameterSet" das ParameterSet "Parameter" (direkt Unterhalb des Parts) im Baum.

Gruß
Bernd

PS: Bitte deinen Admin dir VBA zu installieren (auf der CATIA-Installations CD) dann wird die Struktur dir klarer.

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

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

Sylas
Mitglied



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

Beiträge: 322
Registriert: 19.11.2012

Dell Precision T3500
Intel Xeon W3550 @ 3,07 GHz
12 GB RAM
CATIA V5 R28

erstellt am: 27. Nov. 2012 13:06    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

Zitat:
Original erstellt von bgrittmann:
Servus
Welches ParameterSet? Wie willst du auf diese Zugreifen? (ggf über die Suche)
Bei deinem Code ist "oDocument.Parameters.ParameterSet" das ParameterSet "Parameter" (direkt Unterhalb des Parts) im Baum.

Gruß
Bernd

PS: Bitte deinen Admin dir VBA zu installieren (auf der CATIA-Installations CD) dann wird die Struktur dir klarer.


Aktuelles Situation ist, dass nach dem Makro alle Parameters und ParameterSets unter Aenderungen sind gelöscht, und alle Parameters unter Konstruktionseigenschaften sind geändert. Das letzte was Makro muss machen, ist neues ParameterSet Aenderung_x unter ParameterSet Aenderungen zu erstellen und dort drei neue Parameters mit default Wert yu erstellen.
In Ergibnis:

-Parameters
--Aenderungen
---Aenderung_x
----Parameter1 mit Wert1
----Parameter2 mit Wert2
----Parameter3 mit Wert3

EDIT:
Ganzes IT Dept. sitzt bei euch  Habe ich schön gefragt - aber seit 3 Wochen keine Antwort.

[Diese Nachricht wurde von Sylas am 27. Nov. 2012 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: 27. Nov. 2012 16:37    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 Sylas 10 Unities + Antwort hilfreich

Servus
bei einem Part bekommst du zb so dein ParameterSet (vorsicht wenn es das ParameterSet nicht gibt):
Code:
Dim partDocument1 As PartDocument
Set oDoc = CATIA.ActiveDocument

Dim part1 As Part
Set part1 = oDoc.Part

Dim RootParameterSet As parameterSet
Set RootParameterSet = part1.Parameters.RootParameterSet

Dim parameterSet As parameterSet
Set parameterSet = RootParameterSet.ParameterSets.Item("Aenderungen")


Bei einem CATProduct entsprechend auf das Product los lassen. Oder du verwendest die Suche (Makrorekorder) dann ist dies unabhängiger vom Dokumententyp.

Gruß
Bernd

PS: Im Makroeditor gibt es auch die Funktion "Objektauflösung. Diese hilft manchmal weiter die Struktur der Objekte besser zu verstehen.

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

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

Sylas
Mitglied



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

Beiträge: 322
Registriert: 19.11.2012

Dell Precision T3500
Intel Xeon W3550 @ 3,07 GHz
12 GB RAM
CATIA V5 R28

erstellt am: 28. Nov. 2012 08: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

Zitat:
Original erstellt von bgrittmann:
Servus
bei einem Part bekommst du zb so dein ParameterSet (vorsicht wenn es das ParameterSet nicht gibt):
Code:
Dim partDocument1 As PartDocument
Set oDoc = CATIA.ActiveDocument

Dim part1 As Part
Set part1 = oDoc.Part

Dim RootParameterSet As parameterSet
Set RootParameterSet = part1.Parameters.RootParameterSet

Dim parameterSet As parameterSet
Set parameterSet = RootParameterSet.ParameterSets.Item("Aenderungen")


Bei einem CATProduct entsprechend auf das Product los lassen. Oder du verwendest die Suche (Makrorekorder) dann ist dies unabhängiger vom Dokumententyp.

Gruß
Bernd

PS: Im Makroeditor gibt es auch die Funktion "Objektauflösung. Diese hilft manchmal weiter die Struktur der Objekte besser zu verstehen.


Servus

Ich habe das kopiert und drei neue Linien hinzugefügt:

Code:

Dim Zielset as parameterSet
Set ZiehlSet = ParameterSet.DirectParameters.CreateSetofParameters("Aenderung_x")
dDoc.update


aber das hilft nicht. Was soll ich genau schreiben? Ich will das endlich zur Ende bringen...

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: 28. Nov. 2012 09:28    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 Sylas 10 Unities + Antwort hilfreich

Servus
Und wie lautet die Fehlermeldung? Wie weit funktioniert dein Makro? Hast du dir mal in der Doku die Methode "CreateSetofParameters" angeschaut?
Was willst du nun anlegen, ein Parameter oder ein ParameterSet?
Anbei ein Beispiel:
Code:
Dim partDocument1 As PartDocument
Set oDoc = CATIA.ActiveDocument

Dim part1 As Part
Set part1 = oDoc.Part

'Rootparameters aufrufen
Dim RootParameterSet As parameterSet
Set RootParameterSet = part1.Parameters.RootParameterSet

'Parameterset Aenderungen
Dim oParameterSet As parameterSet
Set oParameterSet = RootParameterSet.ParameterSets.Item("Aenderungen")

'ParameterSet anlegen
Dim oTargetSet As parameterSet
Set oTargetSet = oParameterSet.parameterSets.creatSet("Test")

'Parameter anlegen
dim StrParameter as Parameter
Set StrParameter = oTargetSet.DirectParameters.CreateString("Testparameter", "Testwert")


Gruß
Bernd

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

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

Sylas
Mitglied



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

Beiträge: 322
Registriert: 19.11.2012

Dell Precision T3500
Intel Xeon W3550 @ 3,07 GHz
12 GB RAM
CATIA V5 R28

erstellt am: 28. Nov. 2012 23:21    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 Bernd

Zitat:
Original erstellt von bgrittmann:

Set part1 = oDoc.Part

Object doesn't support this Property or Method.

Makro lauft durch bis Entfernung die ParameterSets unter Aenderungen (also ParameterSet Aenderungen ist jetzt lehr).
Unter Aenderungen will ich noch ein ParameterSet Aenderung_x einlegen und unter Aenderung_x noch 3 Parameters.

Wir haben ganz am Anfang geschrieben:

Code:

For Each oDocument In CATIA.Documents

also wir wollen neues Set Aenderung_x mit 3 Parameters für jedes Part einlegen. Also, statt:

Code:

'Rootparameters aufrufen
Dim RootParameterSet As parameterSet
Set RootParameterSet = part1.Parameters.RootParameterSet


Ich glaube, dass wir mussen sowas schreiben:
Code:

'Rootparameters aufrufen
Dim RootParameterSet As parameterSet
Set RootParameterSet = oDocument.Parameters.RootParameterSet


oder
Code:

Set productDocument1 = CATIA.ActiveDocument
Set sel1 = productDocument1.Selection
sel1.Search "(Name=Aenderungen & CATKnowledgeSearch.AdvisorParameterSet),all"
for i=1 to sel1.count
Dim RootParameterSet As parameterSet
Set RootParameterSet = sel1.item(i).Parameters.RootParameterSet
'und weiter zum der Set "Aenderungen" -->wie hast du letztes Mal geschrieben.


Ist das Wahr? Du kannst meinen Kode (siehe par Posten früher)->was sollen wir genau schreiben?

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: 29. Nov. 2012 00:18    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 Sylas 10 Unities + Antwort hilfreich

Servus
Hast du mal meinen Code in einem CATPart ausgeführt (in dem ein ParameterSet "Anderungen" enthalten ist?
Schau mal in der Doku wo die Parameter in einem PartDocument und einem ProductDocument angeordnet sind, dann wir dir klarer, dass du noch eine Fallunterscheidung benötigst (siehe Forensuche)

Gruß
Bernd

EDIT: Du solltest auch mal in der Doku schauen was dir RootParameterSet liefert.
------------------
Warum einfach, wenn es auch kompliziert geht.

[Diese Nachricht wurde von bgrittmann am 29. Nov. 2012 editiert.]

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

Sylas
Mitglied



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

Beiträge: 322
Registriert: 19.11.2012

Dell Precision T3500
Intel Xeon W3550 @ 3,07 GHz
12 GB RAM
CATIA V5 R28

erstellt am: 29. Nov. 2012 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

Zitat:
Original erstellt von bgrittmann:
Servus
Hast du mal meinen Code in einem CATPart ausgeführt (in dem ein ParameterSet "Anderungen" enthalten ist?
Schau mal in der Doku wo die Parameter in einem PartDocument und einem ProductDocument angeordnet sind, dann wir dir klarer, dass du noch eine Fallunterscheidung benötigst (siehe Forensuche)

Gruß
Bernd

EDIT: Du solltest auch mal in der Doku schauen was dir RootParameterSet liefert.



Servus Bernd

Ich verstehe jetzt was du meinst wegen Fallunterscheidung. Ich glaube, dass ich kann das irgendwie bauen. Aber wofür soll ich das machen, wenn das Makro wird ausgeführt sein nur wenn das ActiveDocument wird ein Produkt sein? Oder, trotztdem muss ich das machen, wegen das, das ich habe ParameterSets unter Parts aber auch unter HaubtProduct?  
EDIT: Deinem Kode funktioniert für das Part selbst super. Ich habe Mal probiert Fallunterscheidung zu schreiben:

Code:

Sub CATMain()
Set oDocument = Catia.ActiveDocument
Projekt = InputBox("Podaj wartość parametru:", "Wartość parametru Projekt", "xxxx")
Operation = InputBox("Podaj wartość parametru:", "Wartość parametru Operation", "xxxxxx")
Entworfen = InputBox("Podaj wartość parametru:", "Wartość parametru Entworfen", "xx")
Datum = InputBox("Podaj wartość parametru:", "Wartość parametru Datum", "xx.xx.xx")
BG = InputBox("Podaj wartość parametru:", "Wartość parametru Beschriftung_der_Baugruppe", "xxxxxx")

Dim TargetSet
Dim Sel1
Set Sel1 = oDocument.Selection
Sel1.Search "(Name=*Aenderung_* & CATKnowledgeSearch.AdvisorParameterSet),all"
Sel1.Delete
For Each oDocument In CATIA.Documents
'---------------------------------------------------

'-----------------------------------
Sel1.Clear
Sel1.Search "Name=Projekt,all"
'Set product1 = productDocument1.Product
'Set product1 = product1.ReferenceProduct
Dim oParameter
For i = 1 To Sel1.Count
Set oParameter = Sel1.Item(i).Value

oParameter.Value = Projekt

Next
'------------------------------------

Sel1.Clear
Sel1.Search "Name=Operation,all"
For i = 1 To Sel1.Count
Set oParameter = Sel1.Item(i).Value

oParameter.Value = Operation

Next
'-------------------------------------

Sel1.Clear
Sel1.Search "Name=Entworfen,all"
For i = 1 To Sel1.Count
Set oParameter = Sel1.Item(i).Value

oParameter.Value = Entworfen

Next
'-------------------------------------
Sel1.Clear

Sel1.Search "(Name=Datum & CATKnowledgeSearch.InternalParameter),all"
For i = 1 To Sel1.Count

Set oParameter = Sel1.Item2(i).Value


  If InStr(oParameter.name, "Konstruktionseigenschaften") <> 0 Then
        oParameter.Value = Datum
    End If
Next
'-------------------------------------
Sel1.Clear
Sel1.Search "Name=Beschriftung_der_Baugruppe,all"
For i = 1 To Sel1.Count
Set oParameter = Sel1.Item(i).Value

oParameter.Value = BG

Next
'-------------------------------------
Sel1.Clear
Sel1.Search "Name=Beschriftung_des_Teils,all"
For i = 1 To Sel1.Count
Set oParameter = Sel1.Item(i).Value

oParameter.Value = BG

Next
'-------------------------------------
'Rootparameters aufrufen
Dim RootParameterSet
Dim oDoc
Set oDoc = CATIA.ActiveDocument
If (InStr(oDoc.Name,".CATProduct")) <> 0  Then

Dim Product1
Set product1 = oDoc.Product

Set RootParameterSet = product1.Parameters.RootParameterSet

'Parameterset Aenderungen
Dim oParameterSet
Set oParameterSet = RootParameterSet.ParameterSets.Item("Aenderungen")

'ParameterSet anlegen
Dim oTargetSet
Set oTargetSet = oParameterSet.ParameterSets.createSet("Aenderung_x")

'Parameter anlegen
Dim StrParameter1
Set StrParameter1 = oTargetSet.DirectParameters.CreateString("Konstrukteur", "xxx")

Dim StrParameter2
Set StrParameter2 = oTargetSet.DirectParameters.CreateString("Datum", "xx.xx.xx")

Dim StrParameter3
Set StrParameter3 = oTargetSet.DirectParameters.CreateString("Aenderungsgrund", "xxx")
else
Dim Part1
Set part1 = oDoc.Part

Set RootParameterSet = part1.Parameters.RootParameterSet

'Parameterset Aenderungen
Dim oParameterSet
Set oParameterSet = RootParameterSet.ParameterSets.Item("Aenderungen")

'ParameterSet anlegen
Dim oTargetSet
Set oTargetSet = oParameterSet.ParameterSets.createSet("Aenderung_x")

'Parameter anlegen
Dim StrParameter1
Set StrParameter1 = oTargetSet.DirectParameters.CreateString("Konstrukteur", "xxx")

Dim StrParameter2
Set StrParameter2 = oTargetSet.DirectParameters.CreateString("Datum", "xx.xx.xx")

Dim StrParameter3
Set StrParameter3 = oTargetSet.DirectParameters.CreateString("Aenderungsgrund", "xxx")
End If
Next
End Sub



Aber das gibt mir keine ParameterSet Aenderung_x beim Part und 3 ParameterSets Aenderung_x beim Product

[Diese Nachricht wurde von Sylas am 29. Nov. 2012 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: 29. Nov. 2012 23: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 Nur für Sylas 10 Unities + Antwort hilfreich

Servus
Die Schleife "For Each oDocument In CATIA.Documents" war dazu gedacht alle geöffneten Dokumente abzuarbeiten und dort die ParameterSet zu löschen/anlegen/...
Wenn du eine Baugruppe geöffnet hast, sind auch alle Einzelteile und Unterbaugruppen in der Document-Collection enthalten. (aber auch alle parallel dazu geöffneten Dokumente)
Diese Schleife verwendest du nicht da du immer zB "oDocument = CATIA.ActiveDocument" setzt (und somit die Schleife aushebelst). Das aktive Dokument bliebt während der Laufzeit (bei diesem Code) das beim Start geöffnete Dokument.

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