Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Veröffentlichung von Sketch Ausgaben

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:  Veröffentlichung von Sketch Ausgaben (2097 mal gelesen)
buecherm83
Mitglied
Ingenieur IT Application Software


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

Beiträge: 78
Registriert: 20.09.2011

SIEMENS NX10
CATIA V5 R26
VB7.1
Tecnomatix Process Designer/Simulate<P>Win7 64bit
Office 2016

erstellt am: 25. Nov. 2013 15: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


abbildung.JPG

 
Hallo zusammen!

ich habe folgendes Problem. In einem Product sind weitere Producte enthalten. Diese enthalten wiederrum einzelne Parts. Ein Part beinhaltet maßgebende Sketche. Diese Sketch besitzen Ausgaben die veröffentlicht werden sollen. Hierzu habe ich ein Script geschrieben welches den User auffordert, das entsprechende Part (welches die Ausgaben enthält) ersteinmal zu selektieren und dann die zu veröffentlichenden Ausgaben zu selektieren. Dies klappt so weit ganz gut.
Am Ende des Durchlaufs werden jedoch die Veröffentlichungen unter das Product gehangen und nicht unter das selektierte Part. Dadurch lassen sich die Veröffentlichungen nicht mehr anwählen. Finde leider meinen Fehler nicht.

Vielleicht kann mir ja jemand weiter helfen. In der Abbildung ist ein einfaches Beispiel der Produktstruktur gezeigt mit der falschen Ebene der Veröffentlichung.

Mein Script sieht wie folgt aus:


Sub CATMain()

    Dim ProductTest As CATBaseDispatch


    Dim MyDocument As Document
    Set MyDocument = CATIA.ActiveDocument
   
    Dim CRSSelection As Object
    Set CRSSelection = MyDocument.Selection

    If TypeName(CATIA.ActiveDocument) = "ProductDocument" Then
        MsgBox "Bitte das PartDocument in der die Veröffentlichung erzeugt werden soll, selektieren"
        Dim DocuTyp(0)
        DocuTyp(0) = "Part"
        AuswahlDocuTyp = CRSSelection.SelectElement2(DocuTyp, "Bitte Part selektieren, 'Esc' zum Abbrechen", True)
        If AuswalDocuTyp = "Cancel" Then Exit Sub
            Set CRSPart = CRSSelection.Item(1).Value
   
        ElseIf TypeName(CATIA.ActiveDocument) = "PartDocument" Then
            Set CRSPart = CATIA.ActiveDocument.Part

        Else
            MsgBox "Das geöffnete Dokument ist kein Part und das Makro wir beendet"
            Exit Sub

    End If

    Dim CRSName As String
    CRSName = CRSPart.Name

    CATIA.StartWorkbench ("PrtCfg")
    CRSSelection.Clear

    Set ProductTest = MyDocument.GetItem(CRSName)
   
    Dim VerSelection As AnyObject
    Set VerSelection = MyDocument.Selection
   
    Dim Part As Product
    Set Part = MyDocument.Product
   
    Dim Arbeitsteil As Products
    Set Arbeitsteil = Part.Products
   
    MsgBox "zu veröffentlichende Objekte markieren! (Mehrfachauswahl mit gedrückter STRG-Taste)"
   
    Dim VerElement(1)
    VerElement(0) = "AnyObject"
    VerElement(1) = "AnyObject"
   
    Dim VerName As String
    Dim Status As String
    Dim VerObject As Object
    Dim AusgabeName As String
   
    Status = VerSelection.SelectElement3(VerElement, "Bitte die Elemente selektieren", False, CATMultiSelTriggWhenUserValidatesSelection, False)
   
    If (Status = "Cancel") Then
        MsgBox "Makro wird beendet"
        Exit Sub
       
    ElseIf Status = "Normal" Then
       
        For z = 1 To VerSelection.Count
            Set VerObject = VerSelection.Item2(z).Value.GetItem("ModelElement")
            VerName = VerObject.InternalName
            Nameintern = VBA.Left(VerName, VBA.InStr(1, VerName, ".") - 1)
            ProfilName = Len(Nameintern)
                If (ProfilName = 7) Then
                    AusgabeName = CStr(Mid(VerName, 1, 6) & Mid(VerName, 8))      '1,7 für Englische Versionen da Profil vs. Profile
                    MsgBox ("der interne Name lautet: -  " & AusgabeName)
                Else

                    MsgBox "Englische Version"

                End If


            Dim VerProduct As AnyObject
            Dim VerReference As Reference
            Dim publications1 As Publications
            Dim publication1 As Publication
           
            Set VerProduct = MyDocument.Product
           

            Set VerReference = ProductTest.CreateReferenceFromName(CRSName & "/!" & AusgabeName)
                               
            Set publications1 = VerProduct.Publications
           
            Set publication1 = publications1.Add(AusgabeName)
           
            publications1.SetDirect AusgabeName, VerReference
       
        Next
       
    End If
   
End Sub


Grüße

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: 25. Nov. 2013 17: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 Nur für buecherm83 10 Unities + Antwort hilfreich

Servus
IMHO musst du die Veröffentlichung vom Product des Parts aus machen.
In deinem Code geschieht dies vom RootProduct aus.
Versuch mal folgende Änderung (ungetestet, mit Watch-Fenster verifizieren)
Code:
Set ProductTest = CRSPart.ReferenceProduct.Product
oder ggf schon bei der Zuweisung von CRSPart)

Gruß
Bernd

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

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

buecherm83
Mitglied
Ingenieur IT Application Software


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

Beiträge: 78
Registriert: 20.09.2011

SIEMENS NX10
CATIA V5 R26
VB7.1
Tecnomatix Process Designer/Simulate<P>Win7 64bit
Office 2016

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

Servus,

bei der direktem Zuweisung im CRSPart erhalte ich das gleiche Ergebnis.
Wenn ich es für "ProductTest = CRSPart.ReferenceProduct.Product setze bekomme ich die Meldung

Object doesn't support this property or methode.

Im WatchFenster erhalte ich für Value: Nothing und Type: CATBaseDispatch

Wie könnte ich noch die Instance deklarieren für das Part?

Grüße

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

tberger
Mitglied
Application Manager CATIA V5 / V6


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

Beiträge: 1385
Registriert: 13.01.2007

WIN 7 64bit
V5R21SP3HF49
3DX/V6 R2016x

erstellt am: 26. Nov. 2013 08:33    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 buecherm83 10 Unities + Antwort hilfreich

Ich würde das selektierte Part über einen kleinen Umweg vorübergehend in ein eigenes Fenster vom Makro öffnen lassen, dann die Veröffentlichung durchführen und das Part-Fenster wieder schliessen lassen. Geht auch ganz schnell.

------------------
Grüße aus dem Thurgau
Thomas

+++++++++++++++++++++++++++++++++

CATIA - eine Laune der Natur ...

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

buecherm83
Mitglied
Ingenieur IT Application Software


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

Beiträge: 78
Registriert: 20.09.2011

SIEMENS NX10
CATIA V5 R26
VB7.1
Tecnomatix Process Designer/Simulate<P>Win7 64bit
Office 2016

erstellt am: 28. Nov. 2013 07: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

Danke. Ich habe es über den Umweg in einem neuen Fenster gelöst.

Grüße

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

Jerre95
Mitglied



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

Beiträge: 27
Registriert: 04.12.2017

CATIA V5 R24

erstellt am: 17. Jan. 2018 16: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 buecherm83 10 Unities + Antwort hilfreich

Servus,

könntest du den Code hierfür posten? Das wäre super!

------------------
Viele Grüße,
Jerre95

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