| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für NX |
Autor
|
Thema: CGM export (6066 mal gelesen)
|
JoeG Mitglied Systemadmin NX und Autocad
Beiträge: 122 Registriert: 18.10.2002 NX3
|
erstellt am: 06. Apr. 2006 07:15 <-- editieren / zitieren --> Unities abgeben:
Hallo Leute Kann mir einer helfen ich mochte ein CGM aus der aktuellen Zeichnung exportieren Ich komm einfach nicht dahinter wie ich die notwendigen Parameter einfügen muß. Imports NXOpen.UF Module NXJournal Sub Main() Dim theUfSession As UFSession = UFSession.GetUFSession() theUfSession.cgm.exportcgm( , ,"D:\x.cgm") End Sub End Module Danke Joe
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
SMario Mitglied Konstrukteur/Designer
Beiträge: 114 Registriert: 31.03.2005 FSC Celsius Workstation CPU: Pentium 4 3.20GHz Speicher: 2.00GB RAM Grafik: Quadro FX 1400 Monitor: FSC P20-2 OS: Windows XP SP2 UG: NX4.0.2.2
|
erstellt am: 19. Apr. 2006 12:06 <-- editieren / zitieren --> Unities abgeben: Nur für JoeG
Hallo Joe, Zitat: Kann mir einer helfen ich mochte ein CGM aus der aktuellen Zeichnung exportieren Ich komm einfach nicht dahinter wie ich die notwendigen Parameter einfügen muß.
ich habe mal dein Journal angepasst, ich denke so sieht man am besten, wie es funktioniert... Code:
Imports NXOpen Imports NXOpen.Drawings Imports NXOpen.UFModule NXJournal Sub Main() Dim theSession As Session = Session.GetSession() Dim theUfSession As UFSession = UFSession.GetUFSession() Dim workPart As Part = theSession.Parts.Work Dim drawingSheet As DrawingSheet = workPart.DrawingSheets().CurrentDrawingSheet Dim cgm As UFCgm = theUfSession.cgm Dim export_options As UFCgm.ExportOptions cgm.AskDefaultExportOptions(export_options) theUfSession.cgm.exportcgm(workPart.DrawingSheets().CurrentDrawingSheet.Tag, _ export_options, "D:\x.cgm") End Sub End Module
Ich hoffe es klappt. Die Zeile mit "ExportCGM" habe ich mit "_" unterbrochen, damit es besser auf die Seite passt. Falls es Probleme gibt, einfach das "_"-Zeichen löschen und wieder den Befehl in eine einzige Zeile: theUfSession.cgm.exportcgm(workPart.DrawingSheets().CurrentDrawingSheet.Tag, export_options, "D:\x.cgm") Ciao Mario Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
JoeG Mitglied Systemadmin NX und Autocad
Beiträge: 122 Registriert: 18.10.2002 NX3
|
erstellt am: 19. Apr. 2006 12:23 <-- editieren / zitieren --> Unities abgeben:
|
JoeG Mitglied Systemadmin NX und Autocad
Beiträge: 122 Registriert: 18.10.2002 NX3
|
erstellt am: 19. Apr. 2006 14:07 <-- editieren / zitieren --> Unities abgeben:
|
SMario Mitglied Konstrukteur/Designer
Beiträge: 114 Registriert: 31.03.2005 FSC Celsius Workstation CPU: Pentium 4 3.20GHz Speicher: 2.00GB RAM Grafik: Quadro FX 1400 Monitor: FSC P20-2 OS: Windows XP SP2 UG: NX4.0.2.2
|
erstellt am: 19. Apr. 2006 14:56 <-- editieren / zitieren --> Unities abgeben: Nur für JoeG
Hallo Joe, Zitat: Beim Exportieren mit dem Programm werden die Schriftarten nicht richtig dargestellt. Kann mir einer sagen wie ich das einstellen kann?
schau mal in der Datei: %UGII_BASE_DIR%\UGII\cgmdef.txt Dort werden die zu ex- und importierenden Schriftarten difiniert. Ein Problem gibt es jedoch: Unigraphics exportiert in "CGM Version 1" Das bedeutet, dass man keinen "Aspect Ratio" für die Schriften definieren kann. Sehr schlecht, aber besser als nichts.. Ciao Mario
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
JoeG Mitglied Systemadmin NX und Autocad
Beiträge: 122 Registriert: 18.10.2002 NX3
|
erstellt am: 19. Apr. 2006 15:59 <-- editieren / zitieren --> Unities abgeben:
|
Ex-Mitglied
|
erstellt am: 20. Okt. 2006 18:52 <-- editieren / zitieren -->
theoretisch müsst es doch auch gehen das man dem proggi sagt wie das cgm heisen soll und das er danach gleich eine routine einleitet um ein dxf zu erzeugen davon oder? ------------------ Lehrer öffnen Türen, doch hindurchgehen musst du selbst. Es gibt einen ewigen Wettkampf zwischen der Natur und den Ingenieuren: Die Ingenieure versuchen, immer idioten-sicherere Systeme zu bauen, die Natur versucht, immer bessere Idioten zu bauen
Bis jetzt gewinnt die Natur. |
SMario Mitglied Konstrukteur/Designer
Beiträge: 114 Registriert: 31.03.2005 FSC Celsius Workstation CPU: Pentium 4 3.20GHz Speicher: 2.00GB RAM Grafik: Quadro FX 1400 Monitor: FSC P20-2 OS: Windows XP SP2 UG: NX4.0.2.2
|
erstellt am: 13. Nov. 2006 13:40 <-- editieren / zitieren --> Unities abgeben: Nur für JoeG
Moin, Zitat: Original erstellt von isegal: theoretisch müsst es doch auch gehen das man dem proggi sagt wie das cgm heisen soll und das er danach gleich eine routine einleitet um ein dxf zu erzeugen davon oder?
naja, ich lass mich mal breitschlagen. Hier hast du mein Journal um eine Zeichnung in DWG zu konvertieren.
Ist ein bischen gekürzt, aber sollte funktionieren: Code:
' ' Export active drawing to dwg in directory N:\dwg\<UserName> ' Option Strict Off Imports System Imports System.ComponentModel Imports System.Diagnostics Imports System.IO Imports System.Text Imports NXOpen Imports NXOpen.UF Imports NXOpen.Drawings Imports NXOpen.Part Imports Microsoft.Win32 Imports Microsoft.VisualBasicModule ExportDWG Dim theSession As Session = Session.GetSession() Private ERROR_FILE_NOT_FOUND As Integer = 2 Private ERROR_ACCESS_DENIED As Integer = 5 Dim ****** As Random******erator = New Random******erator Dim RandomKey As String = ******.Generate() Sub Main If Not theSession.Parts.Work Is Nothing Then s.Ui.SetStatus("Setting up needed variables...") Dim workPart As Part = theSession.Parts.Work Dim displayPart As Part = theSession.Parts.Display Dim drawingSheet As DrawingSheet = workPart.DrawingSheets().CurrentDrawingSheet Dim s As UFSession = UFSession.GetUFSession() Dim cgm As UFCgm = s.cgm Static sheetName As String = CType(drawingSheet.Name, String) Static dwgName As String = CType(workPart.Leaf, String) Static fullpath As String = CType(workPart.FullPath, String) Dim p As System.IO.Path Dim partpath As String = CType(p.GetDirectoryName(fullpath), String) Dim basename As String = dwgName & "_" & sheetName Dim temp_cgm As String = Environ("TEMP").ToString & "\" & RandomKey & ".cgm" Dim temp_part_name As String = Environ("TEMP").ToString & "\" & RandomKey & ".prt" Dim export_options As UFCgm.ExportOptions Dim import_options As UFCgm.ImportOptions s.Ui.SetStatus("Exporting to temporary cgm-file...") cgm.AskSessionExportOptions(export_options) export_options.Colors = export_options.Colors.AsDisplayedColors 'export_options.Fonts = export_options.Fonts.NxFonts export_options.Fonts = export_options.Fonts.DefaultFileFonts export_options.Text_Mode = export_options.Text_Mode.TextAsCharacters export_options.Tolerance = 0.0001 export_options.Vdc_Mode = export_options.Vdc_Mode.RealVdc export_options.Widths = export_options.Widths.StandardWidths cgm.SetSessionExportOptions(export_options) If System.IO.File.Exists(temp_cgm) = True Then System.IO.File.Delete(temp_cgm) End If cgm.ExportCgm(workPart.DrawingSheets().CurrentDrawingSheet.Tag, export_options, temp_cgm) If System.IO.File.Exists(temp_part_name) = True Then System.IO.File.Delete(temp_part_name) End If s.Ui.SetStatus("Creating temporary Unigraphics part-file...") Dim basePart1 As BasePart basePart1 = theSession.Parts.NewBaseDisplay(temp_part_name, Part.Units.Millimeters) workPart = theSession.Parts.Work displayPart = theSession.Parts.Display Dim layout1 As Layout = CType(workPart.Layouts.FindObject("L1"), Layout) Dim view1 As ModelingView = CType(workPart.ModelingViews.FindObject("TOP"), ModelingView) layout1.ReplaceView(workPart.ModelingViews.WorkView, view1, True) s.Ui.SetStatus("Importing temporary cgm-file...") cgm.InitImportOptions(import_options) cgm.ImportCgm(temp_cgm, import_options) If System.IO.File.Exists(temp_cgm) = True Then System.IO.File.Delete(temp_cgm) End If workPart.ModelingViews.WorkView.Fit() s.Ui.SetStatus("Saving temporary Unigraphics part-file...") Dim partSaveStatus1 As PartSaveStatus theSession.Parts.Work.Save(Part.SaveComponents.True, Part.CloseAfterSave.False, partSaveStatus1) partSaveStatus1.Dispose() s.Ui.SetStatus("Starting conversion of temporary Unigraphics part-file...") If Not Directory.Exists("N:\dwg\" & Environment.UserName) Then Directory.CreateDirectory("N:\dwg\" & Environment.UserName) End If Dim dxfdwg As String = """" & Environ("UGII_BASE_DIR").ToString & "\dxfdwg\dxfdwg.exe""" Dim deffile As String = """d=" & Environ("UGII_BASE_DIR").ToString & "\dxfdwg\dxfdwg.def""" Dim tempfile As String = """" & Environ("TEMP").ToString & "\" & RandomKey & ".prt""" Dim logfile As String = """l=" & Environ("TEMP").ToString & "\" & RandomKey & ".log""" Dim outfile As String = """o=N:\dwg\" & Environment.UserName & "\" & basename & ".dwg""" Dim mode As String = """m=auto""" Dim args As String = tempfile & " " & outfile & " " & logfile & " " & deffile & " " & mode Dim convertcmd As New Process() Try convertcmd.StartInfo.FileName = dxfdwg convertcmd.StartInfo.Arguments = args convertcmd.StartInfo.WindowStyle = ProcessWindowStyle.Normal convertcmd.Start() Catch e As Win32Exception If e.NativeErrorCode = ERROR_FILE_NOT_FOUND Then System.Windows.Forms.MessageBox.Show((e.Message + ". Check the path.")) Else If e.NativeErrorCode = ERROR_ACCESS_DENIED Then System.Windows.Forms.MessageBox.Show((e.Message + ". You do not have permission to save the destination file.")) End If End If End Try convertcmd.WaitForExit() theSession.Parts.Work.Close(False, Part.CloseModified.CloseModified, Nothing) Dim oldWorkPart As Part = CType(theSession.Parts.FindObject(dwgName), Part) Dim partLoadStatus1 As PartLoadStatus Dim partCollection_SdpsStatus1 As PartCollection.SdpsStatus partCollection_SdpsStatus1 = theSession.Parts.SetDisplay(oldWorkPart, True, True, partLoadStatus1) partLoadStatus1.Dispose() If System.IO.File.Exists(Environ("TEMP").ToString & "\" & RandomKey & ".log") = True Then System.IO.File.Delete(Environ("TEMP").ToString & "\" & RandomKey & ".log") End If If System.IO.File.Exists(Environ("TEMP").ToString & "\" & RandomKey & ".prt") = True Then System.IO.File.Delete(Environ("TEMP").ToString & "\" & RandomKey & ".prt") End If If System.IO.File.Exists("N:\dwg\" & Environment.UserName & "\" & basename & "_summary.log") = True Then System.IO.File.Delete("N:\dwg\" & Environment.UserName & "\" & basename & "_summary.log") End If If System.IO.File.Exists(partpath & "\" & basename & "_summary.log") = True Then System.IO.File.Delete(partpath & "\" & basename & "_summary.log") End If Else System.Windows.Forms.MessageBox.Show("You tried to export without a loaded Part. Please load a Part first!", "No Active Part Found", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Error, System.Windows.Forms.MessageBoxDefaultButton.Button1) End If End Sub End Module 'function to generate random string <== from http://www.codeproject.com Public Class Random******erator Dim Key_Letters As String = "abcdefghijklmnopqrstuvwxyz" Dim Key_Numbers As String = "0123456789" Dim Key_Chars As Integer = 8 Dim LettersArray As Char() Dim NumbersArray As Char() Protected Friend WriteOnly Property KeyLetters() As String Set(ByVal Value As String) Key_Letters = Value End Set End Property Protected Friend WriteOnly Property KeyNumbers() As String Set(ByVal Value As String) Key_Numbers = Value End Set End Property
Protected Friend WriteOnly Property KeyChars() As Integer Set(ByVal Value As Integer) Key_Chars = Value End Set End Property Function Generate() As String Dim i_key As Integer Dim Random1 As Single Dim arrIndex As Int16 Dim sb As New StringBuilder Dim RandomLetter As String LettersArray = Key_Letters.ToCharArray NumbersArray = Key_Numbers.ToCharArray For i_key = 1 To Key_Chars Randomize() Random1 = Rnd() arrIndex = -1 If (CType(Random1 * 111, Integer)) Mod 2 = 0 Then Do While arrIndex < 0 arrIndex = _ Convert.ToInt16(LettersArray.GetUpperBound(0) * Random1) Loop RandomLetter = LettersArray(arrIndex) If (CType(arrIndex * Random1 * 99, Integer)) Mod 2 <> 0 Then RandomLetter = LettersArray(arrIndex).ToString RandomLetter = RandomLetter.ToUpper End If sb.Append(RandomLetter) Else Do While arrIndex < 0 arrIndex = _ Convert.ToInt16(NumbersArray.GetUpperBound(0) * Random1) Loop sb.Append(NumbersArray(arrIndex)) End If Next Return sb.ToString End Function End Class
Damit alles funktioniert muss ein temporäres Verzeichnis unter der Variable %TEMP% oder %TMP% existieren und man muss Schreibrechte auf dieses Verzeichnis haben. Ich weiss, dass der Code nicht optimal ist, aber tut was er soll: temp. CGM raus -> temp. UG-Part erstellen -> temp. CGM reinfahren -> fertiges DWG rausfahren -> temp. CGM löschen -> Logdateien löschen Die fertige DWG landet im Verzeichnis: N:\dwg\<Username> Für Anregungen und Verbesserungen bin ich gerne dankbar. Ciao Mario
[EDIT] Das Forum zensiert meinen Code . Dann so: die ****** durch "K"e"y"G"e"n" ohne die " ersetzen, sorry dafür. [Diese Nachricht wurde von SMario am 13. Nov. 2006 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied
|
erstellt am: 15. Jan. 2007 15:10 <-- editieren / zitieren -->
wow vielen vielen Dank ------------------ Lehrer öffnen Türen, doch hindurchgehen musst du selbst. Es gibt einen ewigen Wettkampf zwischen der Natur und den Ingenieuren: Die Ingenieure versuchen, immer idioten-sicherere Systeme zu bauen, die Natur versucht, immer bessere Idioten zu bauen
Bis jetzt gewinnt die Natur. ICH BIN DER CADMINIESCHRDÄDÖR |
Ex-Mitglied
|
erstellt am: 15. Jan. 2007 22:05 <-- editieren / zitieren -->
also irgendwie krieg ich mehrere Fehlermeldugnen die mir nix sagen??? for allem in diese zeile Dim ****** As Random******erator = New Random******erator ------------------ Lehrer öffnen Türen, doch hindurchgehen musst du selbst. Es gibt einen ewigen Wettkampf zwischen der Natur und den Ingenieuren: Die Ingenieure versuchen, immer idioten-sicherere Systeme zu bauen, die Natur versucht, immer bessere Idioten zu bauen
Bis jetzt gewinnt die Natur. ICH BIN DER CADMINIESCHRDÄDÖR |
SMario Mitglied Konstrukteur/Designer
Beiträge: 114 Registriert: 31.03.2005 FSC Celsius Workstation CPU: Pentium 4 3.20GHz Speicher: 2.00GB RAM Grafik: Quadro FX 1400 Monitor: FSC P20-2 OS: Windows XP SP2 UG: NX4.0.2.2
|
erstellt am: 16. Jan. 2007 12:14 <-- editieren / zitieren --> Unities abgeben: Nur für JoeG
Hallo, Zitat: Original erstellt von isegal: also irgendwie krieg ich mehrere Fehlermeldugnen die mir nix sagen??? for allem in diese zeile Dim ****** As Random******erator = New Random******erator
das sagt mir, dass du in meinem Posting den letzten Absatz ([EDIT]) überlesen hast . Du muss auch noch folgende Zeile löschen: "s.Ui.SetStatus("Setting up needed variables...")", da die Funktion vor Deklarierung der Variable benutzt wird. Mein Fehler . Ansonsten funktioniert es, ich habe es gerade nochmal probiert, nur dass ich zum Testen "N:\dwg" auf "C:\dwg" geändert habe. Funktioniert super. Ein klick und ein paar Sekunden später hatte ich unter "C:\dwg" die aktuelle Zeichnung in NX4 als DWG vorliegen. Ciao Mario
p.s. Ich habe das privat auch schon erweitert, dass eine Baugruppe inkl. Einzelteile in einem Rutsch komplett als DWG exportiert wird. Das läuft zwar holprig, da auch Schrauben und andere Normteile mit exportiert werden, aber da bin ich auch schon am überlegen, wie ich die am besten aussiebe...
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied
|
erstellt am: 16. Jan. 2007 13:45 <-- editieren / zitieren -->
*grins* wer lesen kann ist klar im Vorteil *lach* ******e man da hätte ich aber auch drauf kommen müssen. Sorry bin noch anfänger was .net angeht steig da net ganz so durch also bitte nachsicht bei dummen fragen ------------------ Lehrer öffnen Türen, doch hindurchgehen musst du selbst. Es gibt einen ewigen Wettkampf zwischen der Natur und den Ingenieuren: Die Ingenieure versuchen, immer idioten-sicherere Systeme zu bauen, die Natur versucht, immer bessere Idioten zu bauen
Bis jetzt gewinnt die Natur. ICH BIN DER CADMINIESCHRDÄDÖR |
Ex-Mitglied
|
erstellt am: 16. Jan. 2007 13:54 <-- editieren / zitieren -->
Hi hab leider immer noch Fehler, kann das am NX3 liegen?? Line 24: Localvariable 's' cannot be reffered to before it is declared und zwar bei dem code s.Ui.SetStatus("Setting up needed variables...") Dann Type 'base paert' is not defined Dim basePart1 As BasePart und in der auch und zwar modellingViews is not a member of NXopen.part
layout1.ReplaceView(workPart.ModelingViews.WorkView, view1, True) ------------------ Lehrer öffnen Türen, doch hindurchgehen musst du selbst. Es gibt einen ewigen Wettkampf zwischen der Natur und den Ingenieuren: Die Ingenieure versuchen, immer idioten-sicherere Systeme zu bauen, die Natur versucht, immer bessere Idioten zu bauen
Bis jetzt gewinnt die Natur. ICH BIN DER CADMINIESCHRDÄDÖR |
Ex-Mitglied
|
erstellt am: 16. Jan. 2007 13:55 <-- editieren / zitieren -->
mann bin ich begeistert ------------------ Lehrer öffnen Türen, doch hindurchgehen musst du selbst. Es gibt einen ewigen Wettkampf zwischen der Natur und den Ingenieuren: Die Ingenieure versuchen, immer idioten-sicherere Systeme zu bauen, die Natur versucht, immer bessere Idioten zu bauen
Bis jetzt gewinnt die Natur. ICH BIN DER CADMINIESCHRDÄDÖR |
Ex-Mitglied
|
erstellt am: 16. Jan. 2007 14:18 <-- editieren / zitieren -->
hat ganz gut geklappt bis zu diesem Punkt hier kannst du mir helfen bitte screener liegen bei ------------------ Lehrer öffnen Türen, doch hindurchgehen musst du selbst. Es gibt einen ewigen Wettkampf zwischen der Natur und den Ingenieuren: Die Ingenieure versuchen, immer idioten-sicherere Systeme zu bauen, die Natur versucht, immer bessere Idioten zu bauen
Bis jetzt gewinnt die Natur. ICH BIN DER CADMINIESCHRDÄDÖR |
SMario Mitglied Konstrukteur/Designer
Beiträge: 114 Registriert: 31.03.2005 FSC Celsius Workstation CPU: Pentium 4 3.20GHz Speicher: 2.00GB RAM Grafik: Quadro FX 1400 Monitor: FSC P20-2 OS: Windows XP SP2 UG: NX4.0.2.2
|
erstellt am: 16. Jan. 2007 14:21 <-- editieren / zitieren --> Unities abgeben: Nur für JoeG
Hallo, Zitat: Original erstellt von isegal:Sorry bin noch anfänger was .net angeht steig da net ganz so durch also bitte nachsicht bei dummen fragen
naja, ich bin auch erst so ca. zwei Jahren mit VB.NET in Unigraphics am werkeln, und das nur "nebenher". Ich bin also auch nicht wirklich ein Ass im programmieren und manches kann man auch bestimmt besser machen... Ciao Mario
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
SMario Mitglied Konstrukteur/Designer
Beiträge: 114 Registriert: 31.03.2005 FSC Celsius Workstation CPU: Pentium 4 3.20GHz Speicher: 2.00GB RAM Grafik: Quadro FX 1400 Monitor: FSC P20-2 OS: Windows XP SP2 UG: NX4.0.2.2
|
erstellt am: 16. Jan. 2007 14:37 <-- editieren / zitieren --> Unities abgeben: Nur für JoeG
Zitat: Original erstellt von isegal: Hi hab leider immer noch Fehler, kann das am NX3 liegen??Line 24: Localvariable 's' cannot be reffered to before it is declared und zwar bei dem code [i] s.Ui.SetStatus("Setting up needed variables...") Dann Type 'base paert' is not defined Dim basePart1 As BasePart und in der auch und zwar modellingViews is not a member of NXopen.part
layout1.ReplaceView(workPart.ModelingViews.WorkView, view1, True) [/i]
Basepart ist neu in NX4, wird also bei Dir nicht funktionieren. Hier mein Journal von NX3 (Achtung, die ****** nicht vergessen zu ersetzen :
Code:
' ' Export active drawing to dwg in directory C:\dwg\<UserName> ' Option Strict On Imports System Imports System.ComponentModel Imports System.Diagnostics Imports System.IO Imports System.Text Imports NXOpen Imports NXOpen.UF Imports NXOpen.Drawings Imports NXOpen.Part Imports Microsoft.Win32 Imports Microsoft.VisualBasicModule ExportDWG 'declare actual nx-session Dim theSession As Session = Session.GetSession() 'declare error flags Private ERROR_FILE_NOT_FOUND As Integer = 2 Private ERROR_ACCESS_DENIED As Integer = 5 'declare some variables for random string generator Dim ****** As Random******erator = New Random******erator 'generate random string Dim RandomKey As String = ******.Generate() Sub Main If Not theSession.Parts.Work Is Nothing Then 'declare actual workpart Dim workPart As Part = theSession.Parts.Work 'declare actual drawingsheet Dim drawingSheet As DrawingSheet = workPart.DrawingSheets().CurrentDrawingSheet 'declare actual User-Function-Session Dim s As UFSession = UFSession.GetUFSession() Dim cgm As UFCgm = s.cgm 'declare static sheetname for later use Static sheetName As String = CType(drawingSheet.Name, String) 'declare static partname for later use Static dwgName As String = CType(workPart.Leaf, String) 'declare static full partname with path Static fullpath As String = CType(workPart.FullPath, String) Dim p As System.IO.Path 'declare path of partfile without partname and extension Dim partpath As String = CType(p.GetDirectoryName(fullpath), String) 'combine partname and sheetname to new partfile basename Dim basename As String = dwgName & "_" & sheetName 'declare temporary cgm-filename Dim temp_cgm As String = Environ("TEMP").ToString & "\" & RandomKey & ".cgm" 'declare temporary part-filename Dim temp_part_name As String = Environ("TEMP").ToString & "\" & RandomKey & ".prt" 'declare link to cgm export-options Dim export_options As UFCgm.ExportOptions 'declare link to cgm import-options Dim import_options As UFCgm.ImportOptions 'export temporary cgm-file 'get cgm export-options cgm.AskDefaultExportOptions(export_options) 'check if temporary cgm-file exists... If System.IO.File.Exists(temp_cgm) = True Then '...and delete if exists System.IO.File.Delete(temp_cgm) End If 'exporting temorary cgm-file cgm.ExportCgm(workPart.DrawingSheets().CurrentDrawingSheet.Tag, export_options, temp_cgm) 'create new temporary part-file 'check if temporary part-file exists... If System.IO.File.Exists(temp_part_name) = True Then '...and delete if exists System.IO.File.Delete(temp_part_name) End If 'creating new temporary part-file Dim temp_part As Part = theSession.Parts.NewDisplay(temp_part_name, Part.Units.Millimeters) 'set actual view top-view 'declare link to layout Dim layout1 As Layout = CType(theSession.Parts.Work.Layouts.FindObject("L1"), Layout) 'declare link to view Dim view1 As View = CType(theSession.Parts.Work.Views.FindObject("TOP"), View) 'replacing view to top-view layout1.ReplaceView(theSession.Parts.Work.Views.WorkView, view1, True) 'import cgm-file 'importing temporary cgm-file in actual workpart (temporary part-file) cgm.ImportCgm(temp_cgm, import_options) 'check if temporary cgm-file exists... If System.IO.File.Exists(temp_cgm) = True Then '...and delete if exists System.IO.File.Delete(temp_cgm) End If 'fitting actual View view1.Fit() 'save temporary part-file Dim partSaveStatus1 As PartSaveStatus 'save actual workpart (temporary part-file) theSession.Parts.Work.Save(Part.SaveComponents.True, Part.CloseAfterSave.False, partSaveStatus1) partSaveStatus1.Dispose() 'start conversion of temporary part-file to dwg with external translator 'check if destination save-directory NOT exists... If Not Directory.Exists("C:\dwg\" & Environment.UserName) Then '...if not create destination save-directory Directory.CreateDirectory("C:\dwg\" & Environment.UserName) End If 'declare executable of translator (dxfdwg.exe) Dim dxfdwg As String = """" & Environ("UGII_BASE_DIR").ToString & "\dxfdwg\dxfdwg.exe""" 'declare definition-filename of translator (.def) Dim deffile As String = """d=" & Environ("UGII_BASE_DIR").ToString & "\dxfdwg\dxfdwg.def""" 'declare input part filename of translator (.prt) Dim tempfile As String = """" & Environ("TEMP").ToString & "\" & RandomKey & ".prt""" 'declare log filename of translator (.log) Dim logfile As String = """l=" & Environ("TEMP").ToString & "\" & RandomKey & ".log""" 'declare output filename (.dwg) Dim outfile As String = """o=C:\dwg\" & Environment.UserName & "\" & basename & ".dwg""" 'sets mode of conversion. only "m=auto" is needed! Dim mode As String = """m=auto""" 'combine all parameters for commandline use Dim args As String = tempfile & " " & outfile & " " & logfile & " " & deffile & " " & mode 'declare link to Process() Dim convertcmd As New Process() 'error-handling while converting Try 'declare filename for Process() convertcmd.StartInfo.FileName = dxfdwg 'declare arguments for Process() convertcmd.StartInfo.Arguments = args '''convertcmd.StartInfo.CreateNoWindow = True 'declare windowstyles for Process() convertcmd.StartInfo.WindowStyle = ProcessWindowStyle.Normal 'start Process() convertcmd.Start() 'if error occurs, check for reasons... Catch e As Win32Exception '...if executable file is not found... If e.NativeErrorCode = ERROR_FILE_NOT_FOUND Then '...throw error-messagebox System.Windows.Forms.MessageBox.Show((e.Message + ". Check the path.")) Else '...permissions to execute the translator... If e.NativeErrorCode = ERROR_ACCESS_DENIED Then '...throw error-messagebox System.Windows.Forms.MessageBox.Show((e.Message + ". You do not have permission to save the destination file.")) End If End If End Try 'wait for exit of Process() convertcmd.WaitForExit() 'close actual workpart theSession.Parts.Work.Close(False, Part.CloseModified.CloseModified, Nothing) 'change worpart 'find old workpart in session Dim oldWorkPart As Part = CType(theSession.Parts.FindObject(dwgName), Part) 'set link to partloadstatus Dim partLoadStatus1 As PartLoadStatus Dim partCollection_SdpsStatus1 As PartCollection.SdpsStatus 'set workpart to old workpart partCollection_SdpsStatus1 = theSession.Parts.SetDisplay(oldWorkPart, True, True, partLoadStatus1) partLoadStatus1.Dispose()
'cleanup temp files If System.IO.File.Exists(Environ("TEMP").ToString & "\" & RandomKey & ".log") = True Then System.IO.File.Delete(Environ("TEMP").ToString & "\" & RandomKey & ".log") End If 'delete temporary part-file If System.IO.File.Exists(Environ("TEMP").ToString & "\" & RandomKey & ".prt") = True Then System.IO.File.Delete(Environ("TEMP").ToString & "\" & RandomKey & ".prt") End If 'delete ug-translator summary_log-file If System.IO.File.Exists("C:\dwg\" & Environment.UserName & "\" & basename & "_summary.log") = True Then System.IO.File.Delete("C:\dwg\" & Environment.UserName & "\" & basename & "_summary.log") End If 'delete ug-translator summary_log-file If System.IO.File.Exists(partpath & "\" & basename & "_summary.log") = True Then System.IO.File.Delete(partpath & "\" & basename & "_summary.log") End If Else 'Show Message if no active Part is loaded System.Windows.Forms.MessageBox.Show("You tried to export without a loaded Part. Please load a Part first!", "No Active Part Found", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Error, System.Windows.Forms.MessageBoxDefaultButton.Button1) End If End Sub End Module
'function to generate random string <== from http://www.codeproject.com Public Class Random******erator Dim Key_Letters As String = "abcdefghijklmnopqrstuvwxyz" Dim Key_Numbers As String = "0123456789" Dim Key_Chars As Integer = 8 Dim LettersArray As Char() Dim NumbersArray As Char() Protected Friend WriteOnly Property KeyLetters() As String Set(ByVal Value As String) Key_Letters = Value End Set End Property Protected Friend WriteOnly Property KeyNumbers() As String Set(ByVal Value As String) Key_Numbers = Value End Set End Property
Protected Friend WriteOnly Property KeyChars() As Integer Set(ByVal Value As Integer) Key_Chars = Value End Set End Property Function Generate() As String Dim i_key As Integer Dim Random1 As Single Dim arrIndex As Int16 Dim sb As New StringBuilder Dim RandomLetter As String LettersArray = Key_Letters.ToCharArray NumbersArray = Key_Numbers.ToCharArray For i_key = 1 To Key_Chars Randomize() Random1 = Rnd() arrIndex = -1 If (CType(Random1 * 111, Integer)) Mod 2 = 0 Then Do While arrIndex < 0 arrIndex = _ Convert.ToInt16(LettersArray.GetUpperBound(0) * Random1) Loop RandomLetter = LettersArray(arrIndex) If (CType(arrIndex * Random1 * 99, Integer)) Mod 2 <> 0 Then RandomLetter = LettersArray(arrIndex).ToString RandomLetter = RandomLetter.ToUpper End If sb.Append(RandomLetter) Else Do While arrIndex < 0 arrIndex = _ Convert.ToInt16(NumbersArray.GetUpperBound(0) * Random1) Loop sb.Append(NumbersArray(arrIndex)) End If Next Return sb.ToString End Function End Class
Da ich zu dieser Zeit noch nicht die Statuszeile geändert habe, wird der Status nicht dort angezeigt... Ich hoffe es funktioniert besser mit diesem Journal! Ciao Mario Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
uwe.a Ehrenmitglied maschbau-ing.
Beiträge: 1939 Registriert: 20.12.2000 Windows7/64Pro Vmware7.1 UG11-Nx9
|
erstellt am: 16. Jan. 2007 14:43 <-- editieren / zitieren --> Unities abgeben: Nur für JoeG
|
SMario Mitglied Konstrukteur/Designer
Beiträge: 114 Registriert: 31.03.2005 FSC Celsius Workstation CPU: Pentium 4 3.20GHz Speicher: 2.00GB RAM Grafik: Quadro FX 1400 Monitor: FSC P20-2 OS: Windows XP SP2 UG: NX4.0.2.2
|
erstellt am: 16. Jan. 2007 14:49 <-- editieren / zitieren --> Unities abgeben: Nur für JoeG
Hallo Uwe, Zitat: Original erstellt von uwe.a: Hey ich mach mit
Ok, dann schonmal viel Spass beim heiteren: "Wo steckt der Fehler?" Zitat: Ich bleibe bei Dim basePart1 As basePart stecken, = BasePart is not defined
Welche NX-Verseion? NX3 unterstützt nicht Basepart... ... bitte für NX3 mein NX3-Journal (hatte ich gerade eben gepostet) benutzen! Ciao Mario
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
uwe.a Ehrenmitglied maschbau-ing.
Beiträge: 1939 Registriert: 20.12.2000 Windows7/64Pro Vmware7.1 UG11-Nx9
|
erstellt am: 16. Jan. 2007 14:50 <-- editieren / zitieren --> Unities abgeben: Nur für JoeG
|
SMario Mitglied Konstrukteur/Designer
Beiträge: 114 Registriert: 31.03.2005 FSC Celsius Workstation CPU: Pentium 4 3.20GHz Speicher: 2.00GB RAM Grafik: Quadro FX 1400 Monitor: FSC P20-2 OS: Windows XP SP2 UG: NX4.0.2.2
|
erstellt am: 16. Jan. 2007 15:03 <-- editieren / zitieren --> Unities abgeben: Nur für JoeG
|
Ex-Mitglied
|
erstellt am: 16. Jan. 2007 17:57 <-- editieren / zitieren -->
joah das tool funzt soweit ausgabe in dwg format ist erfolgt. Nur das was mir da grad aufm monitor rumschwirt sieht kagge aus *LÖL* kann es sein das meine einstellungen im UG ******e sind. Welche Einstellungen greift das script ab??? ------------------ Lehrer öffnen Türen, doch hindurchgehen musst du selbst. Es gibt einen ewigen Wettkampf zwischen der Natur und den Ingenieuren: Die Ingenieure versuchen, immer idioten-sicherere Systeme zu bauen, die Natur versucht, immer bessere Idioten zu bauen
Bis jetzt gewinnt die Natur. ICH BIN DER CADMINIESCHRDÄDÖR |
thöme Mitglied
Beiträge: 234 Registriert: 02.05.2002 Win 7 64bit SP1 4GB RAM NVIDIA Quadro FX 3800 NX 7.5
|
erstellt am: 17. Jan. 2007 08:04 <-- editieren / zitieren --> Unities abgeben: Nur für JoeG
Hallo zusammen Ich krieg es unter NX 4.0.2.2 MP 1 leider immer noch nicht hin. Ich bekomme beim Ausführen des Journals immer die folgende Fehlermeldung: Linie 23: End of statement expected. Linie 24: End of statement expected. Linie 139: End of statement expected. Ich habe leider von vb keine grosse Ahnung... Was mache ich falsch? Hat mir jemand ein Tip? "Mein" Journal ist im Anhang (mit Endung ....vb.txt.) Vielen Dank für die Hilfe und natürlich das super Journal! Thöme Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
SMario Mitglied Konstrukteur/Designer
Beiträge: 114 Registriert: 31.03.2005 FSC Celsius Workstation CPU: Pentium 4 3.20GHz Speicher: 2.00GB RAM Grafik: Quadro FX 1400 Monitor: FSC P20-2 OS: Windows XP SP2 UG: NX4.0.2.2
|
erstellt am: 17. Jan. 2007 10:22 <-- editieren / zitieren --> Unities abgeben: Nur für JoeG
Hallo thöme, Zitat: Original erstellt von thöme: Was mache ich falsch?
hatte ich nicht geschrieben, dass das Forum meinen Code zensiert? Versuche zuerst mal in deinem Code "K e y G e n" die Leerstellen zu ersetzen, das muss zusammenhängend geschrieben sein, dann sehen wir weiter... Ciao und viel Erfolg Mario
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
SMario Mitglied Konstrukteur/Designer
Beiträge: 114 Registriert: 31.03.2005 FSC Celsius Workstation CPU: Pentium 4 3.20GHz Speicher: 2.00GB RAM Grafik: Quadro FX 1400 Monitor: FSC P20-2 OS: Windows XP SP2 UG: NX4.0.2.2
|
erstellt am: 17. Jan. 2007 10:38 <-- editieren / zitieren --> Unities abgeben: Nur für JoeG
Hallo isegal, Zitat: Original erstellt von isegal: joah das tool funzt soweit ausgabe in dwg format ist erfolgt.
Wenigstens das tut es schonmal... Zitat: Nur das was mir da grad aufm monitor rumschwirt sieht kagge aus *LÖL* kann es sein das meine einstellungen im UG ******e sind.
Es werden die Einstellungen benutzt, die in der dxfdwg.def drinstehen, oder eben in den Einstellungen des Translators vorgenommen wurden (nach dem Ändern wird sowieso das Speichern verlangt). Zitat: Welche Einstellungen greift das script ab???
In NX3 hatte ich folgende Zeile benutzt: cgm.AskDefaultExportOptions(export_options) Diese Zeile zieht die Einstellungen aus der dxfdwg.def In NX4 habe ich die Zeile ersetzt durch: cgm.AskSessionExportOptions(export_options) und mit dem Journal noch folgende Einstellungen vorgenommen: export_options.Colors = export_options.Colors.AsDisplayedColors 'export_options.Fonts = export_options.Fonts.NxFonts export_options.Fonts = export_options.Fonts.DefaultFileFonts export_options.Text_Mode = export_options.Text_Mode.TextAsCharacters export_options.Tolerance = 0.0001 export_options.Vdc_Mode = export_options.Vdc_Mode.RealVdc export_options.Widths = export_options.Widths.StandardWidths Folgende Zeile setzt die Einstellungen im Journal: cgm.SetSessionExportOptions(export_options) Für den Import habe ich in NX4 nichts geändert, bzw. keine besonderen Einstellunegn vorgenommen. Ich habe folgende Zeile: cgm.AskDefaultExportOptions(export_options) ersetzt durch folgende in NX4: cgm.InitImportOptions(import_options) Ich habe für den Import also keine Einstellungen vorgenommen. Für die CGM-Optionen musste ich meine Standard cgmdef.txt-Datei ändern. Hier mal meine, aber ich kann nicht wirklich erklären was für was steht. Das habe ich alle mit Try&Error rausbekommen. Vielleicht bringt es eine Verbesserung. Versprechen will ich es jedoch nicht . # desired vdc coordinates integer or real # Use REAL VDC values for maximum precision. # EXPORT_VDC_TYPE INTEGER EXPORT_VDC_TYPE REAL
# map ug fonts to cgm fonts (no more than 4 cgm fonts for CALS) EXPORT_UG_TEXT_FONTS #EXPORT_TEXT_FONT ALL_UG_FONTS HERSHEY:SIMPLEX_ROMAN EXPORT_TEXT_FONT BLOCKFONT HERSHEY:SIMPLEX_ROMAN EXPORT_TEXT_FONT BLACKFONT HERSHEY UPLEX_ROMAN EXPORT_TEXT_FONT BLOCKFONT2 HERSHEY UPLEX_ROMAN EXPORT_TEXT_FONT BLOCKFONT3 HERSHEY UPLEX_ROMAN EXPORT_TEXT_FONT CYRILLIC HERSHEY:COMPLEX_CYRILLIC EXPORT_TEXT_FONT SCRIPT HERSHEY:SIMPLEX_SCRIPT
TEXT_FONT_MAPPING UNDEFINED HERSHEY UPLEX_ROMAN TEXT_FONT_MAPPING BLOCKFONT HERSHEY:SIMPLEX_ROMAN TEXT_FONT_MAPPING BLACKFONT HERSHEY UPLEX_ROMAN TEXT_FONT_MAPPING BLOCKFONT2 HERSHEY UPLEX_ROMAN TEXT_FONT_MAPPING BLOCKFONT3 HERSHEY UPLEX_ROMAN TEXT_FONT_MAPPING CYRILLIC HERSHEY:COMPLEX_CYRILLIC TEXT_FONT_MAPPING SCRIPT HERSHEY:SIMPLEX_SCRIPT # map cgm fonts to ug fonts (if these ug fonts are in part) IMPORT_TEXT_FONT HERSHEY:SIMPLEX_ROMAN BLOCKFONT IMPORT_TEXT_FONT HERSHEY UPLEX_ROMAN BLOCKFONT IMPORT_TEXT_FONT HERSHEY UPLEX_ROMAN BLACKFONT IMPORT_TEXT_FONT HERSHEY UPLEX_ROMAN BLOCKFONT2 IMPORT_TEXT_FONT HERSHEY UPLEX_ROMAN BLOCKFONT3 IMPORT_TEXT_FONT HERSHEY:COMPLEX_CYRILLIC CYRILLIC IMPORT_TEXT_FONT HERSHEY:SIMPLEX_SCRIPT SCRIPT EXPORT_WIDTH_MODE ABSOLUTE EXPORT_ABSOLUTE_WIDTH THIN 0.15 EXPORT_ABSOLUTE_WIDTH NORMAL 0.45 EXPORT_ABSOLUTE_WIDTH THICK 0.90 IMPORT_ABSOLUTE_WIDTH THIN 0.15 IMPORT_ABSOLUTE_WIDTH NORMAL 0.45 IMPORT_ABSOLUTE_WIDTH THICK 0.90 Ciao Mario
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
thöme Mitglied
Beiträge: 234 Registriert: 02.05.2002 Win 7 64bit SP1 4GB RAM NVIDIA Quadro FX 3800 NX 7.5
|
erstellt am: 17. Jan. 2007 11:13 <-- editieren / zitieren --> Unities abgeben: Nur für JoeG
|
SMario Mitglied Konstrukteur/Designer
Beiträge: 114 Registriert: 31.03.2005 FSC Celsius Workstation CPU: Pentium 4 3.20GHz Speicher: 2.00GB RAM Grafik: Quadro FX 1400 Monitor: FSC P20-2 OS: Windows XP SP2 UG: NX4.0.2.2
|
erstellt am: 17. Jan. 2007 12:00 <-- editieren / zitieren --> Unities abgeben: Nur für JoeG
|
thöme Mitglied
Beiträge: 234 Registriert: 02.05.2002 Win 7 64bit SP1 4GB RAM NVIDIA Quadro FX 3800 NX 7.5
|
erstellt am: 17. Jan. 2007 12:56 <-- editieren / zitieren --> Unities abgeben: Nur für JoeG
|
Ex-Mitglied
|
erstellt am: 17. Jan. 2007 15:14 <-- editieren / zitieren -->
Hi Mario, im großen und ganzen geht das alles ganze asy von der Hand die Ausgabe habe ich im Griff anch modifikation der .def Datei. Soviel us kannich dir gar nicht geben wie das wert ist , Ich denke mal das ich nun auch nenen guten weg habe das ganze anders herum zu machen , nämlich ein dxf zu importieren ------------------ Lehrer öffnen Türen, doch hindurchgehen musst du selbst. Es gibt einen ewigen Wettkampf zwischen der Natur und den Ingenieuren: Die Ingenieure versuchen, immer idioten-sicherere Systeme zu bauen, die Natur versucht, immer bessere Idioten zu bauen
Bis jetzt gewinnt die Natur. ICH BIN DER CADMINIESCHRDÄDÖR |
SMario Mitglied Konstrukteur/Designer
Beiträge: 114 Registriert: 31.03.2005 FSC Celsius Workstation CPU: Pentium 4 3.20GHz Speicher: 2.00GB RAM Grafik: Quadro FX 1400 Monitor: FSC P20-2 OS: Windows XP SP2 UG: NX4.0.2.2
|
erstellt am: 17. Jan. 2007 15:28 <-- editieren / zitieren --> Unities abgeben: Nur für JoeG
Hallo isegal, Zitat: Original erstellt von isegal: , nämlich ein dxf zu importieren
dürfte auch nich schwierig sein. Reicht es vielleicht die Datei direkt mit Datei -> öffnen innerhalb von UG zu öffnen, das macht es seit ein paar Versionen automatisch . Einfach den Dateityp einstellen und die DXF-Datei auswählen. Nur so 'ne Idee. Aber ich denke ich würde es ebenfalls probieren ein DXF mittels Journal einzufügen. Ciao Mario
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied
|
erstellt am: 18. Jan. 2007 11:33 <-- editieren / zitieren -->
*grübel* Naja mir ist das im grunde eh alles Schnurz , ich hab einen USer (chefs liebling) der immer und immer wieder solche Sonderwünsche hat, kriegt er es nicht rennt er zu el chefe und sagt das projekt wird teurer er kann nicht arbeiten und so weiter, Chef glaubt Ihm da chef null ahnung von Technik hat und sonsitgem sondern nur von Anderm zeugs, ergebniss ich hab den Ärger und der sei ruh ------------------ Lehrer öffnen Türen, doch hindurchgehen musst du selbst. Es gibt einen ewigen Wettkampf zwischen der Natur und den Ingenieuren: Die Ingenieure versuchen, immer idioten-sicherere Systeme zu bauen, die Natur versucht, immer bessere Idioten zu bauen
Bis jetzt gewinnt die Natur. ICH BIN DER CADMINIESCHRDÄDÖR |
Ex-Mitglied
|
erstellt am: 19. Jan. 2007 09:02 <-- editieren / zitieren -->
So nun habe ich noch mal ne Frage Problem. Im UG NX3 Native funktioniert das bestens. Da ich das ganze aber aus dem Teamcenter bedienen muss, steh ich for einem Problem. Ich bekomme iene Fehlermeldung ( siehe Screenshot) und das ist die bemängelte Line. unsere Dateinamen sehen so aus besipiel: 3000001/A oder auch 050.0.0000.0/A_drw.prt Hier die Zeile 50
Dim partpath As String = CType(p.GetDirectoryName(fullpath), String) ------------------ Lehrer öffnen Türen, doch hindurchgehen musst du selbst. Es gibt einen ewigen Wettkampf zwischen der Natur und den Ingenieuren: Die Ingenieure versuchen, immer idioten-sicherere Systeme zu bauen, die Natur versucht, immer bessere Idioten zu bauen
Bis jetzt gewinnt die Natur. ICH BIN DER CADMINIESCHRDÄDÖR |
Winnieh Mitglied
Beiträge: 66 Registriert: 08.05.2006
|
erstellt am: 19. Jan. 2007 10:39 <-- editieren / zitieren --> Unities abgeben: Nur für JoeG
|
Ex-Mitglied
|
erstellt am: 19. Jan. 2007 14:26 <-- editieren / zitieren -->
??? winnieh welche code nimmst du den für nx 4 oder den für nx3 hast du alles geändert was mario geschrieben hatte??? Diesen Fehler hatte ich nur am Anfang solange ich den NX4 code bei NX3 eingesetzt habe ------------------ Lehrer öffnen Türen, doch hindurchgehen musst du selbst. Es gibt einen ewigen Wettkampf zwischen der Natur und den Ingenieuren: Die Ingenieure versuchen, immer idioten-sicherere Systeme zu bauen, die Natur versucht, immer bessere Idioten zu bauen
Bis jetzt gewinnt die Natur. ICH BIN DER CADMINIESCHRDÄDÖR |
Ex-Mitglied
|
erstellt am: 26. Jan. 2007 09:26 <-- editieren / zitieren -->
Also ich hab das Script ausgiebig getset, die Ergebniss sind fabelhaft und super zu verwenden. Solnage man das alles Native neutzt. Hängt ein Teamcenter hinten/vorne dran wird es schwer. Ich musste einige Zeilen ausblenden was aber dazu führte das der Dateiname komplett verballter wird und am Ende eine Fehlermeldung kommt, das tolle das ergebniss stimmt trotzdem , solange man nicht in zeichnungsmodus geht falls jemand dafür ne Lösung weis wäre ich dankbar ich sleber finde sie nicht wo es Hängt hab die DWG mal mitangehängt die Ausgegebn wird ------------------ Rundballvergewaltiger ( Fußballer) sollten für den Oskar nominiert werden. Am besten in der Gruppe Stunt. Den kein Stuntmann der Welt kann so durch die Luft fliegen, dabei schreien wie eine Sau beim Metzger, dazu Kilometer weit über den Rasen Rollen, sich dabei das Gesicht halten, obwohl er am Bein getroffen wurde, meist noch die anscheinend schmerzhaften, fast zum Tode führenden, Stellen wechseln von links nach rechts und oben nach unten, um dann gleich wieder Aufzustehen und weiter zu rennen. ICH BIN DER CADMINISCHDRÄDÖR |
Ex-Mitglied
|
erstellt am: 18. Mai. 2007 14:00 <-- editieren / zitieren -->
Hm niemand eine Lösung gefunden???? ------------------ Big Brother is watching you *grins* Der insider wird schon wissen das ER gemeint ist Grüezi |
Supermario Mitglied
Beiträge: 305 Registriert: 27.02.2004 UG NX10 TCUA
|
erstellt am: 31. Mai. 2007 15:14 <-- editieren / zitieren --> Unities abgeben: Nur für JoeG
Hallo Leute, DWG über CGM und auch noch über den Programmcode erstellen finde ich super. Aber leider komme ich nicht weit. Bei den Versuch das CGM - File in das Part zu importieren bricht das Programm ab. Im neuen vom Programm erzeugten Part ist auch Anwendung auf Zeichnungserstellung und nicht in der Konstruktion. Alle Versuche von mir, dem Programm zu sagen, erstmal den Modelbereich zu öffnen und dann erst das CGM zu importieren sind gescheitert. Folgende Zeile verursacht den Fehler: layout1.ReplaceView(workPart.ModelingViews.WorkView, view1, True) Fehlermeldung im Anhang! Danke für Eure Hilfe! Gruß Mario
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
SMario Mitglied Konstrukteur/Designer
Beiträge: 114 Registriert: 31.03.2005 FSC Celsius Workstation CPU: Pentium 4 3.20GHz Speicher: 2.00GB RAM Grafik: Quadro FX 1400 Monitor: FSC P20-2 OS: Windows XP SP2 UG: NX4.0.2.2
|
erstellt am: 01. Jun. 2007 12:51 <-- editieren / zitieren --> Unities abgeben: Nur für JoeG
Hallo Mario, Zitat: Original erstellt von Supermario: [...] Alle Versuche von mir, dem Programm zu sagen, erstmal den Modelbereich zu öffnen und dann erst das CGM zu importieren sind gescheitert. [...]
das geht mit VB.NET leider nicht, da muss man leider den Umweg über Makros machen, aber funktionieren tut das bei mir genausowenig. Angehängt findest Du nochmals mein DWG-Export Journal jeweils für NX3 udn NX4. Beide auch getestet und laufen komplett durch. Es muss für den Text ein Verzeichnis "C:\dwg" vorhanden sein.... Viel Spass damit! Mario
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Supermario Mitglied
Beiträge: 305 Registriert: 27.02.2004 UG NX10 TCUA
|
erstellt am: 04. Jun. 2007 07:59 <-- editieren / zitieren --> Unities abgeben: Nur für JoeG
Hallo Mario, danke für Deine Hilfe. Leider bleibt das Programm weiterhin in der Drawing hängen. Liegt es an TCE? Ich werde wohl genau wie in NX1 mit Makros arbeiten müssen bis ich meine Programmiermöglichkeiten in NX4 durch Lernen erweitet habe. Nochmals Danke! Mario Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CB71 Mitglied CAD-Admin
Beiträge: 130 Registriert: 04.04.2007 TCE 9136; NX 3053; Teamcenter Visualization 2005
|
erstellt am: 12. Jun. 2007 09:54 <-- editieren / zitieren --> Unities abgeben: Nur für JoeG
Hallo Mario, Wenn ich das hier jetzt alles richtig mitgeplottet habe, hätte ich da vielleicht noch einen Tip: Welche Anwendung in NX beim Öffnen EINES NEUEN TEILS angezeigt wird, hängt vom SeedPart ab. Wenn das zuletzt im Drafting gespeichert wurde, wird im Gateway die Zeichnung angezeigt. Also SeedPart öffnen und einmal bewusst im Gateway oder Modeling mit Blick auf das 3D-Modell im Ansichtsfenster speichern. Vielleicht hilft Dir das beim DWG-Export weiter!? Bei mir läuft der DWG-Export mit TCE und ohne Fehlermeldung durch, nachdem ich die Zeilen mit der Namensvergabe auskommentiert habe. Nur der Dateiname der DWG ist dann Schrott (wie von Isegal gerade auch gepostet). Ich werde da mal noch weiter dran basteln. Vielleicht wirds noch was mit dem Namen... VB-Code siehe angehängte Datei Gruß CB [Diese Nachricht wurde von CB71 am 12. Jun. 2007 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied
|
erstellt am: 12. Jun. 2007 10:10 <-- editieren / zitieren -->
Zitat: Original erstellt von Supermario: Hallo Mario,danke für Deine Hilfe. Leider bleibt das Programm weiterhin in der Drawing hängen. Liegt es an TCE? Ich werde wohl genau wie in NX1 mit Makros arbeiten müssen bis ich meine Programmiermöglichkeiten in NX4 durch Lernen erweitet habe. Nochmals Danke! Mario
Jepp im TCE bleibt es hängen, hier mal mein script das ich abgewandelt habe.
Das problem ist nur das der Dateiname total verbogen wird???? habe als .txt umbenannt ist aber .vb
------------------ Nx Version: UG NX 3.0.5.3 Maschinentyp: Intelx86 Level 15 Revision 0209 Max Speicher: 38MB Physikalisch: 4000MB Swap: ??????Mb<P> Microschrott XP Amteurversion Service Pack2<P>ich bin ‰ |
CB71 Mitglied CAD-Admin
Beiträge: 130 Registriert: 04.04.2007 TCE 9136; NX 3053; Teamcenter Visualization 2005
|
erstellt am: 12. Jun. 2007 16:27 <-- editieren / zitieren --> Unities abgeben: Nur für JoeG
Hallo Mario, wie oben gepostet läuft der Export bei mir bis auf die Namensgebung problemlos durch (NX3 und TCE9). Allerdings werden bei mir die Schriftarten nicht sauber umgesetzt. Meine Änderungen in der Datei cgmdef.txt werden beim Exportieren über Datei > Exportieren > CGM mit der Einstellung "Standarddatei" berücksichtig. Beim Exportieren über das Journal kommt aber was anderes raus. Woher wird die cgmdef.txt gezogen? Immer aus der ugii_env.dat? Auf was verweist die Zeile cgm.AskDefaultExportOptions(export_options)? Könnte man hier einen konkreten Pfad zu einer def-Datei angeben? Gruß CB Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
SMario Mitglied Konstrukteur/Designer
Beiträge: 114 Registriert: 31.03.2005 FSC Celsius Workstation CPU: Pentium 4 3.20GHz Speicher: 2.00GB RAM Grafik: Quadro FX 1400 Monitor: FSC P20-2 OS: Windows XP SP2 UG: NX4.0.2.2
|
erstellt am: 13. Jun. 2007 11:06 <-- editieren / zitieren --> Unities abgeben: Nur für JoeG
Hallo CB, Zitat: Original erstellt von CB71: Hallo Mario,wie oben gepostet läuft der Export bei mir bis auf die Namensgebung problemlos durch (NX3 und TCE9).
Naja, da der Export in DXFDWG mur mit der Kommandozeile funktioniert habe ich den Namen in seine verschiedenen Bestandteile zerlegt, damit das alles ein bischen besser lesbar bleibt. Ich hatte es erst auch versucht in eine Zeile, aber da war es schwerer evtl. Fehler zu finden. Mal sehen, ob ich das mal ändere.... Zitat: Allerdings werden bei mir die Schriftarten nicht sauber umgesetzt. Meine Änderungen in der Datei cgmdef.txt werden beim Exportieren über Datei > Exportieren > CGM mit der Einstellung "Standarddatei" berücksichtig. Beim Exportieren über das Journal kommt aber was anderes raus. Woher wird die cgmdef.txt gezogen? Immer aus der ugii_env.dat? Auf was verweist die Zeile cgm.AskDefaultExportOptions(export_options)? Könnte man hier einen konkreten Pfad zu einer def-Datei angeben?Gruß CB
In der NX3-Version wird das komplett ignoriert, deswegen hatte ich das mal in NX4 eingebaut. Hier die betreffenden Zeilen, die die Export-Optionen festlegen: Code: cgm.AskSessionExportOptions(export_options) export_options.Colors = export_options.Colors.AsDisplayedColors 'export_options.Fonts = export_options.Fonts.NxFonts export_options.Fonts = export_options.Fonts.DefaultFileFonts export_options.Text_Mode = export_options.Text_Mode.TextAsCharacters export_options.Tolerance = 0.0001 export_options.Vdc_Mode = export_options.Vdc_Mode.RealVdc export_options.Widths = export_options.Widths.StandardWidths cgm.SetSessionExportOptions(export_options)
Einfach die Zeile die "AskDefaultExportOptions" mit den obigen Zeilen ersetzen.... Es können folgende Export-Optionen gesetz werden (aus NX3 Referenz): colors fonts size text_mode vdc_mode widths Dazu die Datei: %UGII_BASE_DIR%\UGDOC\html_files\nxopen_net_ref\NXOpen.UF.UFCgm.ExportOptionsMembers.html durchlesen und die entsprechend weiterklicken, dort steht alles Weitere. Bevor man aber die Optionen setzen kann muss man immer erst erfragen, welche Optionen zur Zeit gesetz sind (AskSessionExportOptions) und nach dem ändern auch aktivieren bzw. setzen (SetSessionExportOptions) das ghet beim Setzen bsplw. der Annontation-Preferences oder genauso.... Ciao Mario
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CB71 Mitglied CAD-Admin
Beiträge: 130 Registriert: 04.04.2007 TCE 9136; NX 3053; Teamcenter Visualization 2005
|
erstellt am: 14. Jun. 2007 11:34 <-- editieren / zitieren --> Unities abgeben: Nur für JoeG
|
| Planer / Planungsleiter (w/m/d) für die technische Gebäudeausrüstung (TGA) | Als führendes europäisches Beratungs-, Planungs- und Projektmanagementunternehmen bietet Drees & Sommer Lösungen für erfolgreiche Gebäude, renditestarke Portfolios, leistungsfähige Infrastruktur und lebenswerte Städte. In interdisziplinären Teams unterstützen unsere über 6.000 Mitarbeiterinnen und Mitarbeiter an 63 internationalen Standorten Auftraggeber unterschiedlichster Branchen. Bei uns gestalten Sie Ihren individuellen Karriereweg aktiv mit.... | Anzeige ansehen | Feste Anstellung |
|
Supermario Mitglied
Beiträge: 305 Registriert: 27.02.2004 UG NX10 TCUA
|
erstellt am: 27. Jun. 2007 14:15 <-- editieren / zitieren --> Unities abgeben: Nur für JoeG
Hallo, habe michheute mit dem Problem DXF noch mal beschäftigt und keine Lösung gefunden. Bis " Dim temp_part As Part = theSession.Parts.NewDisplay(temp_part_name, Part.Units.Millimeters) " funktioniert alles super aber weil das Programm beim öffnen in UG sofort die Zeichnung anzeigt und nicht den Modellbereich fällt das Programm ab: "layout1.ReplaceView(theSession.Parts.Work.Views.WorkView, view1, True)" auf die Nase. Nun habe ich versucht vorher dem Programm zu sagen, gehe von Anwendung Zeichnung in Anwendung Modell. Aber ich habe keine Lösung gefunden. Kennt von Euch einer einen anwendbaren Code? Gruß Mario
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |