Autor
|
Thema: Konvertieren in VBA (2284 mal gelesen)
|
sawah Mitglied
Beiträge: 65 Registriert: 07.06.2011 XP, CATIA V5 R19
|
erstellt am: 30. Aug. 2011 08:37 <-- editieren / zitieren --> Unities abgeben:
Guten morgen zusammen, ich habe ein Code zum messen von Koordinaten, man kann das Koordinatensystem beliebig auswählen, leider ist das mit VBscript geschrieben, da meine Kenntnis net soweit sind, wollte ich fragen ob mir jemand helfen kann das in VBA zu konvertieren ?? Code: oEingabe = "C:\tmp\" oEingabe = InputBox("Bitte den Dateipfad angeben:", "Eingabe Dateipfad", oEingabe) cDateiPfad = oEingabeoEingabe = "Punktkoordinaten.csv" oEingabe = InputBox("Bitte den Dateinamen angeben:", "Eingabe Dateiname", oEingabe) cDateiName = oEingabe On Error Resume Next CATIA.FileSystem.GetFile(cDateiPfad&cDateiName) fFileExist = Err.Number On Error GoTo 0 If fFileExist <> 0 Then Set oDatei=CATIA.FileSystem.CreateFile(cDateiPfad&cDateiName,False) Else Set oDatei=CATIA.FileSystem.GetFile(cDateiPfad&cDateiName) End If Set oMySel = CATIA.ActiveDocument.Selection If oMySel.Count2 > 0 Then oCount = oMySel.Count2 For izaehler = 1 To oCount Set oPunkt(izaehler) = oMySel.Item2(izaehler).Value oName(izaehler) = oMySel.Item2(izaehler).Value.Name Next Else MsgBox ("Es sind noch keine Punkte selektiert worden!" & CHR(13) & "Bitte Punkte selektieren!") sFilter(0) = "Point" sFehler = 0 izaehler = 0 Do oMySel.Clear sSelection=oMySel.SelectElement2(sFilter,"Bitte Punkt "&iZaehler+1&" auswählen!",True) If sSelection = "Normal" Then izaehler = izaehler + 1 Set oPunkt(izaehler) = oMySel.Item2(1).Value oName(izaehler) = oMySel.Item2(1).Value.Name sFehler = 0 Else oCount = izaehler sFehler = 1 End If Loop Until sFehler = 1 End If If oCount = 0 Then MsgBox ("Es wurden keine Punkte ausgewählt!" & CHR(13) & "Das Macro wird hier beendet!") Exit Sub End If MsgBox ("Bitte das Achsensystem anklicken, auf welches sich die Koordinaten beziehen sollen!") oMySel.Clear sFilter(0) = "AxisSystem" sSelection = oMySel.SelectElement2(sFilter, "Bitte das Achsensystem anklicken,auf welches sich die Koordinaten bezihen sollen", True) If sSelection = "Normal" Then Set oAxisSystem = oMySel.Item2(1).Value End If oAxisSystem.GetOrigin aCoord2 oAxisSystem.GetXAxis Vx_A oAxisSystem.GetYAxis Vy_A oAxisSystem.GetZAXis Vz_A oBox = MsgBox("Sollen die Komazeichen gegen Dezimalzeichen erstezt werden?", 4, "Komazeichen ersetzen") Set dStrom = oDatei.OpenAsTextStream("ForAppending") dStrom.Write ("START" & CHR(10)) dStrom.Write ("Element" & ";" & "X-Koordinate" & ";" & "Y-Koordinate" & ";" & "Z-Koordinate" & CHR(10)) For izaehler = 1 To oCount oPunkt(izaehler).GetCoordinates aCoord1 xa = aCoord2(0) ya = aCoord2(1) za = aCoord2(2) x = aCoord1(0) y = aCoord1(1) z = aCoord1(2) xp = Vx_A(0) * (x - xa) + Vx_A(1) * (y - ya) + Vx_A(2) * (z - za) yp = Vy_A(0) * (x - xa) + Vy_A(1) * (y - ya) + Vy_A(2) * (z - za) zp = Vz_A(0) * (x - xa) + Vz_A(1) * (y - ya) + Vz_A(2) * (z - za) xp = Round(xp, 3) yp = Round(yp, 3) zp = Round(zp, 3) If oBox = 6 Then xp = Replace(xp, ",", ".") End If dStrom.Write(oName(iZaehler)&";"&xp&";"&yp&";"&zp&CHR(10)) Next dStrom.Write ("ENDE" & CHR(10) & CHR(10) & CHR(10)) dStrom.Close MsgBox ("Datei wurde erzeugt und kann in Excel importiert werden!")
Danke dafür im Vorraus
Gruß Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
meisterlumpi Mitglied
Beiträge: 118 Registriert: 15.04.2011 Intel Core2 Quad Q6600 2.40 GHz | 4 GB RAM | Win7x64
|
erstellt am: 30. Aug. 2011 08:59 <-- editieren / zitieren --> Unities abgeben: Nur für sawah
|
sawah Mitglied
Beiträge: 65 Registriert: 07.06.2011 XP, CATIA V5 R19
|
erstellt am: 30. Aug. 2011 09:37 <-- editieren / zitieren --> Unities abgeben:
Hallo, irgendwie geht das nicht bei mir, in die zielen unten zeigt ein Fehler: Set oDatei = CATIA.FileSystem.CreateFile(cDateiPfad & cDateiName, False)!!!!!FEHLER Set dStrom = oDatei.OpenAsTextStream("ForAppending")!!!!!FEHLER dStrom.Write ("START" & CHR(10))!!!!!FEHLER dStrom.Write ("Element" & ";" & "X-Koordinate" & ";" & "Y-Koordinate" & ";" & "Z-Koordinate" & CHR(10))!!!!!FEHLER aber eigentlich brauche ich das alles nicht, ich will nur ein Punkt selektieren ein Koordinatensystem selektieren und die Koordinaten in Excel schreiben. Gruß
[Diese Nachricht wurde von sawah am 30. Aug. 2011 editiert.] 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: 30. Aug. 2011 09:58 <-- editieren / zitieren --> Unities abgeben: Nur für sawah
Servus Wo hast du das Makro her? Hier findest du eines dass (gemäß Überschrift des Beitrags) passen könnte (bitte alle Beiträge durchlesen) Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
sawah Mitglied
Beiträge: 65 Registriert: 07.06.2011 XP, CATIA V5 R19
|
erstellt am: 30. Aug. 2011 10:10 <-- editieren / zitieren --> Unities abgeben:
|
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 30. Aug. 2011 10:20 <-- editieren / zitieren --> Unities abgeben: Nur für sawah
Servus Und wie lautet die Fehlermeldung? (vielleicht reicht es auc die äußeren Klammern wegzulassen) (ggf auch mal in der Suchmaschine deiner Wahl nach diese Fehlermeldung suchen) Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. [Diese Nachricht wurde von bgrittmann am 30. Aug. 2011 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
sawah Mitglied
Beiträge: 65 Registriert: 07.06.2011 XP, CATIA V5 R19
|
erstellt am: 30. Aug. 2011 10:28 <-- editieren / zitieren --> Unities abgeben:
Hallo, in die Zeile unten habe ich folgende Fehler: Set oDatei = CATIA.FileSystem.CreateFile(cDateiPfad & cDateiName, False)!!!!!FEHLER : Method'CreatFile' of object 'Filsystem' failed Set dStrom = oDatei.OpenAsTextStream("ForAppending")!!!FEHLER: object required ok die habe ich hinbekommen, bleibt das hier
oPoint.GetCoordinates aCoord1!!!1FEHLER: object doesn't support this property or method Gruß [Diese Nachricht wurde von sawah am 30. Aug. 2011 editiert.] 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: 30. Aug. 2011 10:52 <-- editieren / zitieren --> Unities abgeben: Nur für sawah
Servus lass dir mal den Pfad ausgeben (oder Watchfenster). Stimmt dieser? Handelt es sich bei den Punkten um Punkte die über Koordinaten erstellt wurden (siehe auch den von mir verlinkten Beitrag (weiter unter)) Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
sawah Mitglied
Beiträge: 65 Registriert: 07.06.2011 XP, CATIA V5 R19
|
erstellt am: 30. Aug. 2011 10:58 <-- editieren / zitieren --> Unities abgeben:
Hallo, ja hat jetzt geklappt, Pfad geändert jetzt bleibt nur das mit GetCoordinates, weißt jemand was ich falsch mache, oder hat das mit Lizenz zu tun? danke nochmal. Gruß [Diese Nachricht wurde von sawah am 30. Aug. 2011 editiert.] [Diese Nachricht wurde von sawah am 30. Aug. 2011 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
meisterlumpi Mitglied
Beiträge: 118 Registriert: 15.04.2011 Intel Core2 Quad Q6600 2.40 GHz | 4 GB RAM | Win7x64
|
erstellt am: 30. Aug. 2011 16:45 <-- editieren / zitieren --> Unities abgeben: Nur für sawah
|
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 30. Aug. 2011 20:02 <-- editieren / zitieren --> Unities abgeben: Nur für sawah
|
sawah Mitglied
Beiträge: 65 Registriert: 07.06.2011 XP, CATIA V5 R19
|
erstellt am: 31. Aug. 2011 09:01 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen, ich habe das so probiert und es funktioniert auch : oMySel.Item2(izaehler).GetCoordinates aCoord1 aber was komisch ist, das andere funktioniert jetzt aufeinmal!!!!!! Zitat: ? Um was für Punkte handelt es sich?
Es sind alle mit Koordinaten. Gruß Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |