Autor
|
Thema: Punkte aus einer Textdatei erzeugen und benennen (4374 mal gelesen)
|
MrSmith20 Mitglied Ingenieur
Beiträge: 5 Registriert: 10.07.2008
|
erstellt am: 10. Jul. 2008 14:58 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen! Ich habe folgendes Problem: Ich habe eine Datei vom Typ .txt in der sich die Daten von verschiedenen Punkten befinden. Das Ganze sieht ca. so aus: Name Punkt1_X (TAB) x-Koordinate Name Punkt1_Y (TAB) y-Koord. Name Punkt1_Z .. Name Punkt2_X .. .. Nun möchte ich gerne ein Macro schreiben, dass in einem Part Punkte erzeugt, indem es auf die txt-Datei zugreift (diese sollte vom Benutzer selbst ausgewählt werden können), ausliest, wieviele Punkte erzeugt werden sollen und danach a) den Namen in die Properties übernimmt und die Koordinaten übernimmt oder b) den Namen übernimmt und anschließend über eine Designtable die Koordinaten abgleicht und verknüpft. Mir wäre aber in erster Linie damit geholfen, wenn ich weiß, wie ich die Punkte erzeugen kann in Abhängigkeit von der Anzahl in dem Textfile. Vielen Dank schon einmal.
Gruß Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
V5Playaz Mitglied Dipl.-Ing (BA)
Beiträge: 447 Registriert: 12.07.2005 DELL PRECISION 390 3,25 GB RAM WIN XP PRO SP2 CATIA V5 R16-19 Delmia V5 R19 VB6, VB2008 Adobe Acrobat 9 Pro Extended
|
erstellt am: 10. Jul. 2008 16:14 <-- editieren / zitieren --> Unities abgeben: Nur für MrSmith20
Hallo, ich denke hierfür gibt es im Forum schon Makros. Ansonsten würde ich als erstes versuchen, mit dem Makrorekorder die manuelle Punkterstellung auszuführen. Dieses Makro kannst du danach automatisieren, damit der Ablauf für alle vorhandenen Punkte ausgeführt wird (Schleife). grüße Dominik Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
V5Playaz Mitglied Dipl.-Ing (BA)
Beiträge: 447 Registriert: 12.07.2005 DELL PRECISION 390 3,25 GB RAM WIN XP PRO SP2 CATIA V5 R16-19 Delmia V5 R19 VB6, VB2008 Adobe Acrobat 9 Pro Extended
|
erstellt am: 10. Jul. 2008 16:20 <-- editieren / zitieren --> Unities abgeben: Nur für MrSmith20
|
denyo_1 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: 10. Jul. 2008 17:10 <-- editieren / zitieren --> Unities abgeben: Nur für MrSmith20
Hallo, soweit ich mit errinnern kann hat es aber noch niemand mit ner *.txt Datei gemacht. Es gibt ja Programme die zum Beispiel Koordinaten messen und diese nur in txt-Datein ausgeben (z.B. Unix Progrs). Dann könnte man sowas schon brauchen. Ich bin aber schon dran. Morgen gibts ein fertiges Makro, das dir deine Punkte aus der txt-Datei liest, den Punkt in CATIA erstellt und den richtigen Namen für den Punkt vergibt. Bis morgen Schönen Feierabend ------------------ MFG Daniel Die KATJA ist halt doch nur ne zickige Französin Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 10. Jul. 2008 17:17 <-- editieren / zitieren --> Unities abgeben: Nur für MrSmith20
Servus Daniel da würde ich eher den faulen Weg gehen: - TXT-Datei in Excel importieren - Excel-Makro (oder das CATIA-Makro) zum erstellen von Punkten ändern dass auch der Name rübergezogen wird. Gruß Bernd PS: AFAIR Gab es das mit dem Punktnamen übernehemen schonmal. ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
denyo_1 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: 11. Jul. 2008 07:32 <-- editieren / zitieren --> Unities abgeben: Nur für MrSmith20
Hi, ja das geht natürlich solange man Zugang zu einem XP bzw. Windows Rechner hat. Ist das nicht der Fall und man muss oder kann nur auf ner UNIX Kiste arbeiten hat man halt ein Problem. Ich denke halt ein *.txt Datei ist ein bisschen schwerer zum Auslesen der Daten (und natürlich auch nicht so übersichtlich und anwenderfreundlich wie das Programm von Bill Gates) aber dafür ist die txt-Datei plattformunabhängig. Sprich egal an wenn ich das Makro weitergeben es läuft auf jeden Fall wenn er die Formatierung des txt-Files einhält. Außerdem unterliegt die txt-Datei dem ASCII-Standard und dieser Standard wird nicht jedes halbe Jahr mal verändert. Sprich die txt-Datei wirst du in 10 Jahren immer noch lesen und bearbeiten konnen. Eine *.xls Datei wirst du ihn 10 Jahren wahrscheinlich nicht mal mehr aufkriegen (dann mit Office 2020 . Ich errinnere hierbei nur an Adobe die sich seit x-Jahren den Kopf darüber zerbrechen wie man einen Standard schafft der auch noch in 50 Jahren gültig und vorallem lesbar ist. EDIT: Sorry die F7 Taste klemmt deswegen waren ein paar Rechtschreibfehler im Text ------------------ MFG Daniel Die KATJA ist halt doch nur ne zickige Französin [Diese Nachricht wurde von denyo_1 am 11. Jul. 2008 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
MrSmith20 Mitglied Ingenieur
Beiträge: 5 Registriert: 10.07.2008
|
erstellt am: 11. Jul. 2008 08:12 <-- editieren / zitieren --> Unities abgeben:
Danke schon mal für die Antworten. Es ist tatsächlich so, dass ich darauf angewiesen bin, die Daten aus einer *.txt auszulesen. Ich hab nur leider keine Ahnung, wie ich eine read-Anweisung so erstellen kann, dass er jede Zeile der txt mit dem vorhandenen Catia-Dokument abgleicht, erkennt ob es einen Punkt mit dem Namen xyz schon gibt, falls ja -> übernimmt er die Koordinaten aus der txt, falls nein -> erzeugt er einen neuen Punkt mit den entsprechenden Koordinaten. Somit würde die txt dann auch in folgendem Format vorliegen: Name Punkt1 (Tab) x-Koord (Tab) y-Koord (Tab) z-Koord Name Punkt2 ... ... Das ganze dann in ner Schleife bis alle Informationen ausgelesen sind und ich bin glücklich Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
denyo_1 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: 11. Jul. 2008 08:25 <-- editieren / zitieren --> Unities abgeben: Nur für MrSmith20
Hallo Mr.Smith, welches Format liegt nun vor? Also ich schreibe gerade an nem Makro das dein altes Format ließt. Das Problem ist, beim Lesen einer txt-Datei muss viel mit Split, Right, Left, etc. gearbeitet werden. Dazu MUSS das Format aber gleich sein sonst ließt er dir irgendwas aus nur nicht das was er soll. Und das mit den Punkten abgleichen hattest du auch vergessen zu erwähnen. Das wird nämlich schon recht komplex. Wo genau liegen den die Punkte bzw. liegen sie alle in einem geometrischen Set oder sind sie verteilt? EDIT: Kannst du mal das Part zur Verfügung stellen damit ich mal sehen kann wie dann überhaupt die Struktur ist? ------------------ MFG Daniel Die KATJA ist halt doch nur ne zickige Französin [Diese Nachricht wurde von denyo_1 am 11. Jul. 2008 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
MrSmith20 Mitglied Ingenieur
Beiträge: 5 Registriert: 10.07.2008
|
erstellt am: 11. Jul. 2008 08:32 <-- editieren / zitieren --> Unities abgeben:
Hallo denyo! Die Punkte liegen alle in einem geometrischen Set. Ich denke mal, dass die zweite Variante bezüglich des Formats die günstigere sein müsste. Aber ich sag mal , dass ich da flexibel bin, da man sich für Variante 1 oder 2 schnell umentscheiden kann, je nachdem, was für das Makro günstiger ist. Die Struktur ist so wie wenn man ein Part erzeugt hat, also relativ unspektakulär. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Thomas Harmening Ehrenmitglied V.I.P. h.c. Arbeiter ツ
Beiträge: 2897 Registriert: 06.07.2001 NX 10 Win 7
|
erstellt am: 11. Jul. 2008 12:39 <-- editieren / zitieren --> Unities abgeben: Nur für MrSmith20
ich würde eher den selben Weg, wie von Bernd vorgeschlagen einschlagen. Txt nach XL und von dort aus nach V5, A) sehe ich vorher visuell, ob die Punkte stimmen _ könnte ja mal sein das das Format in dem txt file sich ändert - zb, weil von deutscher auf enlische umgebung umgestellt wurde und punkte zu komma oder what ever ;-)... B) habe ich 2 codes und bei einem Fehlschlagen der Punkte nach Catia, kann ich in dem betreffendem Code nachschauen, wenn PunkteListe in XL visuell ok ist, kann es ja nur der Export nach V5 code sein ;-) dieses all-in-onescript würde ich nur machen, wenn ich selber in der Lage bin das auch zu schreiben, respektive es abändern kann... ah' man kann es sich ja auch machen lassen, aber irgendwie sind wir hier IMHO ja nicht bei Wünsch dir was ;-) - Vorallem bei so wenig Vorleistung :-(
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
denyo_1 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: 11. Jul. 2008 15:41 <-- editieren / zitieren --> Unities abgeben: Nur für MrSmith20
Hi, so wie schon erwähnt habe ich das Makro heute fertig geschrieben. Dieses Makro ließt nun eine vom Anwender gewählte *.txt Datei Zeile für Zeile aus und übertrag den Punktnamen mitsamt Koordinaten in CATIA. Hierbei wird abgefragt, ob im aktiven Part einen Punkt mit selben Namen existiert. Fall dies der Fall ist wird der original Punkt mit den neuen Koordinaten aus dem txt-File überschrieben. Neue Punkten werden in ein neues geometrisches Set angelegt, das den Namen der ausgewählten *.txt Datei trägt. Die Formatierung innerhalb der *.txt Datei ist folgende: "Name Punkt1" (Tab) x-Koord (Tab) y-Koord (Tab) z-Koord "Name Punkt2" (Tab) x-Koord (Tab) y-Koord (Tab) z-Koord . . . Diese MUSS unbedingt eingehalten werden bzw. wenn andere Formatierungen eingesetzt werden muss das Script in den Zeilen 141 (hier wird der Punktname ausgelesen), 148 (hier werden die Koordinaten als RAW bereitgestellt), 151, 152 und 153 (hier werden die Koordinaten (X,Y,Z) erzeugt angepasst werden Getestet habe ich das Makro auf CATIA V5R18 SP03. Also falls sich jemand die Mühe machen will und es auf anderen Releases testen will nur zu. Ein Feedback zum Makro ist wie immer gewünscht. Nun Viel Spaß beim Nutzten und anpassen des Makro´s PS: @MrSmith: Ein solches Makro zu benutzen birgt eine große Gefahr. Man sieht überhaupt nicht was im Hintergrund schief läuft (deswegen wird das Part am Ende des Makros nicht gespeichert). Falls dir irgendwas komisch vorkommt am Part dann schließ es lieber ohne zu speichern. Das ist aber nicht nur so bei Zitat: all-in-onescript´en
sondern bei allen Skripten die irgendwas aus irgendwelchen Dateien auslesen und in CATIA übertragen. Der Vorteil den ich jetzt bei Excel sehe ist nur das man nachvollziehen kann wo es einen Fehler gegeben hat falls einer auftritt. Das ist aber auch das ein zigste. Wenn sich die Formatierung der Excel Tabelle ändern müsste das Script ggf. auch angepasst werden. Ist also für mich zu mindestens kein durchschlagendes Argument. (nicht böse sein Thomas ) So jetzt aber genug getippt ich hab schon Schmerzen in den Fingern...
------------------ MFG Daniel Die KATJA ist halt doch nur ne zickige Französin Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
MrSmith20 Mitglied Ingenieur
Beiträge: 5 Registriert: 10.07.2008
|
erstellt am: 11. Jul. 2008 16:52 <-- editieren / zitieren --> Unities abgeben:
Also vielen Dank Denyo, das Makro läuft perfekt, von der Formatierung passts auch super und wenn sich mal was ändern sollte, weiß ich ja woch ich was ändern muss. Merci und schönes Wochenende
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
real Minimilian Mitglied
Beiträge: 5 Registriert: 03.05.2019 Catia V5-6 R26 HP ZBook 15
|
erstellt am: 14. Mai. 2019 14:43 <-- editieren / zitieren --> Unities abgeben: Nur für MrSmith20
Hey, hoffe hier ist noch jemand aktiv. Das Makro funktioniert super, allerdings würde ich gerne die neuen Punkte, insofern ein GeoSet mit dem ausgewählten Namen schon besteht, auch in die bestehende Geoset reinschreiben. Finde allerdings nicht den passenden Befehl dazu. Kann mir jemand weiterhelfen? LG Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 14. Mai. 2019 17:19 <-- editieren / zitieren --> Unities abgeben: Nur für MrSmith20
Servus Und in welchem GeoSet sollen die neuen Punkte erzeugt werden? zB über: Code: Set oGeoSet = HKoerper.Item("MeinGeoSetName") 'nächste Zeile mit dem umbenennen löschen
kann ein bestimmtes GeoSet (direkt unter dem Part-Knoten) angesprochen werden. Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
real Minimilian Mitglied
Beiträge: 5 Registriert: 03.05.2019 Catia V5-6 R26 HP ZBook 15
|
erstellt am: 15. Mai. 2019 08:26 <-- editieren / zitieren --> Unities abgeben: Nur für MrSmith20
Hallo Bernd, Sorry, das hatte ich vergessen dazu zu schreiben. Ich wollte eine Case-Abfrage machen, ob ein GeoSet mit dem Namen der Text-Datei (wie es im Makro drin steht) bereits besteht. Falls Nein soll wie bisher das Makro bestehen bleiben und ein neues GeoSet mit dem Namen anlegen. Falls jedoch das GeoSet schon besteht, würde ich die neuen Punkte gerne in das bestehende GeoSet reinschreiben. Ich werde es mal versuchen mit deinem Ansatz das GeoSet anzusprechen. Schonmal Tausend Dank! LG Max Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 15. Mai. 2019 08:43 <-- editieren / zitieren --> Unities abgeben: Nur für MrSmith20
Servus Probier es mal so: Code: On Error Resume Next 'Fehlerbehandlung ausschaltenSet oGeoSet = HKoerper.Item(oFile.Name) 'Versuchen auf das GeoSet per Name zugreifen If Err.Number <> 0 then 'wenn ein Fehler auftrat, GeoSet neu anlegen Set oGeoSet = HKoerper.Add() oGeoSet.Name = oFile.Name end if On Error Goto 0 'Fehlerbehandlung wieder einschalten WICHTIG
Das Makro sucht allerdings die Punkte in allen GeoSets. Deshalb müsstest du wohl nur in dem GeoSet nach den Punkten suchen (ggf auch über Item und den Fehler abfangen, oder Suche auf das GeoSet einschränken) Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
real Minimilian Mitglied
Beiträge: 5 Registriert: 03.05.2019 Catia V5-6 R26 HP ZBook 15
|
erstellt am: 15. Mai. 2019 08:58 <-- editieren / zitieren --> Unities abgeben: Nur für MrSmith20
|