Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Points coordinaten und GeoSet Name

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:  Points coordinaten und GeoSet Name (1805 mal gelesen)
Sylas
Mitglied



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

Beiträge: 322
Registriert: 19.11.2012

Dell Precision T3500
Intel Xeon W3550 @ 3,07 GHz
12 GB RAM
CATIA V5 R28

erstellt am: 06. Feb. 2015 16: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 Zusammen!

Ich habe ein makro geschrieben, welsches alle Punkte aus das Part liest, und die folgende Infos unter Excel schreibst:

- Point Name
- X-Coor
- X-Coor
- X-Coor
- Parent Name (SetName)

Ich weisst aber nicht wie kann ich der ParentName fuer das einzelnes Punkt kriegen? Ich meine der name des GeoSet unter welches das Punkt liegt.
Kann mich jemand helfen?

Das Code:

Code:
Sub CATMain()
'_________________________________________
' Separating char
trz = ";"
crlf = chr(10)
'-----------------------------------------
On Error Resume Next
Set document = CATIA.ActiveDocument
Set filesys = CATIA.FileSystem
'__________________________________________________________________________
' Filename and path
filename = "D:\Punkt_exp.csv"
'--------------------------------------------------------------------------
if filesys.FileExists(filename) Then
filesys.DeleteFile(filename)
End If

Set file = filesys.CreateFile(filename,True)
Set stream = file.OpenAsTextStream("ForWriting")

err=0

Dim selection1 As Selection
Set selection1 = document.Selection


selection1.Search "((((CATStFreeStyleSearch.Point + CATSketchSearch.2DPoint) + CATDrwSearch.2DPoint) + CATPrtSearch.Point) + CATGmoSearch.Point),selection1"


if err <> 0 Then
msgbox("Didn't find any points!")
End If

stream.write("Point Name"&trz&"X-Coor"&trz&"Y-Coor"&trz&"Z-Coor"&trz&"Parent Name (Set Name)")
stream.write(crlf)
Dim coords(3) As Integer

for i = 1 To selection1.Count
Set element = selection1.Item(i)
Set point = element.Value
point.GetCoordinates(coords)
stream.write(point.Name&trz&coords(0)&trz&coords(1)&trz&coords(2)&trz&???????????)
if  i <> selection1.Count Then
stream.write(crlf)
End If

Next

stream.close

msgbox ("Ready: "&filename&" ")

End Sub


MfG
Lukas

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: 06. Feb. 2015 16:17    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 Sylas 10 Unities + Antwort hilfreich

Servus

IMHO geht das am einfachsten über GetNameToUseInRelation (siehe auch hier)
Gruß
Bernd

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

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

Sylas
Mitglied



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

Beiträge: 322
Registriert: 19.11.2012

Dell Precision T3500
Intel Xeon W3550 @ 3,07 GHz
12 GB RAM
CATIA V5 R28

erstellt am: 06. Feb. 2015 16:49    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

Zitat:
Original erstellt von bgrittmann:
Servus

IMHO geht das am einfachsten über GetNameToUseInRelation (siehe auch hier)
Gruß
Bernd


Ich habe Mal so probiert:

Code:

for i = 1 To selection1.Count
'selection1.Search "((((CATStFreeStyleSearch.Point + CATSketchSearch.2DPoint) + CATDrwSearch.2DPoint) + CATPrtSearch.Point) + CATGmoSearch.Point),all"
Set element = selection1.Item(i)
Set point = element.Value
point.GetCoordinates(coords)
'name = objAssemblyParams.GetNameToUseInRelation(point)
stream.write(point.Name&trz&coords(0)&trz&coords(1)&trz&coords(2)&trz&objAssemblyParams.GetNameToUseInRelation(point))
if  i <> selection1.Count Then
stream.write(crlf)
End If

Next


aber das funktioniert nicht. Was habe ich falsch gemacht?

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: 06. Feb. 2015 16:57    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 Sylas 10 Unities + Antwort hilfreich

Servus
Kommt eine Fehlermeldung? Von aus startest du das Makro? Was ist "objAssemblyParams"? Wie ist dies definiert?
Edit: ggf mal das "On Error resume Next" rauswerfen, sonst suchst du dir bei der Fehlersuche einen Wolf.

Gruß
Bernd

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

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

Sylas
Mitglied



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

Beiträge: 322
Registriert: 19.11.2012

Dell Precision T3500
Intel Xeon W3550 @ 3,07 GHz
12 GB RAM
CATIA V5 R28

erstellt am: 06. Feb. 2015 17:38    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

Zitat:
Original erstellt von bgrittmann:
Servus
Kommt eine Fehlermeldung? Von aus startest du das Makro? Was ist "objAssemblyParams"? Wie ist dies definiert?
Edit: ggf mal das "On Error resume Next" rauswerfen, sonst suchst du dir bei der Fehlersuche einen Wolf.

Gruß
Bernd


Ich habe nur mein Part geöffnet. Ich starte das Makro an. Ich kriege kein Fehlermeldung, und das Excel Spalte für Geoset Name ist leer.
Mein Part hat mehrere Geosets mit Punkte, aber ich suche fuer alle Punkte in das Part durch, und für jedes Punkt wollte ich das Parent GeoSet Name kennen...

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: 06. Feb. 2015 17:44    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 Sylas 10 Unities + Antwort hilfreich

Servus
Und hast du das "On error resume next" mal rausgeschmissen?
Bei mir läuft der (vereinfachte) Code (noch coords richtig dimensionieren (dim coords(2) as variant))

Gruß
Bernd

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

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

Sylas
Mitglied



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

Beiträge: 322
Registriert: 19.11.2012

Dell Precision T3500
Intel Xeon W3550 @ 3,07 GHz
12 GB RAM
CATIA V5 R28

erstellt am: 09. Feb. 2015 07: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

Zitat:
Original erstellt von bgrittmann:
Servus
Und hast du das "On error resume next" mal rausgeschmissen?
Bei mir läuft der (vereinfachte) Code (noch coords richtig dimensionieren ([i]dim coords(2) as variant
))

Gruß
Bernd

[/i]


Halo Bernd

Ich habe mein Makro ein bisschen weiter aufgebaut. Ich habe Punkten-liste mit Koordinaten und String. Innerhalb dieses String habe ich Namen von Blechen wo diese Punkt kommt durch (Schweisspunkten fuer die Bleche).Jetzt wollte ich der Namen aus der String schneiden und separat in Excel-spalte einfuegen. Das problem ist dass zeitweise es gibt nur zwei Bleche, zeitweser funf. Wie kann ich das:

Code:

stream.write(point.Name&trz&coords(0)&trz&coords(1)&trz&coords(2)&trz&name&trz&Splitname(1)&Splitname(2))

flexibel machen?
Ich hoffe, ich erklärte es gut. Mein Deutsch ist nicht perfekt :)

Guck mal an Kode an:

Code:

Sub CATMain()
'_________________________________________
' Separating char
trz = ";"
crlf = chr(10)
'-----------------------------------------
Set document = CATIA.ActiveDocument
Set filesys = CATIA.FileSystem
'__________________________________________________________________________
' Filename and path
filename = "D:\Punkt_exp.csv"
'--------------------------------------------------------------------------
if filesys.FileExists(filename) Then
filesys.DeleteFile(filename)
End If

Set file = filesys.CreateFile(filename,True)
Set stream = file.OpenAsTextStream("ForWriting")

err=0

Dim selection1 As Selection
Set selection1 = document.Selection


selection1.Search "((((CATStFreeStyleSearch.Point + CATSketchSearch.2DPoint) + CATDrwSearch.2DPoint) + CATPrtSearch.Point) + CATGmoSearch.Point),selection1"


if err <> 0 Then
msgbox("Didn't find any points!")
End If

stream.write("Point Name"&trz&"X-Coor"&trz&"Y-Coor"&trz&"Z-Coor"&trz&"Parent Name (Set Name)"&trz&"Numer blachy 1"&trz&"Nazwa blachy 1"&trz&"Numer blachy 2"&trz&"Nazwa blachy 2"&trz&"Numer blachy 3"&trz&"Nazwa blachy 3")
stream.write(crlf)
Dim coords(2) As Integer


for i = 1 To selection1.Count
Set element = selection1.Item(i)
Dim Params
Set Params = document.Part.Parameters
Set point = element.Value
point.GetCoordinates(coords)
Dim name
name = Params.GetNameToUseInRelation(point)
Dim Splitnametemp
Splitnametemp = split(name,"\")
Splitname = split(Splitnametemp(3)," an ")
'Msgbox(ubound(Splitname))
stream.write(point.Name&trz&coords(0)&trz&coords(1)&trz&coords(2)&trz&name&trz&Splitname(1)&Splitname(2))
if  i <> selection1.Count Then
stream.write(crlf)
End If

Next

stream.close
msgbox ("Ready: "&filename&" ")


End Sub



Die Spaltenamen sind fix:

Code:

stream.write("Point Name"&trz&"X-Coor"&trz&"Y-Coor"&trz&"Z-Coor"&trz&"Parent Name (Set Name)"&trz&"Numer blachy 1"&trz&"Nazwa blachy 1"&trz&"Numer blachy 2"&trz&"Nazwa blachy 2"&trz&"Numer blachy 3"&trz&"Nazwa blachy 3")


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: 09. Feb. 2015 07:53    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 Sylas 10 Unities + Antwort hilfreich

Servus
Wie unterschieden sich die Namen falls es mehrere Bleche gibt?(ggf Beispiele posten)
Was willst du davon in die Excel-Tabelle schreiben?

Gruß
Bernd

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

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

Sylas
Mitglied



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

Beiträge: 322
Registriert: 19.11.2012

Dell Precision T3500
Intel Xeon W3550 @ 3,07 GHz
12 GB RAM
CATIA V5 R28

erstellt am: 09. Feb. 2015 08:14    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


Punkt_exp_beispiel.zip

 
Zitat:
Original erstellt von bgrittmann:
Servus
Wie unterschieden sich die Namen falls es mehrere Bleche gibt?(ggf Beispiele posten)
Was willst du davon in die Excel-Tabelle schreiben?

Gruß
Bernd


Das Beispiel:

[i][/`Fuegeinformationen\123.456.789 PartName\SWP\111_222_333 (BLECH 1)  an 222_222_222 (BLECH 2) an 333_333_333 (BLECH 3)\Point.4980`i]

mein Excel soll so entscheiden, wie im Anhang.

Dort ist nur Beispiel fuer "3 Bleche" Fall. Ich muss das flexibel machen. Kann sein dass ubound(Splitname) wird von 2 bis 5 sein. Was denn?


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: 09. Feb. 2015 08:18    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 Sylas 10 Unities + Antwort hilfreich

Servus
Und was willst du nun aus dem String extrahieren? Nur "Point.4980"?

Gruß
Bernd

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

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

Sylas
Mitglied



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

Beiträge: 322
Registriert: 19.11.2012

Dell Precision T3500
Intel Xeon W3550 @ 3,07 GHz
12 GB RAM
CATIA V5 R28

erstellt am: 09. Feb. 2015 08:27    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

Zitat:
Original erstellt von bgrittmann:
Servus
Und was willst du nun aus dem String extrahieren? Nur "Point.4980"?

Gruß
Bernd



Nein
Jedes Blech-Nummer und jede Blech-Name aus dem GeoName in separat Spalten - wie im Excel Beispiel. Das Problem ist dass ubound(Splitname) kann 2 sein, aber kann auch 5 sein. Und dann

Code:

stream.write(point.Name&trz&coords(0)&trz&coords(1)&trz&coords(2)&trz&name&trz&Splitname(1)&Splitname(2)........&Splitname(ubound(Splitname)))


das soll flexibel sein  
Oder - zweite Loesung - wenn fuer das Punkt gibt es nur 2 Bleche, dann Splitname(3), Splitname(4), Splitname(ubound(Splitname)) soll null (oder "") geben.

[Diese Nachricht wurde von Sylas am 09. Feb. 2015 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: 09. Feb. 2015 12:42    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 Sylas 10 Unities + Antwort hilfreich

Servus
Sorry, ich hatte deine Tabelle nicht gesehen.
Du könntest über eine Schleife (Grenzen "LBound" und "UBound") deinen String zum exportieren ergänzen.
Beispiel:
Code:
Sub Test()

Dim InputString As String
Dim TempString1
Dim Tempstring2
Dim ExportString As String
Dim trz As String
Dim coords(2)
Dim Pointname As String

Pointname = "Bla"

coords(0) = 5
coords(1) = 10
coords(2) = 15

trz = ";"

InputString = "Fuegeinformationen\123.456.789 PartName\SWP\111_222_333 (BLECH 1)  an 222_222_222 (BLECH 2) an 333_333_333 (BLECH 3)\Point.4980"

TempString1 = Split(InputString, "\")

Tempstring2 = Split(TempString1(3), " an ")

ExportString = Pointname & trz & coords(0) & trz & coords(1) & trz & coords(2)
For i = LBound(Tempstring2) To UBound(Tempstring2)
    ExportString = ExportString & trz & Tempstring2(i)
Next

MsgBox ExportString

End Sub


Gruß
Bernd

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

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

Sylas
Mitglied



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

Beiträge: 322
Registriert: 19.11.2012

Dell Precision T3500
Intel Xeon W3550 @ 3,07 GHz
12 GB RAM
CATIA V5 R28

erstellt am: 11. Feb. 2015 11: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

Halo Bernd

Danke fuer deine Tips. Alles funktioniert jetzt super!

Edit: Bei ein Part kriege ich eine Meldung, dass Objekt unterstützt diese Eigenschaft oder Methode nicht. Das ist seltsam, weil ich suche nur fuer die Points...

Hast du eine Idee wo das Problem liegt?

Leider kann ich nicht dieses Datei hier hochladen... 

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: 11. Feb. 2015 11:33    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 Sylas 10 Unities + Antwort hilfreich

Servus
Und wo kommt der Fehler? Bei welchem Objekt? Wie sieht der Code aus?

Gruß
Bernd

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

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

Sylas
Mitglied



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

Beiträge: 322
Registriert: 19.11.2012

Dell Precision T3500
Intel Xeon W3550 @ 3,07 GHz
12 GB RAM
CATIA V5 R28

erstellt am: 11. Feb. 2015 11:40    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

Zitat:
Original erstellt von bgrittmann:
Servus
Und wo kommt der Fehler? Bei welchem Objekt? Wie sieht der Code aus?

Gruß
Bernd



Der Fehler kommt nach Punkte Selektion. Ich habe keine Achnung wie kann ich finden bei welsches selection1.Item(i).Value der Fehler kommt aus. Ich habe bemmerkt, dass wenn ich mit

Code:
on error resume next

weiter gehe, Punktenanzahl stimmt mit Excel-reiheanzahl 

Der Code steht unten:

Code:
Sub CATMain()
'_________________________________________
' Separating char
trz = ";"
crlf = chr(10)
'-----------------------------------------
Set document = CATIA.ActiveDocument
Set filesys = CATIA.FileSystem
'__________________________________________________________________________
' Filename and path
'on error resume next
Dim file

file = Document.Name
Dim path
Dim Nazwa

path = left(Document.FullName,InStrRev(Document.FullName,"\"))
pathdummy = left(path,len(path)-1)
Nazwa = right(pathdummy,len(pathdummy)-InStrRev(pathdummy,"\"))

filename = "Z:\PB_0006-Chropynska_Crafter\11\01\BOMs_and_PointExp\"&Nazwa&"_point_exp.csv"

'--------------------------------------------------------------------------
if filesys.FileExists(filename) Then
filesys.DeleteFile(filename)
End If

Set file = filesys.CreateFile(filename,True)
Set stream = file.OpenAsTextStream("ForWriting")

err=0

Dim selection1 As Selection

Set selection1 = document.Selection
selection1.clear


selection1.Search "((((CATStFreeStyleSearch.Point + CATSketchSearch.2DPoint) + CATDrwSearch.2DPoint) + CATPrtSearch.Point) + CATGmoSearch.Point),all"


if err <> 0 Then
msgbox("Didn't find any points!")
End If

stream.write("Point Name"&trz&"X-Coor"&trz&"Y-Coor"&trz&"Z-Coor"&trz&"Blachy")
stream.write(crlf)
Dim coords(2) As Integer

msgbox(selection1.count)
for i = 1 To selection1.Count
Set element = selection1.Item(i)
Dim Params
Set Params = document.Part.Parameters
Set point = element.Value
point.GetCoordinates(coords)
Dim name
name = Params.GetNameToUseInRelation(point)
Dim Splitnametemp
Splitnametemp = split(name,"\")
Splitname = split(Splitnametemp(3)," an ")
stream.write(point.Name&trz&coords(0)&trz&coords(1)&trz&coords(2)&trz&Splitnametemp(3))
if  i <> selection1.Count Then
stream.write(crlf)
End If

Next

stream.close
msgbox ("Ready: "&filename&" ")


End Sub


Gruß
Lukas

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

s.geiger
Mitglied
Staatl. gepr. Techniker FR. KFZ-Technik

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

Beiträge: 4
Registriert: 17.02.2015

Catia V5.19 Win7 Prof.

erstellt am: 02. Mrz. 2015 14: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 Sylas 10 Unities + Antwort hilfreich

Hallo an alle.
Bin neu hier und suche nun schon seit einigen Tagen nach einem passenden Makro für eine Anwendung.
Das Skript hier ist soweit ganz gut funktioniert allerdings nur mit Punkten und leider nicht mit Translate oder Intersect... besteht die Möglichkeit das Skript so zu ändern das es egal welche Art ich auswähle mir die Cords in Excel rauschreibt?

Benötige die Koordinaten von sich ändernden Punkten um später im MATLAB damit weiter zu arbeiten ohne die Punkte rausmessen und abtippen zu müssen.
Würde mich freuen wenn jemand was weiß...
Danke

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: 02. Mrz. 2015 15:21    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 Sylas 10 Unities + Antwort hilfreich

Servus
Du könntest über die Suche alle Punkte selektieren lassen (siehe hier). Dann die Koordinaten auslesen (ggf über die Measure) und exportieren.

Gruß
Bernd

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

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

s.geiger
Mitglied
Staatl. gepr. Techniker FR. KFZ-Technik

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

Beiträge: 4
Registriert: 17.02.2015

Catia V5.19 Win7 Prof.

erstellt am: 02. Mrz. 2015 19:32    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 Sylas 10 Unities + Antwort hilfreich

Hallo Bernd erstmal danke. Habe das Problem jetzt erstmal anders gelöst.
Habe mir auf meine Kopierten Punkte bzw. auf meine Schnittpunkte ein Measure gemacht welches sich automatisch updatet und davon abhängig einen neuen Punkt der sich mit updatet.
Nun habe ich aber für das MATLAB ein neues Problem...
Ich hätte nun gerne die ausgegebenen Daten so:

%%Name
%%X  Y  Z
%%Point1
123  456  789
%%Point2
456  789  123
%%Point3
789  123  456

usw... und das ganze am besten gelich in Excel
sollte doch eigentlich einfach um zusetzen sein oder?

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

Thomas Harmening
Ehrenmitglied V.I.P. h.c.
Arbeiter ツ



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

Beiträge: 2897
Registriert: 06.07.2001

NX 10
Win 7

erstellt am: 02. Mrz. 2015 23: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 Nur für Sylas 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von s.geiger:
usw... und das ganze am besten gelich in Excel
sollte doch eigentlich einfach um zusetzen sein oder?


Klar, aber irgendjemand muss es machen... 
Also - ist einfach umzusetzen.
Wie wäre es, du versuchst dich daran?

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

s.geiger
Mitglied
Staatl. gepr. Techniker FR. KFZ-Technik

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

Beiträge: 4
Registriert: 17.02.2015

Catia V5.19 Win7 Prof.

erstellt am: 03. Mrz. 2015 09: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 Nur für Sylas 10 Unities + Antwort hilfreich

: ) Ja das würde ich wenn ich nen Plan von VBA hätte bzw. von den ganzen Catia befehlen. Habe weder Bücher noch sonst was.
Danke trotzdem muss ich versuchen mir die Befehle zusammen zu googeln...

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



Entwicklungsingenieur für elektrische Komponenten in der Vorentwicklung (m/w/d)

Wir sind Kromberg & Schubert ? ein international aufgestellter Technologie­konzern mit mittel­ständischem Hinter­grund und über 120-jähriger Firmen­geschichte. Engagement, Flexibilität und ständige Innovationen machen uns in der Auto­mobil­industrie zum Bord­netz­spezialisten.

Unser Erfolgsrezept? Mehr als 50.000 Mitarbeiter an über 40 Stand­orten welt­weit verbinden Optimismus, Spaß an der Arbeit und das Streben nach kontinu­ierlicher Ver­besserung....

Anzeige ansehenEntwicklung
s.geiger
Mitglied
Staatl. gepr. Techniker FR. KFZ-Technik

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

Beiträge: 4
Registriert: 17.02.2015

Catia V5.19 Win7 Prof.

erstellt am: 10. Mrz. 2015 11:33    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 Sylas 10 Unities + Antwort hilfreich

Hallo nochmal... besteht die Möglichkeit in einem Produkt die Measure anstatt der Punkte im Part auszulesen?
Das Problem ist, dass ich ein Achsenkonzept habe, welches in einem Produkt aus mehreren Parts besteht. in dem Produkt ändern sich nun durch verändern der Parameter (Ein / Ausfedern) die losen Punkte der Querlenker in ihrer Position. Diese Positionen sollen ausgelesen werden, ist im Produkt aber leider soweit ich weiß nicht so einfach möglich. Daher meine Idee die Measure auszulesen und als Cords in eine TxT zu schreiben.
Meine Ursprüngliche Idee Punkte zu setzen die sich in der Formel auf die Measures beziehen funktioniert im Part aber leider nicht im Produkt.
Wäre euch mega dankbar wenn mir jemand ne Lösung hat ...

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