Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  GetCoordinates

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:  GetCoordinates (12976 mal gelesen)
Felsen
Mitglied
Formenbau


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

Beiträge: 239
Registriert: 15.06.2004

HP Workstation Z800
3.7GHz
16GB RAM
QuadroFX4600
CATIA V5-6 Release 2016

erstellt am: 13. Jul. 2005 16:35    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 Forum,

ich bin auf der Suche nach einem Macro, welches mir eine Punkteliste ausgibt (für die Bohrbearbeitung). Hierbei bin ich schon mehrmals auf "GetCoordinates" gestoßen.
Leider existieren hier sehr viele Beiträge, welche auch sehr unterschiedliche Macros aufweisen. Ein paar habe ich schon getestet und funktionierten leider nicht :-(. (Liegt wohl an mir?) Vielleicht wäre jemand so nett und würde mir ein funktionierendes zukommen lassen mit einer kurzen Beschreibung dazu, da Macros für mich ziemlich Neuland sind.

DANKE!

Gruß

Felsen

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

Felsen
Mitglied
Formenbau


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

Beiträge: 239
Registriert: 15.06.2004

HP Workstation Z800
3.7GHz
16GB RAM
QuadroFX4600
CATIA V5-6 Release 2016

erstellt am: 13. Jul. 2005 18: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

Ich bins nochmal.

Mein Ziel wäre, über eine Punktewolke ein Fenster legen um somit alle Punkte auf einmal zu selektieren und anschließend die Koordinatren mittels Macro ausgeben lassen.
Gibts sowas?
Gruß
Felsen

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

LordFuture
Mitglied



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

Beiträge: 21
Registriert: 16.03.2004

V5 R14
(Unix)
(nur auf der Arbeit)
(ohne Administrative Rechte)
(User...)

erstellt am: 13. Jul. 2005 20: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 Felsen 10 Unities + Antwort hilfreich

Da gibts doch ne Catiaeigene Funktion dafür um Punktetabellen zu erstellen.

Oder geht es dir mehr darum dies selbst mittels Makro zu relisieren?

------------------
Software is like sex - its better when ist free!

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

Felsen
Mitglied
Formenbau


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

Beiträge: 239
Registriert: 15.06.2004

HP Workstation Z800
3.7GHz
16GB RAM
QuadroFX4600
CATIA V5-6 Release 2016

erstellt am: 13. Jul. 2005 20:47    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 LordFuture,

danke für den Beitrag. Mein Ziel ist es die Koordinaten in ein Excel rein zu bringen. (für die NC-Bearbeitung).

Gruß
Felsen

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

Florian.Held
Mitglied
Konstruktiver Spritzer (Konstruktion Spritzguss)


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

Beiträge: 35
Registriert: 13.07.2005

CATIA R14 SP5 unter WinXP64 und Unix (vbscript)

erstellt am: 16. Jul. 2005 11:30    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 Felsen 10 Unities + Antwort hilfreich

Hi,

Sub CATMain()

Redim aCoord(2)
CATIA.ActiveDocument.Part.HybridBodies.Item("Geometrisches Set.1").HybridShapes.Item("Punkt.1").getcoordinates aCoord

msgbox acoord(0) & ", " & acoord(1) & ", " & acoord(2)

End Sub

Damit bekommst du die Koordinaten eines Punktes in ein Array. Ne Schleife für alle Punkte müsstest du ja hinkriegen,oder?

------------------
Es gibt nichts langweiligeres als ein vollständiges, stabil laufendes Catia...

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

prosper
Mitglied
Dipl.-Ing. -- Methoden und Prozessentwicklung Catia V5


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

Beiträge: 86
Registriert: 05.05.2004

erstellt am: 16. Jul. 2005 19:54    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 Felsen 10 Unities + Antwort hilfreich

Hi,

ich mach auch mit... 

Sub CATMain()

'Ein Part muss offen sein, kein Product
'Alle Punkte in "Geometrisches Set.1" werden ausgelesen
'Nur Punkte muss es im Geo Set geben anstonsten lauft das Makro auf Fehler
'Fall es noch ander Features gibt muss man ein TypeName einbauen
'Alle Coordinates werden in acoordinates geschrieben

Redim aCoord(2)
dim acoordinates()
redim acoordinates(0)

set oshapes = CATIA.ActiveDocument.Part.HybridBodies.Item("Geometrisches Set.1").HybridShapes

For i=1 to oshapes.count

oshapes.Item(i).getcoordinates aCoord
acoordinates(i-1) = acoord(0) & ", " & acoord(1) & ", " & acoord(2)
redim preserve acoordinates(Ubound(acoordinates)+1)

Next

redim preserve acoordinates(Ubound(acoordinates)-1)

End Sub

Nun mussen die Coordinates nach Excel.

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

prosper
Mitglied
Dipl.-Ing. -- Methoden und Prozessentwicklung Catia V5


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

Beiträge: 86
Registriert: 05.05.2004

erstellt am: 16. Jul. 2005 20:05    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 Felsen 10 Unities + Antwort hilfreich

Hi,

habe das Makro nicht probiert es cgaut aber ungefär so aus.


Sub CATMain()

'Ein Part muss offen sein, kein Product
'Alle Punkte in "Geometrisches Set.1" werden ausgelesen
'Nur Punkte muss es im Geo Set geben anstonsten lauft das Makro auf Fehler
'Fall es noch ander Features gibt muss man ein TypeName einbauen
'In c:\temp\output.csv werden die Coord geschrieben. Dies Datei kannst du unter Excel aufmachen
'Ich finde CSV besser, weil es einfacher ist und, weil es System unabhängig ist


Redim aCoord(2)

Set Datei = CATIA.FileSystem.CreateFile (c:\temp\output.csv, True)

Dim ostream as TextStream
Set ostream = Datei.OpenAsTextStream ("ForAppending")

set oshapes = CATIA.ActiveDocument.Part.HybridBodies.Item("Geometrisches Set.1").HybridShapes

For i=1 to oshapes.count

oshapes.Item(i).getcoordinates aCoord
ostream.Write(acoord(0) & ";" & acoord(1) & ";" & acoord(2) & Chr(10))


Next

ostream.close

End Sub

Gruss

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

Felsen
Mitglied
Formenbau


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

Beiträge: 239
Registriert: 15.06.2004

HP Workstation Z800
3.7GHz
16GB RAM
QuadroFX4600
CATIA V5-6 Release 2016

erstellt am: 19. Jul. 2005 14:24    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 Florian, Hallo Prosper,

danke für Eure Hilfe.
Ich habe da aber noch ein paar Fragen:
1. In prospers Version 1 läuft das Macro, nur wo schreibt er die Koordinaten hin
2. In prospers Version 2 läuft es leider nicht. Es bleibt bei "Set Datei = CATIA.FileSystem.CreateFile (c:\temp\output.csv, True)" leider stehen.

Was kann hier noch fehlen?

Wie schon gesagt mit Macroprogrammierung ist es bei mir leider noch nicht weit her.

Trotzdem Danke!
Gruß
Felsen

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

prosper
Mitglied
Dipl.-Ing. -- Methoden und Prozessentwicklung Catia V5


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

Beiträge: 86
Registriert: 05.05.2004

erstellt am: 20. Jul. 2005 19: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 Nur für Felsen 10 Unities + Antwort hilfreich

Hallo Felsen,

habe das Makro "on the fly" programmiert deswegen.
Probiere es doch einfach mal mit:
Set Datei = CATIA.FileSystem.CreateFile ("c:\temp\output.csv", True)

Ein folder C:\temp muss es aber geben...

Viel Spass!
Gruss
Prosper

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

Florian.Held
Mitglied
Konstruktiver Spritzer (Konstruktion Spritzguss)


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

Beiträge: 35
Registriert: 13.07.2005

CATIA R14 SP5 unter WinXP64 und Unix (vbscript)

erstellt am: 23. Jul. 2005 12: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 Felsen 10 Unities + Antwort hilfreich

Jo, kanns jetzt auch net testen aber schließe mich Prosper an. Um die Anfürhungszeichen wirst du auf keinen Fall rum kommen!

Ich zieh mir trotzdem mal des Script und lass es Montag mal laufen!

PS: Nicht vergessen dass es 2 unterschiedliche Scripte sind! Version 1 ermittelt die Coordinates und Version 2 speichert diese in eine csv-Datei, sprich du brauchst beide Scripte von Prosper!

------------------
Es gibt nichts langweiligeres als ein vollständiges, stabil laufendes Catia...

[Diese Nachricht wurde von Florian.Held am 23. Jul. 2005 editiert.]

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

Florian.Held
Mitglied
Konstruktiver Spritzer (Konstruktion Spritzguss)


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

Beiträge: 35
Registriert: 13.07.2005

CATIA R14 SP5 unter WinXP64 und Unix (vbscript)

erstellt am: 29. Jul. 2005 19: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 Felsen 10 Unities + Antwort hilfreich

Hi,

erstmal sorry war ein ziemlich blödes gelaber von mir, natürlich ist dass zweite Script von Prosper ein vollwertiger ersatz fürs erste.

Ich habs außerdem mal laufen lassen unter R12 und R14, hat beides mal gefunzt ohne Probleme (Mit dem Pfad zur besthenden csv-*Datei in Anfürhungszeichen). Sprich mit dieser Modifikation müsste es geklappt haben, odeR?

Nun aber noch ne Frage von mir:
Ich wollte dass Script umbauen damit man den geöffneten Körper mit der Punktewolke im Baum selektieren kann und net an eine feste bezeichnung gebunden ist.

Dazu folgendes Makro (Von Prosper Modifiziert):
Sub CATMain()
'Ein Part muss offen sein, kein Product
'Alle Punkte in "Geometrisches Set.1" werden ausgelesen
'Nur Punkte muss es im Geo Set geben anstonsten lauft das Makro auf Fehler
'Fall es noch ander Features gibt muss man ein TypeName einbauen
'In c:\temp\output.csv werden die Coord geschrieben. Dies Datei kannst du unter Excel aufmachen
'Ich finde CSV besser, weil es einfacher ist und, weil es System unabhängig ist

    ' Was soll selektierbar sein
    Dim EnableSelectionFor(0)
    EnableSelectionFor(0) = "Bodies"

    ' Selektion definieren und leeren --------------------------------------------------
    Set sSEL = CATIA.ActiveDocument.Selection
    sSEL.Clear
    UserSelection = sSEL.SelectElement(EnableSelectionFor, "Bitte geoeffneten Koerper mit Punktewolke selektieren", True)
   
    ' Auswertung ob Selektion erfolgreich -----------------------------------------------
    If UserSelection <> "Normal" Then
        MsgBox "Fehler bei der Auswahl des Koerpers der Punktwolke"
        Exit Sub
    End If
   
ReDim acoord(2)
Set Datei = CATIA.FileSystem.CreateFile("/home/held/getcoord.txt", True)
Set ostream = Datei.OpenAsTextStream("ForAppending")
Set oshapes = CATIA.ActiveDocument.Part.HybridBodies.Item("OpenBodie1").HybridShapes
For i = 1 To oshapes.Count
oshapes.Item(i).getcoordinates acoord
ostream.Write (acoord(0) & ";" & acoord(1) & ";" & acoord(2) & Chr(10))

Next
ostream.Close
End Sub

OK, soweit funzt alles und ich kann eine Körper auswählen und in
CATIA.ActiveDocument.Selection.Item(1).Value
speichern, aber wie muss ich die folgende Zeile abändern:
CATIA.ActiveDocument.Part.HybridBodies.Item("OpenBodie1").HybridShapes
damit nicht mehr OpenBodie1 verwendet wird sondern der eben selektierte?

Wenn mir dies jemand verraten kann wäre ich sehr dankbar!

------------------
Es gibt nichts langweiligeres als ein vollständiges, stabil laufendes Catia...

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

hammax
Mitglied
Dipl.Ing.TU Masch.Bau


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

Beiträge: 180
Registriert: 17.01.2002

privat: AutoCAD, Inventor AIS5.3
dienstl.: CATIA V5R12SP5

erstellt am: 31. Jul. 2005 12: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 Nur für Felsen 10 Unities + Antwort hilfreich

..prosper schreibt weiter oben, dass er unter .csv abspeichert.
Da csv jedoch "comma separated values" bedeutet habe ich im DE -Sprachraum Probleme mit der Formatierung, da Tabellenspalten u.a. auf die Dezimalkommas gelegt werden.
So schön CSV wäre, da ich es direkt mit Excel öffnen kann - ich muß leider bei .txt bleiben und mit sendto arbeiten.
Gibts da ein Workaround?

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

prosper
Mitglied
Dipl.-Ing. -- Methoden und Prozessentwicklung Catia V5


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

Beiträge: 86
Registriert: 05.05.2004

erstellt am: 01. Aug. 2005 20:15    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 Felsen 10 Unities + Antwort hilfreich

Hallo Florian,

probier es doch einfach so:

Sub CATMain()
'Ein Produkt kann offen sein, die LokaleCoordinates im Part werden exportier
'Alle Punkte in "Geometrisches Set.1" werden ausgelesen
'Nur Punkte muss es im Geo Set geben anstonsten lauft das Makro auf Fehler
'Fall es noch ander Features gibt muss man ein TypeName einbauen
'In c:\temp\output.csv werden die Coord geschrieben. Dies Datei kannst du unter Excel aufmachen
'Ich finde CSV besser, weil es einfacher ist und, weil es System unabhängig ist

    ' Was soll selektierbar sein
    Dim EnableSelectionFor(0)
    EnableSelectionFor(0) = "HybridBody"

    ' Selektion definieren und leeren --------------------------------------------------
    Set sSEL = CATIA.ActiveDocument.Selection
    sSEL.Clear
    UserSelection = sSEL.SelectElement(EnableSelectionFor, "Bitte geoeffneten Koerper mit Punktewolke selektieren", False)
   
    ' Auswertung ob Selektion erfolgreich -----------------------------------------------
    If UserSelection <> "Normal" Then
        MsgBox "Fehler bei der Auswahl des Koerpers der Punktwolke"
        Exit Sub
Else
Set ohybridbody = sSEL.Item(1).Value
    End If
   
ReDim acoord(2)
Set Datei = CATIA.FileSystem.CreateFile("/home/held/getcoord.txt", True)

Set ostream = Datei.OpenAsTextStream("ForAppending")

Set oshapes = ohybridbody.HybridShapes
For i = 1 To oshapes.Count
oshapes.Item(i).GetCoordinates acoord
ostream.Write (acoord(0) & ";" & acoord(1) & ";" & acoord(2) & Chr(10))

Next
ostream.Close
End Sub


Gruss, und viel Spass damit!! 

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

Florian.Held
Mitglied
Konstruktiver Spritzer (Konstruktion Spritzguss)


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

Beiträge: 35
Registriert: 13.07.2005

CATIA R14 SP5 unter WinXP64 und Unix (vbscript)

erstellt am: 03. Aug. 2005 11:48    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 Felsen 10 Unities + Antwort hilfreich

Dabnke Prosper werd ich gleich mal testen..

Bezüglich CSV:

Man kann dem Makro auch sagen mach des in eine *.txt.
Im Prinzip macht des Makro eh nix anderes wie den "Text" welcher mit den Koordinaten erstellt wird als Text in eine Datei zu schreiben. Ob es eine *.csv oder *.txt datei ist dem Makro egal, bei beiden dateien hast du ausgabetechnisch dass gleiche ergebniss.

Befehl:
acoord(0) & ";" & acoord(1) & ";" & acoord(2) & Chr(10)
Erzeugt folgenden Text der in die Datei geschrieben wird (Die Buchstaben sind selbstversändlich eine Kommazahl nämlich die Koordinate des Punktes von Catia):
X.XX; Y.YY; Z.ZZ

Wenn der Punkt in den Koordinaten ein Problem darstellt musst du den eben erzeugten Text in eine Variable Packen:
textfuerdatei = acoord(0) & ";" & acoord(1) & ";" & acoord(2) & Chr(10)
und mit einem String-Befehl alle Punkte in diesem String durch kommas ersetzen weil ja Catia die Zahl mitsammt Dezimalpunkt erzeugt.

Folgender Befehl:
textfuerdatei = replace(textfuerdatei, "."; ",")
müsste aus dem Text:
X.XX; Y.YY; Z.ZZ
folgenden Text machen:
X,XX; Y,YY; Z,ZZ

Hoffe des hilft und ihr verteufelt mich nicht weil ichs mal wieder zu ausführlich erklärt hab aber des hab ich mir hier in der Firma angewöhnt alles überausführlich zu erklären ;-)

Bis bald dann erstmal!

------------------
Es gibt nichts langweiligeres als ein vollständiges, stabil laufendes Catia...

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

Florian.Held
Mitglied
Konstruktiver Spritzer (Konstruktion Spritzguss)


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

Beiträge: 35
Registriert: 13.07.2005

CATIA R14 SP5 unter WinXP64 und Unix (vbscript)

erstellt am: 05. Aug. 2005 12: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 Felsen 10 Unities + Antwort hilfreich

Hi,

also des Selektieren des Geöffneten Körpers mit den Punkten funktioniert super! Ich werd zwar aus den Selektionen bzw. Objekten noch net ganz schlauc hab aber jetzt zumindest mal ne funktionierende Variante zum learning by doing.

Danke für deine/eure Hilfe!

------------------
Es gibt nichts langweiligeres als ein vollständiges, stabil laufendes Catia...

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

hammax
Mitglied
Dipl.Ing.TU Masch.Bau


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

Beiträge: 180
Registriert: 17.01.2002

privat: AutoCAD, Inventor AIS5.3
dienstl.: CATIA V5R12SP5

erstellt am: 10. Aug. 2005 12:50    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 Felsen 10 Unities + Antwort hilfreich


Getcoordinates_Punkt.CATScript.txt

 
...dieser Makro ist ein echter Dauerbrenner und sollte m.E. fortlaufend und nachvollziehbar verbessert werden.
Jedesmal, wenn er in Vergessenheit geraten ist, hat man Anfangsschwierigkeiten mit der Punkteauswahl. Entweder er geht in Skizzen nicht (2D) oder die angewählte Punktsorte ist kein verwertbarer Punkt usw.
Aber der wird noch - "vieles ein Weniges gibt viel".
Ich brauche das Ding z.B. zur Erstellung von Primitiv-NC-Programmen in Excel.
Danke allen, die daran schon mitgemacht haben.

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

Florian.Held
Mitglied
Konstruktiver Spritzer (Konstruktion Spritzguss)


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

Beiträge: 35
Registriert: 13.07.2005

CATIA R14 SP5 unter WinXP64 und Unix (vbscript)

erstellt am: 11. Aug. 2005 11:34    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 Felsen 10 Unities + Antwort hilfreich

Ist eigentlich ne Gute Idee!

Ich baue momentan ein Makro wo den Strukturbaum abbildet (z.B. als Textdatei) wo ich so meine Probleme hab aber wenn ich in Sachen GetCoordinates mal wieder was mache werd ichs in diesen Beitrag mailen!

PS: Danke für dass Script hammax

------------------
Es gibt nichts langweiligeres als ein vollständiges, stabil laufendes Catia...

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

cwillmann
Mitglied
PLM-Berater


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

Beiträge: 1487
Registriert: 17.03.2001

erstellt am: 04. Jul. 2006 19:46    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 Felsen 10 Unities + Antwort hilfreich

Hallo,

Frage zur Erweiterung des - wirklich klasse - Makros:

Es sollen Messpunkte aus Bauteilen in einer Produktstruktur ausgegeben werden, bezogen auf das Absolute 3D Referenzachsensystem.
Die Funktion "Coordinate Dimension Table" im Drafting macht dies im Prinzip, aber nur non-assoziativ.

Irgendwelche Chancen diesbezüglich??

------------------
Grüße,
Christian Willmann
---

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

Lusilnie
Mitglied



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

Beiträge: 1486
Registriert: 13.07.2005

erstellt am: 05. Jul. 2006 00:54    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 Felsen 10 Unities + Antwort hilfreich

Hallo cwillmann,

natürlich kann man Punkte aus beliebigen Parts in einer Struktur zum "Struktur-Null" berechnen, die Frage ist allerdings: "Was ist Dein Ziel?"
Die reine Berechnung ist kein Hexenwerk, da liefert DS die Ideen schon mit aus, z.B. im Beispiel-Script 'DMUCopyPasteKeepAbsolutePostition.CATScript'. Ein bisschen Nacharbeit, und Du kannst die Messpunkte ausgeben, aber ASSOZIATIV...???


mfg,
Lusilnie

------------------

Alle Aussagen zu DassaultSystemes-Produkten sind sehr optimistisch, selbst diese!!!

frei nach größeren Geistern

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

cwillmann
Mitglied
PLM-Berater


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

Beiträge: 1487
Registriert: 17.03.2001

Job: die 'big three' in CAD & PDM - aber nicht (mehr) täglich!

erstellt am: 05. Jul. 2006 19:07    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 Felsen 10 Unities + Antwort hilfreich

Hallo Lusilnie,

besten Dank für den Tipp, das Makro habe ich bislang übersehen. Es reicht mir per Makro die aktuellen Koordinaten der Punkte in ein csv zu schreiben, welches ich dann ich die Zeichnungstabelle einfügen. Finde ich weniger aufwändig, als in regelmäßigen Abständen die Punkte auf der Zeichnung zu selektieren und die Coord. Dim. Table erneut zu generieren, da diese "dumm" ist.

------------------
Grüße,
Christian Willmann
---

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

cwillmann
Mitglied
PLM-Berater


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

Beiträge: 1487
Registriert: 17.03.2001

erstellt am: 08. Aug. 2006 13:48    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 Felsen 10 Unities + Antwort hilfreich

Hallo zusammen,

ich habe Probleme bei der Erweiterung des Makros (bin auch überhaupt kein Profi in diesem Gebiet). Reicht die Funktion "GetAbsPosition" aus dem Beispielmakro aus? Wie erfolgt das eigentliche Aufsummieren zusammen mit den Punktekoordinaten in den eingebauten Komponenten: Mache ich das am besten schrittweise (direkt nach dem Punktauslesen) oder in einer separaten Funktion?

Vielen Dank!

------------------
Grüße,
Christian Willmann
---

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

Lusilnie
Mitglied



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

Beiträge: 1486
Registriert: 13.07.2005

erstellt am: 09. Aug. 2006 00:04    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 Felsen 10 Unities + Antwort hilfreich

Hallo cwillmann,

wenn Du vom Root-Product ausgehst, erfolgt das "Aufsummieren" innerhalb des "Durchhangelns" zum Part (rekursive Schleife). Da wird immer die Positionsmatrix des aktuell abzuarbeitenden Products(Parts) mit der bisher erzeugten Matrix "mutlipliziert" (Matrix-Product), wobei dies keine wirkliche Multiplikation ist. Somit ist Deine Positions-Matrix immer die aktuell zum Root-Product. Dann noch die Punkt-Matrix (Punkt-Koordinaten im Part) damit "multiplizieren" und Du hast die absoluten Punkt-Koordinaten im Root-Product. D.H. Du solltest die letzte beschrieben Berechnung auf alle Fälle noch in dem Part machen, wo Du die Punkte ausliest, ob nach jedem Punkt oder nach allen pro Part ist dann Deinem Geschmack überlassen!
Soweit zur Theorie! Falls Du noch weitere Detail-Fragen hast, poste einfach noch mal!


mfg,
Lusilnie

------------------

Alle Aussagen zu DassaultSystemes-Produkten sind sehr optimistisch, selbst diese!!!

frei nach größeren Geistern

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

cwillmann
Mitglied
PLM-Berater


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

Beiträge: 1487
Registriert: 17.03.2001

Job: die 'big three' in CAD & PDM - aber nicht (mehr) täglich!

erstellt am: 09. Aug. 2006 16: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 Felsen 10 Unities + Antwort hilfreich

Hallo Lusilnie,

vielen Dank für den Input! Leider verwirrt mich der Tipp mangels Skript-Erfahrung (welche bisher auf Aufzeichnen/Abändern/Verstehen beschränkt ist). Wollte auf Basis eines solchen Problems (Welches nicht  direkt mit "CATIA-Klick-Funktionen" zu lösen ist) mir die Makrothematik mal näher anschauen, schätze diese aber nun als "Fortgeschritten" ein. Ich suche mir was leichteres, da mich rekursive Schleifen auf jetzigem Stand überfordern.

------------------
Grüße,
Christian Willmann
---

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

lohri
Mitglied
BA-Student


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

Beiträge: 14
Registriert: 06.07.2006

Catia V5 R16

erstellt am: 17. Jul. 2007 11:29    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 Felsen 10 Unities + Antwort hilfreich

Hallo,

kann bitte jemand sagen, wie ich die Punkt-Koordinaten aus einem Skizzierer auslesen kann? Im der Automation.chm fand ich nur Befehle zum Ansteuern von 3D-Punkten bzw. unter Object Sketch sind nur Methoden zum Punkt erzeugen zu finden.
Hier mal mein Testprogramm, um zumindest mal die Skizze anzusprechen:

    Sub CATMain()

    Dim D As Document
    Set D = CATIA.ActiveDocument

    Dim P As Part
    Set P = D.Part

    Dim Skizzen As Sketches
    Set Skizzen = P.Bodies.Item("Hauptkörper").Sketches

    MsgBox (Skizzen.Item(1).Name)

    End Sub


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

lohri
Mitglied
BA-Student


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

Beiträge: 14
Registriert: 06.07.2006

Catia V5 R16

erstellt am: 18. Jul. 2007 09: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 Felsen 10 Unities + Antwort hilfreich

Hallo,

manchmal sollte man echt nochmal ne Nacht drüber schlafen.
Ich habs jetzt:

    Sub CatMain()

    Dim coord(1)
    Dim coordBox()
    Dim GeoElem As GeometricElements
    Set GeoElem = CATIA.ActiveDocument.Part.Bodies.Item("Hauptkörper").Shapes.Item(1).Sketch.GeometricElements
    Dim sMsgBox As String

    ReDim coordBox(1, GeoElem.Count)

    For i = 1 To GeoElem.Count

        If GeoElem.Item(i).GeometricType = (2) Then
            GeoElem.Item(i).GetCoordinates (coord)
            coordBox(0, i) = coord(0)
            coordBox(1, i) = coord(1)
            sMsgBox = sMsgBox & Chr(10) & Chr(13) & "x-Koordinate = " & coord(0) & Chr(10) & Chr(13) & "y-Koordinate = " & coord(1)
        End If
    Next
    MsgBox (sMsgBox)


    End Sub

Gruß lohri

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

Felsen
Mitglied
Formenbau


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

Beiträge: 239
Registriert: 15.06.2004

HP Workstation Z800
3.7GHz
16GB RAM
QuadroFX4600
CATIA V5-6 Release 2016

erstellt am: 04. Jul. 2008 14: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

Hallo Forum,

als Verursacher dieser Diskussion hätte ich gerne nochmal nachgefragt, was jetzt so der letzte Stand dieses Macros wäre.
Es sind so viele Vorschläge und Verbesserungen/Erweiterungen eingegangen.
Gibt es so etwas wie einen Endstand?
Wenn ja, könnte ich den haben?

Gruß
Felsen

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

olleiCAD
Mitglied



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

Beiträge: 57
Registriert: 24.04.2018

Catia V5 R29 SP3 | Windows 10 Pro

erstellt am: 18. Jul. 2019 10: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 Felsen 10 Unities + Antwort hilfreich

Sorry dass ich so einen alten Beitrag rauskrame, aber ich häng gerade etwas fest - Makro Anfänger halt 

Ich will eine Skizze in meinem Part selektieren (egal ob in einem Körper oder in einem GeoSet) und mir alle scharfen Punkte aus dieser Punktskizze in ein Array speichern lassen.

Code:
'--- Punktskizze auswählen ---
Dim Punktskizze As GeometricElements

MsgBox("Bitte die Punktskizze auswählen.")

Dim SketchFilter()
ReDim SketchFilter(0)

UserSelection.Clear

SketchFilter(0)="Sketch"
selSkizze=UserSelection.SelectElement2(SketchFilter,"Bitte die Punktskizze auswählen.",True)

If selSkizze="Normal" Then
Set Punktskizze = UserSelection.Item(1).GeometricElements
Else
MsgBox ("Fehler falsche Auswahl - Bitte Körper wählen")

End If

Dim Punktewolke()
ReDim Punktewolke (Punktskizze.Count)

For i = 1 To Punktskizze.Count

    If Punktskizze.Item(i).GeometricType = (2) Then 'Checkt ob Punktein Skizze sind - Nummer 2
Set Punktewolke(i) = Punktskizze.Item(i).Value
End If

Next


Leider kommt bei

Code:
Set Punktskizze = UserSelection.Item(1).GeometricElements

ein Fehler. Woran liegt das?

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: 18. Jul. 2019 10:56    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 Felsen 10 Unities + Antwort hilfreich

Servus

Wie wäre es mit:

Code:
Set Punktskizze = UserSelection.Item(1).Value.GeometricElements
Gruß
Bernd

PS: "Punktskizze" finde ich einen unpassenden Variablennamen (beim späteren ändern/nachvollziehen), da es sich nicht um die Skizze sondern um die geometrischen Elemente der Skizze handelt

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

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

olleiCAD
Mitglied



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

Beiträge: 57
Registriert: 24.04.2018

Catia V5 R29 SP3 | Windows 10 Pro

erstellt am: 18. Jul. 2019 11: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 Felsen 10 Unities + Antwort hilfreich

Danke klappt. Bin fast am Ziel...aber gibt noch ein Problem

Code:
Sub CATMain()

Dim partDocument1 As PartDocument
Set partDocument1 = CATIA.ActiveDocument

Dim part1 As Part
Set part1 = partDocument1.Part

Dim GeoSet As HybridBody

Dim UserSelection As Object
Set UserSelection = partDocument1.Selection
UserSelection.clear

Dim Origin As Reference

Dim GeoContainer As GeometricElements

Dim intAxisSystemsObj As AxisSystems
Dim RefAchse as AxisSystem

Dim X_Achse (2)
Dim Y_Achse (2)
Dim Z_Achse (2)


Dim selAchse As String
Dim selSkizze As String

'--- Referenzachse auswählen ---

'MsgBox("Bitte das Achsensystem anklicken, auf welches sich die Koordinaten beziehen sollen!")

Dim AXSFilter()
ReDim AXSFilter(0)

UserSelection.Clear

AXSFilter(0)="AxisSystem"
selAchse=UserSelection.SelectElement2(AXSFilter,"Bitte das Achsensystem anklicken,auf welches sich die Koordinaten beziehen sollen",True)

If selAchse="Normal" Then
Set RefAchse=UserSelection.Item2(1).Value

Else
    MsgBox ("Fehler falsche Auswahl - Bitte Körper wählen")

End If

'RefAchse.GetOrigin Ursprung
RefAchse.GetXAxis X_Achse
RefAchse.GetYAxis Y_Achse
RefAchse.GetZAxis Z_Achse

'--- Punktskizze auswählen ---

'MsgBox("Bitte die Punktskizze auswählen.")

Dim SketchFilter()
ReDim SketchFilter(0)

UserSelection.Clear

SketchFilter(0)="Sketch"
selSkizze=UserSelection.SelectElement2(SketchFilter,"Bitte die Punktskizze auswählen.",True)

If selSkizze="Normal" Then
Set GeoContainer = UserSelection.Item(1).Value.GeometricElements
Else
MsgBox ("Fehler falsche Auswahl - Bitte Skizze wählen")

End If

Dim Punktewolke()

For i = 1 To GeoContainer.Count

    If GeoContainer.Item(i).GeometricType = (2) Then 'Checkt ob Punkte in Skizze sind - Nummer 2
ReDim Punktewolke (y)
Set Punktewolke(y) = GeoContainer.Item(i)
y = y+1
End If

Next
'--- Methode ---

For i = 0 to UBound(Punktewolke)

Set Origin = CreateReferenceFromObject(Punktewolke(i))

'--- ACHSENSYSTEM ERSTELLEN
Set intAxisSystemsObj = part1.AxisSystems
        Set gen_Axis = intAxisSystemsObj.Add

        gen_Axis.OriginType = 0 'catAxisSystemOriginByPoint
        gen_Axis.OriginPoint = Origin
       
        gen_Axis.XAxisType = 1 'atAxisSystemAxisByCoordinates
        gen_Axis.PutXAxis X_Achse
       
        gen_Axis.YAxisType = 1 'catAxisSystemAxisByCoordinates
        gen_Axis.PutYAxis Y_Achse
       
        gen_Axis.ZAxisType = 1 'catAxisSystemAxisByCoordinates
        gen_Axis.PutZAxis Z_Achse
       
        gen_Axis.Name = CStr("Achse_" & Punktewolke(i))

Next

part1.update

end sub


Dieses Makro soll Achsen auf einer Punktskizze erzeugen (mit der gleichen Ausrichtung des RefAchsensystems).

Bei Zeile 93 gibt es jedoch einen Typenkonflikt

Code:
Set Origin = CreateReferenceFromObject(Punktewolke(i))

Ich gehe davon aus, dass in dem Punktewolke Array jetzt die einzelnen Punkte der Skizze drin sind (Point.1 etc)

Wo genau liegt hier der Fehler?

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: 18. Jul. 2019 12:04    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 Felsen 10 Unities + Antwort hilfreich

Servus

Folgendes ist mir aufgefallen:

  • y hat keinen Anfangswert. Was passiert beim ersten Durchlauf? Ist da der Array schon dimensioniert?
  • beim ReDim fehlt das Preserve, somit wird der Array immer geleert
  • müsste wohl part1.CreateReferenceFromObject heißen
  • vermutlich müsstest du per BREP die Reference bilden (oder über die Selektion)

Gruß
Bernd

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

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

olleiCAD
Mitglied



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

Beiträge: 57
Registriert: 24.04.2018

Catia V5 R29 SP3 | Windows 10 Pro

erstellt am: 19. Jul. 2019 07: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 Felsen 10 Unities + Antwort hilfreich

Hab jetzt BRep und per Selektion ausprobiert, aber er sagt mir in beiden Fällen, dass die Methode OriginPoint fehlgeschlagen ist...

BRep:

Code:
Dim Punktewolke()
y = 0
For i = 1 To GeoContainer.Count

    If GeoContainer.Item(i).GeometricType = (2) Then 'Checkt ob Punkte in Skizze sind - Nummer 2
ReDim Preserve Punktewolke (y)
Set Punktewolke(y) = GeoContainer.Item(i)
y = y + 1
End If

Next
'--- Methode ---

For i = 0 to UBound(Punktewolke)
Set Origin = part1.CreateReferenceFromBrepName(Vertex, Punktewolke(i))
'--- ACHSENSYSTEM ERSTELLEN
Set intAxisSystemsObj = part1.AxisSystems
        Set gen_Axis = intAxisSystemsObj.Add

        gen_Axis.OriginType = 0 'catAxisSystemOriginByPoint
        gen_Axis.OriginPoint = Origin
       
        gen_Axis.XAxisType = 1 'atAxisSystemAxisByCoordinates
        gen_Axis.PutXAxis X_Achse
       
        gen_Axis.YAxisType = 1 'catAxisSystemAxisByCoordinates
        gen_Axis.PutYAxis Y_Achse
       
        gen_Axis.ZAxisType = 1 'catAxisSystemAxisByCoordinates
        gen_Axis.PutZAxis Z_Achse
       
        gen_Axis.Name = CStr("Achse_" & Punktewolke(i))

Next


Selection:

Code:
'--- Methode ---

For i = 0 to UBound(Punktewolke)
UserSelection.Clear
Userselection.add Punktewolke(i)

Set Origin = part1.CreateReferenceFromObject(Userselection.Item(1).Value)


Und dann hab ich es mal genau so deklariert wie in der V5 Hilfe

Code:
For i = 0 to UBound(Punktewolke)

Set Origin = part1.CreateReferenceFromGeometry(Punktewolke(i))


Klappt aber alles nicht. Im Array 0 befindet sich Point.1, sollte also passen laut meinem Verständis...

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: 19. Jul. 2019 19: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 Felsen 10 Unities + Antwort hilfreich

Servus

Ich befürchte du musst dir den BREP-String zusammensetzen.
Die Makroaufzeichnung liefert zB folgenden:

Code:
Set reference1 = part1.CreateReferenceFromBRepName("BorderFVertex:(BEdge:(Brp:(Sketch.1;3);None:(Limits1:();Limits2:();+1);Cf11:());WithPermanentBody;WithoutBuildError;WithSelectingFeatureSupport;MFBRepVersion_CXR15)", sketch1)
Der fett-markierte "Parameter" scheint ein Zähler für die geometrischen Elemente in der Skizze zu sein.

Gruß
Bernd

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

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