Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Autodesk Productstream Professional
  PSP von Außen ansprechen

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 Autodesk Produkte
  
PDM Sucess Story: Von Vault zu GAIN Collaboration (GAIN Collaboration,PDM,PDM System,PLM,PLM System)
Autor Thema:  PSP von Außen ansprechen (1688 mal gelesen)
AWagner
Mitglied
Software-engineer


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

Beiträge: 32
Registriert: 27.11.2007

erstellt am: 12. Sep. 2008 10:22    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 Leute,

ich wollte fragen ob von euch schon jemand Erfahrungen gemacht hat wie man PSP von außen ansprechen kann!?

zB. PSP aus einer VB.Net Anwendung starten / holen
    (System.Runtime.InteropServices.Marshal.GetActiveObject("progID") / CreateObject 'aber wie ist die ProgID? application/Compass? --> ist es nicht)

ich habe es auch schon über den DDE-Server versucht! Bekomme es aber nicht ordentlich zum laufen!
Über einen DDE Request bekomme ich zwar die $USERID aber zB. keine in der CompassINI definierten Environmentvariablen.
Hat sowas schon jemand einmal gemacht? Vielleicht könnte mir jemand weiterhelfen - wär echt super! (Codekonstrukte?!)

mfg Andreas

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

mrndf
Mitglied
Dipl. Inf.


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

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: 13. Sep. 2008 20:22    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 AWagner 10 Unities + Antwort hilfreich

Hmm, zugegeben das ist nicht ganz einfach!
Wäre mal interessant was die Jungs von der A... Firma dazu sagen würden;-)

1) Der offizielle Weg:
Es gibt die Möglichkeit PSP über DDE zu steuern - Deatils könnte ich evtl. auf Rückfrage liefern. Dann kann man da eine Funktion einer CAI Bibliothek aufrufen. Innerhalb dieser Funktion hat man ein sogenanntes CallBack Objekt, dass länger lebt als man denkt... Das muss man nun über einen COM Aufruf oder ähnliches der eigenen Anwendung - die dann das PSP steuern soll(Das war ja die Frage...) - zur Verfügung stellen. Darauf kann man dann Funktionen aufrufen oder mit Prep Werte aus PSP auslesen.
Ich hab mir das nicht ausgedacht und ich darf hier auch nicht schreiben wer das war, aber ich kenne den Namen!

2) Ein Weg der auch was kann... (aber leider nicht alles!)
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.

Den User aus dem laufenden PSP Client zu angeln ist leider (noch?) nicht möglich.

Gruß mrndf

PS: Ach so PSP von einer Anwendung starten hat für mich jetzt noch nie Sinn gemacht. Für 2) erübrigt es sich ja, und für 1) würd ich ein Shell Aufruf vorschlagen und dann mit DDE stochern bis was kommt? (Uaaaah - da läuft's mir schon wieder kalt den Rücken runter)

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

AWagner
Mitglied
Software-engineer


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

Beiträge: 32
Registriert: 27.11.2007

erstellt am: 18. Sep. 2008 09:19    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

hy,

danke für deine Antwort!

Ich hab jetzt etwas rumprobiert - aber ohne weitere Hilfe komme ich scheinbar einfach nicht weiter. Wie bereits erwähnt bekomme ich bei der ersten Option nur die UserID - alle weiteren versuche andere Daten rauszubekommen sind fehlgeschlagen.

Bei der zweiten Option bekomme ich über CreateObject zwar das neu Objekt aber ohne der richtigen Klassenreferenz bringt mir das Objekt wohl nicht viel. (Gibt es vielleicht ne DLL die ich einbinden kann?)
Auch der Versuch mich über CallByName bis zur Funktion GetUser durchzuhanteln funktioniert nicht.
Auf einen laufenden PSP-Client kann ich mit dieser Variante nicht zugreifen?!!

mfg Andreas

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

mrndf
Mitglied
Dipl. Inf.


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

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: 19. Sep. 2008 13:50    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 AWagner 10 Unities + Antwort hilfreich

Die dll zum Einbinden ist eine COM DLL
Name: "CompassServer Type Library"
Pfad: {Client}\bin\COMPASS_Server.dll

Für DDE muss man als Topic den AIMKEY senden, um eine Funktion auf einem Recordset auszuführen:

Beispiel VBA Makro (Aus Programmier Doku)

'DDEInitiate("AIM.COMPASS5.DDE", {Hier muss der AIMKEY stehen})
Kanalnr = DDEInitiate("AIM.COMPASS5.DDE", "2969.73795")
Ident$ = DDERequest$(Kanalnr, "#(IDENT)")
DDETerminate Kanalnr

(Sollte so aussehen - hab ich aber nicht probiert!)

Gruß Marc

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

AWagner
Mitglied
Software-engineer


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

Beiträge: 32
Registriert: 27.11.2007

erstellt am: 12. Nov. 2008 13:17    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

tja, da kann ich rumprobieren was ich will ...

In PSP 2009 - funktioniert DDE erst nach SP1 und nem speziellen Hotfix - TS1089406
Hatte wohl was mit Unicode-umstellung zu tun.

Jetzt kann ich schön über DDE ne Verbindung zu PSP aufbauen.
Damit ich mich nicht unnötig mit Api-Calls rumägern musste kann ich http://www.codeplex.com/ndde  sehr empfehlen.

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

RS Robert
Mitglied
IT

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

Beiträge: 3
Registriert: 19.09.2007

erstellt am: 26. Nov. 2008 12:31    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 AWagner 10 Unities + Antwort hilfreich

Hallo,

ist genau was ich suche, hast Du hier vielleicht noch mehr Beispiele, bzw. wo finde ich die
"Programmier Doku". Ich kann unter meinen Infos leider nichts finden.

Meine Aufgabe wäre es Compass mit Parametern zu starten und direkt auf ein bestimmtes Projekt zu wechseln, bzw. über die COM Schnittstelle mit Daten aus dem Projekt zu arbeiten.
Es geht direkt über die SQL Schnittstelle auch, aber COM wäre mi lieber.

Danke im voraus!

Grüsse

Robert

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

Motzi
Mitglied
Anwendungsprogrammierer


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

Beiträge: 298
Registriert: 16.06.2002

COMPASS Liebhaber, auch wenn es PSP heisst
COMPASS Entwickler.
5x Windows 2003 Server, SQL 2005
AIP2009,
SolidWorks 2009,
EPLAN P8,
Cadenas,
Autodesk Productstream Professional 2009 pro,
inforCOM 7.1 (ERP)
d.3 DMS System

erstellt am: 18. Jan. 2009 17:48    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 AWagner 10 Unities + Antwort hilfreich

Hallo zusammen,

Das User Objekt von Aussen zu erhalten ist nur mit einer speziellen DLL in PSP möglich.
Die COMPASS_Server.dll einzubinden funktioniert hier nicht.

Vielleicht gibt es ja so etwas in der nächsten Version.

------------------
Gruß

Motzi

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)2024 CAD.de | Impressum | Datenschutz