Autor
|
Thema: Problem txt.file einlesen (1338 mal gelesen)
|
breitinger Mitglied
Beiträge: 18 Registriert: 30.03.2009 Catia V5 R16
|
erstellt am: 12. Mai. 2009 22:12 <-- editieren / zitieren --> Unities abgeben:
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 EinlesenSet 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
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 / zitieren --> Unities abgeben: Nur für breitinger
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 aushier
Code: PunktX = FirstLine
speicherst du den String in die Variableund 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 DoubleDas 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 / zitieren -->
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
Beiträge: 18 Registriert: 30.03.2009 Catia V5 R16
|
erstellt am: 13. Mai. 2009 10:28 <-- editieren / zitieren --> Unities abgeben:
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 >>)
|