| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für NX |
Autor
|
Thema: Assembly-Struktur eines nicht geladenen Teils (1086 mal gelesen)
|
Seidelbast Mitglied Konstrukteur/Programmierer
Beiträge: 6 Registriert: 07.07.2005 NX4(32/64) WinXP Pr. 64bit MS VisualStudio2005
|
erstellt am: 03. Sep. 2009 10:40 <-- editieren / zitieren --> Unities abgeben:
Hallo Forum! Ich versuche, unter NX4(64bit) und MS Visual Studio 2005 per .NET eine Versionsverwaltung für unsere Bauteile zu schreiben - wir arbeiten nämlich native... Nach schlimmen Startschwierigkeiten wird's immer besser, eine Sache bremst ich aber gewaltig: Kann ich die Assembly-Struktur eines Teils auslesen (Teil ist Assembly kann ich schon erkennen), OHNE DAS TEIL ZU LADEN? Ich suche wahrscheinlich etwas wie die .NET-Variante des wunderschonen Kommandozeilen-Tools ugpc.exe. Kann mir einer helfen? ------------------ SSt Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mseufert Moderator Freiberuflicher CAD/CAM Ingenieur
Beiträge: 2624 Registriert: 18.10.2005 HP Z420 WIN7 64 Win 10 UG NX6-1980 3D Printer Prusa MK2 S
|
erstellt am: 03. Sep. 2009 11:30 <-- editieren / zitieren --> Unities abgeben: Nur für Seidelbast
Hallo Seidelbast, um die Struktur rekursiv über die NXOpen API auszulesen, muß zumindest die Root Komponente geladen sein. Damit können die Komponenten ermittelt werden. Für Informationen über das jeweilige Part, z.B. den vollständigen Pfadnamen, muß dann auch dieses geladen sein. Eine Alternative ohne NXOpen API besteht darin, ugpc in Deinem Programm als separaten Prozess zu starten und die Ausgabe zu verwerten. Gruß, Michael
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Seidelbast Mitglied Konstrukteur/Programmierer
Beiträge: 6 Registriert: 07.07.2005 NX4(32/64) WinXP Pr. 64bit MS VisualStudio2005
|
erstellt am: 03. Sep. 2009 12:02 <-- editieren / zitieren --> Unities abgeben:
Hallo Martin, vor einer solchen Antwort hatte ich Angst So richtig fit bin ich nicht in .NET, und mit der Shell-Methode hab' ich schon rumprobiert. Die hat mich fürchterlich geärgert, weil's nicht so geht, wie ich mir das vorstelle. Das führte dann unweigerlich zur Hoffnung auf den einzeiligen NX-Weg... Danke für die schnelle Antwort! Grüße, Sebastian Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mseufert Moderator Freiberuflicher CAD/CAM Ingenieur
Beiträge: 2624 Registriert: 18.10.2005 HP Z420 WIN7 64 Win 10 UG NX6-1980 3D Printer Prusa MK2 S
|
erstellt am: 03. Sep. 2009 17:25 <-- editieren / zitieren --> Unities abgeben: Nur für Seidelbast
Hallo Sebastian, welchen Martin meinst Du ? Die nächste Verwechslung liegt m.E. beim Unterschied zwischen Shell und Process. Einen Prozeß kannst Du wie folgt definieren: dim proc as new process Dann Info's beistellen, z.B. proc.StartInfo... -> welches Programm soll laufen, welche Argumente werden übergeben etc. proc.StandardOutput... -> Ausgabe des externen Programms abfangen, die wird als StreamReader geliefert. Das sind die wesentlichen Angaben für den Prozeß, der letztlich mit: proc.start() gestarted wird. Nachdem's durchgelaufen ist, kannst Du den StreamReader zeilenweise durchgehen und so feststellen, was Dir ugpc zu sagen hat. Das ist zwar nicht ganz in eine Zeile zu kriegen , aber Angst machen (lassen) gilt nicht. Gruß, Michael Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Seidelbast Mitglied Konstrukteur/Programmierer
Beiträge: 6 Registriert: 07.07.2005 NX4(32/64) WinXP Pr. 64bit MS VisualStudio2005
|
erstellt am: 03. Sep. 2009 22:30 <-- editieren / zitieren --> Unities abgeben:
Bitte vielmals um Entschuldigung, hallo Michael Auf die Idee, direkt den Output des ugpc in mein Programm umzuleiten bin ich gar nicht gekommen - und wenn hätt' ich nicht gewusst, wie ich's machen soll. Was ich jetzt nach langem Gemurkse geschafft habe, ist per Shell-Methode eine cmd zu starten, im gleichen Zug ugpc mit dem gewünschten PRT auszuführen und dessen Ausgabe per Pipe in eine temporäre Datei umzuleiten. Die lese ich dann wieder ein, werte die Einträge nach ein paar Kriterien aus und lösche schließlich die Temp-Datei. Morgen setz' ich vor den ganzen Kram lauter kleine Striche und versuche es mit Deinen Tips. Nochmals Danke für Deine Antwort, Grüße, Sebastian Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mseufert Moderator Freiberuflicher CAD/CAM Ingenieur
Beiträge: 2624 Registriert: 18.10.2005 HP Z420 WIN7 64 Win 10 UG NX6-1980 3D Printer Prusa MK2 S
|
erstellt am: 04. Sep. 2009 09:38 <-- editieren / zitieren --> Unities abgeben: Nur für Seidelbast
Hallo Sebastian, wenn Du es mit einer Shell bereits geschafft hast, ugpc zu verwenden, klappt das mit einem Prozeß sicher auch. Für jemanden, der nach eigenem Bekunden "nicht ganz fit in .NET" ist, schon eine ansehliche Leistung. Und mach' Dir wegen "Martin" keine Sorgen, das kann ja mal vorkommen. Gruß, Michael Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ThomasZwatz Ehrenmitglied V.I.P. h.c. cadadmin
Beiträge: 5397 Registriert: 19.05.2000
|
erstellt am: 04. Sep. 2009 20:17 <-- editieren / zitieren --> Unities abgeben: Nur für Seidelbast
Zitat: Original erstellt von Seidelbast: ...Ich versuche, unter NX4(64bit) und MS Visual Studio 2005 per .NET eine Versionsverwaltung für unsere Bauteile zu schreiben - wir arbeiten nämlich native...
Nur so aus Neugier : Wie / was machst du da genau ? Thomas Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Technischer Zeichner (m/w/d) CAD Gebäudetechnik | Die MB Group ist Ingenieurbüro für Elektroanlagen, Fördertechnik, sowie Lichtplanung mit über 30-jähriger Erfolgsgeschichte. Unser Ziel ist der ökologisch und ökonomisch optimale Gebäudebetrieb. Unser Planungshorizont umfasst den kompletten Gebäudezyklus ? von der Konzeption über die Projektierung bis hin zur Inbetriebnahme. Wir freuen uns auf die Zusammenarbeit mit Ihnen!
| Anzeige ansehen | Technischer Zeichner, Bauzeichner |
|
Seidelbast Mitglied Konstrukteur/Programmierer
Beiträge: 6 Registriert: 07.07.2005 NX4(32/64) WinXP Pr. 64bit MS VisualStudio2005
|
erstellt am: 07. Sep. 2009 10:55 <-- editieren / zitieren --> Unities abgeben:
Moin Thomas! Wir versuchen mit allerlei Zusatzprogrammen (wie einem Tool für "überwachtes" Concurrent Engineering, nicht selbst geschrieben) die aus 1001 Diskussionen bekannten Nachteile des Native-UG in den Griff zu bekommen. Teamcenter & Co. wollten wir nicht, Begründungen stehen in den gleichen 1001 Diskussionen Die Versionsverwaltung wird ein Teil des "in-den-Griff-bekommens", das Konzept dafür ist bisher um die zwei Seiten lang und enthält einen Haufen firmenspezifischer Vorgaben. Außerdem verändert es sich alle paar Tage, weil ich ein neues Loch finde, an das ich zuvor nicht gedacht hatte. Kurz gesagt: Versions-Suffix im Dateinamen, Rechte-Steuerung in der Windows-Domain und per Explorer-Schreibschutz (u.a. dafür brauchte ich die Kenntnis über den Assembly-Inhalt BEVOR ich das Assy ins NX lade). Dem ganzen "übergestülpt" eine SQL-Datenbank, die aber nur auf die PRTs "verlinkt" und einige Zusatzinfos speichert. Und dann träum' ich noch ein bißchen davon, daß wir das auch bei NX6 noch benutzen können, ohne wieder alles umbauen zu müssen Ist das ein stückweit 'ne Antwort auf Deine Frage? Schönen Arbeitstach, Sebastian Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |