Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Problem txt.file einlesen

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
Autor Thema:  Problem txt.file einlesen (1338 mal gelesen)
breitinger
Mitglied



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

Beiträge: 18
Registriert: 30.03.2009

Catia V5 R16

erstellt am: 12. Mai. 2009 22:12    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,

ich hab die Forumssuche benutzt, im Buch herumgeschaut komme aber auf keinen Grünen Zweig. Ich möchte ein Textfile einlesen um daraus eine Linie (Punkt und Richtung) zu erzeugen. Er erzeugt mir immer einen Fehler bei "part1.Update" weil er für alle Werte - also Punkt und Richtung - Null hat.Textfileformat und Makro sind unten.
Danke für eventuelle Antworten
breitinger

Die ersten 3 sind xyz Koordinaten für den Punkt. Die unteren 3 xyz Koordinaten für die Richtung.

Code:

0.
.707106781400000050
.707106781400000050
1.50000000100000008
.707106781400000050
.707106781400000050


Code:

'-----------------------------Punkt und Richtung Einlesen

Set oFile = CATIA.FileSystem.GetFile((PfadEingabe))
Set oText = oFile.OpenAsTextStream("ForReading")
For i = 0 To 5   
              oLine = oText.ReadLine
              FirstLine = Split(oLine, Chr10)           
        If oLine = "" Then
          Call MsgBox("Fehler im Textfile!", "Abbruch")
          Exit Sub
        End If
        Select Case i
          Case "0"
              PunktX = FirstLine   
          Case "1"
              PunktY = FirstLine
          Case "2"
              PunktZ = FirstLine
          Case "3"
              RichtungX = FirstLine
          Case "4"
              RichtungY = FirstLine
          Case "5"
              RichtungZ = FirstLine
      End Select
Next
       
'-------------------------------Achse erstellen

Set Punkt = hybridShapeFactory.AddNewPointCoord (PunktX, PunktY, PunktZ)
Set RefPunkt = part1.CreateReferenceFromObject (Punkt)
Set Richtung = hybridShapeFactory.AddNewDirectionByCoord (RichtungX, RichtungY, RichtungZ)   
            Set newLine = hybridShapeFactory.AddNewLinePtDir (RefPunkt, Richtung, 0, 200, true)
            hybridBody2.AppendHybridShape newLine
            newLine.Name = axis_of_rotation   

    Part1.Update '-------------------hier Fehler weil nur Nullen für Richtung und Punkt


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

DanielFr.
Moderator
Manager


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

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: 13. Mai. 2009 06:25    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 breitinger 10 Unities + Antwort hilfreich

Hallo breitinger,

ich denke es liegt daran, dass du versuchst Strings zu übergeben, CATIA aber eine Zahl erwartet.

In dieser Zeile

Code:
FirstLine = Split(oLine, Chr10)

ließt du einen STRING aus

hier

Code:
PunktX = FirstLine

speicherst du den String in die Variable

und hier

Code:
Set Punkt = hybridShapeFactory.AddNewPointCoord (PunktX, PunktY, PunktZ)

übergibst du CATIA den String obwohl CATIA einen anderen Typ erwartet (nämlich eine Zahl)

Das heißt du musst in dieser Zeile

Code:
PunktX = FirstLine

keinen String übergeben sondern einen Parameter des Typs Double

Das widerrum heißt diese Zeilen müsst SO aussehen

Code:
PunktX = CDbl(FirstLine)

Ich hoffe das ist einigermaßen deutlich Erklärt 

------------------
MFG Daniel

Die KATJA ist halt doch nur ne zickige Französin

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


Ex-Mitglied

erstellt am: 13. Mai. 2009 09:03    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hallo breitinger,

du benutzt die "split Funktion", d. h. es wird in ein Array erstellt

Syntax:

Dim MyString, MyArray, Msg
MyString = "VBScriptXisXfun!"
MyArray = Split(MyString, "x", -1, 1)
' MyArray(0) contains "VBScript".
' MyArray(1) contains "is".
' MyArray(2) contains "fun!".
Msg = MyArray(0) & " " & MyArray(1)
Msg = Msg  & " " & MyArray(2)
MsgBox Msg

bei dir heißt das dann

PunktX = FirstLine(0)

Gruß

------------------
mb 

breitinger
Mitglied



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

Beiträge: 18
Registriert: 30.03.2009

Catia V5 R16

erstellt am: 13. Mai. 2009 10:28    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,

danke DanielFr und marbat jetzt hab ichs hinbekommen. Für meine Begriffe sogar schnell  ! Ich poste meine Lösung - vielleicht brauchts wieder mal wer. Ein weiteres Problem waren nämlich noch die Punkte anstatt den Kommas in den Textfiles.
Schöne Grüße
breitinger

exemplarisch für case "0"

Code:
Case "0"

              PunktXalt = oLine
              PunktXneu = Replace(PunktXalt, ".", ",")
              PunktX = CDbl(PunktXneu)


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