Hallo miteinander,
ich bin gerade dabei, ein Journal zu erstellen, welches ausgewählte Objekte eines Workparts als Parasolid exportiert.
Den Code für die Selektion habe ich hier irgendwo im Forum gefunden:
----------------------------------------------------------------------------------
Dim ui As UI = NXOpen.UI.GetUI
Dim selectedObjects As NXObject()
Dim message As String = "Alle gewünschten Objekte auswählen"
Dim title As String = "Parasolid-Export"
Dim scope As Selection.SelectionScope = Selection.SelectionScope.WorkPart
Dim keepHighlighted As Boolean = False
Dim includeFeatures As Boolean = False
Dim response As Selection.Response
Dim selectionAction As Selection.SelectionAction = _
Selection.SelectionAction.ClearAndEnableSpecific
Dim Maske(3) As MaskTriple
Maske(0).Type = UFConstants.UF_spline_type
Maske(1).Type = UFConstants.UF_face_type
Maske(2).Type = UFConstants.UF_solid_type
response = ui.SelectionManager.SelectObjects(message, title, scope, _
selectionAction, includeFeatures, _
keepHighlighted, Maske, _
selectedObjects)
----------------------------------------------------------------------------------
Dieser funktioniert auch prima, das Auswahlfenster öffnet sich und die Objekte können gemäß dem eingestellten Auswahlfilter
ausgewählt werden. Durch OK schließt sich das Fenster und das ganze ist beendet.
Danach soll nun das Exportieren folgen.
Auch einen Codeschnipsel für das Exportieren von Parasolids habe ich gefunden,
der hat auch im ursprünglichen Format funktioniert:
----------------------------------------------------------------------------------
Dim inx As Integer = 0
Dim dispPart As Part = S.Parts.Display
Dim n As String = vbCrLf
Dim bodies As BodyCollection = dispPart.Bodies
Dim bodyCount As Integer = bodies.ToArray.Length
Dim tagList(bodyCount - 1) As NXOpen.Tag
Do
tagList(inx) = dispPart.Bodies.ToArray(inx).Tag
inx = inx + 1
Loop Until inx = bodyCount
Dim fileName1, fileName2 As String
fileName1 = S.Parts.Display.FullPath
fileName2 = "D:\Visual_Basic_2010\Export_IGES\Hallo.x_t"
UFS.Ps.ExportData(selectedObjects, fileName2)
UFS.Ui.SetStatus("Exported solids to Parasolid file: " & fileName2)
----------------------------------------------------------------------------------
Das Problem ist, dass der Codeschnipsel eigentlich alle Körper exportiert, die er in dem Part findet.
Ich möchte allerdings, dass er nur die exportiert, die ich vorher anwähle, also die "selectedObjects"
Deshalb benutze ich nur folgenden Teil des Codes:
Dim fileName1, fileName2 As String
fileName1 = S.Parts.Display.FullPath
fileName2 = "D:\Visual_Basic_2010\Export_IGES\Hallo.x_t"
UFS.Ps.ExportData(selectedObjects, fileName2)
UFS.Ui.SetStatus("Exported solids to Parasolid file: " & fileName2)
In der vorletzten Zeile wird ja exportiert (ExportData), und zwar die selectedObjects (die ich ja oben vorher ausgewählt habe)
in den definierten Ordner.
Dabei tritt allerdings eine Fehlermeldung (---> Anhang) auf, mit der ich nicht sehr viel Anfangen kann.
Ich habe schon einiges gegoogelt und hier im Forum gesucht und auch im VB umgeschrieben usw., aber ich finde keine Lösung.
ANMERKUNG: Das Selektieren wie oben möchte ich wenn es geht gerne beibehalten, da es beim Export von IGES wunderbar funktioniert
und ich das Exportieren von IGES und Parasolid kombineren möchte. Dabei soll dann nur einmal ausgewählt und zweimal exportiert werden.
Ich hoffe ihr wisst was ich meine ;-)
Danke schonmal
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP