Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Parameterverknüpfung für verschiedene Parts

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:  Parameterverknüpfung für verschiedene Parts (1135 mal gelesen)
Booyaka
Mitglied



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

Beiträge: 122
Registriert: 22.06.2012

CATIA V5 R19, 24, 26, 28, 29

erstellt am: 19. Jan. 2017 11: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

Hallo ich hab da ein kleines Problem.
Als Erstes wir arbeiten hier mit CATIA V5 R24

Als Zweites meine Fähigkeiten im Bereich des Programmierens sind momentan noch sehr begrenzt -> fleißig am lernen.

Aufgabenstellung:
Es sollen über ein Makro Eigenschaftsparameter eines Parts mit Parameter (im Strukturbaum) verknüpft werden, für mehrere verschiedene Bauteile.

Gegeben:
-Struktur des Parameterbaums ist vorgegeben und in jedem Part identisch (selbstverständlich bis auf den Inhalt der Parameter)

- Struktur der Eigenschaftsparameter ist ebenfalls gegeben und bei allen Parts gleich.

Ich habe versucht mit der Makroaufzeichnung was rauszufinden und er hat mir u.a. das ausgeworfen

Code:
Language="VBSCRIPT"

Sub CATMain()

Set partDocument1 = CATIA.ActiveDocument

Set part1 = partDocument1.Part

Set relations1 = part1.Relations

Set parameters1 = part1.Parameters

Set strParam1 = parameters1.Item("DATEINAME\Eigenschaften\Pos.-Nr.")

Set formula1 = relations1.CreateFormula("Formel.3", "", strParam1, "`Parameter_Stueckliste\Bauteil-Info\Pos.-Nr.` ")

formula1.Rename "Formel.3"


mein Problem ist leider das er das parameter.Item nicht variabel ist,
versucht habe ich es schon mit

Code:
parameters1.Item(CATIA.ActiveDocument.Part +"\Eigenschaften\Pos.-Nr.")


Das funktionierte leider auch irgendwie nicht.
Ich komme partout nicht auf die Lösung, auch weiß ich nicht was ich Google noch fragen soll.

Schon mal Tausend und Ein Dank fürs lesen
und Tausend und Zwei Dänker für eine Lösung

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: 19. Jan. 2017 12:11    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 Booyaka 10 Unities + Antwort hilfreich

Servus
Ich würde nicht die jeweiligen Pfade der Parameter nicht zusammensetzen sondern die Methode GetNameToUseInRelation nutzen.
Auf die UserRefProperties könntest du wie hier gezeigt zugreifen.
Hier ein Beispiel (CATScript):
Code:
Sub CATMain()

Dim oProduct As Product
Set oProduct = CATIA.ActiveDocument.Product

Dim ParamWorks As Parameters
Set ParamWorks = oProduct.UserRefProperties

Dim oUserPropertyPosNo As Parameter
Set oUserPropertyPosNo = getUserProperty(ParamWorks, "Pos.-Nr.")

If oUserPropertyPosNo Is Nothing Then
    MsgBox "Eigenschaft nicht vorhanden"
    Exit Sub
End If

Dim oPart As Part
Set oPart = CATIA.ActiveDocument.Part

Dim oRelations As Relations
Set oRelations = oPart.Relations

Dim oParameters As Parameters
Set oParameters = oPart.Parameters

Dim parameterSet1 As ParameterSet
Set parameterSet1 = oParameters.RootParameterSet.ParameterSets.GetItem("Parameter_Stueckliste").ParameterSets.GetItem("Bauteil-Info")

Dim oParameterPosNo As Parameter
Set oParameterPosNo = parameterSet1.DirectParameters.GetItem("Pos.-Nr.")

Dim StrParameterPosNo As Object
StrUserPropertyPosNo = oParameters.GetNameToUseInRelation(oParameterPosNo)

Dim oFormula As Formula
Set formula1 = oRelations.CreateFormula("", "", oUserPropertyPosNo, CStr(StrUserPropertyPosNo))

End Sub

Function getUserProperty(UserProperties As Parameters, ParameterName As String) As Parameter

Dim I As Integer

For I = 1 To UserProperties.Count
    If Right(UserProperties.Item(I).Name, Len(ParameterName)) = ParameterName Then
        Set getUserProperty = UserProperties.Item(I)
        Exit Function
    End If
Next

Set getUserProperty = Nothing

End Function


(Makro ist nicht schön strukturiert und der Zugriff auf den Parameter ist sehr geschludert)
Am einfachsten ist wph im VBA-Editor zu programmieren, da man dort im Watch/Local-Fenster die Struktur der Objekte betrachten kann.

Gruß
Bernd

EDIT: Eine MsgBox entfernt.

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

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

Booyaka
Mitglied



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

Beiträge: 122
Registriert: 22.06.2012

CATIA V5 R19, 24, 26, 28, 29

erstellt am: 19. Jan. 2017 13: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

Ich dank dir viel mals hab es auch als CATScript dementsprechend geschrieben doch leider funktioniert das nicht.

Der sagt mir:
Quelle: Laufzeitfehler in Microsoft VBScript
Beschreibung: Das Objekt unterstützt diese Eigenschaft oder Methode nicht.: 'o.Part.UserRefProperties'

Ist das normal das der den Laufzeitfehler in VBScript hat obwohl ich das als CATScript erstellt hab? (Tschuldigung hab da noch net so viel Ahnung von)

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: 19. Jan. 2017 13: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 Booyaka 10 Unities + Antwort hilfreich

Servus
Was ist bei dir das Objekt o bei o.Part.UserRefProperties.
Die UserRefProperties gibt es nicht bei einem Part sonder nur beim Product (das es auch im PartDocument gibt)
Ich hab das Makro auch in ein PartDocument ausprobiert.

Gruß
Bernd

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

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

Booyaka
Mitglied



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

Beiträge: 122
Registriert: 22.06.2012

CATIA V5 R19, 24, 26, 28, 29

erstellt am: 19. Jan. 2017 13:45    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

Ahhhh Mist!!! Da ist mir ein Punkt dazwischen geraten beim abschreiben, da ist kein Punkt ich hab das testhalber von dir übernommen 'oPart.UserRefProperties' so sollte es eigentlich heißen.

Code:
Dim oPart As Part
Set oPart = CATIA.ActiveDocument.Part

Dim oParamWorks As Parameters
Set oParamWorks = oPart.UserRefProperties


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

Booyaka
Mitglied



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

Beiträge: 122
Registriert: 22.06.2012

CATIA V5 R19, 24, 26, 28, 29

erstellt am: 19. Jan. 2017 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

Zitat:
Original erstellt von bgrittmann:
Servus
.....
Die UserRefProperties gibt es nicht bei einem Part sonder nur beim Product (das es auch im PartDocument gibt)
.....


Ahhh ok das ist dann wohl auch mein Fehler dann schau ich da noch mal drüber.

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

Booyaka
Mitglied



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

Beiträge: 122
Registriert: 22.06.2012

CATIA V5 R19, 24, 26, 28, 29

erstellt am: 19. Jan. 2017 14:45    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

Super hat jetzt alles geklappt Fehler gefunden und ausgemerzt und lässt sich auch Prima beliebig erweitern.

Vielen lieben Dank, das erspart mir ne Menge Arbeit  


Entschuldigung für die vielen Doppelposts....hab jetzt erst den Editierbutton gesehen...

[Diese Nachricht wurde von Booyaka am 19. Jan. 2017 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