Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  NX Programmierung
  igs-Import per Makro

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:  igs-Import per Makro (1188 mal gelesen)
Tommes01
Mitglied
Konstrukteur


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

Beiträge: 749
Registriert: 21.02.2003

erstellt am: 13. Dez. 2013 16: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

Hallo,

ich bin relativ unerfahren im Programmieren, deshalb folgende (einfache?) Frage:

Ich möchte per Makro eine iges-Datei importieren.
Der Pfad der iges-Datei ist in einer Expression vorhanden.
Der Dateiname ist nicht bekannt, d.h. sie soll per Exlorer (in vorgegebenem Pfad) ausgewählt werden.

Wie ist das machbar?

Danke für eure Hilfe.
Tommes

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

Tommes01
Mitglied
Konstrukteur


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

Beiträge: 749
Registriert: 21.02.2003

Solid Edge 2021 MP4
NX 1953
NX 2206 (Test)

erstellt am: 16. Dez. 2013 14:47    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

Hmm gibts keine Lösungsansätze?

Wie kann ich denn den Verzeichnisbaum zur Auswahl einer Datei per Journal öffnen?

Gruß Tommes

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: 16. Dez. 2013 18: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 Tommes01 10 Unities + Antwort hilfreich

Hallo Tommes,

der Ansatz wird vermutlich ohne grundsätzliche Kenntnisse deinerseits nicht viel nützen, dennoch mal der Versuch:

Die Expression auszulesen geht direkt über Expobj.Equation. Das ergibt einen String. Der kann einem FileOpenDialog als Startverzeichnis mitgegeben werden. Sobald der Dialog geöffnet und ein Dateiname angegeben wird, kommt wieder ein String zurück. Der wiederum kann als Name der Iges-Datei verwendet werden.

Gruß, Michael

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

Tommes01
Mitglied
Konstrukteur


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

Beiträge: 749
Registriert: 21.02.2003

erstellt am: 17. Dez. 2013 14:14    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... mit ein wenig probieren hab ich die Dateiauswahl per Verzeichnisbaum jetzt hinbekommen.

Jetzt hab noch folgendes Problem beim Import der Datei:
Was muss ich beim Import als OutputFile angeben um immer in das jeweilig aktuelle File zu importieren?

igesImporter1.OutputFile = xxx

Gruß Tommes

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: 17. Dez. 2013 17:54    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 Tommes01 10 Unities + Antwort hilfreich

Dann lass' es versuchsweise mal weg oder übergib' einen leeren String.

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

Tommes01
Mitglied
Konstrukteur


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

Beiträge: 749
Registriert: 21.02.2003

erstellt am: 21. Jan. 2014 09:58    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


2014-01-2109-48-31_IGESImport.jpg

 
Hallo,

ich hab den iges-Import per Makro leider immer noch nicht hinbekommen. Ich hänge nach wie vor am igesImporter1.OutputFile =???
Ich will die iges Datei in das momenatan aktive prt einlesen. Beim Übergeben eines leeren Strings kommt folgende Fehlermeldung (siehe Anhang).

Kann mir jemand weiterhelfen?

Gruß Tommes

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: 21. Jan. 2014 10:49    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 Tommes01 10 Unities + Antwort hilfreich

Hallo,

gib für "OutputFile" mal eine temporäre Datei an, z.B.: "C:\temp\import_iges.prt"

Ich hab auch mal ein Programm für den IGES-Import geschrieben.
Ich bin mir nicht mehr ganz sicher, aber ich glaube, da wird einfach temporär diese Datei erstellt und danach wieder automatisch gelöscht, zumindest finde ich in meinem Code keine direkte Anweisung zum Löschen!

Wenn es nicht klappt, sag nochmal Bescheid, dann poste ich mal den ganzen Code!

Viel Erfolg! 

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

Tommes01
Mitglied
Konstrukteur


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

Beiträge: 749
Registriert: 21.02.2003

erstellt am: 21. Jan. 2014 10:57    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

Hi pleudel,

danke für deine Hilfe.
Hab es mit der temporären Datei mal probiert. Jetzt importiert er zwar was, ich weiß allerdings nicht wohin...
Die temporäre Datei ist nach Ablauf des Makros nicht mehr da und im aktiven prt ist auch nichts angekommen.

Wäre super, wenn du deinen Code mal posten könntest!

Gruß Tommes

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: 21. Jan. 2014 11:05    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 Tommes01 10 Unities + Antwort hilfreich

So, hier mein Code:

Private Sub Import_IGES(Datei As String)

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

        Dim igesImporter1 As IgesImporter


'---------------------------Abfrage, welche NX-Version gerade geöffnet ist (weil bei uns mehrere Versionen im Einsatz sind), mittlerweile glaube ich aber, dass es auch einfach mit einer .def geht, was da der Unterschied ist, weiß ich leider nicht...
        If theSession.GetEnvironmentVariableValue("UGII_FULL_VERSION").Contains("v7.5") Then
            igesImporter1.SettingsFile = "D:\UGNX75\iges\igesimport.def"
        ElseIf theSession.GetEnvironmentVariableValue("UGII_FULL_VERSION").Contains("v8.0") Then
            igesImporter1.SettingsFile = "D:\UGNX8\IGES\igesimport.def"
        ElseIf theSession.GetEnvironmentVariableValue("UGII_FULL_VERSION").Contains("v8.5") Then
            igesImporter1.SettingsFile = "D:\UGNX85\IGES\igesimport.def"
        End If


'---------------------------diverse Einstellungen
        igesImporter1 = theSession.DexManager.CreateIgesImporter()
        igesImporter1.CopiousData = IgesImporter.CopiousDataEnum.LinearNURBSpline
        igesImporter1.SmoothBSurf = True
        igesImporter1.LayerDefault = 1
        igesImporter1.GeomFixupTol = 0.0127
        igesImporter1.ObjectTypes.Curves = True
        igesImporter1.ObjectTypes.Surfaces = True
        igesImporter1.ObjectTypes.Solids = True
        igesImporter1.ObjectTypes.Annotations = True
        igesImporter1.ObjectTypes.Structures = True
        igesImporter1.SimplifyGeometry = True
        theSession.SetUndoMarkName(markId1, "Import from IGES Options Dialogfenster")
        igesImporter1.ImportTo = IgesImporter.ImportToEnum.WorkPart
        igesImporter1.InputFile = Datei

'--------------------------- besagtes Outputfile
        igesImporter1.OutputFile = "C:\temp\import_iges.prt"


        Dim markId2 As Session.UndoMarkId
        markId2 = theSession.SetUndoMark(Session.MarkVisibility.Invisible, "Import from IGES Options")

        igesImporter1.FileOpenFlag = False
        igesImporter1.LayerMask = "0-99999"

        Dim nXObject1 As NXObject
        nXObject1 = igesImporter1.Commit()

        theSession.DeleteUndoMark(markId2, Nothing)
        theSession.SetUndoMarkName(markId1, "Import from IGES Options")

        igesImporter1.Destroy()

    End Sub

Ich muss hier allerdings erwähnen, dass in ein bereits geöffnetes Part importiert wird!
Ist das bei dir auch der Fall oder wohin willst du exportieren?
Dann müssen wir den Code noch etwas anpassen, und zwar ein leeres Part erstellen bzw. ein vorhandenes Startpart irgendwohin kopieren und dann dort hinein importieren!

Grüße

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



Technischer Produktdesigner (m/w/d) Automatisierungstechnik
Die igus GmbH ist ein inhabergeführtes Unternehmen mit Hauptsitz im Großraum Köln. Als ?Hidden Champion? sind wir ein internationaler agierender Hersteller von technischen Produkten aus Hochleistungskunststoffen. Unsere Produkte sind vielseitig und lassen sich in über 50 verschiedenen Branchen wiederfinden, darunter in der Automobilindustrie, der Raumfahrt oder im 3D-Druck. Die Kommunikation zwischen unseren weltweit über 4....
Anzeige ansehenProduktdesign, Industriedesign
Tommes01
Mitglied
Konstrukteur


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

Beiträge: 749
Registriert: 21.02.2003

erstellt am: 21. Jan. 2014 13:21    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

Hi,

habs hinbekommen, vielen Dank!
Hatte einen Fehler im Output-File.

Gruß
Tommes

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