Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  NX Programmierung
  ausgewählte Objekte als Parasolid exportieren

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:  ausgewählte Objekte als Parasolid exportieren (3346 mal gelesen)
pleudel
Mitglied
Projektleiterin


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

Beiträge: 156
Registriert: 28.11.2011

Windows 7
UG NX 10 (auch Daimler)
Visual Basic 2013 Express
Programmierung in NX und ProE/Creo

erstellt am: 04. Jan. 2012 08:06    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


fehlermeldung_NXOpen.jpg

 
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

little_ug
Mitglied
CAX/PDM Admin / PM


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

Beiträge: 389
Registriert: 20.03.2003

erstellt am: 04. Jan. 2012 08:17    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 pleudel 10 Unities + Antwort hilfreich

Hi,
die Fehlermeldung sagt alles, deine Selektion gibt ein Array zurueck vom Typ Object.... aber dein Export erwartet Tags... D.h. Typ aendern... Hierzu findest du Infos in der .net Referce in der NX Hilfe.

------------------
Gruß

Michael

have you tried turning it off and on again

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

pleudel
Mitglied
Projektleiterin


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

Beiträge: 156
Registriert: 28.11.2011

Windows 7
UG NX 10 (auch Daimler)
Visual Basic 2013 Express
Programmierung in NX und ProE/Creo

erstellt am: 04. Jan. 2012 08:33    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

Danke für die schnelle Antwort.
An eine Typkonvertierung hatte ich auch schon gedacht, leider weiß ich nicht genau wie.
Kannst du mir da weiterhelfen?

die NX Hilfe steht mir im Moment leider nicht zur Verfügung x.x

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

little_ug
Mitglied
CAX/PDM Admin / PM


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

Beiträge: 389
Registriert: 20.03.2003

erstellt am: 04. Jan. 2012 09:25    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 pleudel 10 Unities + Antwort hilfreich

".....".tag

------------------
Gruß

Michael

have you tried turning it off and on again

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

pleudel
Mitglied
Projektleiterin


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

Beiträge: 156
Registriert: 28.11.2011

Windows 7
UG NX 10 (auch Daimler)
Visual Basic 2013 Express
Programmierung in NX und ProE/Creo

erstellt am: 04. Jan. 2012 10:22    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

Sorry, aber mit dieser Antwort kann ich wenig anfangen. Wo bzw. wie muss ich das einfügen?

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

little_ug
Mitglied
CAX/PDM Admin / PM


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

Beiträge: 389
Registriert: 20.03.2003

erstellt am: 04. Jan. 2012 13:06    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 pleudel 10 Unities + Antwort hilfreich

Dim mytag as NXOpen.Tag
For Each obj in selectedObjects
...
mytag=obj.tag
...

------------------
Gruß

Michael

have you tried turning it off and on again

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

pleudel
Mitglied
Projektleiterin


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

Beiträge: 156
Registriert: 28.11.2011

Windows 7
UG NX 10 (auch Daimler)
Visual Basic 2013 Express
Programmierung in NX und ProE/Creo

erstellt am: 04. Jan. 2012 13:42    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


fehlermeldung_NXOpen1.jpg

 
Ok, jetzt habe ich folgende Fehlermeldung... ----> siehe Anhang.
Was bedeutet das jetzt wieder?

Das sagt mir leider wieder nicht viel...

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: 2624
Registriert: 18.10.2005

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

erstellt am: 04. Jan. 2012 15:01    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 pleudel 10 Unities + Antwort hilfreich

Hallo pleudel,

aus der Selektion bekommst Du ein Array mit NXObjects, wie zu Anfang deklariert:
     

Code:
Dim selectedObjects As NXObject()

Die Funktion UFS.Ps.ExportData kann damit allerdings nichts anfangen, sondern braucht ein Array aus Tags, z.B.:
     

Code:
Dim selectedTags as Tag()

Daher muss der Typ umgewandelt werden, und zwar für jedes Element des ersten Arrays. Die Ergebnisse kommen in das zweite Array, das genauso groß sein muss, wie Nummer 1. In einer Schleife sieht das z.B. so aus:
     

Code:
For i as integer = 0 to selectedObjects.Length -1
      selectedTags(i) = selectedObjects(i).Tag
Next

Das neue Array kannst Du dann an UFS.Ps.ExportData übergeben:
     

Code:
UFS.Ps.ExportData(selectedTags, fileName2)


Dann noch ein ganz heißer Tip: Mit dem JournalEditor quälst Du Dich selbst. Die weitaus bessere Lösung ist kostenlos und heißt z.B. Microsoft Visual Basic Express.

Gruß, Michael

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

pleudel
Mitglied
Projektleiterin


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

Beiträge: 156
Registriert: 28.11.2011

Windows 7
UG NX 10 (auch Daimler)
Visual Basic 2013 Express
Programmierung in NX und ProE/Creo

erstellt am: 05. Jan. 2012 07:08    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


fehlermeldung_NXOpen2.jpg

 
Hallo,

Danke erstmal für diese ausführliche antwort, da verstehe ich auch, wo mein Fehler liegt bzw. was ich tun muss!!!!
Eins vorweg: Ich benutze bereits Visual Basic Express 2010, daher kam  ja auch die Fehlermeldung. Ich wusste nur leider nichts damit anzufangen,
da dort ja keine Lösungsansätze angezeigt werden...

Mit deiner Umwandlung das funktioniert glaube ich, die Fehlermeldung ist weg.
Ich habe selectedObjects und selectedTags noch den Wert Nothing zugewiesen (war das richtig?)

Allerdings kommt es jetzt zu einem anderen Problem, und zwar in folgender Zeile:
  selectedTags(i) = selectedObjects(i).Tag

die Fehlermeldung ist im Anhang zu finden...
Was ist da das Problem? Im VBExpress bekomme ich keine Fehlermeldungen mehr!

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



Techniker / Konstrukteur (m/w/d) Maschinen und Anlagebau
NORD Engineering ist Ihr zuverlässiger Partner für anspruchsvolle technische Projekte und Herausforderungen in ganz Norddeutschland. Wir verbinden Talente und Profis mit den passenden Unternehmen für langfristige Projekte aus verschiedensten Bereichen wie z.B. Maschinenbau, Elektrotechnik oder Schiffbau.

Sie haben Ihre Ausbildung im technischen Bereich und Ihre Weiterbildung zum ...
Anzeige ansehenKonstruktion, Visualisierung
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: 2624
Registriert: 18.10.2005

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

erstellt am: 05. Jan. 2012 09: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 pleudel 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von pleudel:

Ich habe selectedObjects und selectedTags noch den Wert Nothing zugewiesen (war das richtig?)

Vermutlich ist genau das der Fehler. Beide Arrays müssen existieren und die selbe Größe haben.

Gruß, Michael

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