| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| Auf dem Weg zur digitalen Auftragsmappe. , ein Anwenderbericht
|
Autor
|
Thema: PSP mittels VB-Script ansprechen (2298 mal gelesen)
|
Stefan2308 Mitglied
Beiträge: 12 Registriert: 05.10.2009
|
erstellt am: 07. Okt. 2009 17:56 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen, ist es möglich, PSP mittels VB-Script anzusprechen? Was ich machen will (klingt eigentlich ganz einfach): Mit VB-Script soll in PSP überprüft werden, ob eine (mit Inventor erzeugte) Datei schon vorhanden ist. Wenn ja, soll diese Datei evetnuell in ein lokales Arbeitsverzeichnis kopiert werden und der Spaß hat sich. Ist die Datei noch nicht vorhanden, muss diese aus dem Arbeitsverzeichnis von Inventor eingecheckt werden. Passende Funktionen scheint es ja zu geben, wie z.B. ___CopyFilesToLocal oder ___ImportElement, aber ich weiß leider nicht ansatzweise, wie ich das Ganze umsetzen könnte... Anhand des Entwicklerhandbuchs komm ich einfach nicht weiter bzw. weiß ehrlich gesagt nicht einmal, wo ich anfangen soll. Hier stellen sich schon die grundlegenden Fragen, wie ich die DBP oder COP-Dateien überhaupt ausführen kann, usw... Tappe hier noch total im Dunkel, aber vielleicht geht es ja einfacher, da ich ein COM-Objekt (Compass2000.CompassApplication) gefunden habe, welches mir aber auch nicht wirklich weiter hilft... Bin über jeden noch so kleinen Hinweis dankbar!!! Sonnige Grüße, Stefan PS: Allgemeine Frage - PSP arbeitet gar nicht mit Checkin/Checkout?!?
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
blacky1985 Mitglied Application Engineer
Beiträge: 348 Registriert: 16.04.2008 PSP 2008 SP1 PSP 2009 SP1 PSP 2010 AIP 2008 SP3 AIP 2009 SP2 AIP 2010
|
erstellt am: 07. Okt. 2009 22:44 <-- editieren / zitieren --> Unities abgeben: Nur für Stefan2308
Kurze Antwort am Rande schon mal vorab von mir. PSP arbeitet nicht mit Checkin/Checkout ------------------ Bei einem sinnvollen Posting würde man sich über entsprechende Honorierung in Form von einer kleinen Ü-Spende sehr freuen... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
T to the F Mitglied
Beiträge: 398 Registriert: 06.06.2007 Win 7 x64 SP1 PrDS 2012 Ultimate Vault Pro 2012 i7 M640 8 GB Quadro FX 1800M
|
erstellt am: 08. Okt. 2009 08:07 <-- editieren / zitieren --> Unities abgeben: Nur für Stefan2308
Wie schon Blacky gesagt hat, PSP arbeitet nicht mit CheckIn/CheckOut Du würdest PSP in eine Arbeitsweise reinzwingen die das System gar net versteht... Ich denke wenn du ständig Importe machst, läufst du eher auf Probleme als, das du deine Daten schüztst. Du kannst ja Dokumente "sperren" für einen User. Diesr kann dann damit arbeiten, andere jedoch nicht. Falls dir die Arbeitsweise mit PSP nicht ganz klar ist, hier mal eine kleine Beschreibung: PSP Daten sind im PSP hinterlegt. Öffnest du diese werden temporär die Daten vom Server kopiert. Speicherst du diese und schließt du diese wieder, werden die temporären Daten von deinem Rechner entfernt und die aktuellste Version wieder hochgeladen (jedoch ohne eine Revision zu erstellen, wie man es im Vault kennt...) Sind diese dann hochgeladen, sind die Dokumente nicht mehr gesperrt und andere können diese wieder zum bearbeiten öffnen. Es wäre noch hilfreich zu wissen mit welcher Inventor bzw PSP Version du arbeitest
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Stefan2308 Mitglied
Beiträge: 12 Registriert: 05.10.2009
|
erstellt am: 08. Okt. 2009 09:27 <-- editieren / zitieren --> Unities abgeben:
Guten Morgen und vielen Dank für die Antworten! Sry... Ganz vergessen. Ich arbeite mit Invenor 2010 und PSP 2010. Hm... Kein Checkout? Dann wäre schon mal die erste Frage geklärt . Macht aber nichts... Mit der von Dir geschilderten Arbeitsweise (also quasi Bibliothekspfad?) sollte ich auch klar kommen. Mir geht es hauptsächlich darum, dass ich die Daten in PSP rein bekomme und bei Vorhandensein nicht neu erzeuge, sondern aus PSP lade. Allerdings stellt mich das vor ähnliche Probleme... Abgewandeltes Szenario: 1. Ich melde mich bei PSP an 2. Prüfung, ob schon ein Teil in PSP vorhanden ist ja: Inventor holt sich das Teil aus PSP nein: Inventor erzeugt mir das Ding und diese erzeugte Datei soll dann in PSP hochgeladen werden. Viele Grüße & einen guten Start in den Tag, Stefan Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
T to the F Mitglied
Beiträge: 398 Registriert: 06.06.2007 Win 7 x64 SP1 PrDS 2012 Ultimate Vault Pro 2012 i7 M640 8 GB Quadro FX 1800M
|
erstellt am: 08. Okt. 2009 09:35 <-- editieren / zitieren --> Unities abgeben: Nur für Stefan2308
|
Stefan2308 Mitglied
Beiträge: 12 Registriert: 05.10.2009
|
erstellt am: 08. Okt. 2009 10:43 <-- editieren / zitieren --> Unities abgeben:
Würde eine Suche nach dem Dateinamen funktionieren? (geht z.B. bei Vault) Ansonsten könnte ich z.B. mit einer kleinen Datenbank arbeiten, die dann einfach ein einen Wert "vorhanden" setzt. Für den Anfang würde es mir auch reichen, wenn ich eine Datei (ganz banal mit fest hinterlegtem Pfad) einfach nur per VBS in PSP rein bekomme. Nach dem ersten Erfolgserlebnis kann man ja weiter schauen . Irgendwie funktioniert alles. ÜBer ein COM-Objekt wär's mir am liebsten, aber viele Wege führen nach Rom - Ich kenn bisher nur noch keinen einzigen Viele Grüße, Stefan Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Stefan2308 Mitglied
Beiträge: 12 Registriert: 05.10.2009
|
erstellt am: 08. Okt. 2009 11:05 <-- editieren / zitieren --> Unities abgeben:
|
T to the F Mitglied
Beiträge: 398 Registriert: 06.06.2007 Win 7 x64 SP1 PrDS 2012 Ultimate Vault Pro 2012 i7 M640 8 GB Quadro FX 1800M
|
erstellt am: 08. Okt. 2009 13:59 <-- editieren / zitieren --> Unities abgeben: Nur für Stefan2308
|
Stefan2308 Mitglied
Beiträge: 12 Registriert: 05.10.2009
|
erstellt am: 09. Okt. 2009 10:15 <-- editieren / zitieren --> Unities abgeben:
Guten Morgen, wie kann ich denn PSP mittels DBP steuern? Vielleicht kann ich ja so eine Brücke schlagen. . Das Entwicklerhandbuch gibt da nicht viel her. Ich weiß zwar, wie ich den Compiler aufrufe und habe massig Beispielskripte im Development Kit gefunden, aber wie ich mit dem Zeug umgehe, habe ich nirgends finden können... Ein Aufruf aus VBS würde mir schon reichen. Was alles hinter diesem Aufruf steht, ist dann eigentlich egal.... Viele Grüße, Stefan Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
T to the F Mitglied
Beiträge: 398 Registriert: 06.06.2007 Win 7 x64 SP1 PrDS 2012 Ultimate Vault Pro 2012 i7 M640 8 GB Quadro FX 1800M
|
erstellt am: 09. Okt. 2009 13:29 <-- editieren / zitieren --> Unities abgeben: Nur für Stefan2308
Also wenn du noch gar nix über DBP weißt, ist es vielleicht wirtschaftlicher, wenn du es über deinen Händler machen würdest, oder du dir ne Schulung geben lässt. Oder du liest dich sehr in die Entwicklungsdoku ein und probierst selber rum. Ich glaub so hat so ziemlich jeder seine Erfahrungen gesammelt Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Stefan2308 Mitglied
Beiträge: 12 Registriert: 05.10.2009
|
erstellt am: 12. Okt. 2009 09:04 <-- editieren / zitieren --> Unities abgeben:
|
mrndf Mitglied Dipl. Inf.
Beiträge: 26 Registriert: 12.07.2007 Wir können alles, außer Hochdeutsch;-) CAD: SolidWorks / SolidEdge / AutoCAD / Inventor PDM: PSP / PS Konfigurator: Confit / Logik Entwicklung: .NET (VB/C#) / C++ / ARX / Java DB: SQL Server / Oracle / DB2
|
erstellt am: 23. Okt. 2009 13:33 <-- editieren / zitieren --> Unities abgeben: Nur für Stefan2308
Wenn man auf die aktuelle Anmeldung und Dialoge verzichten kann, geht auch ein CoCreateInstance (für VB'ler CreateObject) auf dem COMPASS Server ("Compass2000.CompassApplication"). Darauf die Funktion Compass2000Server.ICompassApplication.GetUser(Name,pwd,startOptions) aufrufen und den User bekommen. StartOptions wie beim Start von PSP "-pro -DUSERID=Administrator". Der User ist schön COM und man kann alle die schönen Dinge machen, die man gerne möchte. Ab 2010 kann man sich auch den USER eines laufenden Clients angeln: Compass2000Server.CompassHelper instanziieren, Funktion Get liefert den User. VORSICHT mit 64er Client OS geht das nur im 32er kompatibilitätsmodus. Aber auch dafür gibt es auf Anfrage Lösungen. Gruß mrndf Übrigens um ein Dokument im PSP anzulegen, benötigt man neben dem programmiertechnischen Wissen auch erhebliches PSP Wissen. Trotz alledem. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cnstom Mitglied
Beiträge: 5 Registriert: 19.06.2009
|
erstellt am: 03. Feb. 2010 15:17 <-- editieren / zitieren --> Unities abgeben: Nur für Stefan2308
Hallo zusammen, wie der Ersteller von diesem Thread habe ich genau die gleiche Aufgabe. Nun habe ich das Problem, dass ich nicht das User-Objekt bekomme mit z.B.: set compass = CreateObject("Compass2000.CompassApplication") set user = compass.GetUser("Administrator", "pwd", "-pro -DUSERID=Administrator") oder auch set chelper = CreateObject("CompassServer.CompassHelper") set user = chelper.GetUser() In beiden Fällen lautet der Fehler "Bibliothek nicht registriert". Die Compass_Server.dll ist aber registriert. Ich habe irgendwo gelesen, dass auch die NetModule.dll registriert sein muss. Die lässt sich aber nicht registrieren. Es kommt die Meldung LoadLibrary("C:\Programme\Autodesk\Productstream") fehlgeschlagen - Das angegebene Modul wurde nicht gefunden. Ich habe PSP2010 im Einsatz. Bin für jede Hilfe dankbar! Schöne Grüße Tom
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mrndf Mitglied Dipl. Inf.
Beiträge: 26 Registriert: 12.07.2007 Wir können alles, außer Hochdeutsch;-) CAD: SolidWorks / SolidEdge / AutoCAD / Inventor PDM: PSP / PS Konfigurator: Confit / Logik Entwicklung: .NET (VB/C#) / C++ / ARX / Java DB: SQL Server / Oracle / DB2
|
erstellt am: 12. Feb. 2010 13:34 <-- editieren / zitieren --> Unities abgeben: Nur für Stefan2308
Hallo, binde doch die PSP Server DLL mittels Verweis in dein VBA Projekt ein und versuch mal: Dim cHelper As New Compass2000Server.CompassHelper Ich glabe bei meinem voherigen Post stimmen vielleicht die Namen nich 100%ig? Gruss mrndf Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
WoHR Mitglied Softwareentwickler
Beiträge: 1 Registriert: 15.01.2009
|
erstellt am: 25. Feb. 2010 11:24 <-- editieren / zitieren --> Unities abgeben: Nur für Stefan2308
Hallo zusammen, hier muss folgendes korrigiert werden: Erstens: Der Anmeldename des Benutzers wird der CompassServer.dll ja schon im ersten Argument mitgeteilt. -DUSERID=... ist also unnötig. Allerdings muss die CompassServer.dll den Namen zum Compass Server Verzeichnis kennen, speziell um die compass.ini zu finden. Deshalb muss man das PRGPATH Argument angeben. Man beachte, dass das 3 Argument nochmals komplett in Anführungszeiechen stehen muss (deshalb in VB """) Zweitens:Compass lädt die NetModule.dll über .net Suchmethoden. Sie muss deshalb (als einfache Lösung) neben der exe des Prozesses zu liegen kommen, der die CompassServer.dll lädt. Es ginge auch anders, das führt hier aber zu weit... Ich füge hier ein Beispiel an, das ich aus M$ Excel 2007 aufrufe. Vorher habe ich die NetModule.dll ins Verzeichnis 'C:\Programme\Microsoft Office\Office12' kopiert. Im Beispiel wird die CompassServer.dll geladen und über Substitute das Arbeitsverzeichnis in einer MessageBox ausgegeben. HTH Wolfgang ================================================ Option Explicit Function test() Dim a As New CompassApplication Dim u As CompassUser Set u = a.GetUser("Administrator", "", """-pro -DPRGPATH=C:\Programme\Autodesk\Productstream Professional 2010\bin""") MsgBox (u.Substitute("$WSPATH"))
End Function Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
noctis79 Mitglied Konstrukteur/ CAD-Administrator
Beiträge: 164 Registriert: 07.10.2009 Inventor Simulation 2011 - 64-Bit-Edition Productstream Professional Pro 2011
|
erstellt am: 04. Nov. 2011 20:07 <-- editieren / zitieren --> Unities abgeben: Nur für Stefan2308
|