Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  öffnen eines Produktes (Namen aus Textfile)

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 CATIA & Co.
  
KISTERS 3DViewStation: Geniale 3D-Visualisierung für intuitiven HMI Einsatz, eine Pressemitteilung
Autor Thema:  öffnen eines Produktes (Namen aus Textfile) (1258 mal gelesen)
hasim
Mitglied



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

Beiträge: 14
Registriert: 06.05.2004

erstellt am: 20. Jul. 2004 10:24    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 zusammen,

ich habe mal wieder ein Problem.
Ich möchte ein CATProduct öffnen. Den Namen des Productes bekomme ich aus einem Textfile, aber das funktioniert irgendwie nicht. In meinem Textfile steht der Name des Productes und der Pfad in "". Mein Programm sieht wie folgt aus:

Sub CATMain()

Dim documents1 As Documents
Set documents1 = CATIA.Documents
Dim productDocument1 As Document
Dim filesystem1 As Object
Set filesystem1= CATIA.FileSystem
Dim file As Object
Dim TextStr As CATIATextSteam
Dim Pfad As String

Set file = filesystem1.GetFile ("I:\tmp\product_namen_alt.txt")
Set TextStr = file.OpenAsTextStream ("ForReading")
Pfad = TextStr.ReadLine
MsgBox Pfad
Set productDocument1 = documents1.Open(Pfad)

End Sub

Wenn ich jetzt den Namen nicht einlese, sondern der Variablen Pfad den Namen fest zuweise funktioniert es:

Pfad = "I:/produkte/MASTER.CATProduct"
Set productDocument1 = documents1.Open(Pfad)

Warum und warum funktioniert mein einlesen nicht?

Danke
Gruß Hasim

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

steirerhubsi
Mitglied
wiss. Mitarbeiter


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

Beiträge: 36
Registriert: 02.04.2003

erstellt am: 20. Jul. 2004 13:47    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 hasim 10 Unities + Antwort hilfreich

Hallo!

Ich hab das Problem so gelöst:

Sub CATMain()

Dim documents1 As Documents
Set documents1 = CATIA.Documents
Dim productDocument1 As Document
Dim filesystem1 As Object
Set filesystem1 = CATIA.FileSystem
Dim file As Object
Dim Pfad As String

FileNum = FreeFile()
Open ("d:\temp\info.txt") For Input As FileNum
Input #FileNum, Pfad
Input #FileNum, Datei
Close #FileNum

Set productDocument1 = documents1.Open(Pfad & Datei)

End Sub

Der Pfad und der Dateiname der zu öffnenden CATIA-Dateien sind in einem Textfile abgespeichert, wie z.B.:
d:\temp\CATIA_FEM\
Product1.CATProduct

=> hier OHNE ""; WICHTIG: in zwei Zeilen!
Bei solchen Dateioperationen Fehlermeldungen bei fehlenden Dateien nicht vergessen:

Set fs = CreateObject("Scripting.FileSystemObject")
'...
FolderExists = fs.FolderExists(Pfad)
'...
FileExists = fs.FileExists(Pfad & "info.txt")
'...
If FolderExists = False Then
  MsgBox ("Pfad " & Pfad & " does not exist!!!")
  End  'Programm beenden
End If

If FileExists = False Then
  MsgBox ("Datei " & Pfad & "info.txt does not exist!!!")
  End  'Programm beenden
End If

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

hasim
Mitglied



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

Beiträge: 14
Registriert: 06.05.2004

erstellt am: 26. Jul. 2004 10:00    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

Hi,

danke für deine Antwort. Ich wollte jetzt das Macro von dir testen, aber es bleibt immer in der Zeile mit dem Befehl:

Open ("d:\temp\info.txt") For Input As FileNum

stehen und bringt die Fehlermeldung:

Description: Anweisungsende erwartet
Statement: Open ("d:\temp\info.txt") For Input

Ich verstehe es nicht. Ich habe jetzt in der Doku geschaut, da finde ich aber auch nichts zu diesen Befehl. Kannst du mir vielleicht nochmal helfen?

Danke Hasim

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

steirerhubsi
Mitglied
wiss. Mitarbeiter


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

Beiträge: 36
Registriert: 02.04.2003

erstellt am: 27. Jul. 2004 16:16    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 hasim 10 Unities + Antwort hilfreich

Hallo!

"Open ... for Input As ..." ist ein allgemeiner VB Befehl (Google: Visual Basic Open for input => sehr viele Beispiele, Probleme,...)

Mein Ansatz hat bei mir immer funktioniert. Ich habe mir aber auch mal kurz dein Makro nochmal angeschaut. Du könntest noch folgendes probieren:

Sub CATMain()

Dim documents1 As Documents
Set documents1 = CATIA.Documents
Dim productDocument1 As Document
Dim filesystem1 As Object
Set filesystem1 = CATIA.FileSystem
Dim file As Object
Dim TextStr As TextStream
Dim Pfad As String

Set file = filesystem1.GetFile("d:\temp\info1.txt")
Set TextStr = file.OpenAsTextStream("ForReading")
Pfad = TextStr.ReadLine
'MsgBox Pfad
Set productDocument1 = documents1.Open(Pfad)

End Sub

=> alles gleich wie vorher, nur die Variable "TextStr" als "TextStream" definieren, nicht als "CATIATextStream". Pfad dann einfach ohne "..." in erste Zeile Textfile speichern:

d:\temp\CATIA_FEM\Part1.CATPart

Funktioniert bei mir.

Martin

[Diese Nachricht wurde von steirerhubsi am 27. Jul. 2004 editiert.]

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

hasim
Mitglied



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

Beiträge: 14
Registriert: 06.05.2004

erstellt am: 28. Jul. 2004 07:45    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 Martin,

vielen Dank für deine Hilfe. Jetzt läuft mein Programm doch. Hab keine Ahnung an was das mal wieder lag.

Gruß
Simone

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