Hallo,
danke erst mal für die vielen antwortetn.
So habe ich das gemacht,
' für Y Verschiebung
K=0
For I = 580 to 699
K= K+1
Set documents1 = CATIA.Documents
Set partDocument1 = documents1.Item("SCHLEIFE_HINTEN.CATPart")
Set part1 = partDocument1.Part
Set relations1 = part1.Relations
Set formula1 = relations1.Item("Formula."+ CStr(I))
formula1.Modify "((MeasureBetween."+ CStr(K)+"\Diry* MeasureBetween."+ CStr(K)+"\Diry ) / sqrt ((MeasureBetween."+ CStr(K)+"\Diry *MeasureBetween."+ CStr(K)+"\Diry) + (MeasureBetween."+ CStr(K)+"\Dirz *MeasureBetween."+ CStr(K)+"\Dirz)) ) * ( sqrt((MeasureBetween."+ CStr(K)+"\Diry *MeasureBetween."+ CStr(K)+"\Diry) + (MeasureBetween."+ CStr(K)+"\Dirz *MeasureBetween."+ CStr(K)+"\Dirz))) - `minimaler Freigang beim Vorbeidrehen + 0,02mm Toleranz`) * `Ausgleichsfaktor TEST` / (abs(sqrt((MeasureBetween."+ CStr(K)+"\Diry *MeasureBetween."+ CStr(K)+"\Diry) + (MeasureBetween."+ CStr(K)+"\Dirz *MeasureBetween."+ CStr(K)+"\Dirz)) ) + 0.000001mm)"
formula1.Rename "Formula."+ CStr(I)
das funktioniert wenn die formel vorhanden ist.
Ich habe es probiert mit creat formula leider geht das nicht
' Set documents1 = CATIA.Documents
' Set partDocument1 = documents1.Item("SCHLEIFE_HINTEN.CATPart")
' Set part1 = partDocument1.Part
' Set relations1 = part1.Relations
' Set parameters1 = part1.Parameters
' For J = 121 to 240
' J=120
' J= J +1
' Set length1 = parameters1.Item("SCHLEIFE_HINTEN\Verschiebungen der Schnittpunkte für korrigierten Fugenverlauf\Translate."+CStr(J)+"\Y")
' K=0
' For I = 580 to 699
' K= K+1
' Set formula1 = relations1.CreateFormula("Formula."+ CStr(I), "", length1, "((MeasureBetween."+ CStr(K)+"\Diry* MeasureBetween."+ CStr(K)+"\Diry ) / sqrt((MeasureBetween."+ CStr(K)+"\Diry *MeasureBetween."+ CStr(K)+"\Diry) + (MeasureBetween."+ CStr(K)+"\Dirz *MeasureBetween."+ CStr(K)+"\Dirz)) ) * ( sqrt((MeasureBetween."+ CStr(K)+"\Diry *MeasureBetween."+ CStr(K)+"\Diry) + (MeasureBetween."+ CStr(K)+"\Dirz *MeasureBetween."+ CStr(K)+"\Dirz))) - `minimaler Freigang beim Vorbeidrehen + 0,02mm Toleranz`) * `Ausgleichsfaktor TEST` / (abs(sqrt((MeasureBetween."+ CStr(K)+"\Diry *MeasureBetween."+ CStr(K)+"\Diry) + (MeasureBetween."+ CStr(K)+"\Dirz *MeasureBetween."+ CStr(K)+"\Dirz)) ) + 0.000001mm)")
' formula1.Rename "Formula."+ CStr(I)
vielleicht könnt ihr damit mehr anfangen als nur mit der erklärung was ich genau machen will. Es sind und die 800 formeln die ich dann per hand schreiben müsste
mfg Culd
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP