| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SolidEdge |
Autor
|
Thema: mit VB Sheets einer Draft-Datei ansteuern (315 mal gelesen)
|
san Mitglied Maschinentechniker
Beiträge: 66 Registriert: 22.11.2002
|
erstellt am: 28. Sep. 2004 18:00 <-- editieren / zitieren --> Unities abgeben:
Hallo miteinander Der folgende Code hat einwandfrei funktioniert! Ich habe einige Sachen bereinigt und Ergänzungen hinzugefügt und jetzt gibt er mir die Blätter nicht mehr aus. Meldung: Objekt unterstützt diese Eigenschaft oder Methode nicht. Was mache ich falsch? Gruss und danke san Option Explicit Dim objApp As Object Dim objActive_Doc As Object Dim objSheets As Object Dim objSheet As Object
Public Sub Main() Set objApp = GetObject(, "SolidEdge.Application") Set objActive_Doc = objApp.ActiveDocument Set objSheets = objActive_Doc.Sheets For Each objSheet In objSheets Debug.Print objSheet.Name Next End Sub Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
modeng Ehrenmitglied V.I.P. h.c.
Beiträge: 7061 Registriert: 10.12.2003
|
erstellt am: 28. Sep. 2004 19:30 <-- editieren / zitieren --> Unities abgeben: Nur für san
... vielleicht war das aktive Dokument kein Draft, der Typ wird nicht abgefragt! so lief es jedenfalls: Option Explicit Dim objApp As Object Dim objActive_Doc As DraftDocument Dim objSheets As Sheets Dim objSheet As Sheet Private Sub Command1_Click() ' ' Solid Edge assumed to be running Set objApp = GetObject(, "SolidEdge.Application") If objApp.Documents.Count > 0 Then If objApp.ActiveDocument.Type = igDraftDocument Then Set objActive_Doc = objApp.ActiveDocument Set objSheets = objActive_Doc.Sheets For Each objSheet In objSheets Debug.Print objSheet.Name Next Else ' whatever' End If Else ' whatever End If ' ' cleanup on end of run Set objApp = Nothing Set objActive_Doc = Nothing Set objSheets = Nothing Set objSheet = Nothing End Sub Klaus Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
san Mitglied Maschinentechniker
Beiträge: 66 Registriert: 22.11.2002
|
erstellt am: 29. Sep. 2004 08:46 <-- editieren / zitieren --> Unities abgeben:
Im ersten Programmteil öffne ich ein Draft. Es muss also gezwungenermassen ein Draft aktiv sein. Ich hatte früher schon ab und zu mal das Phänomen, dass ein Programm, dass einwandfrei lief, plötzlich nicht mehr lief. Einmal abmelden und wieder anmelden hat dann in der Regel genügt. Nur gestern ging auch das nicht. Heute morgen habe ich neu aufgestartet und erst mal die V15 aktiviert. Ich habe die V16 nämlich auf dem gleichen Rechner laufen, die war bis gestern aktiviert, das VB-Programm lief aber mit V15-Daten. Und siehe da: es funktioniert wieder! Keine Ahnung, ob es wegen dem Neustart oder wegen der richtigen Solid Edge Version wieder funktioniert. Hauptsache es funktioniert wieder!!! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
modeng Ehrenmitglied V.I.P. h.c.
Beiträge: 7061 Registriert: 10.12.2003
|
erstellt am: 29. Sep. 2004 08:59 <-- editieren / zitieren --> Unities abgeben: Nur für san
|
Markus Gras Moderator Solid Edge AE
Beiträge: 4602 Registriert: 20.07.2000 Kritik muß sachlich falsch und persönlich verletzend sein, damit sie wirkt.
|
erstellt am: 29. Sep. 2004 10:50 <-- editieren / zitieren --> Unities abgeben: Nur für san
|
modeng Ehrenmitglied V.I.P. h.c.
Beiträge: 7061 Registriert: 10.12.2003
|
erstellt am: 29. Sep. 2004 11:30 <-- editieren / zitieren --> Unities abgeben: Nur für san
das wuerde heissen, dass bei diesen einfachen Calls die .tlb nicht kompatibel sind -- unwahrscheinlich aber bei UGS ist alles moeglich Zumindest liefen Programme, die mit V14 erstellt wurden sowohl unter V12 als auch V15 Klaus Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Markus Gras Moderator Solid Edge AE
Beiträge: 4602 Registriert: 20.07.2000 Kritik muß sachlich falsch und persönlich verletzend sein, damit sie wirkt.
|
erstellt am: 29. Sep. 2004 12:30 <-- editieren / zitieren --> Unities abgeben: Nur für san
|
modeng Ehrenmitglied V.I.P. h.c.
Beiträge: 7061 Registriert: 10.12.2003
|
erstellt am: 29. Sep. 2004 13:06 <-- editieren / zitieren --> Unities abgeben: Nur für san
|
san Mitglied Maschinentechniker
Beiträge: 66 Registriert: 22.11.2002
|
erstellt am: 29. Sep. 2004 13:21 <-- editieren / zitieren --> Unities abgeben:
Wie gesagt, ich hatte das Phänomen schon einige Male, dass ein VB Programm plötzlich nicht mehr lief. Und ich habe nicht ständig eine Parallel-Installation auf meinem Rechner. Also muss es einen anderen Grund geben. Was ich auch schon gemacht habe, wenn abmelden-anmelden oder sogar Neustart nichts nütze: ein neues VB-Projekt eröffnen, copy-paste vom bestehenden und dann war das Problem auch gelöst! Ich bin sowohl bei Solid Edge, als auch bei VB immer up to date (neustes SP). Passiert euch das nie, dass ein zuvor laufendes Programm plötzlich nicht mehr läuft??? Gruss san Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
san Mitglied Maschinentechniker
Beiträge: 66 Registriert: 22.11.2002
|
erstellt am: 29. Sep. 2004 13:32 <-- editieren / zitieren --> Unities abgeben:
Wenn wir schon gerade dabei sind... Ich öffne mit meinem VB-Programm eine grössere Menge Draft-Dateien. Nur fehlt bei diesen Draft-Dateien das 3D-Teil. Und ich erhalte die dementsprechende Meldung. Weiss jemand, wie ich diese Meldung über VB bestätigen kann? Ich habe nach etwas wie "ActiveWindow.close" oder so ähnlich gesucht, bin aber nicht fündig geworden. Thanks san Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
modeng Ehrenmitglied V.I.P. h.c.
Beiträge: 7061 Registriert: 10.12.2003
|
erstellt am: 29. Sep. 2004 14:58 <-- editieren / zitieren --> Unities abgeben: Nur für san
[...] Passiert euch das nie, dass ein zuvor laufendes Programm plötzlich nicht mehr läuft??? [...] schon aber das war dann auf die Programmierung zurueckzufuehren: fehlende Abfrage etc. [...] Weiss jemand, wie ich diese Meldung über VB bestätigen kann? [...] Eine Moeglichkeit: garnicht erst angezeigen: seApp.DisplayAlerts = False Klaus Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
san Mitglied Maschinentechniker
Beiträge: 66 Registriert: 22.11.2002
|
erstellt am: 29. Sep. 2004 16:02 <-- editieren / zitieren --> Unities abgeben:
|