Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Parameter von der Oberbaugruppe

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:  Parameter von der Oberbaugruppe (988 / mal gelesen)
Windninja
Mitglied
Konstrukteur


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

Beiträge: 25
Registriert: 06.02.2015

Catia V5 R24
Service Pack 4
Hot Fix 33

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


Formeln_00_Oberbaugruppe.png

 
Hallo,
Ich habe ein kleines Problem mit ein Makro von mir das bei großen Baugruppen immer langsamer wird und manchmal auch ein Fehler ausgibt.
Das Problem ist der Teil der mir Parameter aus der Obersten Baugruppe auslesen soll.
Mein Code durchsucht aber scheinbar alle vorhandenen Parameter und nicht nur die von der Obersten Baugruppe. Daher kommt es auch vor, wenn der Parametername nochmal in einer Unterbaugruppe vorkommt, dass der Wert der Unterbaugruppe ausgegeben wird. Es scheint der erste Parameter genommen zu werden der den Namen aufweist.

Bild: Bei NrModul wird 1 ausgegeben ich möchte aber 0 haben.
Wie muss ich mein Code abändern das nur die Oberbaugruppenparameter durchsucht werden?

Sub CATMain()
Set productDocument1 = CATIA.ActiveDocument
Set product1 = productDocument1.Product
Set parameters1 = product1.Parameters

Set strParam1 = parameters1.Item("TV_Nr")
Name_TV = strParam1.ValueAsString
Set strParam2 = parameters1.Item("NrModul")
Nummer_Modul = strParam2.Value

MsgBox Name_TV & vbCrLf & Nummer_Modul
End Sub

Gruß Windninja

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: 02. Aug. 2016 14:51    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 Windninja 10 Unities + Antwort hilfreich

Hallo,

versuche es mal so:

Sub CATMain()
Set productDocument1 = CATIA.ActiveDocument
Set product1 = productDocument1.Product
Set parameters1 = product1.Parameters.RootParameterSet.DirectParameters

Set strParam1 = parameters1.Item("TV_Nr")
Name_TV = strParam1.ValueAsString
Set strParam2 = parameters1.Item("NrModul")
Nummer_Modul = strParam2.Value

MsgBox Name_TV & vbCrLf & Nummer_Modul
End Sub

Gruß
Randle

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

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: 02. Aug. 2016 15:07    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 Windninja 10 Unities + Antwort hilfreich

Hi Ninja,

wie der Marcus schon zeigt, musst die/den Parameter genauer angeben.
Die nachfolgende Routine listet zuerst die zwei Produkt-Parameter aus,
danach alle(wie von Dir ursprünglich vorgegeben).
Den Code hab ich aus einem anderen Makro kannibalisiert; deswegen der 'Select Case'.
Zu beachten ist, dass bei der zweiten Variante NrModul und TV_Nr zweimal vorkommen.

Code:

Sub CATMain()

Dim oAD As Document                          'active doc
  Dim oDrawSourcePS As ParameterSet
  Dim oDrVw As DrawingView
  Dim strPSName As String                      'parameter set name
  Dim oRootPS As ParameterSet                  'root parameterset
  Dim oAllPSs As Parameters                    'all parameters root
  Dim strParmName As String                    'parameter bezeichnung
  Dim oParent As Object                        'part, product or drawing
  Dim n As Integer
  Dim oPSsDummy As Parameters
 
  Set oAD = CATIA.ActiveDocument
  CATIA.Windows.Arrange catArrangeTiledVertical
 
  Select Case TypeName(oAD)
      Case "DrawingDocument"              'drawing
        Set oRootPS = oAD.Parameters.RootParameterSet
        Set oAllPSs = oAD.Parameters
        If oAD.Sheets.ActiveSheet.IsDetail = False Then
            If oAD.Sheets.ActiveSheet.Views.Count > 2 Then                '3. view is linked to product
              Set oDrVw = oAD.Sheets.ActiveSheet.Views.Item(3)
              Set oDrawSourcePS = oDrVw.GenerativeBehavior.Document.Parent.Product.Parameters.RootParameterSet
            End If
        Else
            MsgBox "Switch to drawing sheet"
        End If
    '    Set oParent = oAD
      Case "PartDocument"                'single part
        Set oRootPS = oAD.Part.Parameters.RootParameterSet
        Set oAllPSs = oAD.Part.Parameters
        Set oParent = oAD.Part
    '    Set oPubParent = oAD.Part.Parent.Product
      Case "ProductDocument"              'assy
        Set oRootPS = oAD.Product.Parameters.RootParameterSet
        Set oAllPSs = oAD.Product.Parameters
        Set oParent = oAD.Product
  '      Set oPubParent = oAD.Product
  End Select
 
  Set oPSsDummy = oRootPS.DirectParameters
  For n = 1 To oPSsDummy.Count
      Debug.Print oPSsDummy.Item(n).Name, oPSsDummy.Item(n).ValueAsString
  Next
 
  Set oPSsDummy = oAllPSs
  For n = 1 To oPSsDummy.Count
      Debug.Print oPSsDummy.Item(n).Name, oPSsDummy.Item(n).ValueAsString
  Next
 
End Sub


Tschau,
Joe

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

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

Windninja
Mitglied
Konstrukteur


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

Beiträge: 25
Registriert: 06.02.2015

Catia V5 R24
Service Pack 4
Hot Fix 33

erstellt am: 02. Aug. 2016 15:09    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 Randle, genau so wollte ich das.

Gruß Windninja

[Diese Nachricht wurde von Windninja am 02. Aug. 2016 editiert.]

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

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz