Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  NX Programmierung
  Zeichnung Tiff via CGM

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:  Zeichnung Tiff via CGM (1755 mal gelesen)
Maschinenmann
Mitglied


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

Beiträge: 4
Registriert: 28.09.2011

Software:
Autocad 2011
Autocad Mechanical 2011
Creo 2.0
CatiaV5 R19
NX 7.5.5.3
NX 10.0.1.4 MP3<P>Intel Core i7 4440K
Nvidia Geforce GTX260

erstellt am: 31. Jul. 2015 12:12    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 Nx Spezis,

ich habe da ein kleines Problem mit der cgm2tiff.exe. Um unsere Abläufe wenigstens ein bisschen zu automatisieren habe ich mit einem Kollegen auf Basis des GTAC Solution Centers ein Journal zum Tiff Export erstellt. Es funktioniert auch alles wunderbar, wenn die Zeichnungen mit NX 10 erstellten wurden sind. Auch das ändern des Names der Tiff Datei in unsere Namenskonvention funktioniert super. Anders sieht es aus, wenn die Zeichnungen mit NX 7.5 oder älter erstellt wurden sind und diese dann in NX 10 bearbeitet werden. Dort werden nur die CGM Files geschrieben, jedoch erzeugt die cgm2tiff.exe mir keine Tiff Dateien. Die Zeichnungsblätter sind auch nicht weiß im Hintergrund sonder ehr gräulich. Ich arbeite noch nicht so lange mit NX, bitte verzeiht mir   . Hat vielleicht einer eine Idee woran das liegen könnte?

Hier noch der Code

Code:

Option Strict Off
Imports System
Imports System.IO

Imports NXOpen
Imports NXOpen.Utilities
Imports NXOpen.UF
Imports NXOpen.Drawings
Imports System.Text

Module make_cgm_and_tif_of_all_drawing_sheets

    Dim theSession As Session = Session.GetSession()
    Dim ufs As UFSession = UFSession.GetUFSession()
    Dim plot As UFPlot = ufs.Plot
    Dim lw As ListingWindow = theSession.ListingWindow

    Sub Echo(ByVal output As String)
      theSession.ListingWindow.Open()
      theSession.ListingWindow.WriteLine(output)
      theSession.LogFile.WriteLine(output)
    End Sub

    Sub Main()
        Dim iPosition As Integer
        Dim StrNewpartName As String
        Dim iSheetsNumber As Integer
        Dim isheetsCount As Integer
        '
        ' ----------------------------------------------- make sure we have a part

        Dim this_part As NXOpen.Tag
        Try

            this_part = theSession.Parts.Work.Tag

        Catch ex As Exception

            If this_part = NXOpen.Tag.Null Then

                MsgBox("You need an open part to run this program.", MsgBoxStyle.OkOnly)

                Exit Sub    ' no part, so exit program gracefully

            End If

        End Try

        ' -------------------------------------------------------------------------

        Dim workPart As Part = theSession.Parts.Work
        Dim workView As View = theSession.Parts.Work.Views.WorkView

        Dim drawingSheets As DrawingSheet()
        drawingSheets = workPart.DrawingSheets.ToArray

        Dim mySheet As DrawingSheet
        Dim JobName As String = Nothing
        Dim tmp_dir As String = "J:\tif_zeichnungen\he"
        Dim tmp_dir_2 As String = "J:\tif_zeichnungen\he"
        Dim partName As String = workPart.Leaf.ToString

        Dim sheetName As String
        Dim ii As Integer
        Dim cgmFileName As String
        Dim tifFileName As String

        Dim jobOptions As UFPlot.JobOptions
        Dim bannerOptions As UFPlot.BannerOptions = Nothing
        Dim iCounter As Integer

        plot.AskDefaultJobOptions(jobOptions)
        plot.AskDefaultBannerOptions(bannerOptions)

        'ufs.UF.TranslateVariable("UGII_TMP_DIR", tmp_dir)
        iSheetsNumber = 1
        iCounter = 0
        iSheetsCount = 0
        For Each mySheet In drawingSheets '----------- Iterate through the sheets
            iSheetsCount = iSheetsCount + 1                'Anzahl der Sheets ermitteln
        Next
        For Each mySheet In drawingSheets '----------- Iterate through the sheets

            mySheet.Open()

            ' ------------------------------------------------------------ Update Views

            'theSession.Parts.Work.DraftingViews.UpdateViews( _
            'DraftingViewCollection.ViewUpdateOption.All, mySheet)

            ' ---------------------------------------------------------------- Plotting

            sheetName = "Printing Sheet: " + mySheet.Name

            cgmFileName = tmp_dir + "\" + partName + "_" + mySheet.Name + ".cgm"

            ufs.Ui.SetPrompt("Waiting for CGM file: " & cgmFileName)
            plot.SaveCgm(mySheet.Tag, jobOptions, JobName, bannerOptions, cgmFileName)

            ' does the file exist?

            Dim status As Integer = -1

            Do
                ufs.Cfi.AskFileExist(cgmFileName, status)
            Loop Until status = 0

            ' the CGM is there, so do the conversion
            tifFileName = tmp_dir_2 + "\" + partName + "_" + mySheet.Name + ".tif"
            ufs.Ui.SetPrompt("Creating TIFF File..." & tifFileName)

            '  this is easy but will always use 72 dpi resolution:
            ' plot.ConvertFile(cgmFileName, UFPlot.Format.TiffFormat, tifFileName)

            ' So to use a different resolution do this instead:
            Dim baseDir As String = Nothing
            ufs.UF.TranslateVariable("UGII_BASE_DIR", baseDir)
            Dim exPath As String = String.Concat(baseDir, "\NXPLOT\cgm2tiff.exe")
            Dim proc As New Diagnostics.Process
            proc.StartInfo.FileName = exPath
            proc.StartInfo.Arguments = " " & cgmFileName & " " & tifFileName & " -resolution=400 -mono"
            proc.StartInfo.WindowStyle = Diagnostics.ProcessWindowStyle.Hidden
            proc.Start()
            'Do
            'ufs.Cfi.AskFileExist(tifFileName, status)
            system.threading.thread.sleep(2000)
            If File.Exists(tmp_dir_2 + "\" + partName + "_" + mySheet.Name + ".tif") Then
                iPosition = InStr(partName, "_dwg")                                        'gibt die Stelle zurück, an der "_dwg" in partname beginnt
                If iPosition <> 0 Then                                                      'wenn iPosition = 0 dann kein _dwg im String
                    StrNewpartName = Mid(partname, 1, iPosition - 1)                        'Mid gibt Teilstring aus partname ab Stelle 1 und der Länge iPosition -1 zurück
                End If
                If iSheetsCount = 1 Then
                    If File.Exists(tmp_dir_2 + "\" + StrNewpartName + "_" + CStr(iSheetsNumber) + ".tif") Then
                        My.Computer.FileSystem.DeleteFile(tmp_dir_2 + "\" + StrNewpartName + ".tif")
                    End If
                    My.Computer.FileSystem.RenameFile(tmp_dir_2 + "\" + partName + "_" + mySheet.Name + ".tif", StrNewpartName + ".tif")
                Else
                    If File.Exists(tmp_dir_2 + "\" + StrNewpartName + "_" + CStr(iSheetsNumber) + ".tif") Then
                        My.Computer.FileSystem.DeleteFile(tmp_dir_2 + "\" + StrNewpartName + "_" + CStr(iSheetsNumber) + ".tif")
                    End If
                    My.Computer.FileSystem.RenameFile(tmp_dir_2 + "\" + partName + "_" + mySheet.Name + ".tif", StrNewpartName _
                                                      + "_" + CStr(iSheetsNumber) + ".tif")
                    iSheetsNumber = iSheetsNumber + 1
                End If
                My.Computer.FileSystem.DeleteFile(tmp_dir + "\" + partName + "_" + mySheet.Name + ".cgm")
            End If
        Next '------------------------------------------ End of the FOR-NEXT loop
            ufs.Ui.SetPrompt("Finished")
    End Sub

   

    Public Function GetUnloadOption(ByVal dummy As String) As Integer

        GetUnloadOption = UFConstants.UF_UNLOAD_IMMEDIATELY

  End Function
   
End Module



Grüße
und
ein schönes Wochenende

[Diese Nachricht wurde von Maschinenmann am 31. Jul. 2015 editiert.]

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: 31. Jul. 2015 16: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 Nur für Maschinenmann 10 Unities + Antwort hilfreich

Hallo Maschinenmann,

wenn die cgm's erzeugt werden, kannst Du mal versuchen, sie ohne Journal, d.h. in einer DOS-Shell zu konvertieren. Das Journal stösst ja nur den externen Prozess an. Evtl. kommt dann auch eine Fehlermeldung aus der mehr hervorgeht.

Gruß, Michael

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

Maschinenmann
Mitglied


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

Beiträge: 4
Registriert: 28.09.2011

Software:
Autocad 2011
Autocad Mechanical 2011
Creo 2.0
CatiaV5 R19
NX 7.5.5.3
NX 10.0.1.4 MP3<P>Intel Core i7 4440K
Nvidia Geforce GTX260

erstellt am: 01. Aug. 2015 09: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

Hallo Michael,

danke für deine Antwort. Ich habe folgende Dinge probiert:

1.) Ich habe nochmal das Journal laufen lassen und mir dabei die cgm Dateien abgegriffen, die Konvertierung ließ ich über die Dos-Shell laufen. Es gab keine Fehlermeldungen und leider auch keine Tiff Dateien.

2.) Als zweiten Weg bin ich über Datei-> Exportieren-> CGM gegangen. Anschließend wieder über die Dos-Shell konvertiert und siehe da ein Tiff wurde erzeugt.

Hast du vielleicht eine Idee?
Meine Neugier ist geweckt, dass bekomme ich noch heraus warum es nicht mit dem Journal klappen will.


Grüße
Patrick

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



Maschineneinrichter / Zerspanungsmechaniker (m/w/d) für den Bereich Kunststoffe

Seit über 35 Jahren fertigen wir Präzisions-Dichtungen und Maschinenelemente aus technischen Kunststoffen und Elastomeren, wie z.B. PUR, PTFE, POM, PI, PEEK, PA, PE, PVDF und verschiedenen PTFE-Compounds.

Unsere Produkte werden in allen Bereichen der Industrie eingesetzt, z.B. in Hydraulik und Pneumatik; im Bergbau; in Groß- und Schwermaschinenbau; in Apparatebau, Anlagenbau und Chemie und in der Antriebs- und Automatisierungstechnik....

Anzeige ansehenFertigung, Produktion
Maschinenmann
Mitglied


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

Beiträge: 4
Registriert: 28.09.2011

Software:
Autocad 2011
Autocad Mechanical 2011
Creo 2.0
CatiaV5 R19
NX 7.5.5.3
NX 10.0.1.4 MP3<P>Intel Core i7 4440K
Nvidia Geforce GTX260

erstellt am: 01. Aug. 2015 12: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

Hallo Michael,

ich bin es nochmal. Endlich bin ich drauf gekommen, des Rätsels Lösung war so einfach  . Wenn das Journal durch die Zeichnungsblätter läuft holt es sich die Namen von sheet1, sheet2 usw.. Meine Kollegen habe das früher immer benannt wie sie lustig waren, so stand im Blatt Sheet 1 und nicht Sheet_1, das war der Fehler. Er mochte einfach das Leerzeichen nicht. Jetzt läuft das Ganze.

Vielleicht kannst du das Journal ja gebrauchen, jetzt funzt es.

Gruß

Patrick

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