Super der Beispielcode funktioniert.
Doch rätsel ich immer noch an meinem Problem herum.
Catia doktert in seinem aufgezeichnetem Skript mit 'as Parameters' herum??? Um die Einstellungen aus dem Block-Dialog abzugreifen??
Das Skript läuft nur dann ohne Fehler wenn ich dies Paramter "Hauptkörper\Block.1\Begrenzung ...." per "Set offset_Surface ... " manuell definiert habe.... aber diese eigenen Parameter interessiert der Block beim genauen hinsehen nicht ...
Kannst du mir sagen:
a) Welche Parameter muß ich Pad1 übergeben (analog Deinem hole1)
b) Was hat es den überhaupt mit den seltsamen Parametern "Hauptkörper\Block.1\Begrenzung..." auf sich??
In einer kleiner For-Next-Schleife habe ich mir mal diese Parametetliste angesehen ... nun ja da taucht nach dem manuellen Start des Catia-Block-Dialog plötzlich 2mal die ominösen Parameter auf???
Hier mal meine Funktion:
Function Creating_Block()
' COPYRIGHT Michel *ggg*
' *****************************************************************************
' Purpose: Create block
' Step: 5
' Assumtions: None
' Author: M.Frey
' Languages: VBScript
' Locales: English
' CATIA Level: V5R12
' *****************************************************************************
Set partDocument1 = CATIA.ActiveDocument
Set part1 = partDocument1.Part
Set shapeFactory1 = part1.ShapeFactory
Set reference1 = part1.CreateReferenceFromName("")
Set Pad1 = shapeFactory1.AddNewPadFromRef(reference1, 20#)
Pad1.DirectionOrientation = catInverseOrientation
Set bodies1 = part1.Bodies
Set body1 = bodies1.Item("Hauptkörper")
Set sketches1 = body1.Sketches
Set originElements1 = part1.OriginElements
Set reference2a = originElements1.PlaneYZ
Set sketch1 = sketches1.Add(reference2a)
Set reference2 = part1.CreateReferenceFromObject(sketch1)
Pad1.SetProfileElement reference2
Set factory2D1 = sketch1.OpenEdition()
Set point2D1 = factory2D1.CreatePoint(-30#, 0#)
point2D1.ReportName = 3
Set circle2D1 = factory2D1.CreateClosedCircle(-30#, 0#, 17.5)
circle2D1.CenterPoint = point2D1
circle2D1.ReportName = 4
Set constraints1 = sketch1.Constraints
Set reference3 = part1.CreateReferenceFromObject(circle2D1)
Set constraint1 = constraints1.AddMonoEltCst(catCstTypeRadius, reference3)
constraint1.Mode = catCstModeDrivingDimension
Set Length1 = constraint1.Dimension
Length1.Value = 17.5
Set reference4 = part1.CreateReferenceFromObject(point2D1)
Set geometricElements1 = sketch1.GeometricElements
Set axis2D1 = geometricElements1.Item("Absolute Achse")
Set line2D1 = axis2D1.GetItem("V-Richtung")
Set reference5 = part1.CreateReferenceFromObject(line2D1)
Set constraint2 = constraints1.AddBiEltCst(catCstTypeDistance, reference4, reference5)
constraint2.Mode = catCstModeDrivingDimension
Set Length2 = constraint2.Dimension
Length2.Value = 30#
Set reference6 = part1.CreateReferenceFromObject(point2D1)
Set line2D2 = axis2D1.GetItem("H-Richtung")
Set reference7 = part1.CreateReferenceFromObject(line2D2)
Set constraint3 = constraints1.AddBiEltCst(catCstTypeDistance, reference6, reference7)
constraint3.Mode = catCstModeDrivingDimension
Set length3 = constraint3.Dimension
length3.Value = 0#
sketch1.CloseEdition
'now update inserted block
Set partDocument1 = CATIA.ActiveDocument
Set part1 = partDocument1.Part
Set bodies1 = part1.Bodies
Set body1 = bodies1.Item("Hauptkörper")
Set shapes1 = body1.Shapes
Set Pad1 = shapes1.Item("Block.1")
Set limit1 = Pad1.FirstLimit
limit1.LimitMode = catUpToNextLimit
'identisch zu Pad1.FirstLimit.LimitMode = catUpToNextLimit
Set limit2 = Pad1.SecondLimit
limit2.LimitMode = catUpToNextLimit
'identisch zu Pad1.FirstLimit.LimitMode = catUpToNextLimit
Dim parameters1 As Parameters
Set parameters1 = part1.Parameters
'############## eingefügt von mir #########################
'ohne diesen Befehl steht das Programm mit einem Fehler !!
'-----------------------------------------------------------
Dim offset_Surface As RealParam
Set offset_Surface = parameters1.CreateReal("Hauptkörper\Block.1\Begrenzung1\OffsetFromSurface", 10.1)
Set offset_Surface = parameters1.CreateReal("Hauptkörper\Block.1\Begrenzung2\OffsetFromSurface", 6.1)
'###########################################################
Set limit1 = Pad1.FirstLimit
limit1.LimitMode = catUpToNextLimit
Set parameters1 = part1.Parameters
Set length4 = parameters1.Item("Part1\Hauptkörper\Block.1\Begrenzung1\OffsetFromSurface")
length4.Value = 5#
Set limit2 = Pad1.SecondLimit
limit2.LimitMode = catUpToNextLimit
Set parameters2 = part1.Parameters
Set length5 = parameters2.Item("Part1\Hauptkörper\Block.1\Begrenzung2\OffsetFromSurface")
length5.Value = 5#
Pad1.DirectionOrientation = catRegularOrientation
part1.Update
End Function
------------------
Bin schon gespannt wer alles antwortet
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP