| |
| Design Eines Nanosatelliten Für Ein Biologisches Experiment Mit Hilfe Maßgeschneiderter Herstellungsverfahren, ein Anwenderbericht
|
Autor
|
Thema: Scripting auf Smarteam SAVE ???? (1219 mal gelesen)
|
alias Mitglied CAD Betreuer
Beiträge: 282 Registriert: 25.09.2003
|
erstellt am: 29. Apr. 2008 10:06 <-- editieren / zitieren --> Unities abgeben:
Kennt jemand eine Methode wie man in das Smarteam Save aus CATIA ein Script einbauen kann ??? BEFORE ADD greift ja nur beim ersten SAVE, würde aber gerne ein Script bei jedem SAVE Vorgang einfügen. Danke (Smarteam und CATIA V5 R17) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ChristianS Moderator Leiter Kundenbetreuung
Beiträge: 635 Registriert: 27.09.2000
|
erstellt am: 30. Apr. 2008 00:01 <-- editieren / zitieren --> Unities abgeben: Nur für alias
|
v5upl Mitglied
Beiträge: 37 Registriert: 20.04.2005
|
erstellt am: 30. Apr. 2008 07:48 <-- editieren / zitieren --> Unities abgeben: Nur für alias
|
mister.spliss Mitglied IT-lastiger Ingenieur
Beiträge: 15 Registriert: 31.08.2007 Catia V4 in allen OEM-Ausprägungen Catia V5 in allen OEM-Ausprägungen Smarteam Marc/Mentat Ansys UG NX PC/Unix/Linux
|
erstellt am: 05. Mai. 2008 13:18 <-- editieren / zitieren --> Unities abgeben: Nur für alias
Hallo zusammen, über welchen Parameter kann man in diesen Einsprungspunkten das vom Benutzer ausgewählte Zielverzeichnis der SAVE-Operation abfragen? Ich würde gerne eine Prüfung einbauen, um bei nicht ausgewähltem Ordner einen Fehler auszugeben. Ansonsten landen die Daten zwar im Projekt, sind aber nur über Suchen wieder aufzuspüren. MFG Mister.Spliss Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
uhde Mitglied
Beiträge: 46 Registriert: 20.04.2005
|
erstellt am: 07. Mai. 2008 13:52 <-- editieren / zitieren --> Unities abgeben: Nur für alias
Hallo Mister.Spliss. Dazu fällt mir ein: 1. Das alte SmCadInterface
Code:
Dim cad As SmCADInterface Set cad = smSession.GetService("SmCAD.SmCADInterface") cad.Initialize "CATIA" Call cad.GetParent(ParentObjectId, ParentClassId)
2. Settings
Code:
smSession.Config.Value("$User\CATIA\ProjectClassId")
Aber Vorsicht im Falle von DesignCopy u.ä..Viel Erfolg, Christian
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ChristianS Moderator Leiter Kundenbetreuung
Beiträge: 635 Registriert: 27.09.2000
|
erstellt am: 09. Mai. 2008 11:45 <-- editieren / zitieren --> Unities abgeben: Nur für alias
|
mister.spliss Mitglied IT-lastiger Ingenieur
Beiträge: 15 Registriert: 31.08.2007 Catia V4 in allen OEM-Ausprägungen Catia V5 in allen OEM-Ausprägungen Smarteam Marc/Mentat Ansys UG NX PC/Unix/Linux
|
erstellt am: 09. Mai. 2008 12:53 <-- editieren / zitieren --> Unities abgeben: Nur für alias
|
ChristianS Moderator Leiter Kundenbetreuung
Beiträge: 635 Registriert: 27.09.2000
|
erstellt am: 09. Mai. 2008 15:26 <-- editieren / zitieren --> Unities abgeben: Nur für alias
Hi, dann bist du mit dem von Uhde geposteten Schnipzel genau richtig. Wenn ParentId 0 oder negativ ist dann hat der Anwender kein Objekt im 'SaveAs' Dialog ausgewählt. Ich habe solche Codezeilen in dem ProfileCard Load Event im Formdesigner zur gewünschten Klasse eingebaut. ... was ist dann aus der eingänglichen Frage nach dem Event bei jedem Speichern geworden? Ist dass die selbe Aufgabe oder sind 2 Sachen in diesem Call vermixt ? Gruß Christian
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mister.spliss Mitglied IT-lastiger Ingenieur
Beiträge: 15 Registriert: 31.08.2007 Catia V4 in allen OEM-Ausprägungen Catia V5 in allen OEM-Ausprägungen Smarteam Marc/Mentat Ansys UG NX PC/Unix/Linux
|
erstellt am: 20. Mai. 2008 16:55 <-- editieren / zitieren --> Unities abgeben: Nur für alias
Ja, die sind vermischt, weil ich mich ungefragt dran gehängt hab. Sorry. Durch den Hinweis 1 von Uhde sieht mein Teilskript jetzt so aus: Dim Ergebnis Dim CAD As SmCADInterface Dim ParentObjectId As Long Dim ParentClassId As Integer Set CAD = smSession.GetService("SmCAD.SmCADInterface") 'cad.Initialize "CATIA" ' Braucht man nicht, da aus Catia aufgerufen Ergebnis = CAD.GetParent (ParentObjectId, ParentClassId) ' msgbox("ParentObjectID = " & ParentObjectId) ' nur für Debugging ' msgbox("ParentClassID = " & ParentClassId) ' nur für Debugging ' Falls ParentObjectID <0 liegt ein Fehler vor, weil kein Ordner ausgewählt wurde If ParentObjectID > 0 Then SetDescription = Err_None Else SetDescription = Err_Refuse msgbox "You have to choose a folder to save your model!" & Chr$(13) & "Please save this model again." & Chr$(13) & "This operation ends now." & Chr$(13) & Chr$(13) & "Your file was not saved!", ebExclamation Exit Function End If Das Call CAD.GetParent hat nicht hingehauen, mit der Übergabe des Funktionsergebnisses nach Ergebnis geht es aber. Das Skript wurde in ein schon vorhandenes Skript bei BeforeAdd eingebaut und gibt eine Fehlermeldung aus, wenn die CAD-Dateien ohne Angabe eines Ordners gespeichert werden sollen. Der Speichervorgang wird abgebrochen. Danke für die Mithilfe. Gruß Mister.Spliss
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |