Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Namen von Geo Sets ansprechen

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:  Namen von Geo Sets ansprechen (930 mal gelesen)
dusches
Mitglied



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

Beiträge: 26
Registriert: 26.03.2010

erstellt am: 01. Jun. 2010 11:09    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 4 Geo Sets, in denen ein Punkt auf die gleiche Weise, mit Unterstützung meines Makros, erstellt wird. Anfangs hatte ich im Makro 4 mal die gleiche Anweisung. Der einzige Unterschied war lediglich die Zahl am Ende des namens des Geo Sets z.B. "Geo_Set.1" und "Geo_Set.2" etc...
Ich möchte die einzelnen Elemente mit meinem Makro ansprechen und dachte ich nehem eine for-Schleife dafür.
wenn ich die zahl durch ein "i" ersetze dann funktioniert es aber nicht.
ich habe einfach keine ahnung warum das so ist. was mache ich falsch?

Ich bin dankbar für jede Hilfe.

hier ein Auszug:

dim i
for i=1 to 4 step 1

Set anfang = parameters1.Item("Part1\Linie1\Pt:Schnittpunkt_i\_Punkt_i")
Set versatz_Steuerpunkt_(i) =  parameters1.Item("Part1\Linie1\Pt:Schnittpunkt_i\Steuerpunkt_i")
Set Messungi = parameters1.Item("Part1\Aufbau\Linie1\Pt:Schnittpunkt_i\Messungi")



next

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

DanielFr.
Moderator
Manager


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

Beiträge: 2506
Registriert: 10.08.2005

HP Compaq 8710w, Intel Core Duo T7700, 2,40 Ghz, 3GB RAM, Windows XP Professionel @32bit, Quadro FX 1600M, CATIA V5 R19 SP3

erstellt am: 01. Jun. 2010 11:25    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 dusches 10 Unities + Antwort hilfreich

Hallo  ,

Code:

Set anfang = parameters1.Item("Part1\Linie1\Pt:Schnittpunkt_i\_Punkt_i")
Set versatz_Steuerpunkt_(i) =  parameters1.Item("Part1\Linie1\Pt:Schnittpunkt_i\Steuerpunkt_i")
Set Messungi = parameters1.Item("Part1\Aufbau\Linie1\Pt:Schnittpunkt_i\Messungi")

das ist auch logisch den dein i steht zwischen Anführungszeichen und wird somit von VB als String interpretiert. Du musst den String zusammensetzen und an die Methode .Item übergeben.

Hier mal ein kleines Beispiel:

Code:

...
Dim i as Integer

For i = 1 to 4
  parameters1.Item("Part1\Linie1\Pt:Schnittpunkt_" & Cstr(i) & "\_Punkt_" & Cstr(i))
Next


In Beispiel wird jetzt folgender String an die Methode übergeben (für i = 1)
"Part1\Linie1\Pt:Schnittpunkt_1\_Punkt_1"

------------------
MFG Daniel

Systeminformation | Inoffizielle CATIA Hilfeseite | CATIA FAQ | Suche | TraceParts (Normteile...) | 3D Content Central (noch mehr Normteile...)

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

dusches
Mitglied



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

Beiträge: 26
Registriert: 26.03.2010

erstellt am: 01. Jun. 2010 12:08    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!
Vielen Dank! Jetzt funktionierts.

nur noch einmal zum Verständnis:
- in Anführungszeichen wird eins String übergeben (also der Name des Elementes)
- deswegen wird das i hier nicht hochgezählt
- ich muss den String unterbrechen und mit dem & Zeichen sage ich, dass noch etwas zum namen hinzugefügt wird
- oder sage ich dass etwas zum string hinzugefügt wird mit Cstr?
- alle anderen i, die nicht in einem String stehen werden hochgezählt, so wie bei Messungi (wird dann zu Messung1, Messung2, usw.)

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

DanielFr.
Moderator
Manager


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

Beiträge: 2506
Registriert: 10.08.2005

HP Compaq 8710w, Intel Core Duo T7700, 2,40 Ghz, 3GB RAM, Windows XP Professionel @32bit, Quadro FX 1600M, CATIA V5 R19 SP3

erstellt am: 01. Jun. 2010 12: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 dusches 10 Unities + Antwort hilfreich

Hallo  ,

Zitat:

- in Anführungszeichen wird eins String übergeben (also der Name des Elementes)
- deswegen wird das i hier nicht hochgezählt
- ich muss den String unterbrechen und mit dem & Zeichen sage ich, dass noch etwas zum namen hinzugefügt wird
- oder sage ich dass etwas zum string hinzugefügt wird mit Cstr?
- alle anderen i, die nicht in einem String stehen werden hochgezählt, so wie bei Messungi (wird dann zu Messung1, Messung2, usw.)

- Richtig. Wenn eine Code in Anführungszeichen steht ist das für VB ein String
- Richtig. VB übergibt den kompletten String mitsamt den i´s so an die Methode .item weiter. Leider gibt es in deinem Part kein geometrische Set mit dem Namen GeoSet.i. Das führt zu einem Laufzeitfehler
- Richtig. Der String wird an der Stelle an dem der Zähler (i) kommt unterbrochen. Da der String aber weitergeht kommt das kaufmännische Und (&) Zeichen um VB zu sagen das er den ersten Teil mit dem zweiten Teil verknüpfen soll
- Falsch. Die Funktion "CStr" konvertiert einen Ausdruck (Expression) in einen String (dein i wurde ja als Integer = Ganzzahl deklariert). Hierbei kann es auch zu Laufzeitfehlern kommen. Diese treten auf sobald ein Ausdruck nicht in den gewünschten Typ konvertiert werden kann (das ist hier aber nicht der Fall :lol
- Richtig. Alle i´s aus dem String haben den selben Wert. Die Schleife wird beim ersten mal durchlaufen (i = i) alle i´s innerhalb der Schleife sind 1. Beim zweiten Durchlauf i =2 sind alle i´s innerhalb der Schleife gleich 2. Willst du das nicht haben musst du das i mit einer mathematischen Funktion korrigieren (z.B. ....Item(i+1))

HTH 

------------------
MFG Daniel

Systeminformation | Inoffizielle CATIA Hilfeseite | CATIA FAQ | Suche | TraceParts (Normteile...) | 3D Content Central (noch mehr Normteile...)

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

dusches
Mitglied



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

Beiträge: 26
Registriert: 26.03.2010

erstellt am: 01. Jun. 2010 12: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

Perfekt!!!  vielen vielen Dank für die Hilfe und die Erklärungen!!! 

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: 01. Jun. 2010 12: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 Nur für dusches 10 Unities + Antwort hilfreich

Servus
Kleiner Hinweis:
Wenn dein Part mal einen anderen Namen hat, funktioniert das Makro nicht mehr, da der Name "Part1" hart-codiert ist (und somit sich nicht anpasst)

Gruß
Bernd

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

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

dusches
Mitglied



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

Beiträge: 26
Registriert: 26.03.2010

erstellt am: 01. Jun. 2010 13:11    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

ok. ich dachte der name des aktiven dokuments wird automatisch übernommen. aber stimmt, nach der Umbenennung kommt es zu einem Fehler.
das part wird zwar ziemlich sicher nicht mehr umbenannt aber falls doch, wäre es gut zu wissen wie man den partnamen ins Makro übernimmt?

Mit der Funktion Insert Object Resolution kommt immer der gleiche Text(mal abgesehen von dem oberen Kommentar ), egal welchen Namen ich dem Part gebe.

'---- Begin resolution script for object : Part1
Set partDocument1 = CATIA.ActiveDocument
Set part1 = partDocument1.Part
'---- End resolution script

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: 01. Jun. 2010 13:19    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 dusches 10 Unities + Antwort hilfreich

Servus
AFAIR müsst es so gehen:
parameters1.Item(part1.name & "\Linie1\Pt:Schnittpunkt_" & Cstr(i) & "\_Punkt_" & Cstr(i))

Gruß
Bernd

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

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

dusches
Mitglied



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

Beiträge: 26
Registriert: 26.03.2010

erstellt am: 01. Jun. 2010 13: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

wunderbar! habe ich das jetzt auch abgesichert! danke!

und soweit ich das gesehen habe, funktionert das Update (part1.update) und das lokale Update (part1.UpdateObject) auch wenn der Name des Parts geändert wurde.

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