Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  NX Programmierung
  Step214-Export-VBCode

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für NX
Autor Thema:  Step214-Export-VBCode (440 / mal gelesen)
EA89
Mitglied
Konstrukteur


Sehen Sie sich das Profil von EA89 an!   Senden Sie eine Private Message an EA89  Schreiben Sie einen Gästebucheintrag für EA89

Beiträge: 23
Registriert: 04.01.2022

SolidWorks & Solidcam 2022
Siemens NX 1946
Windchill: 12.1.0.2
Rechner:
CPU: i7-10850H
GPU: Nvidia T2000

erstellt am: 17. Okt. 2023 08:15    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Guten morgen zusammen,

wir nutzen bei uns ein Button zum exportieren von Step-Dateien auf einen bestimmten Ordner.

Jedoch funktioniert dieser Export nicht zuverlässig.
Bei manchen Komponenten läuft der Prozess sauber durch, bei manchen Komponenten kommt jedoch nur ein LOG-File mit der Meldung:

UG to STEP
! WARNING-  No parts in current input file

Der Export der Step wurde im Code wie folgt erstellt.
Wisst Ihr zufällig wo das Problem sein könnte?

Viele Grüße
Eduard

Dim markId1 As NXOpen.Session.UndoMarkId = Nothing
markId1 = theSession.SetUndoMark(NXOpen.Session.MarkVisibility.Visible, "Start")

Dim stepCreator1 As NXOpen.StepCreator = Nothing
stepCreator1 = theSession.DexManager.CreateStepCreator()

stepCreator1.ExportAs = NXOpen.StepCreator.ExportAsOption.Ap214

stepCreator1.OutputFile = ausgabeFile'"C:\temp\" & currentFile & "-" & index & ".stp"

lg.WriteLine("~ OutputFile : " & stepCreator1.OutputFile) 'LOG

stepCreator1.SettingsFile = "C:\plm\nx\step214ug\ugstep214.def"

stepCreator1.ExportSelectionBlock.SelectionScope = NXOpen.ObjectSelector.Scope.SelectedObjects

stepCreator1.ObjectTypes.Curves = True

stepCreator1.ObjectTypes.Surfaces = True

stepCreator1.ObjectTypes.Solids = True

stepCreator1.ObjectTypes.ProductData = True

stepCreator1.ColorAndLayers = True

stepCreator1.InputFile = originalFile '"@DB/" & currentFile & "/" & strRevision "

lg.WriteLine("~ InputFile : " & stepCreator1.InputFile) 'LOG
stepCreator1.OutputFile = ausgabeFile ' & "stp"
lg.WriteLine("~ StepOut : " & stepCreator1.OutputFile) 'LOG

theSession.SetUndoMarkName(markId1, "STEP-Exportoptionen-Dialogfenster")

stepCreator1.ExportSelectionBlock.SelectionScope = NXOpen.ObjectSelector.Scope.EntirePart

Dim markId2 As NXOpen.Session.UndoMarkId = Nothing
markId2 = theSession.SetUndoMark(NXOpen.Session.MarkVisibility.Invisible, "STEP-Exportoptionen")

theSession.DeleteUndoMark(markId2, Nothing)

Dim markId3 As NXOpen.Session.UndoMarkId = Nothing
markId3 = theSession.SetUndoMark(NXOpen.Session.MarkVisibility.Invisible, "STEP-Exportoptionen")

stepCreator1.FileSaveFlag = False

stepCreator1.LayerMask = "1" '"1-256"

Dim nXObject1 As NXOpen.NXObject = Nothing
nXObject1 = stepCreator1.Commit()

theSession.DeleteUndoMark(markId3, Nothing)

theSession.SetUndoMarkName(markId1, "STEP-Exportoptionen")

stepCreator1.Destroy()

theSession.CleanUpFacetedFacesAndEdges()

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

mseufert
Moderator
Freiberuflicher CAD/CAM Ingenieur


Sehen Sie sich das Profil von mseufert an!   Senden Sie eine Private Message an mseufert  Schreiben Sie einen Gästebucheintrag für mseufert

Beiträge: 2662
Registriert: 18.10.2005

HP Z420
WIN7 64 Win 10
UG NX6-1980
3D Printer Prusa MK2 S

erstellt am: 17. Okt. 2023 15:26    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für EA89 10 Unities + Antwort hilfreich

Hallo Eduard,

das kann viele Gründe haben. Am wahrsscheinlichsten passt die folgende Zeile nicht zu allem, was damit bearbeitet wird:

stepCreator1.ExportSelectionBlock.SelectionScope = NXOpen.ObjectSelector.Scope.EntirePart

Zumindest deutet die Fehlermeldung darauf hin, daß der Translator nichts zum Übersetzen findet. Kann aber auch an den Settings liegen.
Um dem Problem auf die Schliche zu kommen, sollten beide Fälle etwas genauer untersucht werden, um so ggfs. den entscheidenden Unterschied zu finden.

Es liegt also m.E. nicht in erster Linie am Journal, sondern daran, in welcher Umgebung bzw. mit welchen Daten es laufen soll.

Gruß, Michael

------------------
Ein Mensch wird laut, wenn er was will;
wenn er's erst hat, dann wird er still;
Das "Danke" ist, nach alter Sitte,
Weit selt'ner als das "Bitte, Bitte".

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP



Ingenieur Verfahrenstechnik / Anlagenbau (m/w/d)
Du teilst unsere Leidenschaft für Innovationen und Technologien und willst dich den Herausforderungen der Zukunft stellen? Dann komme zu FERCHAU Rosenheim: Wir realisieren spannende Projekte für namhafte Kunden in allen Technologien und für verschiedene Branchen. Ready for the next Level? Dann bist DU bei uns genau richtig!

Ingenieur Verfahrenstechnik / Anlagenbau (m/w/d)
Burghausen
Anzeige ansehenVerfahrenstechnik
Robse-Ponte
Mitglied
Entwicklungsingenieur


Sehen Sie sich das Profil von Robse-Ponte an!   Senden Sie eine Private Message an Robse-Ponte  Schreiben Sie einen Gästebucheintrag für Robse-Ponte

Beiträge: 111
Registriert: 03.09.2007

AutoCAD Mechanical 2021
Siemens NX 2000
Teamcenter 13.1.0.1
Ansys 2019 R2

erstellt am: 17. Okt. 2023 15:32    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für EA89 10 Unities + Antwort hilfreich

Hallo,

das Problem hatte ich vor Jahren auch. Teilweise hat es mir die Körper nicht genommen, Jesus weiss warum er diese im Entire Part nicht findet...

Ein weiteres Problem war, dass wir Hilfskörper im File haben, die nicht mitexportiert werden sollten.

Wir haben das dann so gelöst, dass die zu exportierenden Sachen im Ref-Set Model in den Einzelteilen drin sein müssen und die Teile über eine Body List übergeben haben, bzw. über die Funktion AskAll Bodies in Baugruppen (unter der Vorraussetzung dass alle Teile vorher auf RefSet Model gesetzt sind).

Die Codeschnipsel, die dafür verantwortlich sind, habe ich dir angefügt:

Public Function checkRefset

Const RefSet As String = "MODEL"
Dim stateArray1(0) As Layer.StateInfo
Dim myReferenceSets As ReferenceSet()
myReferenceSets = workPart.GetAllReferenceSets()
Dim theReferenceSet As ReferenceSet = Nothing
'Dim lw As ListingWindow = theSession.ListingWindow
Dim mypart As Part
nxSelectedObjects1.Clear()

For Each myRefSet As ReferenceSet In myReferenceSets
    If myRefSet.Name.ToUpper() = RefSet Then
        theReferenceSet = myRefSet
        refMembers = myRefSet.AskAllDirectMembers()
' msgbox((myRefSet.AskAllDirectMembers()).toString)
        'lw.Open()
        For Each myObject As DisplayableObject In refMembers
                 
'lw.WriteFullline("object type: " & myObject.GetType.ToString)
If TypeOf myObject Is NXOpen.Body Then
Dim myBody As NXOpen.Body = myObject
nxSelectedObjects1.Add(myBody)
ElseIf TypeOf myObject Is NXOpen.Assemblies.Component Then
nxSelectedObjects1.Clear()
myPart=(myObject.OwningPart)
'lw.WriteFullline("OwningPart: " & myPart.ToString)
For Each mySolid As NXOpen.Body In AskAllBodies(myPart)
nxSelectedObjects1.Add(mySolid)
Next
Exit For
End If
        Next
'lw.Close()
    End If
Next

End Function


Function AskAllBodies(ByVal thePart As Part) As Body()
        Dim theBodies As New System.Collections.ArrayList()

        Dim aBodyTag As Tag = Tag.Null
        Do
            theUfSession.Obj.CycleObjsInPart(thePart.Tag, _
                UFConstants.UF_solid_type, aBodyTag)
            If aBodyTag = Tag.Null Then
                Exit Do
            End If

            Dim theType As Integer, theSubtype As Integer
            theUfSession.Obj.AskTypeAndSubtype(aBodyTag, theType, theSubtype)
            If theSubtype = UFConstants.UF_solid_body_subtype Then
                theBodies.Add(theSession.GetObjectManager.GetTaggedObject(aBodyTag))
            End If
        Loop While True

        Return DirectCast(theBodies.ToArray(GetType(Body)), Body())
  End Function


und dann die Körper an die Sub darunter übergeben haben:


Sub STP_Export_AV(ByVal outputFile As String, ByVal inputFile As String, settings As String, _
  ByVal stpSelectedObjects As List(Of NXOpen.Body))

Const settingsFile As String = "...ugstep214.def"
Dim stepCreator1 As NXOpen.StepCreator = Nothing
stepCreator1 = theSession.DexManager.CreateStepCreator()

stepCreator1.ExportAs = NXOpen.StepCreator.ExportAsOption.Ap214
stepCreator1.ObjectTypes.Solids = True
stepCreator1.SettingsFile = settings

If Not IO.File.Exists(stepCreator1.SettingsFile) Then 
            MessageBox.Show(String.Format("Datei: (ugstep214.def) nicht gefunden." & _
"{0}Stp-Export abgebrochen", vbNewLine))
            Exit Sub
End If

stepCreator1.InputFile = "@DB/" & inputFile
stepCreator1.OutputFile = outputFile
stepCreator1.ExportSelectionBlock.SelectionScope = NXOpen.ObjectSelector.Scope.SelectedObjects

Dim added1 As Boolean = Nothing
added1 = stepCreator1.ExportSelectionBlock.SelectionComp.Add(stpSelectedObjects.ToArray)

stepCreator1.FileSaveFlag = False
stepCreator1.LayerMask = "1-256"

Dim nXObject1 As NXOpen.NXObject = Nothing
nXObject1 = stepCreator1.Commit()

stepCreator1.Destroy()


End Sub

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz