Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Makro - Parameter - Mehrfachauswahl - Stelle

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:  Makro - Parameter - Mehrfachauswahl - Stelle (2030 mal gelesen)
Grede
Mitglied
Engineering Coordinator

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

Beiträge: 4
Registriert: 01.02.2010

erstellt am: 01. Feb. 2010 17: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

Hallo ihr,

ich habe ein Problem. Und zwar habe ich einen Parameter mit einer Mehrfachauswahl (Multivalue).
Unabhängig vom Inhalt des ausgewählten Wertes möchte ich nun dessen Stelle innerhalb der
Mehrfachauswahl herausfinden. Weiss jemand von euch wie dies möglich ist?


Mit freundlichen Grüßen
Grede

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

Timberwolve
Mitglied



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

Beiträge: 233
Registriert: 21.07.2006

erstellt am: 04. Feb. 2010 14:43    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 Grede 10 Unities + Antwort hilfreich

Hallo,

ich denke es sollte möglich sein mit der Funktion (GetEnumerateValues)

ungefähr so

Code:

Dim oParam
Dim aParamValues()


Set oParam = oParameters.Item(1) 'hier muss das Parameterobjekt geholt werden

oParam.GetEnumerateValues aParamValues 'Die Funktion schreibt dir die Werte der Liste in ein Array



Anschliessend prüfst du den aktuellen Wert des Parameters und suchst in mit einer SChleife im Array.
Das müsste dann die Position sein an der der Wert in der Liste steht.

Gruss Timber

------------------
Wenn alle Stricke reissen, nehm ich ein Drahtseil

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

Grede
Mitglied
Engineering Coordinator

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

Beiträge: 4
Registriert: 01.02.2010

erstellt am: 07. Feb. 2010 16: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

Danke für deine Hilfe 

Nun habe ich ein anderes Problem. Die Funktion gibt mir leider nicht den Inhalt der Parameterwerte wieder.
Vorweg: die MsgBox "Wert1: "+aParamValue, ,"Stopp3" hat als Ergebnis: "Wert1: "

Code:
Sub CATMain()

Dim oParam
Set oParam = Catia.ActiveDocument.Product.Parameters.item(39)

'MsgBox "Paramter ausgewählt: "+oParam.Name, ,"Stopp1"
'Stopp1

Dim Groesse
Dim Groesse2
Groesse = oParam.GetEnumerateValuesSize
Groesse2 = CStr(Groesse)

MsgBox "Groesse: "+Groesse2, ,"Stopp2"
'STOPP2

Dim aParamValues()
Dim aParamValue
oParam.GetEnumerateValues aParamValues
aParamValue = CStr(aParamValues1)

'Catia.ActiveDocument.Part.Update

MsgBox "Wert1: "+aParamValue, ,"Stopp3"
STOPP3

End Sub


Wie man vielleicht erkennen kann habe ich nicht all zu viel Ahnung von VBA 

Der Parameter ist übrigens vom Typ "Zeichenfolge" (String).


PS: Total faszinierend finde ich es, dass die Funktion in einem Makro funktioniert - und im anderen nicht, je nach dem wo ich die Variablen deklariere. Deklariere ich diese zu Anfang, spuckt das Makro (an der Stelle der Funktion) immer eine Fehlermeldung CATIALength .... Error 1002 ... aus.

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: 07. Feb. 2010 17: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 Grede 10 Unities + Antwort hilfreich

Servus
Vorsicht: Bei einem Array hat dass erste Element den Index 0.
Versuch es mal mit:
Code:

Dim aParamValues()
Dim aParamValue
Redim aParamValues (oParam.GetEnumerateValuesSize - 1)
oParam.GetEnumerateValues aParamValues
aParamValue = CStr(aParamValues(0))

Gruß
Bernd

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

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: 07. Feb. 2010 18:39    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 Grede 10 Unities + Antwort hilfreich

Hallo,

das ganze kannst du dann in der Schleife durchgehen und z.B. in eine MsgBox ausgeben lassen. Hier mal ein Beispielcode:

Code:

Sub CATMain()


    Dim intDoc As PartDocument
    Dim intPart As Part
    Dim intParas As Parameters
    Dim intPara As Parameter
    Dim intParamValues()
    Dim intParamValue
   
    Set intDoc = CATIA.ActiveDocument
    Set intPart = intDoc.Part
    Set intParas = intPart.Parameters
    Set intPara = intParas.Item("Testpara")


    ReDim intParamValues(intPara.GetEnumerateValuesSize - 1)
    intPara.GetEnumerateValues intParamValues
    For i = 0 To UBound(intParamValues)
        intParamValue = CStr(intParamValues(i))
        MsgBox "Folgende Werte wurden ausgelesen:" + vbNewLine + vbNewLine + _
                "Parametername:" + vbTab + vbTab + intPara.Name + vbNewLine + _
                "Parameter Werteanzahl:" + vbTab + CStr(i + 1) + " von " + CStr(UBound(intParamValues) + 1) + vbNewLine + _
                "Parameterwert:" + vbTab + vbTab + intParamValue, vbInformation, "Hinweis"
    Next
               

End Sub


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



Technischer Systemplaner (m/w/d) der Fachrichtung Versorgungs- & Ausrüstungstechnik

Als zentraler Dienstleister des Landes Schleswig-Holstein setzen wir als GMSH mit unseren 1.700 Beschäftigten nach­haltige Standards in den Bereichen öffent­liches Bauen, Bewirtschaften und Beschaffen. Bei der Suche nach den besten Lösungen für unsere Kunden sind wir fachkundig und zuverlässig, innovativ und zukunfts­orientiert.

Sie suchen einen neuen Arbeitsplatz mit spannenden Aufgaben ...

Anzeige ansehenSystemadministration, Netzwerkadministration
Grede
Mitglied
Engineering Coordinator

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

Beiträge: 4
Registriert: 01.02.2010

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

Ich bedanke mich vielmals für eure Unterstützung 

Alles funktioniert nun tadellos ^^

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