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

 

Parameter und Relations

Seiteninhalt:  
  Erzeugen von Parameter
  Auslesen und Ändern von Parametern
  Löschen von Parametern
  Verstecken und Sperren von Parametern (hide/lock)
  Multi-Value-Parametern
  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
 

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
Parameter = oParameters.Item("TextParameter")

MsgBox Parameter.Value  ' Ausgabe des Parameters "TextParameter"

Parameter.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


   Multi-Value-Parametern:

Erzeugen, setzen und auslesen von Multivalueparametern:

  Sub CATMain()

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

' Array deklarieren und befüllen
dim sValueList(2)
sValueList(0) = "Erster Wert"
sValueList
(1) = "Zweiter Wert"
sValueList
(2) = "Dritter Wert"

' Array derm Parameter zuordnen
oParam.SetEnumerateValues sValueList
' den ersten Wert auswählen
oParam.Value = sValueList
(0)
' den aktuell ausgewählten Wert ausgeben
MsgBox
"Aktuelle gewählter Wert: " &oParam.Value

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]