Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Import Smarteam Werte in Catia

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:  Import Smarteam Werte in Catia (2314 mal gelesen)
Manuel90
Mitglied



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

Beiträge: 17
Registriert: 07.10.2015

erstellt am: 11. Aug. 2016 08:38    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 zusammen,
hat jemand eine Lösung via Script parat wie man Werte aus einer Smarteamprofilkarte in Catia Eigenschaften Felder übertragen kann? oder umgekehrt?
Wie man das anstellen könnte stellt mich vor ein Rätsel, ich habe auch nichts hilfreiches im Netz gefunden. Von Catia Scripts habe ich nicht viel Ahnung, lediglich ein wenig Excel VBA habe ich drauf.
Wäre sehr dankbar wenn mir jemand weiterhelfen könnte!

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

RSchulz
Moderator²
Head of CAD, Content & Collaboration / IT-Manager



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

Beiträge: 5541
Registriert: 12.04.2007

@Work
Lenovo P510
Xeon E5-1630v4
64GB DDR4
Quadro P2000
256GB PCIe SSD
512GB SSD
SmarTeam V5-6 R2016 Sp04
CATIA V5-6 R2016 Sp05
E3.Series V2019
Altium Designer/Concord 19
Win 10 Pro x64

erstellt am: 11. Aug. 2016 10: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 Manuel90 10 Unities + Antwort hilfreich

Hallo Manuel,

auf deine konkrete Bitte hin, habe ich dir mal etwas zusammengestellt.

Das Programm aus dem der Code ist, ist für unser Titleblockmakro und daher als Beispiel für den Aufruf eines Datensatzes für die aktive Zeichnung. Voraussetzung hierfür ist, dass die Zeichnung dem SmarTeam bekannt ist (also gesichert) und im Status "ausgecheckt" oder "neu" (also mit schreibzugriff) vorliegt.
Der Code selbst stammt aus Visual Studio (VB.Net) und kann so nicht im VBA verwendet werden. In abgewandelter Form, ist dies allerdings durchaus möglich, wenn nicht ganz so schön.
Als Ressourcen müssen folgende COM-Objekte (DLL´s) angezogen werden.
Draftinginterfaces Object Lib, InfInterfaces Object Lib, SmarTeam Engine Lib, SmarTeam lib, SmarTeam Record List Lib

Ich habe dir, auch wenn es viel erscheint, nur einen "kleinen" Teil aus dem Code zusammen kopiert und soweit abgeändert, dass es passen sollte. Ebenfalls habe ich dir 'Kommentare eingefügt, die dir das näher bringen sollen. Da es Multilingual ist, ist der große Teil nicht wirklich von Wichtigkeit, aber ohne wäre es unvollständig. Das dürfte für andere aber auch noch durchaus interessant sein    . In meinem Programm werden die Parameter an ein Form übergeben. Diese dient dann auch zur weiteren Verarbeitung. Die benannten Datenbankfelder können abweichen! Daher muss du hier vorher prüfen, welche Felder du wirklich auslesen möchtest.

Eine Alternative zu diesem Code ist ein direkter Zugriff auf die Datenbank. Da habe ich auch einige Lösungen, die allerdings eher für Schnittstellen geeignet sind, da der normale Anwender normalerweise keine Zugriffsberechtigungen auf die Datenbank haben dürfte und über die SmarTeam Engine der Service genutzt wird, der wiederum Zugriffsberechtigungen hat.

Code:
Imports DRAFTINGITF
Imports SmApplic
Imports SmarTeam
Imports INFITF

Module Functions

    Private CATIA As Application                      'CATIA-Application / alternativ: As Object
    Private ActiveDrawing As DrawingDocument
    Private DrwShts As DrawingSheets
    Private ActiveDrwSht As DrawingSheet
    Private ActiveDrwView As DrawingView
    Private SmarTeamIntern As SmApplication
    Private SmEngineIntern As ISmEngine
    Private SmSessionIntern As ISmSession
    Private FormLanguage As String = "German"

    Public Function ReadValues_TDM() As Boolean

'''''''''''''''''Für dein Problemfall, ist das hier die Hauptroutine!'''''''''''''''''
'''''' Der Rest ist nur dafür da, dass der Code theoretisch funktioniert würde! ''''''
        '-------------------------------------------------------------------------------
        ' Read Values from SmarTeam Datastore
        '-------------------------------------------------------------------------------

        Dim SmQuery As ISmQuery
        Dim SmQueryDef As ISmQueryDefinition
        Dim WorkObject As ISmObject
        Dim tmpState As String
        Dim tmpArtNrNew As String
        Dim tmpName As String
        Dim tmpProp As String
        Dim RetCode As Boolean

        Try

'initialisiere SmarTeam & CATIA
RetCode = Initialize_System()

'Prüfe ob die Applikationen geöffnet sind. Wenn ja fahre fort...
If Retcode = True then
'Erzeuge neues Query für die Suche
SmQuery = SmSessionIntern.ObjectStore.NewQuery
'Definiert den zu lesenden Datensatz und die Felder innerhalb der Datenbank. Diese sind über die Datenbank in Erfahrung zu bringen!
SmQueryDef = SmQuery.QueryDefinition
'Definiert die Klasse in der gesucht werden soll
SmQueryDef.Roles.Add(SmSessionIntern.MetaInfo.SmClassByName("CATIA Drawing").ClassId, "F")
'Definiert die Suchparameter nach denen der Datensatz definiert wird
SmQueryDef.Where.Add("", "DIRECTORY", "like", ActiveDrawing.Path & "%", False, "F")
SmQueryDef.Where.Add("", "FILE_NAME", "=", ActiveDrawing.Name, False, "F")
SmQueryDef.Where.Add("", "USER_OBJECT_ID", "=", SmSessionIntern.UserMetaInfo.UserId, False, "F")
'Definiert die Felder, die zurück gegeben werden sollen
SmQueryDef.Select.Add("CN_DESCRIPTION", "F", False)
SmQueryDef.Select.Add("CN_ARTICLENUMBER", "F", False)
SmQueryDef.Select.Add("CN_VERSION", "F", False)
SmQueryDef.Select.Add("CN_INDEX", "F", False)
SmQueryDef.Select.Add("CN_ARTIKELNAME", "F", False)
SmQueryDef.Select.Add("CN_ABMESSUNGEN", "F", False)
SmQueryDef.Select.Add("CN_ARTICLENAME", "F", False)
SmQueryDef.Select.Add("CN_PROPERTIES", "F", False)
SmQueryDef.Select.Add("STATE", "F", False)
'Führt die Suche aus
SmQuery.Run()

'Prüfe ob ein Datensatz gefunden wurde. Wenn einer gefunden wurde, fahre fort.
If SmQuery.QueryResult.RecordCount = 1 Then

'Übergibt den Datensatz
WorkObject = SmSessionIntern.ObjectStore.ObjectFromData(SmQuery.QueryResult.GetRecord(0), True)
'Schließt das Query. Wichtig! Alle Querys und Objekte müssen abgeschlossen und beendet werden.
SmQuery.Close()

'übergibt Parameter
tmpState = WorkObject.Value("STATE")
tmpArtNrNew = WorkObject.Value("CN_ARTICLENUMBER")

Msgbox(tmpArtNrNew)
Msgbox(WorkObject.Value("CN_VERSION"))
Msgbox(WorkObject.Value("CN_INDEX"))

tmpName = WorkObject.Value("CN_ARTIKELNAME")
tmpName.Trim()
tmpProp = WorkObject.Value("CN_ABMESSUNGEN")
tmpProp.Trim()
If tmpProp <> "" Then
Msgbox(tmpName.PadRight(25) & tmpProp)
Else
Msgbox(tmpName)
End If

tmpName = WorkObject.Value("CN_ARTICLENAME")
tmpProp = WorkObject.Value("CN_PROPERTIES")
If tmpProp <> "" Then
Msgbox(tmpName.PadRight(25) & tmpProp)
Else
Msgbox(tmpName)
End If

Return True

Else

MsgBox(GetText_Functions("ReadValues_TDM_MSG", FormLanguage), MsgBoxStyle.Information, GetText_Functions("ReadValues_TDM_MSG_Caption", FormLanguage))
Return False

End If
end if

        Catch ex As Exception

            MsgBox(ex.ToString, MsgBoxStyle.Critical, "Error in Modul ReadValues_TDM")
            Application.DoEvents()
            Return False

        End Try

    End Function

    Public Function Initialize_System() As Boolean

        '-------------------------------------------------------------------------------
        ' initialize active Document and Session
        '-------------------------------------------------------------------------------

        Dim i As Integer
        Dim AppCount As Integer

        On Error Resume Next

        'Get Language
        FormLanguage = GetLanguage()

        'Get CATIA-Application
        AppCount = Process.GetProcessesByName("CNEXT").Length
        If AppCount > 1 Then
            MsgBox(GetText_Functions("Initialize_System_MSG01", FormLanguage), MsgBoxStyle.Critical, GetText_Functions("Initialize_System_MSG01_Caption", FormLanguage))
            Return False

        ElseIf AppCount = 0 Then
            MsgBox(GetText_Functions("Initialize_System_MSG02", FormLanguage), MsgBoxStyle.Critical, GetText_Functions("Initialize_System_MSG02_Caption", FormLanguage))
            Return False

        Else
            CATIA = GetObject(, "CATIA.Application")
            If Err.Number <> 0 Then
                MsgBox(GetText_Functions("Initialize_System_MSG03", FormLanguage), MsgBoxStyle.Critical, GetText_Functions("Initialize_System_MSG03_Caption", FormLanguage))
                Err.Number = 9999
                Err.Clear()
                Return False
            End If

        End If

        'Get active Drawing
        ActiveDrawing = CATIA.ActiveDocument
        If Err.Number <> 0 Then
            MsgBox(GetText_Functions("Initialize_System_MSG04", FormLanguage), MsgBoxStyle.Critical, GetText_Functions("Initialize_System_MSG04_Caption", FormLanguage))
            Err.Number = 9999
            Err.Clear()
            Return False
        End If

        'Get Sheets
        DrwShts = ActiveDrawing.Sheets
        If Err.Number <> 0 Then
            MsgBox(GetText_Functions("Initialize_System_MSG05", FormLanguage), MsgBoxStyle.Critical, GetText_Functions("Initialize_System_MSG05_Caption", FormLanguage))
            Err.Number = 9999
            Err.Clear()
            Return False
        End If

        'Get active Sheet
        ActiveDrwSht = DrwShts.ActiveSheet
        ActiveDrwView = ActiveDrwSht.Views.ActiveView
        If Err.Number <> 0 Then
            MsgBox(GetText_Functions("Initialize_System_MSG06", FormLanguage), MsgBoxStyle.Critical, GetText_Functions("Initialize_System_MSG06_Caption", FormLanguage))
            Err.Number = 9999
            Err.Clear()
            Return False
        End If

        'Get SmarTeam-Application
        SmarTeamIntern = GetObject(, "SmarTeam.SmApplication")
        If Err.Number <> 0 Then
            MsgBox(GetText_Functions("Initialize_System_MSG07", FormLanguage), MsgBoxStyle.Information)
            frmMain.cmdActualize.Enabled = False
            TDMActive = False
            Err.Number = 9999
            Err.Clear()
            Return True
        End If

        'Get active SmarTeam Engine
        SmEngineIntern = SmarTeamIntern.Engine
        If Err.Number <> 0 Then
            MsgBox(GetText_Functions("Initialize_System_MSG07", FormLanguage), MsgBoxStyle.Information)
            frmMain.cmdActualize.Enabled = False
            TDMActive = False
            Err.Number = 9999
            Err.Clear()
            Return True
        End If

        'Get active SmarTeam/CATIA-Session
        For i = 0 To SmEngineIntern.SessionsCount - 1
            If SmEngineIntern.Sessions(i).ApplicationName = "CATIA" Then
                SmSessionIntern = SmEngineIntern.Sessions(i)
            End If
        Next
        If Err.Number <> 0 Or IsNothing(SmSessionIntern) Then
            MsgBox(GetText_Functions("Initialize_System_MSG07", FormLanguage), MsgBoxStyle.Information)
            frmMain.cmdActualize.Enabled = False
            TDMActive = False
            Err.Number = 9999
            Err.Clear()
            Return True
        End If

        Err.Clear()
        TDMActive = True
        Return True

    End Function

    Public Function GetText_Functions(ByVal TextName As String, ByVal Language As String) As String

        '-------------------------------------------------------------------------------
        ' language depended texts for Modul Functions
        '-------------------------------------------------------------------------------
        ' Language: German, Else=English
        '-------------------------------------------------------------------------------


        Try
            Select Case TextName
                Case "ReadValues_TDM_MSG"
                    Select Case Language
                        Case "German"
                            Return "Die Zeichnung muss dem Smarteam bekannt und ausgecheckt sein, damit die Daten aus der Datenbank gelesen werden können." & _
                   "Die Felder können nicht aktualisiert werden."""
                        Case Else
                            Return "The Drawing should be known in SmarTeam with state ""checked out"" for getting dataset from SmarTeam for active file."
                    End Select

                Case "ReadValues_TDM_MSG_Caption"
                    Select Case Language
                        Case "German"
                            Return "Die Datei ist nicht ausgecheckt oder dem SmarTeam nicht bekannt..."
                        Case Else
                            Return "The file is not checked out or not known in SmarTeam..."
                    End Select

                Case "Initialize_System_MSG01"
                    Select Case Language
                        Case "German"
                            Return "Es wurden mehrere CATIA Instanzen gefunden." & vbLf & _
                                    "Die Verarbeitung wird abgebrochen."
                        Case Else
                            Return "There are more then one instances of CATIA opened." & vbLf & _
                                    "The processing will be canceled."
                    End Select

                Case "Initialize_System_MSG01_Caption"
                    Select Case Language
                        Case "German"
                            Return "Es darf nur ein CATIA geöffnet sein!"
                        Case Else
                            Return "Only one CATIA should be opened!"
                    End Select

                Case "Initialize_System_MSG02"
                    Select Case Language
                        Case "German"
                            Return "Es ist kein CATIA geöffnet." & vbLf & _
                                    "Die Verarbeitung wird abgebrochen."
                        Case Else
                            Return "There is no CATIA opened." & vbLf & _
                                    "The processing will be canceled."
                    End Select

                Case "Initialize_System_MSG02_Caption"
                    Select Case Language
                        Case "German"
                            Return "CATIA steht nicht zur Verfügung!"
                        Case Else
                            Return "No CATIA available!"
                    End Select

                Case "Initialize_System_MSG03"
                    Select Case Language
                        Case "German"
                            Return "CATIA reagiert nicht." & vbLf & _
                                    "Die Verarbeitung wird abgebrochen."
                        Case Else
                            Return "The Application hangs." & vbLf & _
                                    "The processing will be canceled."

                    End Select

                Case "Initialize_System_MSG03_Caption"
                    Select Case Language
                        Case "German"
                            Return "CATIA steht nicht zur Verfügung!"
                        Case Else
                            Return "No CATIA available!"
                    End Select

                Case "Initialize_System_MSG04"
                    Select Case Language
                        Case "German"
                            Return "Es ist keine Drawing verfügbar. Es muss eine Drawing aktiviert sein." & vbLf & _
                                    "Die Verarbeitung wird abgebrochen."
                        Case Else
                            Return "There is no active drawing document. A CATDrawing should be active." & vbLf & _
                                    "The processing will be cancelt."
                    End Select

                Case "Initialize_System_MSG04_Caption"
                    Select Case Language
                        Case "German"
                            Return "Es steht keine Zeichnung zur Verfügung!"
                        Case Else
                            Return "There is no active drawing document."
                    End Select

                Case "Initialize_System_MSG05"
                    Select Case Language
                        Case "German"
                            Return "Das aktive Dokument enthält keine Zeichnungsblätter." & vbLf & _
                                    "Die Verarbeitung wird abgebrochen."
                        Case Else
                            Return "Active document is not in propper state." & vbLf & _
                                    "The processing will be cancelt."
                    End Select

                Case "Initialize_System_MSG05_Caption"
                    Select Case Language
                        Case "German"
                            Return "Es steht kein Blatt zur Verfügung!"
                        Case Else
                            Return "There are no sheets available!"
                    End Select

                Case "Initialize_System_MSG06"
                    Select Case Language
                        Case "German"
                            Return "Das aktive Dokument enthält keine passenden Blätter." & vbLf & _
                                    "Die Verarbeitung wird abgebrochen."
                        Case Else
                            Return "Active document is not in propper state. No suitable sheet found." & vbLf & _
                                    "The processing will be canceled."
                    End Select

                Case "Initialize_System_MSG06_Caption"
                    Select Case Language
                        Case "German"
                            Return "Das aktive Dokument ist fehlerhaft."
                        Case Else
                            Return "The active document is faulty."
                    End Select

                Case "Initialize_System_MSG07"
                    Select Case Language
                        Case "German"
                            Return "CATIA ist entweder nicht mit SmarTeam verbunden oder SmarTeam ist nicht erreichbar." & vbLf & _
                                    "Die Verarbeitung wird ohne Smarteam fortgeführt. Dabei können die Inhalte des Zeichnungskopfes nur manuell aktualisiert werden."
                        Case Else
                            Return "CATIA is not connected to the SmarTeam-Integration or the Application hangs." & vbLf & _
                                    "The Macro continues without using SmarTeam functionalities . The Data could only be actualized manually."
                    End Select

                Case Else
                    Return "not defined"

            End Select

        Catch ex As Exception

            MsgBox(ex.ToString, MsgBoxStyle.Critical, "Error in Modul GetText_Functions")
            Application.DoEvents()
            Return "error"

        End Try

    End Function

    Public Function GetLanguage() As String

        Dim strLanguage As String

        Try

            strLanguage = GetLanguage_Registry()

            If strLanguage = "none" Then
                strLanguage = GetLanguage_OS()
            End If

            Return strLanguage

        Catch ex As Exception

            MsgBox(ex.ToString, MsgBoxStyle.Critical, "Error in Modul GetLanguage")
            Application.DoEvents()
            Return "English"

        End Try

    End Function

    Public Function GetLanguage_Registry() As String

        Dim strLanguage As String

        Try

            strLanguage = My.Computer.Registry.GetValue("HKEY_CURRENT_USER\Software\CAD\CAD-Macros", "All_Language", "none")

            If strLanguage = "none" Then
                strLanguage = My.Computer.Registry.GetValue("HKEY_CURRENT_USER\Software\CAD\CAD-Macros", "TitleBlock_Language", "none")
            End If

            Return strLanguage

        Catch ex As Exception

            MsgBox(ex.ToString, MsgBoxStyle.Critical, "Error in Modul GetLanguage_Registry")
            Application.DoEvents()
            Return "English"

        End Try

    End Function

    Public Function GetLanguage_OS() As String

        Dim strLanguage As String
        Dim strOSLanguage As String

        Try

            strOSLanguage = System.Globalization.CultureInfo.CurrentCulture.ToString
            If strOSLanguage = "de-DE" Then
                strLanguage = "German"
            Else
                strLanguage = "English"
            End If

            Return strLanguage

        Catch ex As Exception

            MsgBox(ex.ToString, MsgBoxStyle.Critical, "Error in Modul GetLanguage_OS")
            Application.DoEvents()
            Return "English"

        End Try

    End Function

End Module


------------------
MFG
Rick Schulz

Nettiquette (CAD.de)  -  Was ist die Systeminfo?  -  Wie man Fragen richtig stellt.  -  Unities

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

RSchulz
Moderator²
Head of CAD, Content & Collaboration / IT-Manager



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

Beiträge: 5541
Registriert: 12.04.2007

@Work
Lenovo P510
Xeon E5-1630v4
64GB DDR4
Quadro P2000
256GB PCIe SSD
512GB SSD
SmarTeam V5-6 R2016 Sp04
CATIA V5-6 R2016 Sp05
E3.Series V2019
Altium Designer/Concord 19
Win 10 Pro x64

erstellt am: 11. Aug. 2016 10: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 Manuel90 10 Unities + Antwort hilfreich

Eine Frage habe ich allerdings noch... Was genau hast du denn vor?

Die Frage ist, ob du nicht mit einem SmarTeam Script arbeiten kannst. Hier gibt es über die SmarTeam Script maintenance(Admin Tools) Möglichkeiten zum Beispiel nach dem öffnen ein SmarTeam Script auszuführen, welches die Parameter überträgt. Via SmarTeam "read properties" und "save properties" lässt sich im Übrigen dieses ganze Vorhaben auch realisieren. Dabei können auch Startcommands verwendet werden.

Je nach dem, was du machen möchtest, könnte es daher deutlich einfacher gehen!

------------------
MFG
Rick Schulz

Nettiquette (CAD.de)  -  Was ist die Systeminfo?  -  Wie man Fragen richtig stellt.  -  Unities

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

Manuel90
Mitglied



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

Beiträge: 17
Registriert: 07.10.2015

erstellt am: 11. Aug. 2016 14:54    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 Rick!

Vielen Dank für deine Mühe und den Code, dieser übersteigt mein Verständnis aber leider um Welten. Wenn du das wirklich selber gebaut hast alle Achtung… das muss man erst mal können!
Ich hab es mal durchgeforstet und ich denke es liegt noch ein Grundlegendes Missverständniss vor. Der Code scheint ja Daten aus Smarteam in Catia DRAWINGs zu übertragen. Eine solche Funktion haben wir bereits die zu 99% funzt.
Mein Anliegen betrifft PARTS. Z.b brauche ich den Bauteilnamen welcher in Smarteam momentan eingetragen wird auch in Catia. Für Stücklisten auf den Drawings etc. Das Problem ist das das Feld „Beschreibung“ in der Smarteam profilkarte aktuell für jedes Teil manuell in das Feld „Beschreibung“ in der Eigenschaftenkarte von Catia von einem Part übertragen werden muss.
Welche Nachteile ein solch totes System bringt denke ich muss man nicht diskutieren.
Aber ob ich nun den Namen in Smarteam eintrage und automatisch in das enstprechende part übertragen wird oder umgekehrt wäre mir aber egal.
Kannst du mir soweit folgen worauf ich hinaus möchte?
Theoretisch kann das ja nicht so schwierig sein… Feld A von Smarteam in Feld A von Catia übertragen.
Aber vermutlich braucht man dafür wirklich ein Script mit hunderten Zeilen.
Die Welt erscheint manchmal so einfach für jemand der keine Ahnung hat davon 

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: 11. Aug. 2016 15:25    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 Manuel90 10 Unities + Antwort hilfreich

Servus
Kann das nicht schon SmarTeam direkt ohne Makro? Gemäß Doku könnte dies schon über das Mapping gehen.

Gruß
Bernd

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

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

RSchulz
Moderator²
Head of CAD, Content & Collaboration / IT-Manager



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

Beiträge: 5541
Registriert: 12.04.2007

@Work
Lenovo P510
Xeon E5-1630v4
64GB DDR4
Quadro P2000
256GB PCIe SSD
512GB SSD
SmarTeam V5-6 R2016 Sp04
CATIA V5-6 R2016 Sp05
E3.Series V2019
Altium Designer/Concord 19
Win 10 Pro x64

erstellt am: 11. Aug. 2016 15: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 Manuel90 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von bgrittmann:
Servus
Kann das nicht schon SmarTeam direkt ohne Makro? Gemäß Doku könnte dies schon über das Mapping gehen.

Gruß
Bernd


Richtig 

------------------
MFG
Rick Schulz

Nettiquette (CAD.de)  -  Was ist die Systeminfo?  -  Wie man Fragen richtig stellt.  -  Unities

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

Manuel90
Mitglied



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

Beiträge: 17
Registriert: 07.10.2015

erstellt am: 12. Aug. 2016 07: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

Das habe ich hinbekommen! Wusste nicht das das überhaupt existiert!
Nun zum nächsten Problem, das scheint ja nur zu funktionieren wenn ich bei einem aktiven part den Befehl "von Datenbank laden" auführe.
Wenn ich eine Baugruppe mit sagen wir 200 Teilen habe wäre das natürlich nicht sinnvoll. Geht das auch „global“??
Und außerdem wie bekomme ich das Feld mit dem Bauteilnamen dann in das Feld Produktbeschreibung des Parts? Hier sind ja keine Formeln zulässig? Ziel sollte sein das der Name des Teils automatisch im Strukturbaum steht.
Akutuell wird dies eben über das Feld Produktbeschreibung gemacht.

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

Manuel90
Mitglied



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

Beiträge: 17
Registriert: 07.10.2015

erstellt am: 12. Aug. 2016 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

Also ich wäre wirklich dankbar wenn mir jeamden zeigen könnte wie man das dann automatisiert:
- Entsprechende Parameter automatisch anlegen wie „Beschreibung“ „Hersteller“
Am Besten nur in bestimmen Bauteilklassen „Normteil“ oder „Fertigungsteil“
- Eigenschaften von Smarteam profilkarte auslesen und in parameter schreiben (erledigt)
- Parameter automatisch in Eigenschaften karte von Catia übertragen um im Strukturbaum Stücklisten etc. angezeigt zu werden
z.b Parameter „Beschreibung“ in Eingenschaftenfeld „Beschreibung“ bei Parts einfügen

Ist das schwierig?

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

RSchulz
Moderator²
Head of CAD, Content & Collaboration / IT-Manager



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

Beiträge: 5541
Registriert: 12.04.2007

@Work
Lenovo P510
Xeon E5-1630v4
64GB DDR4
Quadro P2000
256GB PCIe SSD
512GB SSD
SmarTeam V5-6 R2016 Sp04
CATIA V5-6 R2016 Sp05
E3.Series V2019
Altium Designer/Concord 19
Win 10 Pro x64

erstellt am: 12. Aug. 2016 09: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 Manuel90 10 Unities + Antwort hilfreich

Nein ist es eigentlich nicht  Wenn man weiß wie.

Also du musst erstmal Parameter definieren. Dann muss du diese mappen. ...und letztendlich musst du dir Templates erstellen für Part, Produkt und Drawing. In diese fügst du dann entsprechend die Parameter, die du per Mapping überträgst ein. SmarTeam überträgt die Daten dann eigentlich mit jedem Laden!

Wir arbeiten für die Erstellung neuer Teile mit einem Makro. Das ist nicht wirklich komplex. Dazu lässt sich einiges auch googlen auch als normales VBScript\VBA. Die Templatevorlagen von CATIA lassen sich zwar ändern, werden im CATIA aber nicht via Datei > Neu angezogen!

Wobei das nur der Aufruf der Datei\des Templates, ein Speichern entsprechend der definierten Namenskonvention\Ablage und ein eventuelles Füllen der Daten ist.

------------------
MFG
Rick Schulz

Nettiquette (CAD.de)  -  Was ist die Systeminfo?  -  Wie man Fragen richtig stellt.  -  Unities

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

Manuel90
Mitglied



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

Beiträge: 17
Registriert: 07.10.2015

erstellt am: 12. Aug. 2016 10: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

Ok, das kann ich mir erst einmal vorstellen wie man das angeht, mit viel viel Zeit...
Aber wie bekommen ich die Werte aus den Parametern in die Eigenschaften des Bauteils??
Das muss doch ein simples Script sein. Als Benuterdefinierte Eigenschaftne von mir aus auch.
Ich bräuchte diese Parameter zum einen als Sichtbaren Namen im Strukturbaum und zum verwenden im BOMs.

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: 12. Aug. 2016 10: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 Manuel90 10 Unities + Antwort hilfreich

Servus Manuel
Such mal in der Doku nach "UserRefProperties". Da findest du Codeschnipsel wie du auf diese zugreifst/anlegst und änderst.
Simpel ist das Script nur, wenn man sich mit den Objekten auskennt.

Gruß
Bernd

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

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

RSchulz
Moderator²
Head of CAD, Content & Collaboration / IT-Manager



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

Beiträge: 5541
Registriert: 12.04.2007

@Work
Lenovo P510
Xeon E5-1630v4
64GB DDR4
Quadro P2000
256GB PCIe SSD
512GB SSD
SmarTeam V5-6 R2016 Sp04
CATIA V5-6 R2016 Sp05
E3.Series V2019
Altium Designer/Concord 19
Win 10 Pro x64

erstellt am: 12. Aug. 2016 10: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 Nur für Manuel90 10 Unities + Antwort hilfreich

Hier mal ein Beispiel zum Erzeugen von Parametern in Parts und Produkten via VBA:
Code:

Sub CATMain()

    Dim MyDocument        As Document
    Set MyDocument = CATIA.ActiveDocument
   
    Dim MyParameters      As Parameters
   
    On Error Resume Next
    Set MyParameters = MyDocument.Parameters
   
    If Err.Number <> 0 Then
        Dim MyPart As Object
        Set MyPart = MyDocument.GetItem(1)
        If Err.Number <> 0 Then Set MyPart = MyDocument.Product
        Set MyParameters = MyPart.UserRefProperties
    End If
   
    On Error GoTo 0
    Dim MyStrParam        As strParam
    Set MyStrParam = MyParameters.CreateString("Benennung", "")
    Set MyStrParam = MyParameters.CreateString("Part_Description", "")
    Set MyStrParam = MyParameters.CreateString("Artikelnummer", "")
    Set MyStrParam = MyParameters.CreateString("Version", "")
    Set MyStrParam = MyParameters.CreateString("Artikelname", "")
    Set MyStrParam = MyParameters.CreateString("Abmessungen", "")
    Set MyStrParam = MyParameters.CreateString("Articlename", "")
    Set MyStrParam = MyParameters.CreateString("Characteristics", "")
    Set MyStrParam = MyParameters.CreateString("Autor", "")
End Sub


...und hier ein Beispiel zum Füllen.

Code:

Sub CATMain()

    Dim oDocument As Document
    Dim oProduct As Product
    Dim oParams As Parameters
    Dim strParam As strParam
    Dim DocObj As String
 
    Set oDocument = CATIA.ActiveDocument

    'Parameter für Product oder Part füllen
    If Not InStr(1, oDocument.Name, "CATDrawing") Then
        Set oProduct = oDocument.Product
        Set oParams = oProduct.UserRefProperties

        Set strParam = oParams.GetItem("Benennung")
        strParam.Value = "Auto"

        Set strParam = oParams.GetItem("Part_Description")
        strParam.Value = "Ich bin ein Auto"

        Set strParam = oParams.GetItem("Artikelnummer")
        strParam.Value = "0815"

        Set strParam = oParams.GetItem("Version")
        strParam.Value = "3"

        Set strParam = oParams.GetItem("Artikelname")
        strParam.Value = "Auto von mir"

        Set strParam = oParams.GetItem("Abmessungen")
        strParam.Value = "5m"

        Set strParam = oParams.GetItem("Articlename")
        strParam.Value = "My Car"

        Set strParam = oParams.GetItem("Characteristics")
        strParam.Value = "5 m"

        Set strParam = oParams.GetItem("Autor")
        strParam.Value = "Peter"
    Else
        'Parameter für Zeichnung füllen
        oDocument.Parameters.Item("Benennung").Value = "Auto DRW"
        oDocument.Parameters.Item("Part_Description").Value = "Ich bin ein Auto DRW"
        oDocument.Parameters.Item("Artikelnummer").Value = "0815"
        oDocument.Parameters.Item("Version").Value = "2"
        oDocument.Parameters.Item("Artikelname").Value = "usw"
        oDocument.Parameters.Item("Abmessungen").Value = "usw"
        oDocument.Parameters.Item("Articlename").Value = "etc"
        oDocument.Parameters.Item("Characteristics").Value = "etc"
        oDocument.Parameters.Item("Autor").Value = "Manfred"
    End If
End Sub


------------------
MFG
Rick Schulz

Nettiquette (CAD.de)  -  Was ist die Systeminfo?  -  Wie man Fragen richtig stellt.  -  Unities

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

Manuel90
Mitglied



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

Beiträge: 17
Registriert: 07.10.2015

erstellt am: 12. Aug. 2016 14: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


Unbenannt.JPG

 
Hallo Rick!
Besten Dank für die Codes, sehen nicht soo tragisch aus. denke ich kann mich da etwas einarbeiten.
Hätte den ersten zum erstellen der Parameter getestet und erhalte folgende Meldung bei einem neuen, leeren Part.
Siehe Anhang!
Habe ich etwas falsch gemacht??

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: 12. Aug. 2016 14: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 Manuel90 10 Unities + Antwort hilfreich

Servus
Das ist ein Code für CATScript oder VBA.
Also nicht als CATvbs abspeichern.

Gruß
Bernd

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

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

joehz
Moderator
Freiberuflicher Konstrukteur


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

Beiträge: 1057
Registriert: 25.11.2006

Win7 Pro 64 + Ubuntu + Irix6.5.20
Dell Precision M6600 i7-2960XM 2.7GHz 16GB
NVidia Quadro M5010
Catia V5R19
VB6Pro.SP6/VBA 6.5.1053

erstellt am: 12. Aug. 2016 14: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 Manuel90 10 Unities + Antwort hilfreich

Hi Manuel,

Zitat:
Beispiel zum Erzeugen von Parametern in Parts und Produkten via VBA

wie der Rick schon schreibt, ist das ein VBA-Makro; nicht vbs!

Tschau,
Joe

------------------
Inoffizielle Catia Hilfeseite

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

Manuel90
Mitglied



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

Beiträge: 17
Registriert: 07.10.2015

erstellt am: 17. Aug. 2016 15: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

Also kleines Update!
Ich habs hinbekommen das Feld Beschreibung in das Feld Beschreibung in Catia zu mappen.
Endlich...
Das Makro zum erstellen der Properties klappt auch.
Nur das Makro zum Füllen der Properties mit Parametern haut mir nicht hin... 
Wie bekomme ich "parameter a" in "Propertie a" usw...
Muss doch simpel sein^^
Außerdem 2 kleine Makros für die BOMs die uns gute Arbeit abnehmen könnten habe ich geschafft.
Ihr würdet wohl schmunzeln über diese 10 Zeiler, aber ich bin stolz darauf.
Jezt wäre noch die Frage, kann man ein sehr einfaches Makro erstellen um bei allen Teilen, Produkten etc im aktiven Dokument die Funktion "Von Datenbank laden" auszuführen?
Das macht es ja leider immer nuf für das aktuelle Dokument.

Und vielen vielen Dank für die Hilfe!

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: 17. Aug. 2016 16: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 Manuel90 10 Unities + Antwort hilfreich

Servus
Was meinst du mit
Zitat:
Wie bekomme ich "parameter a" in "Propertie a" usw...
Wie man einen Parameter wieder anspricht und einen Wert zuweist steht in Ricks Beispiel.

Gruß
Bernd

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

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

Manuel90
Mitglied



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

Beiträge: 17
Registriert: 07.10.2015

erstellt am: 18. Aug. 2016 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

Ich kann dem Script leider nicht ganz folgen, ich habe nie irgendeine Programiersprache gelernt, das ganze ist ziemlich harte Kost für mich bisher.
Aber mit dem Script zum erstellen komme ich klar. Es erstellt mir die Userproperties die ich brauche und kann das auch sehr ienfach anpassen, besten Dank.
Mit dem Mapping bekomme ich die Werte aus Smarteam rein und umgekehrt. Das klappt mittlerweile ganz gut! Wunderbare Sache!
Jezt wäre die frage wie ich in das Script zum erstellen mehrere Werte für eine Propertie festlegen kann.
Der Block dazu müsste ja vom Prinzip her folgendermaßen aussehen:

Dim arrayOfVariantOfBSTR1(2)
arrayOfVariantOfBSTR1(0) = "1"
arrayOfVariantOfBSTR1(1) = "2"
arrayOfVariantOfBSTR1(2) = "3"
strParam2.SetEnumerateValues arrayOfVariantOfBSTR1

aber ich kriege nicht raus wie ich das z.b zu der Zeile:

Set MyStrParam = MyParameters.CreateString("Abmessungen", "")

aus dem andern Script kriege

kann mir das jemand evtl kurz zeigen? ist doch für euch wohl eine sache von einer minute
ich spiel mich seit über 2h damit jezt...

wir haben zb. eine Propertie die "Oberfläche" heißt.
und da sollte  eine Liste zur Auswahl stehen.

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: 18. Aug. 2016 08:53    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 Manuel90 10 Unities + Antwort hilfreich

Hallo,

ich bin mir nicht ganz sicher, aber ich denke hier:
findest du was du suchst.

Ich meine diesen Teil hier:

Dim MyArray(4)
MyArray(0) = "A2"
MyArray(1) = "A4"
MyArray(2) = "8.8"
MyArray(3) = "10.9"
MyArray(4) = "12.9"

Dim strParam1 As Object 'StrParam ist restricted im CATVBA
Set strParam1 = parameters1.CreateString("Material", "")
strParam1.SetEnumerateValues MyArray()

Auf dein Beispiel müsste das hier gehen:
MyStrParam.SetEnumerateValues arrayOfVariantOfBSTR1()

Gruß
Randle

[Diese Nachricht wurde von Randle am 18. Aug. 2016 editiert.]

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

Manuel90
Mitglied



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

Beiträge: 17
Registriert: 07.10.2015

erstellt am: 18. Aug. 2016 10: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

Vielen Dank für den Link, ja genau das suche ich oder vielmehr will ich erreichen!
Ich kriegs aber nicht hin das in mein skript zu bekommen...
wie gesagt, ich kann eigentlich nicht programmieren

wie bekomme ich das mit dem array hier rein:

Sub CATMain()

    Dim MyDocument        As Document
    Set MyDocument = CATIA.ActiveDocument
 
    Dim MyParameters      As Parameters
 
    On Error Resume Next
    Set MyParameters = MyDocument.Parameters
 
    If Err.Number <> 0 Then
        Dim MyPart As Object
        Set MyPart = MyDocument.GetItem(1)
        If Err.Number <> 0 Then Set MyPart = MyDocument.Product
        Set MyParameters = MyPart.UserRefProperties
    End If
 
    On Error GoTo 0
    Dim MyStrParam        As strParam
    Set MyStrParam = MyParameters.CreateString("Benennung", "")
    Set MyStrParam = MyParameters.CreateString("Artikelnummer", "")
    Set MyStrParam = MyParameters.CreateString("Version", "")
    Set MyStrParam = MyParameters.CreateString("Artikelname", "")
    Set MyStrParam = MyParameters.CreateString("Abmessungen", "")
    Set MyStrParam = MyParameters.CreateString("Articlename", "")
    Set MyStrParam = MyParameters.CreateString("Characteristics", "")
    Set MyStrParam = MyParameters.CreateString("Autor", "")

End Sub

zb. für den String "Abmessungen", wie kann ich hir das integrieren??
ich hab davon zu wenig Ahnung... aber genau das bräuchte ich noch

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: 18. Aug. 2016 10:47    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 Manuel90 10 Unities + Antwort hilfreich

Hallo,

kurz und schmutzig (ungetestet) sollte es so gehen.

Sub CATMain()

    Dim MyDocument        As Document
    Set MyDocument = CATIA.ActiveDocument
 
    Dim MyParameters      As Parameters
 
    On Error Resume Next
    Set MyParameters = MyDocument.Parameters
 
    If Err.Number <> 0 Then
        Dim MyPart As Object
        Set MyPart = MyDocument.GetItem(1)
        If Err.Number <> 0 Then Set MyPart = MyDocument.Product
        Set MyParameters = MyPart.UserRefProperties
    End If
 
    On Error GoTo 0
    Dim MyStrParam        As strParam
    Set MyStrParam = MyParameters.CreateString("Benennung", "")
    Set MyStrParam = MyParameters.CreateString("Artikelnummer", "")
    Set MyStrParam = MyParameters.CreateString("Version", "")
    Set MyStrParam = MyParameters.CreateString("Artikelname", "")
    Set MyStrParam = MyParameters.CreateString("Abmessungen", "")
    'Edit by randle
    Dim arrayOfVariantOfBSTR1(2)
    arrayOfVariantOfBSTR1(0) = "1"
    arrayOfVariantOfBSTR1(1) = "2"
    arrayOfVariantOfBSTR1(2) = "3"
    MyStrParam.SetEnumerateValues arrayOfVariantOfBSTR1
    'End edit

    Set MyStrParam = MyParameters.CreateString("Articlename", "")
    Set MyStrParam = MyParameters.CreateString("Characteristics", "")
    Set MyStrParam = MyParameters.CreateString("Autor", "")

End Sub

Gruß
Randle

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

Manuel90
Mitglied



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

Beiträge: 17
Registriert: 07.10.2015

erstellt am: 18. Aug. 2016 11: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 Randle!

ums kurz zu sagen, Geiler Sch...
Klappt wunderbar! Das ganze für mehrere Werte zu dublizieren habe ich geschafft!
Ich sage herzlichen Dank und trink nen Kaffee auf dich und die anderen die geholfen haben natürlich auch!
Jezt das ganze in 2 Wochen dem eigentlichen Admin vorstellen wenn er wieder da ist, denn dieser kümmert sich leider nicht so sehr um solche dinge.

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

Manuel90
Mitglied



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

Beiträge: 17
Registriert: 07.10.2015

erstellt am: 18. Aug. 2016 11:44    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

EINE Frage noch....
wie kann ich einen Wert festlegen der Standarmäßit in den Strings steht?

z.b bei verstion sollte immer "0.0"? Kann ja nur eine Zeile sein^^
bei etwas anderm etwas anders usw...

Sub CATMain()

    Dim MyDocument        As Document
    Set MyDocument = CATIA.ActiveDocument

    Dim MyParameters      As Parameters

    On Error Resume Next
    Set MyParameters = MyDocument.Parameters

    If Err.Number <> 0 Then
        Dim MyPart As Object
        Set MyPart = MyDocument.GetItem(1)
        If Err.Number <> 0 Then Set MyPart = MyDocument.Product
        Set MyParameters = MyPart.UserRefProperties
    End If

    On Error GoTo 0
    Dim MyStrParam        As strParam
    Set MyStrParam = MyParameters.CreateString("Benennung", "")
    Set MyStrParam = MyParameters.CreateString("Artikelnummer", "")
    Set MyStrParam = MyParameters.CreateString("Version", "")
    Set MyStrParam = MyParameters.CreateString("Artikelname", "")
    Set MyStrParam = MyParameters.CreateString("Abmessungen", "")
    'Edit by randle
    Dim arrayOfVariantOfBSTR1(2)
    arrayOfVariantOfBSTR1(0) = "1"
    arrayOfVariantOfBSTR1(1) = "2"
    arrayOfVariantOfBSTR1(2) = "3"
    MyStrParam.SetEnumerateValues arrayOfVariantOfBSTR1
    'End edit

    Set MyStrParam = MyParameters.CreateString("Articlename", "")
    Set MyStrParam = MyParameters.CreateString("Characteristics", "")
    Set MyStrParam = MyParameters.CreateString("Autor", "")

End Sub

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: 18. Aug. 2016 11:54    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 Manuel90 10 Unities + Antwort hilfreich

Hallo,

MyStrParam.ValueAsString "1"

oder

MyStrParam.ValueAsString arrayOfVariantOfBSTR1(0)

Gruß
Randle

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

Manuel90
Mitglied



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

Beiträge: 17
Registriert: 07.10.2015

erstellt am: 18. Aug. 2016 16: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

Ich krieg nich mal das in mein makro rein... puh..
ich sollte wirklich mal ne schulung kriegen^^

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: 18. Aug. 2016 17: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 Nur für Manuel90 10 Unities + Antwort hilfreich

Servus
Wenn das dein ganzer Code ist, wie wäre nach der Zeile mit dem SetEnumerateValues.
Obwohl du später das Makro aufbohren musst: sind die Parameter schon vorhanden, wenn nicht Parameter erst anlegen und danach mit dem Wert füllen.

Gruß
Bernd

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

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

Manuel90
Mitglied



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

Beiträge: 17
Registriert: 07.10.2015

erstellt am: 19. Aug. 2016 08: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

Das ist wohl zu hoch für mich... sorry, funzt nicht wirklich.
Erschwerend kommt dazu das ich den Visual Basic Editor nicht starten kann. der ist steths ausgegraut.
Ich kann nur in dem makro fenster rumtippen was durchaus schwieriger erscheint, selbst wenn man keine Ahnung hat^^

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