Tech-Ecke / CATScript/VBS Inhalt / Parameter und Relations

 

Parameter und Relations

Seiteninhalt:  
  Erzeugen von Parameter
     Parameter mit Auswahlliste (Multiple Value)
  Auslesen und Ändern von Parametern
  Löschen von Parametern
  Verstecken und Sperren von Parametern (hide/lock)
  Parameter Sets
  Parameter in Product Properties
  Erzeugen von Relations (Formeln)


 

   Erzeugen von Parameter:

Wenn man das Konstruieren mit Catia als Programmieren sehen würde, so können Parameter als Variable betrachtet werden und das Erzeugen eines Parameters stände dem Deklarieren der Variable gleich. Beim Erzeugen muss also auch der Typ festgelegt werden.

  Sub CATMain()

set oParameters = CATIA.ActiveDocument.Part.Parameters
set
NeuerParamText = oParameters.CreateString("TextParameter", "Zeichenkette")   ' Parameter vom Typ String
set NeuerParamZahl = oParameters.CreateReal("ZahlParameter", 0.0)   ' Parameter vom Typ Zahl
set NeuerParamBool = oParameters.CreateBoolean("BoolParameter", true)   ' Parameter vom Typ Boolean

End Sub
 

Hinweis:
Bei Drawings liegen die Parameter direkt im Objekt ActiveDocument, also: set oParameters = CATIA.ActiveDocument.Parameters



Parameter mit Auswahlliste - Multiple Value - LOV (List Of Values)

Zunächst wird der Parameter wie oben gezeigt erzeugt. Dann benötigt man ein Array mit den einzelnen Werten, welches dem Parameter dann mittels .SetEnumerateValues zugewiesen wird. Das Auslesen erfolgt wie bei einem normalen Parameter per ".Value".

  Sub CATMain()

set oParameters = CATIA.ActiveDocument.Part.Parameters
set oParam = oParameters.CreateString
("MeinParameter", "")

sValueList = split("Erster Wert;zweiter Wert;dritter Wert", ";")   ' Array mit Werten erzeugen
oParam.SetEnumerateValues sValueList    ' Array derm Parameter zuweisen
oParam.Value = sValueList
(0)   ' den ersten Wert auswählen

End Sub
 


Weitere Parameter Typen:

Mit der Methode .CreateDimension können Zahlen-Parameter mit technischen Einheiten erzeugt werden.

  Sub CATMain()

set oParameters = CATIA.ActiveDocument.Part.Parameters
set NeuerParameter1 = oParameters.CreateDimension("Parameter", "LENGTH", 0.0)    ' vom Typ Länge

End Sub
 

Weitere Typen sind z.B. "DENSITY", "MASS", "AREA"...
Welche Typen möglich sind, kann beim manuellen Erzeugen eines Parameters in Erfahrung gebracht werden.
Bei Drawings liegen die Parameter direkt im Objekt ActiveDocument, also: set oParameters = CATIA.ActiveDocument.Parameters


 

   Auslesen und Ändern von Parameter:

An den Parameter kommt man z.B. über  .Selection.Search (siehe hier) oder man spricht ihn über die Klasse direkt an.

Auslesen und Ändern:

  Sub CATMain()

set oParameters = CATIA.ActiveDocument.Part.Parameters ' bzw. CATIA.ActiveDocument.Product.Parameters bei Products
set
oParameter = oParameters.Item("TextParameter")

MsgBox oParameter.Value  ' Ausgabe des Parameters "TextParameter"

oParameter.Value  = "Neuer Text"   ' Ändern des Parametertextes in "Neuer Text"

End Sub
 

Bei Drawings liegen die Parameter direkt im Objekt ActiveDocument, also: set oParameters = CATIA.ActiveDocument.Parameters


 

   Löschen von Parametern:

Das Löschen eines Parameters erfolgt, wie auch bei anderen Objekten über eine Selection.

  Sub CATMain()

set Selektion = CATIA.ActiveDocument.Selection
Selektion.Clear

set Bauteil = CATIA.ActiveDocument.Part
set TextParameter = Bauteil.Parameters.Item("TextParameter")
Selektion.Add TextParameter

Selektion.Delete

End Sub
 

Bei Drawings liegen die Parameter direkt im Objekt ActiveDocument, also: set Bauteil = CATIA.ActiveDocument


 

   Sperren und Verstecken von Parametern (lock):

Für Parameter zu sperren, gibt es keinen Makrobefehl, jedoch lässt sich das ganze über StartCommand erledigen. Hierzu eine kleine Sub:

  Sub LockParam(Bauteil,ParameterToLock,Lock)

set Sel = CATIA.ActiveDocument.Selection
Sel.Clear
Sel.Add ParameterToLock

if lock then
   CATIA.StartCommand ("Lock") ' sperren
   ParameterToLock.Hidden = true ' verstecken
else
   CATIA.StartCommand ("Unlock") ' sperren
   ParameterToLock.Hidden = false ' verstecken
end if

Sel.Clear

End Sub
 

Aufruf der Sub:

Das Aktive Dokument muss ein Part sein und den Parameter Real.1 besitzen.

  Sub CATMain()

set Bauteil = CATIA.ActiveDocument.Part.Parameters
set oParameters = Bauteil.Parameters
set ParameterToLock = oParameters.Item("Part1\Real.1")
Lock = false

call LockParam(Bauteil,ParameterToLock,Lock)

End Sub
 

Bei Drawings liegen die Parameter direkt im Objekt ActiveDocument, also: set oParameters = CATIA.ActiveDocument.Parameters


   Parameter Sets:

Erzeugen einer Untergruppe (Parameter Set)

  Sub CATMain()

' Untergruppe erzeugen
set ParamGruppen = CATIA.ActiveDocument.Part.Parameters.RootParameterSet.ParameterSets
set NeueGruppe = ParamGruppen.CreateSet("Untergruppe")

' Parameter in neuer Untergruppe erstellen
set NeuerParameter = NeueGruppe.AllParameters
set ParamText = NeuerParameter.CreateString("TextParameter", "Zeichenkette")

End Sub
 

Bei Drawings liegen die Parameter direkt im Objekt ActiveDocument, also:
set ParamGruppen = CATIA.ActiveDocument.Parameters.RootParameterSet.ParameterSets
 

Auslesen und Ändern eines Parameters in einem Parameter Set:

  Sub CATMain()

set oParameters = CATIA.ActiveDocument.Part.Parameters
set TextParameter = oParameters.Item(Bauteil.Name &"\Untergruppe\TextParameter")

MsgBox TextParameter.Value   ' Ausgabe des Parameters "TextParameter"

TextParameter.Value = "Neuer Text"   ' Ändern des Parametertextes in "Neuer Text"

End Sub
 

Bei Drawings liegen die Parameter direkt im Objekt ActiveDocument, also: set oParameters = CATIA.ActiveDocument.Parameters


   Parameter in Product Properties:

Erzeugen eines Parameters in den Properties eines Parts/Products

  Sub CATMain()

set ProdPropParam = CATIA.ActiveDocument.Product.UserRefProperties
set PropertiesParameter = ProdPropParam.CreateString("MeinText", "BlaBla")

End Sub
 

Auslesen und Ändern eines Parameters in einem Parameter Set: 

siehe "Auslesen und Ändern von Parameter"
 

Löschen eines Parameters in den Properties eines Parts/Products

  Sub CATMain()

set ProdPropParam = CATIA.ActiveDocument.Product.UserRefProperties
ProdPropParam.Remove "TextParameter"

End Sub
 


   Erzeugen von Relations (Formeln):

Erzeugen einer Verknüpfung von zwei Parametern über ein Relation:

  Sub CATMain()

set oParameters = CATIA.ActiveDocument.Part.Parameters
set PropertiesParameter = oParameters.Item("ZielParameter")

set Relation = CATIA.ActiveDocument.Part.Relations
set Formel = Relation.CreateFormula("Formel", "", PropertiesParameter, "QuellParameter")
CATIA.ActiveDocument.Part.Update

End Sub
 

Die Option Drucken funktioniert erst ab Netscape V4.0 bzw. I-Explorer 5.0 !

[letzte Aktualisierung 18.03.2011]