Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Konvertieren in VBA

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:  Konvertieren in VBA (2284 mal gelesen)
sawah
Mitglied



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

Beiträge: 65
Registriert: 07.06.2011

XP, CATIA V5 R19

erstellt am: 30. Aug. 2011 08:37    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

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 = oEingabe

oEingabe = "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



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

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 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 sawah 10 Unities + Antwort hilfreich

Hallo

Kopier den code doch mal in ein VBA Projekt, der sollte eigentlich so laufen.

Mit den Leerzeichen vor und nach & muss man glaub ich ein bisshen aufpassen. cDateiPfad&cDateiName -> cDateiPfad & cDateiName

gruß

------------------
NJ | Inoffizielle CATIA Hilfeseite | ???

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

sawah
Mitglied



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

Beiträge: 65
Registriert: 07.06.2011

XP, CATIA V5 R19

erstellt am: 30. Aug. 2011 09:37    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,

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


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

Beiträge: 11780
Registriert: 30.11.2006

CATIA V5R19

erstellt am: 30. Aug. 2011 09:58    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 sawah 10 Unities + Antwort hilfreich

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



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

Beiträge: 65
Registriert: 07.06.2011

XP, CATIA V5 R19

erstellt am: 30. Aug. 2011 10:10    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 bgrittmann,

ja das ist das was ich habe, ich habe auch die Änderungen durchgeführt, kriegs aber net hin in VBA zu konvertieren. in die Zeile oben bekomme ich Fehler!!!!

Gruß

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

bgrittmann
Moderator
Konstrukteur


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

Beiträge: 11780
Registriert: 30.11.2006

CATIA V5R19

erstellt am: 30. Aug. 2011 10:20    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 sawah 10 Unities + Antwort hilfreich

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



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

Beiträge: 65
Registriert: 07.06.2011

XP, CATIA V5 R19

erstellt am: 30. Aug. 2011 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,

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


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

Beiträge: 11780
Registriert: 30.11.2006

CATIA V5R19

erstellt am: 30. Aug. 2011 10:52    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 sawah 10 Unities + Antwort hilfreich

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



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

Beiträge: 65
Registriert: 07.06.2011

XP, CATIA V5 R19

erstellt am: 30. Aug. 2011 10:58    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,

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



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

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 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 sawah 10 Unities + Antwort hilfreich

das hat nichts mit der lizenz zu tun.

probier mal die variable aCoord1 als 3-dimensionales variant array zu deklarieren.

Code:
Dim aCoord1(3)

------------------
NJ | Inoffizielle CATIA Hilfeseite | ???

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

bgrittmann
Moderator
Konstrukteur


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

Beiträge: 11780
Registriert: 30.11.2006

CATIA V5R19

erstellt am: 30. Aug. 2011 20:02    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 sawah 10 Unities + Antwort hilfreich

Servus
Du hast dir diesen Beitrag im andern Thema durchgelesen? Um was für Punkte handelt es sich?

Gruß
Bernd

------------------
Warum einfach, wenn es auch kompliziert geht.

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

sawah
Mitglied



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

Beiträge: 65
Registriert: 07.06.2011

XP, CATIA V5 R19

erstellt am: 31. Aug. 2011 09:01    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 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

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