Hallo,
und wieder ein schweres Problem:
Ich will eine Fläche verschieben, doch ich bekomme die Formel nicht zugewiesen:
Fileskelett:
->Produkt + neues Teil
->Skizze
->Füllen
->Füllen kopieren
->Einfügen Spezial -> als Ergebnis
->Füllen löschen
Das Problem liegt bei "CreateFormula( CATBSTR iName, CATBSTR iComment, CATIAParameter iOutputParameter, CATBSTR iFormulaBody)
Der CATIAParameter muss als Z As Double vorliegen um ihn dem "hybridShapeTranslate1.DistanceValue = Z".
Doch ist Z As Double, dann gibt es einen "Type mismatch".
->klarer weise
Doch wie Lösen ?
Hat jemand eine geniale Idee?????
Sub CATMain()
Dim documents1 As Documents
Set documents1 = CATIA.Documents
Dim partDocument1 As PartDocument
Set partDocument1 = documents1.Item("Part1.CATPart")
Dim part1 As Part
Set part1 = partDocument1.Part
Dim param(1) As Parameters
Set param(0) = part1.Parameters
Set param(1) = part1.Parameters
Dim vorXparam As Dimension
Set vorXparam = param(0).CreateDimension("VorX", "LENGTH", 60#)
Dim Startwertparam As Dimension
Set Startwertparam = param(1).CreateDimension("Startwert", "LENGTH", 200#)
Dim hybridBodies1 As HybridBodies
Set hybridBodies1 = part1.HybridBodies
Dim Wzk3Dhybrid As HybridShapeFactory
Set Wzk3Dhybrid = part1.HybridShapeFactory
Dim hybridShapeDirection1 As HybridShapeDirection
Set hybridShapeDirection1 = Wzk3Dhybrid.AddNewDirectionByCoord(1#, 0#, 0#)
Dim Z
Dim Fl1 As HybridShapeSurfaceExplicit
Set Fl1 = hybridBodies1.Item(1).HybridShapes.Item("Fläche.1")
Dim hybridShapeTranslate1 As HybridShapeTranslate
Set hybridShapeTranslate1 = Wzk3Dhybrid.AddNewEmptyTranslate()
Dim ref1 As Reference
Set ref1 = part1.CreateReferenceFromObject(Fl1)
hybridShapeTranslate1.ElemToTranslate = ref1
hybridShapeTranslate1.DistanceValue = Z
I = 3
Dim formel1 As Formula
Set formel1 = part1.Relations.CreateFormula("Formel.1", "", Z, "Startwert + " & I & "* VorX ")
End Sub
PS: Ich hoffe das Script ist zu verstehen.
Danke für jeden Lösungsversuch.
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP