Mechanische
Eigenschaften von CATParts und CATProducts
Mechanische Eigenschaften eines Part's oder Product's ermitteln
Die Messung läuft über
alle Bodies hinweg und es werden alle angelegte Materialien berücksichtigt!
Wurde kein Material angelegt, so ist die Dichte 1. Ist
keine 3D-Geometrie vorhanden, so ist die Masse 0.
|
Sub
CATMain()
' Oberfläche
Flaeche = CATIA.ActiveDocument.Product.Analyze.WetArea
Flaeche = round(Flaeche,3)
MsgBox "Oberfläche: " &Flaeche
&" mm^2"
' Masse
Masse = CATIA.ActiveDocument.Product.Analyze.Mass
Masse = round(Masse *1000,3)
MsgBox "Masse: " &Masse &"
g"
' Volumen
Volumen = CATIA.ActiveDocument.Product.Analyze.Volume
Volumen = round(Volumen,3)
MsgBox "Volumen: " &Volumen
&" mm^3"
' Dichte
if
Masse <>
0
then
Dichte = (Masse *1000) /Volumen
Dichte = round(Dichte,3)
MsgBox "Dichte: " &Dichte &"
g/cm^3"
end if
End Sub |
Alternativ für Masse und Dichte
|
Sub
CATMain()
set oInertia =
CATIA.ActiveDocument.Product.GetTechnologicalObject("Inertia")
' Dichte
MsgBox oInertia.Density
' Masse
MsgBox oInertia.Mass
End Sub |
Schwerpunkt
(Center of Gravity)
eines Part's oder Product's
ermitteln
|
Sub
CATMain()
' Schwerpunkt
dim Koordinaten(2)
set Schwerpunkt =
CATIA.ActiveDocument.Product.GetTechnologicalObject("Inertia")
Schwerpunkt.GetCOGPosition Koordinaten
Koordinaten(0) =
round(Koordinaten(0)*1000,3)
' in mm
Koordinaten(1) =
round(Koordinaten(1)*1000,3)
Koordinaten(2) =
round(Koordinaten(2)*1000,3)
MsgBox "Schwerpunkt: X = " &Koordinaten(0)
&", Y = " &Koordinaten(1)
&" , Z = " &Koordinaten(2)
End Sub |
Inertia -
Bodybezogen
Volumen eines Body ermitteln
Enthält der Body
keine Geometrie, so kommt es zu einer Fehlermeldung.
Hier im Beispiel wird der PartBody gemessen.
|
Sub
CATMain()
set body1 =
CATIA.ActiveDocument.Part.MainBody
set Objekt =
CATIA.ActiveDocument.Part.CreateReferenceFromObject(body1)
set SPAWorkbench1 =
CATIA.ActiveDocument.GetWorkbench("SPAWorkbench")
set Element =
SPAWorkbench1.GetMeasurable(Objekt)
' Volumen
Volumen = Element.Volume
Volumen = round(Volumen *1000
*1000,3)
MsgBox ("Volumen = " &Volumen
&" mm^3")
End Sub |
Dichte des PartBody ermitteln
Ist dem Body noch
kein Material zugewiesen, so ist die Dichte 1.
|
Sub
CATMain()
set PartBodyDichte =
Catia.ActiveDocument.Part
Dichte = PartBodyDichte.Density
Dichte = round((Dichte /1000),3)
MsgBox ("Dichte = " &Dichte
&" g/cm^3")
End Sub |
Dichte von
einem Body ermitteln
Hier im Beispiel wird
die Dichte vom PartBody ermittelt, dies ist jedoch
auf jeden Body
anwendbar dem ein Material zugewiesen wurde.
Hinweis1: In Release 17 oder 18 gab es eine interne Einheitenänderung für verschiedene Einheiten wie
auch die der Dichte!
Hinweis2: Diese Methode führt bei
vielen Rechnern zum Aufhängen von CATIA, alternative
kann das
Auslesen der Dichte vom PartBody genommen
werden, dazu den betreffenden Body temporär zum
PartBody machen (CATIA.ActiveDocument.Part.MainBody
= BodyXY) und danach natürlich wieder zurück.
|
Sub
CATMain()
set PartDokument =
CATIA.ActiveDocument.Part
set Koerper = PartDokument.MainBody
Dichte = GetDensity(Koerper) /1000
MsgBox "Dichte: " &Dichte
&" g/ccm"
End Sub
Function GetDensity(Body1)
On Error Resume Next
err.number = 0
set oManager =
CATIA.ActiveDocument.Part.GetItem("CATMatManagerVBExt")
oManager.GetMaterialOnBody Body1, oMaterial
set oManager = nothing
GetDensity = oMaterial.AnalysisMaterial.GetValue("SAMDensity")
set oMaterial = nothing
if err.number <>
0 then GetDensity =
1
End Function |
Oberfläche von einem Body
ermitteln
Um die Oberfläche eines
Bodies zuermitteln kann man sich der "Knowledge
Advisor Language" bedienen. Hierzu legt man einen
Parameter an und hinterlegt diesem eine Formen mit
der Methode SmartWetArea.
|
Sub
CATMain()
BodyName = "PartBody"
' oder den Namen eines anderen Bodies
set WetAreaParameter =
CATIA.ActiveDocument.Part.Parameters.CreateDimension("",
"AREA",
0.000000)
set Formel =
CATIA.ActiveDocument.Part.Relations.CreateFormula("TempFormula",
"", WetAreaParameter, "smartWetarea(`"
&BodyName &"` ) ")
Oberflaeche = CDbl(WetAreaParameter.Value)
Oberflaeche = round(Oberflaeche *1000
*1000)
MsgBox Oberflaeche
End Sub |
Schwerpunkt
(Center of Gravity) von einem
Body
ermitteln
Hier im Beispiel wird
der PartBody gemessen.
|
Sub
CATMain()
set body1 =
CATIA.ActiveDocument.Part.MainBody
set Objekt =
CATIA.ActiveDocument.Part.CreateReferenceFromObject(body1)
set SPAWorkbench1 =
CATIA.ActiveDocument.GetWorkbench("SPAWorkbench")
set Element =
SPAWorkbench1.GetMeasurable(Objekt)
' Schwerpunkt
dim Koordinaten(2)
Element.GetCOG Koordinaten
Koordinaten(0) =
round(Koordinaten(0),3)
' in mm
Koordinaten(1) =
round(Koordinaten(1),3)
Koordinaten(2) =
round(Koordinaten(2),3)
MsgBox "Schwerpunkt: X = " &Koordinaten(0)
&", Y = " &Koordinaten(1)
&" , Z = " &Koordinaten(2)
End Sub |
|