Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Publications / CreateReferenceFromName nicht geschafft

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:  Publications / CreateReferenceFromName nicht geschafft (1551 / 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: 29. Okt. 2019 14: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

Hallo Leute!

Ich versuche jetzt par Publications aus Collection-Elemente machen.
Code unter:

Code:

Public Sub CreatePublications(ByVal pubProduct As Product, _
ByVal pubCollection As Collection) ', ByVal iIndex As Integer)
Dim pubRef As Reference
Dim thePublications As Publications
Dim thePublication As Publication
Dim i As Integer
Dim pubObject As Object

For i = 1 To pubCollection.Count
Set pubObject = pubCollection.Item(i)
Set pubRef = pubProduct.CreateReferenceFromName(pubProduct.Name & "/!" & pubObject.Name)
Set thePublications = pubProduct.Publications
Set thePublication = thePublications.Add(pubObject.Name)
thePublications.SetDirect pubObject.Name, pubRef
pubProduct.Update
Next
End Sub
[CODE]

pubProduct ist mein Hauptadapter
pubCollection ist meine Collection mit Elemente zu publiziren
Ich kriege ein Fehlermeldung bei



Set pubRef = pubProduct.CreateReferenceFromName(pubProduct.Name & "/!" & pubObject.Name)
[/CODE]

Kann mir jemand sagen wo hab ich ein Fehler gemacht?

Danke

Lucas

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. Okt. 2019 14: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 Nur für Sylas 10 Unities + Antwort hilfreich

Servus Lucas

Musst du da nicht die PartNumber verwenden?

Code:
Set pubRef = pubProduct.CreateReferenceFromName(pubProduct.PartNumber & "/!" & pubObject.Name)
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: 29. Okt. 2019 14: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

Hallo Bernd

pubProduct.Name und pubProduct.PartNumber gibts mir das gleiches String. Und ja - leider 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: 29. Okt. 2019 17: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

Willst du im Part was veröffentlichen oder im CATProduct?
Ist pubProduct eine Instanz im CATProduct?
Was willst du veröffentlichen?
(hat alles Einfluss auf den String für die Reference)

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: 30. Okt. 2019 08:20    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

Willst du im Part was veröffentlichen oder im CATProduct?
Ist pubProduct eine Instanz im CATProduct?
Was willst du veröffentlichen?
(hat alles Einfluss auf den String für die Reference)

Gruß
Bernd


Hallo Bernd


pubProduct is das Hauptadapter - Part -> ein Instanz im ZSB Product

Ich habe oKol mit unterschiedliche Elemente (Linien, Curven, Punkte, AxisSystem, etc... - die kommen aus ein GeoSet in dem Hauptadapter), welche ich will veröffentlichen.

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: 30. Okt. 2019 08:42    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 du willst im Part (Hauptadapter) veröffentlichen?
Dann musst du statt die Instanz das ReferenceProduct davon (also das Product im PartDocument) an die Unterroutine übergeben.

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: 30. Okt. 2019 11: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

Zitat:
Original erstellt von bgrittmann:
Servus

Und du willst im Part (Hauptadapter) veröffentlichen?
Dann musst du statt die Instanz das [i]ReferenceProduct
davon (also das Product im PartDocument) an die Unterroutine übergeben.

Gruß
Bernd

[/i]


Code:
For Each oDoc In CATIA.Documents
    If TypeName(oDoc) = "PartDocument" Then
        If InStr(1, oDoc.Product.PartNumber, "HAUPTADAPTER") <> 0 Then Set oProd = oDoc.Product
    End If
Next

und

Code:

CreatePublications oProd, oKol


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

Randle
Mitglied
CAD/PLM Consultant


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

Beiträge: 695
Registriert: 12.04.2003

Win10 x64
CATIA V5 R18, R19, R21, R27-29

erstellt am: 30. Okt. 2019 11:58    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

Moin,

hat es jetzt denn geklappt?

Habe gerade kein CATIA offen, aber müsst das nicht einfacher über CreateReferenceFromObject gehen?

Gruß
Randle

------------------
Wer für nichts steht, fällt für alles!

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: 30. Okt. 2019 12:05    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 Lucas

Was willst du mit deiner "Antwort" mitteilen?
Hast du schon versucht deinen Fehler einzugrenzen? Bekommst du hin in einem Part ein Element zu veröffentlichen?
Ein kleines Beispiel: folgender Code veröffentlicht im ersten Product in der Baugruppe den Hauptkörper (Achtung: keine Fehlerbehandlung integriert):

Code:
Sub CATMain()

Dim oProductDocument as ProductDocument
Dim oRootProduct as Product
Dim oInstanceProduct as Product
Dim oPartProduct as Product
Dim oPart as Part
Dim oMainBody as Body
Dim oPublication as Publication


Set oProductDocument = CATIA.ActiveDocument
Set oRootProduct = oProductDocument.Product
Set oInstanceProduct = oRootProduct.Products.Item(1)
Set oPartProduct = oInstanceProduct.ReferenceProduct
Set oPart = oPartProduct.Parent.Part
Set oMainBody = oPart.Mainbody

AddPublication oPartProduct, oMainBody

End Sub

Function AddPublication(MyPartproduct, MyElement) as Publication
'Publiziert ein Element
          
    Set MyParentProduct = MyPartproduct
          
    MyRefName = MyParentProduct.PartNumber & "/!" & MyElement.Name
          
    Set MyRef = MyParentProduct.CreateReferenceFromName(MyRefName)

    MyPubName = "Publication_von_" & MyElement.Name
    Set AddPublication = MyPartproduct.Publications.Add (MyPubName)
  
    MyParentProduct.Publications.SetDirect MyPubName, MyRef

End Function


@Randle:
Die Refernz muss wohl vom Product (im PartDocument) aus erstellt werden. Und da gibt es kein CreateReferenceFromObject.

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: 30. Okt. 2019 15:00    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

zum meinem Antwort: ich habe nur gezeigt, dass ich habe schon mein pubProduct als PartDocument.Product definiert.

Leider func es nicht 

Lucas

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: 30. Okt. 2019 15:12    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

Wo kommt ein Fehler?
Welche Fehlermeldung kommt?
Passt der String für die Reference? (mit Makroaufzeichnung vergleichen!)
Was für Element willst du veröffentlichen? Wie greifst du auf die Elemente zu?
Was hast du schon alles getestet?
Klappt es im extra Fenster?
Läuft mein Code (leere Baugruppe mit einem leeren Part)?
Hast du den Code schrittweise ablaufen lassen? Passen da die Anzeigen im Watch/Local-Fenster?

------------------
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: 31. Okt. 2019 09:12    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:
Wo kommt ein Fehler?
Welche Fehlermeldung kommt?
Passt der String für die Reference? (mit Makroaufzeichnung vergleichen!)
Was für Element willst du veröffentlichen? Wie greifst du auf die Elemente zu?
Was hast du schon alles getestet?
Klappt es im extra Fenster?
Läuft mein Code (leere Baugruppe mit einem leeren Part)?
Hast du den Code schrittweise ablaufen lassen? Passen da die Anzeigen im Watch/Local-Fenster?


Hi Bernd

Ich habe mein Code mit Makroaufzeichnung vergleichen, und was witzich ist: mein Code nimmt anderes opubProduct.Name wie im der Baum steht! Ich habe der Name vom oben (oDoc.Product.Name) statt vom unten (oHybridBody.Parent.Parent.Parent.Product) gekriegt. Jetzt lauft super!

Danke!

P.S.

Noch eine Frage dazu: Ich habe ein AxisSystem unter den GeometricalSet (die ich will auch veröffentlichen) aber Makro nimmst für die Collection alle Elemente aus GeoSet, außer der AxisSzstem - warum?

[Diese Nachricht wurde von Sylas am 31. Okt. 2019 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: 31. Okt. 2019 17:01    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

Dann hast du wohl doch das falsche Prodcut an die Unterroutine übergeben.
Zu deiner weiteren Frage:
- Ist das Achsensystem auch in einem GeoSet angeordnet?
- wie sieht jetzt dein Code aus
- Wie sieht der Sting für die Refernce aus wenn du die Veröffentlichung per Makrorekorder aufzeichnest?
- gibt es mehrere Achsensysteme die gleich heißen?

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: 05. Nov. 2019 09:01    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

Dann hast du wohl doch das falsche Prodcut an die Unterroutine übergeben.
Zu deiner weiteren Frage:
- Ist das Achsensystem auch in einem GeoSet angeordnet?
- wie sieht jetzt dein Code aus
- Wie sieht der Sting für die Refernce aus wenn du die Veröffentlichung per Makrorekorder aufzeichnest?
- gibt es mehrere Achsensysteme die gleich heißen?

Gruß
Bernd


Hallo Bernd

Ich entschuldige mich für spät Antwort

Hier ist mein Code:

Code:

Sub CATMain()
'On Error Resume Next
Dim oProd As Product
Dim oDoc As Document
For Each oDoc In CATIA.Documents
    If TypeName(oDoc) = "PartDocument" Then
        If InStr(1, oDoc.Product.PartNumber, "HAUPTADAPTER") <> 0 Then Set oProd = oDoc.Product
    End If
Next
Dim sSel As selection
Dim oSel
Set sSel = CATIA.ActiveDocument.selection
Set oSel = sSel
Dim InputObjectType(0)
InputObjectType(0) = "AnyObject"

oSelection = oSel.SelectElement3(InputObjectType, "Wybierz elementy", True, CATMultiSelTriggWhenUserValidatesSelection, False)
Zmiana_nazw = MsgBox("Chcesz zmieniæ jakieœ nazwy?", vbYesNo, "Zmiana nazw")
If Zmiana_nazw = vbYes Then
    sStringToBeChanged = InputBox("Podaj czêœæ nazwy do zmiany", "Ci¹g znaków do zmiany", "001")
    sStringNew = InputBox("Podaj now¹ czêœæ nazwy", "Nowy ci¹g znaków", "00x")
    For i = 1 To oSel.Count
        If TypeName(oSel.Item(i).Value) = "HybridBody" Then
            oSel.Item(i).Value.Name = VBA.Replace(oSel.Item(i).Value.Name, sStringToBeChanged, sStringNew)
            For Each HybridBody In oSel.Item(i).Value.HybridBodies
                For Each Shape In HybridBody.HybridShapes
                    Shape.Name = VBA.Replace(Shape.Name, sStringToBeChanged, sStringNew)
                Next
            Next
            For Each Shape In oSel.Item(i).Value.HybridShapes
                Shape.Name = VBA.Replace(Shape.Name, sStringToBeChanged, sStringNew)
            Next
        Else
            oSel.Item(i).Value.Name = VBA.Replace(oSel.Item(i).Value.Name, sStringToBeChanged, sStringNew)
        End If
    Next
End If
sPub = MsgBox("Publikowaæ?", vbYesNo, "Publikacje")
If sPub = vbNo Then
    GoTo koniec:
End If
Dim oKugel As HybridShapeSphere
Dim oSchnitt As HybridShapeIntersection

For i = 1 To oSel.Count
    If (TypeName(oSel.Item(i).Value) = "HybridBody" And InStr(1, oSel.Item(i).Value.Name, "Spannstelle_Hilfe_") <> 0) Then
        For Each Shape In oSel.Item(i).Value.HybridShapes
            If TypeName(Shape) = "HybridShapeSphere" Then
                Set oKugel = Shape
                oKugel.Center = oRef1
            End If
        Next
    ElseIf (TypeName(oSel.Item(i).Value) = "HybridBody" And InStr(1, oSel.Item(i).Value.Name, "SPM_") <> 0) Then
        For Each Shape In oSel.Item(i).Value.HybridShapes
            If TypeName(Shape) = "HybridShapeIntersection" Then
                Set oSchnitt = Shape
                oSchnitt.Element2 = oRef2
            End If
        Next
    End If
Next

Dim oKol As New VBA.Collection
For i = 1 To oSel.Count
    If (TypeName(oSel.Item(i).Value) = "HybridBody" And InStr(1, oSel.Item(i).Value.Name, "SPM_") <> 0) Then
        For Each Shape In oSel.Item(i).Value.HybridShapes
            oKol.Add Shape
        Next
    Else
        oKol.Add oSel.Item(i).Value
    End If
Next
For i = oKol.Count To 1 Step -1
    If TypeName(oKol.Item(i)) = "HybridBody" Then oKol.Remove i
Next

CreatePublications oProd, oKol
Set oKol = New VBA.Collection
oSel.Clear
koniec:
End Sub
Function CreatePublications(ByVal pubProduct As Product, _
ByVal pubCollection As Collection) As Publication ', ByVal iIndex As Integer)
Dim pubRef As Reference
Dim thePublications As Publications
Dim thePublication As Publication
Dim i As Integer
Dim sPubName As String

Dim pubObject As Object

For i = 1 To pubCollection.Count
Set pubObject = pubCollection.Item(i)
sPubName = pubProduct.Name & "/!" & pubObject.Name
Set pubRef = pubProduct.CreateReferenceFromName(sPubName)
Set thePublications = pubProduct.Publications
Set thePublication = thePublications.Add(pubObject.Name)
thePublications.SetDirect pubObject.Name, pubRef
pubProduct.Update
Next i
End Function


Und hier was Macro-recorder hat gegeben:

Code:

Sub CATMain()

Dim documents1 As Documents
Set documents1 = CATIA.Documents

Dim partDocument1 As PartDocument
Set partDocument1 = documents1.Item("05-15D_434483_________0000_________A00_HAUPTADAPTER.CATPart")

Dim product1 As Product
Set product1 = partDocument1.GetItem("05-15D_434483_________0000_________A00_HAUPTADAPTER")

Dim reference1 As Reference
Set reference1 = product1.CreateReferenceFromName("05-15D_434483_________0000_________A00_HAUPTADAPTER/!SPM_012/SPM_012")

Dim publications1 As Publications
Set publications1 = product1.Publications

Dim publication1 As Publication
Set publication1 = publications1.Add("SPM_012")

publications1.SetDirect "SPM_012", reference1

Dim settingControllers1 As SettingControllers
Set settingControllers1 = CATIA.SettingControllers

Dim visualizationSettingAtt1 As VisualizationSettingAtt
Set visualizationSettingAtt1 = settingControllers1.Item("CATVizVisualizationSettingCtrl")

visualizationSettingAtt1.SaveRepository

End Sub


Das AchsenSystem steht unter das gleiches GeoSet, wie ändere Elemente. Ich will zuerst jeder Name von GeoSet Elemente ändern, danach publizieren, aber der Code findet dem Achsensystem unter dem GeoSet nicht  

Sorry für mein Deutsch

Lucas

EDIT:

Ich habe das Axis Problem mit

Code:

            Set oSel2 = sSel
            oSel2.Search ("'Part Design'.'Axis System',sel")
            oSel2.Item(1).Value.Name = VBA.Replace(oSel2.Item(1).Value.Name, sStringToBeChanged, sStringNew)
            oKol.Add oSel2.Item(1).Value
            oSel2.Clear

gelöst.
Aber ich habe wieder das Problem, das code nimmt anderes Product.Name wie in der Baum steht... Der Produktname ist mit nur eine Buchstabe änderes als die richtiges Product, und existiert in der Baum nicht (ist auch nicht in CATIA.documents geladen).

[Diese Nachricht wurde von Sylas am 05. Nov. 2019 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: 05. Nov. 2019 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

AFIAR sind Achsensystem in GeoSet etwas problematisch.
Die einzige Möglichkeit die mir dazu einfällt: GeoSet selektieren und per .Search nach den Achsensystem darin suchen.

Gruß
Bernd

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

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: 05. Nov. 2019 10:05    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

Warum bestimmst du das Product in dem was veröffentlicht werden soll über die Documents-Collection?
Was ist wenn in einem andern Part was selektiert wurde? Was wenn mehrerer Dokumente mit HAUPTADAPTER in der PartNumber geöffnet sind (oder nicht richtig geschlossen wurden)?
Ich würde das Product über die selektierenden Elemente (zB .LeafProduct.ReferenceProduct, geht aber nur wenn in einer Baugruppe etwas selektiert wurde) bestimmen.

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: 05. Nov. 2019 10: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

Warum bestimmst du das Product in dem was veröffentlicht werden soll über die Documents-Collection?
Was ist wenn in einem andern Part was selektiert wurde? Was wenn mehrerer Dokumente mit HAUPTADAPTER in der PartNumber geöffnet sind (oder nicht richtig geschlossen wurden)?
Ich würde das Product über die selektierenden Elemente (zB [i].LeafProduct.ReferenceProduct
, geht aber nur wenn in einer Baugruppe etwas selektiert wurde) bestimmen.

Gruß
Bernd

[/i]


Danke Bernd! Jetzt func super!

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