Autor
|
Thema: Datei Kopieren und Öffnen (3405 mal gelesen)
|
thorstenS Mitglied
Beiträge: 29 Registriert: 08.03.2006
|
erstellt am: 17. Sep. 2010 07:49 <-- editieren / zitieren --> Unities abgeben:
Hallo Zusammen, ich habe da mal eine Frage: Ich habe ein Macro mit dem ich den Inhalt eines Verzeichnis in ein anderes kopiere. Wenn dies geschehen ist möchte ich eine Datei aus dem "neuen" Verzeichnis öffnen. Leider weiß ich nicht wie ich die Datei aus den neuen Verzeichnis ansprechen soll, da dieses über eine Selektion ausgewählt wird. Hier der bisherige Code: Sub CATMain() Dim Shell Set Shell = CreateObject("Shell.Application") Ordner = Shell.BrowseForFolder(0, "Wählen Sie bitte den Speicherort aus", 0).Self.Path Dim fso Dim sfol As String sfol = "D:\TestVerschieben" Set fso = CreateObject("Scripting.FileSystemObject") If Not fso.FolderExists(dfol) Then fso.CopyFolder sfol, Ordner Else: MsgBox dfol & "Dieser Ordner existiert bereits !!!!!", vbExclamation, "Folder Exists" End If Dim documents1 As Documents Set documents1 = CATIA.Documents Dim productDocument1 As ProductDocument Set productDocument1 = documents1.Open("????????") End Sub Geöffnet werden soll eine Datei aus dem Verzeichnis "Ordner" zum Beispiel ein .CatProduct Hat jemand eine Lösung ?
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
DanielFr. Moderator Manager
Beiträge: 2506 Registriert: 10.08.2005 HP Compaq 8710w, Intel Core Duo T7700, 2,40 Ghz, 3GB RAM, Windows XP Professionel @32bit, Quadro FX 1600M, CATIA V5 R19 SP3
|
erstellt am: 17. Sep. 2010 08:14 <-- editieren / zitieren --> Unities abgeben: Nur für thorstenS
Hallo, 1. Dateien im Windows Explorer zu verschieben ist ein absolutes NoGo beim arbeiten mit einem CAD Programm. Die Produkte und Part enthalten im Dateiquelltext die Links ihrer Kinder. Werden Dateien auf Windows-Ebene verschoben so kann die Änderung des Pfades nicht in den Quelltext aufgenommen werden! Versuche das Ganze mal mit einem internen SendTo Befehl zu implementieren. 2. Wie willst du mit einem Script eine Datei öffnen von der du keine Randbedingungn kennst. Du kannst ja auch nicht per Hand eine Datei öffnen die du nicht kennst. Ich verstehe das mit der Selektion nicht. Wo wird die Datei vorher selektiert? In CATIA (dann kannst du den Ursprünglichen Dateinamen auslesen, oder im Explorer dann kannst du doch auch den ursprünglichen Dateinamen auslesen). ------------------ MFG Daniel Systeminformation | Inoffizielle CATIA Hilfeseite | CATIA FAQ | Suche | TraceParts (Normteile...) | 3D Content Central (noch mehr Normteile...) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
thorstenS Mitglied
Beiträge: 29 Registriert: 08.03.2006
|
erstellt am: 17. Sep. 2010 08:57 <-- editieren / zitieren --> Unities abgeben:
Hallo Daniel, Ein absolutes NoGo halte ich für übertrieben, man muss nur Wissen was man will und was man bewirkt.
Zu meinem Problem, es wird ein Verzeichnis Selektiert und keine Datei. Das Makro soll folgende Aufgabe erfüllen: 1. Es wird ein Verzeichnis über eine Abfrage ausgewählt 2. In das ausgewählte Verzeichnis werden die Daten aus "D:\TestVerschieben" verschoben 3. In CATIA möchte ich aus dem neuen Verzeichnis eine bestimmte Datei offnen ich frage mich wie ich dies hinbekomme ?
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Lusilnie Mitglied
Beiträge: 1486 Registriert: 13.07.2005
|
erstellt am: 17. Sep. 2010 20:40 <-- editieren / zitieren --> Unities abgeben: Nur für thorstenS
Hallo thorstenS, ich möchte hier den Zusammenhang ( ) zwischen dargestellten Code und der gestellten Frage nicht bewerten... Aber so wie Du Deine Angaben machst, geht es doch ganz einfach: Code: Set productDocument1 = documents1.Open(ConcatenatePaths(Ordner, "Bestimmte_Datei.CATProduct"))
mfg, Lusilnie
------------------ Alle Aussagen zu DassaultSystemes-Produkten sind sehr optimistisch, selbst diese!!! frei nach größeren Geistern Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
thorstenS Mitglied
Beiträge: 29 Registriert: 08.03.2006
|
erstellt am: 20. Sep. 2010 07:21 <-- editieren / zitieren --> Unities abgeben:
Hallo Lusilnie, danke für die Antwort, aber beim Testen erhalte ich einen Fehler: Der Befehl : "ConcatenatePaths" wird so glaube ich nicht verarbeitet. gibt es dafür eine Lösung ? Gruß Thorsten
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
zoltan.bekesi Mitglied
Beiträge: 321 Registriert: 22.10.2006 Job: CATIA V5R19 / XP 32bit MS Office 2003 Microstation V8 2004 Edition DELL Precision M6300
|
erstellt am: 20. Sep. 2010 18:30 <-- editieren / zitieren --> Unities abgeben: Nur für thorstenS
Hallo Thorsten, ich springe ein mit einem Antwort für Windows: Code: Set productDocument1 = documents1.Open( Ordner & "\" & "Bestimmte_Datei.CATProduct")
also die Strings einfach verknüpfen.Gruß, Zoltan Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Lusilnie Mitglied
Beiträge: 1486 Registriert: 13.07.2005
|
erstellt am: 20. Sep. 2010 21:40 <-- editieren / zitieren --> Unities abgeben: Nur für thorstenS
Hallo thorstenS, sorry, da hatte ich doch noch was vergessen... Code: Set productDocument1 = documents1.Open(CATIA.FileSystem.ConcatenatePaths(Ordner, "Bestimmte_Datei.CATProduct"))
mfg, Lusilnie
------------------ Alle Aussagen zu DassaultSystemes-Produkten sind sehr optimistisch, selbst diese!!! frei nach größeren Geistern Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
thorstenS Mitglied
Beiträge: 29 Registriert: 08.03.2006
|
erstellt am: 21. Sep. 2010 07:04 <-- editieren / zitieren --> Unities abgeben:
Hallo Zusammen, Ich danke euch für die Beiträge, aber irgent wie klappts immer noch nicht. Als Fehler meldung erhalte ich die beigefügte Fehler meldung. Leider fehlt mir an dieser Stelle das entsprechende Hintergrundwissen...., aber kann es sein das die Variable "Ordner" an dieser stelle nicht vom richtigen Typ ist? Gibt's dafür eine Lösung ? Mit freundlichen Grüßen Thorsten Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
zoltan.bekesi Mitglied
Beiträge: 321 Registriert: 22.10.2006 Job: CATIA V5R19 / XP 32bit MS Office 2003 Microstation V8 2004 Edition DELL Precision M6300
|
erstellt am: 21. Sep. 2010 18:52 <-- editieren / zitieren --> Unities abgeben: Nur für thorstenS
Hallo, die Variable "Ordner" musst du dir selbst deklarieren (als String) und den richtigen Wert zuweisen. Ansonsten wird es nicht funktionieren... Oder du kannst da einfach eine konstanter String angeben. Zoltan Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Lusilnie Mitglied
Beiträge: 1486 Registriert: 13.07.2005
|
erstellt am: 21. Sep. 2010 23:05 <-- editieren / zitieren --> Unities abgeben: Nur für thorstenS
Hallo thorstenS, wie schon "zoltan.bekesi" angedeutet hat, musst Du Deine Variablen sauber definieren. Hier mal Dein Code in gesäuberter Form, so dass er auch "durchläuft": Code: Option ExplicitSub CATMain() Dim Shell As Object Dim Ordner As String Dim fso As Object Dim sfol As String Dim dfol As String Dim documents1 As Documents Dim productDocument1 As ProductDocument Set Shell = CreateObject("Shell.Application") Ordner = Shell.BrowseForFolder(0, "Wählen Sie bitte den Speicherort aus", 0).Self.Path sfol = "D:\TestVerschieben" Set fso = CreateObject("Scripting.FileSystemObject") If Not fso.FolderExists(dfol) Then fso.CopyFolder sfol, Ordner Else MsgBox dfol & "Dieser Ordner existiert bereits !!!!!", vbExclamation, "Folder Exists" End If Set documents1 = CATIA.Documents Set productDocument1 = documents1.Open(CATIA.FileSystem.ConcatenatePaths(Ordner, "Bestimmte_Datei.CATProduct")) End Sub
Allerdings ist für mich hier nicht ersichtlich, was "dfol" ist und was Du damit machen bzw. prüfen willst. Doch Du wirst es sicher wissen... Derzeit wird halt bei "Nichtvorhandensein" eines Ordners ohne Namen der Inhalt von Ordner "D:\TestVerschieben" in das gewählte Verzeichnis kopiert. Bei Vorhandensein eines Ordners ohne Namen wird eine Message angezeigt, das der Ordner ohne Namen schon existiert und es wird trotzdem versucht, die "Bestimmte_Datei.CATProduct" aus dem gewählten Verzeichnis zu öffnen... mfg, Lusilnie
------------------ Alle Aussagen zu DassaultSystemes-Produkten sind sehr optimistisch, selbst diese!!! frei nach größeren Geistern Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
thorstenS Mitglied
Beiträge: 29 Registriert: 08.03.2006
|
erstellt am: 22. Sep. 2010 07:24 <-- editieren / zitieren --> Unities abgeben:
|