Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  NX
  mehrere Step in Nx importieren

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
  
NX Basiskonstruktion Schulung (Teil 1) - 5-tägige Schulung für Einsteiger
Autor Thema:  mehrere Step in Nx importieren (3005 mal gelesen)
creischn
Mitglied
Konstruktuer


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

Beiträge: 16
Registriert: 04.03.2014

erstellt am: 15. Apr. 2014 13:27    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

Hallo!

Ich habe ein Programm erstellt, dass alle Step-Dateien eines Verzeichnisses in Nx konvertiert.
Darin ist allerdings jeder Konvertierungsaufruf einzeln realisiert(im FileArray stehen alle Dateien des Verzeichnisses):

Code:

foreach (string Datei in FileArray)
        {
            Session theSession = Session.GetSession();
            Step214Importer SI214;
            SI214 = theSession.DexManager.CreateStep214Importer();
            SI214.InputFile = Datei;
            SI214.ImportTo = NXOpen.Step214Importer.ImportToOption.NewPart;

            String Output = Datei.Replace(".stp", ".prt");

            SI214.FlattenAssembly = true;
            SI214.SimplifyGeometry = true;
            SI214.LayerDefault = 1;
            SI214.SettingsFile = "C:\\Program Files\\Siemens\\NX 8.0\\step214ug\\step214ug.def";
            SI214.ObjectTypes.Curves = true;
            SI214.ObjectTypes.Surfaces = true;
            SI214.ObjectTypes.Solids = true;
            SI214.ObjectTypes.Csys = true;
            SI214.ObjectTypes.ProductData = true;
            SI214.ObjectTypes.PmiData = true;
            SI214.SewSurfaces = true;
            SI214.Optimize = true;
            SI214.FileOpenFlag = false;
            NXObject nXObject1;
            nXObject1 = SI214.Commit();
            SI214.Destroy() 
        }



Da ich weiß, das man direkt mit dem Schnittstellentool auch manuell mehrere Dateien gleichzeitig konvertieren kann (was unheimlich Zeit spart  ), wüsste ich gern, ob das auch per Journalaufruf geht?

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

gfx-toxic.de
Mitglied
Konstruktion / Anwenderbetreuung


Sehen Sie sich das Profil von gfx-toxic.de an!   Senden Sie eine Private Message an matthias-p  Schreiben Sie einen Gästebucheintrag für matthias-p

Beiträge: 501
Registriert: 09.06.2006

Teamcenter 11.3 / NX 11
Windows 10

erstellt am: 15. Apr. 2014 14:23    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 creischn 10 Unities + Antwort hilfreich

Hi!

Du kannst die NX Translatoren auch über die Kommandozeile starten.

Im Namensraum (namespace) System.Diagnostics gibt es die Prozess Klasse.
Die hat eine statische Methode Process.Start(string).

Hier könntest du das ganze Aufrufen...

Code:

foreach (string Datei in FileArray)
        {
              System.Diagnostics.Start("DEINPFAD"/step203ug/step203ug.cmd o=....usw)

        }


Achja da ich mehr mit C# unterwegs bin, kann das sein, dass es in VB n bisschen anders aussieht. Aber das Prinzip ist gleich.
Denk aber daran, dass er gleichzeitig für alle Files den Translator aufmacht...wenn er warten soll, musst du überwachen, wann der Prozess beendet wird. Das geht aber auch mit der Process-Klasse (steht in der MSDN - Doku Stichwort .WaitForExit)

Die Parameter für das Tool stehen in der NX Doku:

Zitat:

How do I execute the translators from a command line?

The command line interface allows you to translate files without using the NX interactive menus. You can get to the command line prompt with the following steps:

    Ensure that your NX environment variables are properly set up. This includes UGII_BASE_DIR and UGII_ROOT_DIR.

    Set your PATH variable should include UGII_ROOT_DIR.

    Execute the appropriate script to initiate the translator. Note that if no parameters are passed to the script, the external user interface will automatically start. Generally, you want to pass the name of the file you want to translate. The output file name is the same as the input file name, except with the appropriate file extension.

For example, if you want to invoke an external GUI for the STEP AP203 translator run the command in the command prompt. (Similar command scripts are available for IGES, STEP AP214, and DXF/DWG translator products in their respective kit directories.)

    $%UGII_BASE_DIR%/step203ug/step203ug.cmd

If you want to run the translator on a command line you have to pass some input parameters to the command script. The input parameters are as follows:

    <input_file>

    o=<output_file>

    d=<def_file>

    l=<log_file>

For Teamcenter you need to set the following additional options:

    −pim=yes

    −u=<user_name>

    −p=<pass_word>

    −g=<group>

For example, when running the IGES translator, the options may look like this:

$%UGII_BASE_DIR%\iges\iges.cmd ”D:\Iges\Solid.prt” o=”D:\temp\Solid.igs”

d=”D:\iges\igesexport.def” l=”D:\temp\iges_log.log”

If you want to run in Teamcenter mode, then;

$%UGII_BASE_DIR%\iges\iges.cmd ”@DB/000201/A” o=”D:\temp\Solid.igs”

d=”D:\iges\igesexport.def” l=”D:\temp\iges_log.log” —pim=yes

–u=username –p=password –g=devlop

Note

The input file name must be the first parameter given on the command line. If you do not specify options for output file or log file, the default path will be assigned, such as, the current work directory.


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

creischn
Mitglied
Konstruktuer


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

Beiträge: 16
Registriert: 04.03.2014

erstellt am: 22. Apr. 2014 09:02    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

Vielen Dank!
Die Doku liegt mir leider so nicht vor.
Allerdings löst das mein Problem nicht so ganz. Auch mit dem direkten Aufruf kann ich nur einzelne Dateien nacheinander kompilieren und muss für jede das Programm neu aufrufen. Ich finde keine Möglichkeit mehrere Dateien oder gar ein ganzes Verzeichnis an den Konverter zu übergeben.
Hat da jemand noch eine Idee?

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

gfx-toxic.de
Mitglied
Konstruktion / Anwenderbetreuung


Sehen Sie sich das Profil von gfx-toxic.de an!   Senden Sie eine Private Message an matthias-p  Schreiben Sie einen Gästebucheintrag für matthias-p

Beiträge: 501
Registriert: 09.06.2006

Teamcenter 11.3 / NX 11
Windows 10

erstellt am: 22. Apr. 2014 10:59    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 creischn 10 Unities + Antwort hilfreich

Hi,

ich versteh dein Problem im Moment nicht ganz. In der ForEach-Schleife werden doch schon mehrere STEP´s nacheinander umgewandelt...Der Konverter den du glaub ich meinst, macht im Hintergrund eigentlich auch nix anderes.

Du kannst doch in deiner "FileArray"-Variablen mehrere Datei angeben die dann nacheinander abgearbeitet werden - ähnlich dem Konverter.

Oder suchst du in dem Journal nur die Möglichkeit interaktiv ein Verzeichnis auszuwählen? Also sprich einen Möglichkeit dein "FileArray" zu füllen?!

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

gfx-toxic.de
Mitglied
Konstruktion / Anwenderbetreuung


Sehen Sie sich das Profil von gfx-toxic.de an!   Senden Sie eine Private Message an matthias-p  Schreiben Sie einen Gästebucheintrag für matthias-p

Beiträge: 501
Registriert: 09.06.2006

Teamcenter 11.3 / NX 11
Windows 10

erstellt am: 22. Apr. 2014 11:00    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 creischn 10 Unities + Antwort hilfreich

Hi,

ich versteh dein Problem im Moment nicht ganz. In der ForEach-Schleife werden doch schon mehrere STEP´s nacheinander umgewandelt...Der Konverter den du glaub ich meinst, macht im Hintergrund eigentlich auch nix anderes.

Du kannst doch in deiner "FileArray"-Variablen mehrere Datei angeben die dann nacheinander abgearbeitet werden - ähnlich dem Konverter.

Oder suchst du in dem Journal nur die Möglichkeit interaktiv ein Verzeichnis auszuwählen? Also sprich einen Möglichkeit dein "FileArray" zu füllen?!

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

creischn
Mitglied
Konstruktuer


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

Beiträge: 16
Registriert: 04.03.2014

erstellt am: 22. Apr. 2014 11:18    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

Ja richtig. Die Umwandlung mit meinem ursprünglichen Programm funktioniert auch. So ist es nicht. Aber nach jedem Teil, das ich konvertiere, wird der Konverter geschlossen und wieder geöffnet. Bei 10 Teilen macht das nichts. Bei 1000 wird es lästig. (Ich hab 1000 xD)
Ich meine ob man nicht dem Konverter direkt sagen kann, dass er alle Dateien am Stück konvertieren soll.
Als Anhaltspunkt: wenn man den Konverter einfach par .exe aufmacht, bekommt man eine rudimentäre GUI in die man auch mehrere STEP öffnen kann. die werden dann direkt am Stück nacheinander konvertiert.
Vielleicht steh ich ja auch auf dem Schlauch.
Mittlerweile hab ich mir dieses hier überlegt:

Code:
Process toll = new Process();
          toll.StartInfo.FileName = "cmd.exe";
          toll.StartInfo.UseShellExecute = false;
          toll.StartInfo.RedirectStandardInput = true;
          toll.StartInfo.RedirectStandardOutput = true;
          toll.Start();
          toll.StandardInput.WriteLine("cd C:\\Program Files\\Siemens\\NX 8.0\\STEP203UG\\");
          foreach (string Datei in Dateiarray)
          {
              toll.StandardInput.WriteLine("step203ug.cmd "+Datei);
          }
          toll.WaitForExit();

Das müsste ja den selben Effekt haben. Nur motzt er mich dann wegen nicht vorhandener dlls an. Ich vermute ich muss noch die richtige Umgebung setzen?

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

creischn
Mitglied
Konstruktuer


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

Beiträge: 16
Registriert: 04.03.2014

erstellt am: 22. Apr. 2014 12:03    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

Ok, das dll Problem hat sich erledigt. hab mit

Code:
toll.StandardInput.WriteLine("\"C:\\Program Files\\Siemens\\NX 8.0\\UGII\\ugiicmd.bat\" \"C:\\Program Files\\Siemens\\NX 8.0\"");

meine Umgebung bekommen.
Jetzt ist das Programm schon sehr viel schneller. Danke für die Tipps. Zwar noch nicht so schnell wie die GUI Variante aber lange nicht so langsam wie ursprünglich.

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)2024 CAD.de | Impressum | Datenschutz