Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Makro Achsensystem mit allen Elementen veröffentlichen

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:  Makro Achsensystem mit allen Elementen veröffentlichen (5838 mal gelesen)
udmmm
Mitglied
Dipl. Ing. Feinwerktechnik

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

Beiträge: 5
Registriert: 24.07.2011

Mit freundlicher Hilfe von HS42.com

erstellt am: 20. Nov. 2011 18: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


HS42.catvba.zip

 
Hallo Zusammen, ich habe mit dem Buch "Catia Automatisieren" versucht ein neues Makro zu schreiben. Im Anhang ist mein Versuch. Das Makro soll zum Aufrufen eines Achsensystems auffordern (funktioniert), anschliessend wird das Achsensystem umbenannt (funktioniert). Am Ende sollen alle Elemente von dem Achsensystem (x-, y-, z- Achse, Origin, xy-, yz- und zx-Ebene) und das Achsensystem selbst veröffentlicht und mit dem Namen des Achsensystems versehen werden. Beispiel:
selektieren von Achsensystem.2
umbenennen in Achsensystem.Nullpkt und veröffentlichen
x Axis veröffentlichen als x.Nullpkt
x Axis veröffentlichen als x.Nullpkt
x Axis veröffentlichen als x.Nullpkt
xy Plane veröffentlichen als xy.Nullpkt
yz Plane veröffentlichen als yz.Nullpkt
zx Plane veröffentlichen als zx.Nullpkt
Origin veröffentlichen als origin.Nullpkt
Ich würde mich super freuen, wenn Ihr mir bei der Realisierung meines Projektes helfen könnt. Danke Dieter

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: 20. Nov. 2011 18:24    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 udmmm 10 Unities + Antwort hilfreich

Servus
Wie weit kommst d mit deinem Makro? Wo scheiterst du?
Könntest du bitte den Code, mit dem du Probleme hast direkt hier als Text oder CATScript posten?
CATvba lässt sich nicht in einem Text-Editor betrachten/analysieren und macht manchmal Probleme wenn beim Erzeugen andere Referenzen angegeben wurden.

Gruß
Bernd

PS: Bitte Systeminfo ausfüllen

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

[Diese Nachricht wurde von bgrittmann am 20. Nov. 2011 editiert.]

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

udmmm
Mitglied
Dipl. Ing. Feinwerktechnik

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

Beiträge: 5
Registriert: 24.07.2011

Mit freundlicher Hilfe von HS42.com

erstellt am: 20. Nov. 2011 22: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

Hier der Text des VBA Makros. Ab Zeile 29 (ohne Zeilennummern) fehlt mir der Ansatz, den username für die Veröffentlichungen der einzelnen Elemente zu verwenden. Danke für die schnelle Frage. Dieter

Sub CATMain()
1        version = "1.0"
2        makroname = "Achsensystem veröffentlichen"
3            On Error Resume Next     
4            Set activedoc = CATIA.ActiveDocument
5            If Err.Number <> 0 Then
6                MsgBox "Es ist kein Bauteil (CATPart) geöffnet", 16, makroname + " " + version
7                Exit Sub
8            End If
              'Auslesen der Dokumentart ------
9            If (Right(activedoc.Name, 7) <> "CATPart") Then 'Part
10                MsgBox "Aktives Dokument ist kein Bauteil", 16, makroname + " " + version
11                Exit Sub
12            End If
           
              '~~~ Meldung an den Anwendern bezüglich der Anwendung ~~~~
              'Zeilenumbruch durch '& Chr(13)'
              'MsgBox "Hier stehen kurz die ersten Schritte für die korrekte Anwendung"
              '~~~ Meldung-Ende ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

              '### Haupteil des Makros #################################
              'V5 wird direkt durch 'CATIA' angesprochen
              'z.B. CATIA.ActiveDocument
              '- - - - - - - - - - - - - - -
13            Set selection1 = activedoc.Selection
              Dim InputObjectType(0)
14            InputObjectType(0) = "AnyObject"
15            Status = selection1.SelectElement2(InputObjectType, "Wählen Sie das zu veröffentliche Achsensystem aus", True)
16            If (Status = "Cancel") Then
17                MsgBox "Makro wurde abgebrochen", 16, makroname & " " & version
18                Exit Sub
19            Else
20                Set usersel = selection1.Item(1).Value
                  Dim seltype
21                seltype = TypeName(usersel)
22                selection1.Clear           
23                UserName = InputBox("Geben Sie den neuen Namen ein", makroname & " " & version, usersel.Name)
24                If (UserName = "") Then
25                    MsgBox "Makro wurde abgebrochen", 16, makroname & " " & version
26                Exit Sub
27                Else
28                    If seltype <> "Part" Then
29                        usersel.Name = UserName

Dim partDocument1 As PartDocument
Set partDocument1 = CATIA.ActiveDocument

Dim product1 As Product
Set product1 = partDocument1.GetItem("Part1")

'Dim reference1 As Reference
'Set reference1 = product1.CreateReferenceFromName("Part1/!Axis System.3")
'Set reference1 = product1.CreateReferenceFromName(usersel.Name)
MsgBox "Makro = "
'Dim publications1 As Publications
'Set publications1 = product1.Publications

Dim publication1 As Publication
'Set publication1 = publications1.Add("Axis System.3")
Set publication1 = publications1.Add(usersel.Name)

'publications1.SetDirect "Axis System.3", reference1
publications1.SetDirect usersel.Name, reference1

Dim reference2 As Reference
Set reference2 = product1.CreateReferenceFromName("Part1/!Selection_FVertex Vertex Neighbours Face Brp AxisSystem.3;2);None );Cf11 ));Face Brp AxisSystem.3;3);None );Cf11 ));Face Brp A xisSystem.3;1);None );Cf11 )));Cf11 ));AxisSystem.3;InSameTool;Z0;G3491)")

Dim publication2 As Publication
Set publication2 = publications1.Add("Origin1")

publications1.SetDirect "Origin1", reference2

Dim reference3 As Reference
Set reference3 = product1.CreateReferenceFromName("Part1/!Selection_REdge Edge Face Brp AxisSystem.3;1);None );Cf11 ));Face Brp AxisSystem.3;3);None );Cf11 ));None Limits1 );Limits2 )) ;Cf11 ));AxisSystem.3;InSameTool;Z0;G3491)")

Dim publication3 As Publication
Set publication3 = publications1.Add("X Axis1")

publications1.SetDirect "X Axis1", reference3

Dim reference4 As Reference
Set reference4 = product1.CreateReferenceFromName("Part1/!Selection_REdge Edge Face Brp AxisSystem.3;2);None );Cf11 ));Face Brp AxisSystem.3;1);None );Cf11 ));None Limits1 );Limits2 )) ;Cf11 ));AxisSystem.3;InSameTool;Z0;G3491)")

Dim publication4 As Publication
Set publication4 = publications1.Add("Y Axis1")

publications1.SetDirect "Y Axis1", reference4

Dim reference5 As Reference
Set reference5 = product1.CreateReferenceFromName("Part1/!Selection_REdge Edge Face Brp AxisSystem.3;3);None );Cf11 ));Face Brp AxisSystem.3;2);None );Cf11 ));None Limits1 );Limits2 )) ;Cf11 ));AxisSystem.3;InSameTool;Z0;G3491)")

Dim publication5 As Publication
Set publication5 = publications1.Add("Z Axis1")

publications1.SetDirect "Z Axis1", reference5

Dim reference6 As Reference
Set reference6 = product1.CreateReferenceFromName("Part1/!Selection_RSur Face Brp AxisSystem.3;1);None );Cf11 ));AxisSystem.3;InSameTool;Z0;G3491)")

Dim publication6 As Publication
Set publication6 = publications1.Add("XY Plane1")

publications1.SetDirect "XY Plane1", reference6

Dim reference7 As Reference
Set reference7 = product1.CreateReferenceFromName("Part1/!Selection_RSur Face Brp AxisSystem.3;2);None );Cf11 ));AxisSystem.3;InSameTool;Z0;G3491)")

Dim publication7 As Publication
Set publication7 = publications1.Add("YZ Plane1")

publications1.SetDirect "YZ Plane1", reference7

Dim reference8 As Reference
Set reference8 = product1.CreateReferenceFromName("Part1/!Selection_RSur Face Brp AxisSystem.3;3);None );Cf11 ));AxisSystem.3;InSameTool;Z0;G3491)")

Dim publication8 As Publication
Set publication8 = publications1.Add("ZX Plane1")

publications1.SetDirect "ZX Plane1", reference8

Dim settingControllers1 As SettingControllers
Set settingControllers1 = CATIA.SettingControllers

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

visualizationSettingAtt1.SaveRepository

30                    Else
31                        usersel.Parent.Product.PartNumber = UserName
32                    End If
33                End If
34            End If
              '### Haupteil-Ende ######################################

              '+++ Ausgabe der Fehler ++++++++++++++++++++++++++++
35            iErr = Err.Number
36            If (iErr <> 0) Then
37                MsgBox (Err.Description)
38                Exit Sub
39            End If
              '+++ Fehler-Ende ++++++++++++++++++++++++++++++++++

              '--- Abschlussmeldung an Anwender --------------------------
              'MsgBox "Makro ist beendet", 64, "Rename"
              '------------------------------------------------------------------------------

    End Sub

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

gladly
Mitglied



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

Beiträge: 56
Registriert: 02.11.2007

Catia V5R19SP9HF40 64Bit
Windows XP Pro x64

erstellt am: 02. Dez. 2011 01: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 udmmm 10 Unities + Antwort hilfreich

Guten Tag,

hier ist mein Script zu diesem Thema. Ich muss sagen, das mich die Referenzerstellung ziemlich irritiert hat. Die "normalen" referenzen werden einfach nicht angenommen. Also hier ist nun mein Script.
In der Teststellung hatte ich lediglich ein leeres Part mit der Start-Achse. Diese wurde selektiert und Publicationen wurden erstellt.

Code:

'~+~+~+~+~+~+~+~+~+~+~+~+~+~+~ Bitte Header anpassen ~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~
'COPYRIGHT Dieter Müller 2011
'***********************************************************************************
'Purpose:           Selektiertes Achsensystem publizieren mit allen Elementen
'Assumptions:   Aktives Dokument muss ein Part sein
'
'
'Language:         VBScript
'V5-Level:          V5R19
'Locale:                German
Option Explicit

'Author:                Dieter Müller
'Firm:                    HS42
'***********************************************************************************
'~+~+~+~+~+~+~+~+~+~~+~+~+~+~ Ende Header ~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+
Dim version, makroname
    Sub CATMain()
1         version = "1.0"
2         makroname = "Achsensystem veröffentlichen"
             
3             'On Error Resume Next
              Dim activedoc As Object
4             Set activedoc = CATIA.ActiveDocument
5             If Err.Number <> 0 Then
6                 MsgBox "Es ist kein Bauteil (CATPart) geöffnet", 16, makroname + " " + version
7                 Exit Sub
8             End If

              'Auslesen der Dokumentart ------
9             If (Right(activedoc.Name, 7) <> "CATPart") Then 'Part
10                MsgBox "Aktives Dokument ist kein Bauteil", 16, makroname + " " + version
11                Exit Sub
12            End If
             
              '~~~ Meldung an den Anwendern bezüglich der Anwendung ~~~~
              'Zeilenumbruch durch '& Chr(13)'
              'MsgBox "Hier stehen kurz die ersten Schritte für die korrekte Anwendung"
              '~~~ Meldung-Ende ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

              '### Haupteil des Makros #################################
              'V5 wird direkt durch 'CATIA' angesprochen
              'z.B. CATIA.ActiveDocument
              '- - - - - - - - - - - - - - -
              Dim selection1 As Object
              Set selection1 = activedoc.Selection
             
              Dim InputObjectType(0)
14            InputObjectType(0) = "AnyObject"
               
              Dim Status As String
15            Status = selection1.SelectElement2(InputObjectType, "Wählen Sie das zu veröffentliche Achsensystem aus", True)
16            If (Status = "Cancel") Then
17                MsgBox "Makro wurde abgebrochen", 16, makroname & " " & version
18                Exit Sub
19            Else
                  Dim UserSel As Object
20                Set UserSel = selection1.Item(1).Value
                 
                  Dim seltype
21                seltype = TypeName(UserSel)
22                selection1.Clear
                  Dim UserName As String
23                UserName = InputBox("Geben Sie den neuen Namen ein", makroname & " " & version, UserSel.Name)
24                If (UserName = "") Then
25                    MsgBox "Makro wurde abgebrochen", 16, makroname & " " & version
26                Exit Sub
27                Else
28                    If seltype <> "Part" Then
                            'umbenennen in Achsensystem.Nullpkt und veröffentlichen
                            'x Axis veröffentlichen als x.Nullpkt
                            'x Axis veröffentlichen als x.Nullpkt
                            'x Axis veröffentlichen als x.Nullpkt
                            'xy Plane veröffentlichen als xy.Nullpkt
                            'yz Plane veröffentlichen als yz.Nullpkt
                            'zx Plane veröffentlichen als zx.Nullpkt
                            'Origin veröffentlichen als origin.Nullpkt

                            UserSel.Name = "Achsensystem." & UserName
                           
                            'PartDocument durch Selektion finden
                            'nur nötig, wenn im Product selektiert wird!
                            'Sonst könnte PartDoc = Catia.ActiveDocument
                            Dim oTemp As Object
                            Set oTemp = UserSel.Parent
                            Do Until TypeName(oTemp) = "PartDocument"
                                Set oTemp = oTemp.Parent
                            Loop
                            Dim PartDoc As PartDocument
                            Set PartDoc = oTemp
                            Dim oProduct As Product
                            Set oProduct = PartDoc.Product '.ReferenceProduct
                           
                            Dim axis As AxisSystem
                            Set axis = UserSel
                           
                            Dim eX As Byte: eX = 2
                            Dim eY As Byte: eY = 0
                            Dim eZ As Byte: eZ = 1
                            Dim eXY As Byte: eXY = 0
                            Dim eYZ As Byte: eYZ = 1
                            Dim eZX As Byte: eZX = 2
                           
                            Dim planeDirs(2) As Object
                            Dim i As Integer
                            For i = 0 To 2
                                'Set planeDirs(i) = PartDoc.Part.CreateReferenceFromBRepName("RSur:(Face:(Brp:(" & axis.Name & ";" & (i + 1) & ");None:();Cf11:());WithPermanentBody;WithoutBuildError;WithSelectingFeatureSupport;MFBRepVersion_CXR15)", axis)
                                Set planeDirs(i) = oProduct.CreateReferenceFromName(oProduct.PartNumber & "/!Selection_RSur:(Face:(Brp:(" & axis.Name & ";" & (i + 1) & ");None:();Cf11:());" & axis.Name & ";InSameTool;Z0;G3491)")
                            Next
                           
                            Dim lineDirs(2) As Object
                            For i = 0 To 2
                                'Set lineDirs(i) = PartDoc.Part.CreateReferenceFromBRepName("REdge:(Edge:(Face:(Brp:(" & axis.Name & ";" & (((i + 1) Mod 3) + 1) & ");None:();Cf11:());Face:(Brp:(" & axis.Name & ";" & (i + 1) & ");None:();Cf11:());None:(Limits1:();Limits2:());Cf11:());WithPermanentBody;WithoutBuildError;WithSelectingFeatureSupport;MFBRepVersion_CXR15)", axis)
                                Set lineDirs(i) = oProduct.CreateReferenceFromName(oProduct.PartNumber & "/!Selection_REdge:(Edge:(Face:(Brp:(" & axis.Name & ";" & (((i + 1) Mod 3) + 1) & ");None:();Cf11:());Face:(Brp:(" & axis.Name & ";" & (i + 1) & ");None:();Cf11:());None:(Limits1:();Limits2:());Cf11:());" & axis.Name & ";InSameTool;Z0;G3491)")
                            Next
                           
                            Dim axisPoint As Object
                            'Set axisPoint = PartDoc.Part.CreateReferenceFromBRepName("FVertex:(Vertex:(Neighbours:(Face:(Brp:(" & axis.Name & ";2);None:();Cf11:());Face:(Brp:(" & axis.Name & ";3);None:();Cf11:());Face:(Brp:(" & axis.Name & ";1);None:();Cf11:()));Cf11:());WithPermanentBody;WithoutBuildError;WithSelectingFeatureSupport;MFBRepVersion_CXR15)", axis)
                            Set axisPoint = oProduct.CreateReferenceFromName(oProduct.PartNumber & "/!Selection_FVertex:(Vertex:(Neighbours:(Face:(Brp:(" & axis.Name & ";2);None:();Cf11:());Face:(Brp:(" & axis.Name & ";3);None:();Cf11:());Face:(Brp:(" & axis.Name & ";1);None:();Cf11:()));Cf11:());" & axis.Name & ";InSameTool;Z0;G3491)")
                           
                            Dim RefAxis As Reference
                            Set RefAxis = oProduct.CreateReferenceFromName(oProduct.PartNumber & "/!" & UserSel.Name)
                            'Set RefAxis = PartDoc.Part.CreateReferenceFromObject(UserSel)
                           
                            'Set product1 = activedoc.GetItem("Part1")
                            Dim publications1 As Publications
                            Set publications1 = oProduct.Publications
                            'Veröffentliche Axis gesamt
                            Dim publication1 As Publication
                            Set publication1 = publications1.Add(UserSel.Name)
                            publications1.SetDirect UserSel.Name, RefAxis
                            'X-Achse
                            Set publication1 = publications1.Add("x." & UserName)
                            publications1.SetDirect "x." & UserName, lineDirs(eX)
                            'Y-Achse
                            Set publication1 = publications1.Add("y." & UserName)
                            publications1.SetDirect "y." & UserName, lineDirs(eY)
                            'Z-Achse
                            Set publication1 = publications1.Add("z." & UserName)
                            publications1.SetDirect "z." & UserName, lineDirs(eZ)
                            'XY-Plane
                            Set publication1 = publications1.Add("xy." & UserName)
                            publications1.SetDirect "xy." & UserName, planeDirs(eXY)
                            'YZ-Plane
                            Set publication1 = publications1.Add("yz." & UserName)
                            publications1.SetDirect "yz." & UserName, planeDirs(eYZ)
                            'ZX-Plane
                            Set publication1 = publications1.Add("zx." & UserName)
                            publications1.SetDirect "zx." & UserName, planeDirs(eZX)
                            'origin
                            Set publication1 = publications1.Add("origin." & UserName)
                            publications1.SetDirect "origin." & UserName, axisPoint
30                    Else
31                        UserSel.Parent.Product.PartNumber = UserName
32                    End If
33                End If
34            End If
              '### Haupteil-Ende ######################################

              '+++ Ausgabe der Fehler ++++++++++++++++++++++++++++
              Dim iErr As Integer
              iErr = Err.Number
36            If (iErr <> 0) Then
37                MsgBox (Err.Description)
38                Exit Sub
39            End If
              '+++ Fehler-Ende ++++++++++++++++++++++++++++++++++

              '--- Abschlussmeldung an Anwender --------------------------
              'MsgBox "Makro ist beendet", 64, "Rename"
              '------------------------------------------------------------------------------

    End Sub


[Diese Nachricht wurde von gladly am 02. Dez. 2011 editiert.]

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: 19. Nov. 2013 10: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 udmmm 10 Unities + Antwort hilfreich

Hallo,

ich habe ein ähnliches Problem.

In einem Part sollen Ausgaben eines Sketches veröffentlicht werden.
Als Ansatz habe ich das obere Script genommen und soweit angepasst.

Mein bisheriger Code:

Sub CATMain()

    Dim Document As Object
    Set Document = CATIA.ActiveDocument
   
    'Auslesen der Dokumentenart
    If (Right(Document.Name, 7) <> "CATPart") Then      'Part
        MsgBox "Aktives Dokument ist kein Part", 16, makroname + " " + version
        Exit Sub
    End If
   
    Dim VerSelection As Object
    Set VerSelection = Document.Selection
   
    MsgBox "zu veröffentliche Objekte markieren!"
   
    Dim VerElement(1)
    VerElement(0) = "AnyObject"
    VerElement(1) = "AnyObject"
   
    Dim VerName As String
    Dim Status 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 x = 1 To VerSelection.Count
            Set Item = VerSelection.Item(x)
            VerName = Item.Value.Name     
         
        Next
       
    End If

Dim PartDoc As Document
Dim Product As Product
Set PartDoc = CATIA.ActiveDocument
Set Product = Document.Product


Dim Reference As Reference
Set Reference = Product.CreateReferenceFromName(Product.PartNumber & "/!" & VerName)

Dim publications1 As Publications
Set publicatinos1 = Product.Publications

Dim publication1 As Publication
Set publication1 = publications1.Add(VerName)

publications1.SetDirect Item.Name, Reference

End Sub


In der Zeile Set publication1 = publications1.Add(VerName) bekomme ich den folgeden Fehler.
Object variable or With block variable not set.

Vielleicht kann mir ja jemand weiter helfen.

Vielen Dank!

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

Servus
Du hast dich im Code bei publications1 verschrieben (Buchstaben fehlt). (in der Zeile Set publications1 = Product.Publications)

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: 20. Nov. 2013 08: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 Nur für udmmm 10 Unities + Antwort hilfreich


Fehlermeldung.jpg

 
Vielen Dank, hatte den Fehler nicht gesehen.

Ich habe mein Makro noch ein wenig angepasst. Es läuft soweit auch schon ganz gut durch.
Ich kann in einem Part alles veröffentlichen bis auf die Objekte die ich benötige.

Das Makro soll Ausgaben eines Sketches die vom User Selektiert werden veröffentlichen.
Nach dem Selektieren erhalte ich einen Fehler und mein Makro bricht ab.
Ich habe herausgefunden das der Name der Ausgabe die selektiert ist nicht mit dem eigentlichen Namen übereinstimmt.
Zur Verdeutlichung siehe Abbildung.

Ich habe dann versucht, die Veröffentlichung über CreateReferenceFromObject zu erstellen, aber auch hier bekomme ich einen
Fehlermeldung.
"Object doesen't support this property or method"

Kann mir jemand weiterhelfen?


Mein neuer Code:


Sub CATMain()

    Dim Document As Object
    Set Document = CATIA.ActiveDocument
       
    Dim VerSelection As Object
    Set VerSelection = Document.Selection
   
    MsgBox "zu veröffentliche 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 Item As Object
   
    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 X = 1 To VerSelection.Count
            Set Item = VerSelection.Item(X)
            VerName = Item.Value.Name      'später löschen nur zur Überprüfung
            MsgBox VerName                  'Ausgabe der Überprüfung
           
           
            Dim Product As Object
            Dim Reference As Reference
            Dim publications1 As Publications
            Dim publication1 As Publication
           
            Set Product = Document.Product
           
           
            'Set Reference = Product.CreateReferenceFromName(Product.PartNumber & "/!" & VerName)
            Set Reference = Product.CreateReferenceFromObject(Item)
           
            Set publications1 = Product.Publications
           
            Set publication1 = publications1.Add(VerName)
           
            publications1.SetDirect VerName, Reference
       
        Next
       
    End If
   
End Sub

Beste Grüße

[Diese Nachricht wurde von buecherm83 am 20. Nov. 2013 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: 20. Nov. 2013 08:10    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 udmmm 10 Unities + Antwort hilfreich

Servus
IMHO müsste es so heißen, wenn du per CreatReferenceFromObject die Referenz bilden willst:
Code:
Set Item = VerSelection.Item2(X).Value
Value liefert dir das selektierte Objekt zurück.

Gruß
Bernd

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

[Diese Nachricht wurde von bgrittmann am 20. Nov. 2013 editiert.]

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: 20. Nov. 2013 08: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 Nur für udmmm 10 Unities + Antwort hilfreich

Leider funktioniert das auch nicht.

ich erhalte den gleichen Fehler.

Sonst noch eine Idee?
Von wo könnte der unterschiedliche Name kommen? Ich habe schon nach Profile.23 in meinem Part gesucht, aber nichts gefunden.

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: 20. Nov. 2013 09: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 udmmm 10 Unities + Antwort hilfreich


veroff.JPG

 
ich bin ein Stück weiter gekommen.

Hier meine jetzigen Änderungen.

For z = 1 To VerSelection.Count
            Set VerObject = VerSelection.Item2(z).Value
            VerName = VerObject.Name      'später löschen nur zur Überprüfung
            MsgBox VerName                  'Ausgabe der Überprüfung
           
           
            Dim Product As Object
            Dim Reference As Reference
            Dim publications1 As Publications
            Dim publication1 As Publication
           
            Set Product = Document.Product
           
           
            'Set Reference = Product.CreateReferenceFromName(Product.PartNumber & "/!" & VerName)
            Set Reference = Part.CreateReferenceFromObject(VerSelection.Item2(z).Value)
           
            Set publications1 = Product.Publications
           
            Set publication1 = publications1.Add(VerSelection.Item2(z).Value.Name)
           
            publications1.SetDirect VerSelection.Item2(z).Value.Name, Reference
       
        Next
       
    End If
   
End Sub


In der 4. letzten Zeile erhalten ich folgenden Fehler:

"Class doesn't support Automation or doesn't support expected interface"

Die Veröffentlichung sieht dann folgender Maßen aus (siehe Abbildung)

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