Ich bin nun einen guten Schritt vorangekommen. Allerdings funktioniert es immernoch nicht eiwandfrei.
' *********************************************************
' ************** wichtiger Abschnitt START ****************
' *********************************************************
Dim hybridShapesX As HybridShapes
Set hybridShapesX = hybridBody1.HybridShapes
Dim Polyline1 As HybridShapePolyline
'''''''' Hier wird die Polyline deklariert ''''''''
Set Polyline1 = hybridShapesX.Item("MEINEPOL")
'''''''' Anfangs muss ein willkürlicher Wert für den Radius angenommen werden. ''''''''
'''''''' Erst dadurch wird der Parameter erstellt und kann später mit meinem selbst definierten Parameter verknüpft werden. ''''''''
Polyline1.SetRadius 2, 1.0000
Dim parameters1 As Parameters
Set parameters1 = part1.Parameters
Dim PARAMETER_X As Parameter
'''''''' Hier ist das Problem: ''''''''
Set PARAMETER_X = parameters1.Item(CATIA.ActiveDocument.Part.Name & "\BODY\GEOSET\MEINEPOL\Radius")
Dim rels As Relations
Set rels = part1.Relations
Dim formula1 As Formula
Set formula1 = rels.CreateFormula("Formel.XY1", "", PARAMETER_X, "`MEINRADIUS`")
' *********************************************************
' **************** wichtiger Abschnitt END ****************
' *********************************************************
Mein Problem ist in der Zeile nach '''''''' Hier ist das Problem: ''''''''
Und Zwar muss ich in der Parameterzuweisung den genauen Namen des (automatisch erstellten) Parameters kennen. In diesem Fall ist das "Radius". Dieses Makro möchte ich jedoch in einer Schleife einsetzen. In meinem vollständigen Makro wird ein bestimmtes GeoSet nach Punkten abgesucht. Je nachdem wieviele Punkte dort drin sind werden diese in die Polyline eingefügt. Dies Funktioniert auch so wie es soll. Dann soll aber noch der Radius eingefügt werden. Bei mehreren Punkten würden somit auch mehrere Parameter (für die einzelnen Radien) entstehen. Diese heißen aber alle "Radius".
Ich würde den Zugriff auf den Parameter also viel lieber anstelle über den Namen über die Reihenfolge festlegen. Ich weiß nur nicht wie das geht. Hat jemand eine Idee?
Ich stelle mir das ungefähr so ähnlich vor (aber das funktioniert nicht):
'----------------
'----------------
Dim hybridShapesX As HybridShapes
Set hybridShapesX = hybridBody1.HybridShapes
Dim Polyline1 As HybridShapePolyline
Set Polyline1 = hybridShapesX.Item("MEINEPOL")
Polyline1.SetRadius 2, 1.0000
Dim parameters1 As Parameters
Set parameters1 = (CATIA.ActiveDocument.Part.Name & "\BODY\GEOSET\MEINEPOL\MEINRADIUS" & .Parameters) '''' <-- Hier Fehler
Dim rels As Relations
Set rels = part1.Relations
Dim formula1 As Formula
For I=1 To parameters1.Count
Set PARAMETER_X = parameters1.Item(I)
Set formula1 = rels.CreateFormula("Formel.XY1", "", PARAMETER_X, "`MEINRADIUS`")
Next
'----------------
'----------------
EDIT: Ich habe nun festgestellt, dass das Problem mit der gleichen Benennung für den Parameter (Radius in Polyline) durch den Befehl SetRadius verursacht wird. Da Alle Radien die gleiche Benennung erhalten
Um das Problem zu lösen muss ich also entweder die oben genannte Idee realisieren (also den Parameter nicht über den Namen, sondern über die Position aufrufen) oder eine Möglichkeit finden den Parameternamen (für die Radien in der Polyline) umzubenennen, so dass ich diese einzelnd ansprechen kann. ... irgendwelche Vorschläge?
Gruß,
Bernod
[Diese Nachricht wurde von Bernod am 15. Apr. 2010 editiert.]
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP