Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Parameterwerte bei Single values abgreifen

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:  Parameterwerte bei Single values abgreifen (989 mal gelesen)
Tweety79
Mitglied
Entwicklung Automotive


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

Beiträge: 269
Registriert: 09.12.2007

WPF, VBA, CATScript, Access

erstellt am: 13. Mai. 2016 10: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

Hi,

um Werte eines Parameters abzugreifen, der mehrere Werte enthält habe ich folgende Zeilen:

        Dim myParam As KnowledgewareTypeLib.Parameter
        Dim myParamConfig As KnowledgewareTypeLib.StrParam
        Dim myDimensions As Object()

        myCatiaDoc = myCatiaApp.ActiveDocument
        myPart = myCatiaDoc.Part

        myParam = myPart.Parameters.Item("Irgendwas")
        myParamConfig = CType(myParam, KnowledgewareTypeLib.StrParam)

        ReDim myDimensions(myParamConfig.GetEnumerateValuesSize() - 1)

        myParamConfig.GetEnumerateValues(myDimensions)

                For Each variantDimension As String In myDimensions
                  xlsApp.Cells(4, 3).Value = myDimensions
                Next

Wie baue ich das Konstrukt so um, dass es auch für Paramter funktioniert, der nur einen Wert enthält?

Ich möchte alle Parameter ansprechen, die mit dem Namen "Irgendwas" anfangen und deren Werte in ein Array dann schaufeln.

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: 13. Mai. 2016 10: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 Tweety79 10 Unities + Antwort hilfreich

Servus
Ich würde einfach "myParamConfig.GetEnumerateValuesSize" auswerten (Anzahl der Einzelwerte): wenn 0, zurückgegeben wird den Wert über "myParamConfig.Value" auslesen, sonst (also bei mehreren Werten) über deinen Code.

Gruß
Bernd

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

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

Tweety79
Mitglied
Entwicklung Automotive


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

Beiträge: 269
Registriert: 09.12.2007

WPF, VBA, CATScript, Access

erstellt am: 13. Mai. 2016 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

Servus,

ich habe inzwischen ein anderes Konstrukt:

        Dim MyArrayWert() As String
            myCatiaDoc.Selection.Search("(Name=Irgendwas* & CATKnowledgeSearch.InternalParameter),all")
            ReDim MyArrayWert(myCatiaDoc.Selection.Count)
            For k = 1 To myCatiaDoc.Selection.Count
              MyArrayWert(k) = myPart.Parameters.Item(k).Value
              xlsApp.Cells(4 + k, 3).Value = MyArrayWert(k)
            Next

Es werden 5 Parameter gefunden, mit dem Namen, die alle einen Wert >0 haben.
Was ich abr als Ergebnis bekomme:

Für die ersten 3 Parameter wird der Wert 0 rausgegeben, für den 4. eine 1 und für den letzten wieder 0.

Warum wird denn nichts gefunden?

Gruß

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

bgrittmann
Moderator
Konstrukteur


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

Beiträge: 11780
Registriert: 30.11.2006

CATIA V5R19

erstellt am: 13. Mai. 2016 11: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 Tweety79 10 Unities + Antwort hilfreich

Servus
Mir "myPart.Parameters.Item(k).Value" sprichst du den k-ten Parameter des Parts an, und nicht aus deiner Selektion.
Um auf den Parameter/Wert aus der Selektion zuzugreifen:
- myCatiaDoc.Selection.item2(k).Value (der Parameter an sich)
- myCatiaDoc.Selection.item2(k).Value.Value (den Parameterwert)
- myCatiaDoc.Selection.item2(k).Name (der Parameternamen bzw auch .Value.Name)

Gruß
Bernd

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

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

Tweety79
Mitglied
Entwicklung Automotive


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

Beiträge: 269
Registriert: 09.12.2007

WPF, VBA, CATScript, Access

erstellt am: 13. Mai. 2016 12:03    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

Hi,

verstanden, vielen Dank.
funktioniert jetzt auch.

Aber ( wäre auch zu schön, wenn es kein Aber gäbe ):

Die Parameterwerte werden als Text rausgeschrieben, nicht als Zahl.

Vor dem Einfügen in Excel habe ich dann die Zeile eingefügt:

            xlsApp.Range("C:C").NumberFormat = "0.000"

Um die ganze Spalte als Zahl zu formatieren.
Es erscheint dennoch die Meldung, in die Zahl umzuwandeln. Vorher ist alles im Grafen daneben auf Null.

Gibt es überhaupt einen Befehl, den Wert als Zahl zu definieren?

Gruß

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

bgrittmann
Moderator
Konstrukteur


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

Beiträge: 11780
Registriert: 30.11.2006

CATIA V5R19

erstellt am: 13. Mai. 2016 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 Tweety79 10 Unities + Antwort hilfreich

Servus
Bist du sicher das der Wert als String in Catia vorliegt oder erst durch deinen Code konvertiert wird? (zB "MyArrayWert() As String")
Deshalb schau dir die Objekte im Watch/Local-Fenster zur Laufzeit (Schrittweise ablaufen lassen des Codes) an, und überprüfe die Typen/Werte/Ablauf.

Gruß
Bernd

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

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



Konstrukteur für unsere Projektgruppe (m/w/d)
Die besten Köpfe für die unterschiedlichsten Aufgaben zu finden sowie Menschen und Technologien zu verbinden, und zwar täglich aufs Neue - dafür schätzen unsere Kunden FERCHAU. Unterstütze uns: Als Berufserfahrene:r unterstützt du deine Kolleg:innen mit deinem langjährigen Know-how und deiner Expertise.

Konstrukteur für unsere Projektgruppe (m/w/d)
Kiel
Diese Herausforderungen ...
Anzeige ansehenKonstruktion, Visualisierung
Tweety79
Mitglied
Entwicklung Automotive


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

Beiträge: 269
Registriert: 09.12.2007

WPF, VBA, CATScript, Access

erstellt am: 13. Mai. 2016 12: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

Hi Bernd,

du hattest Recht.
Ich habe nun MyArrayWert() As String in MyArrayWert() As Object geändert und die Werte erscheinen als Zahlen.

Ist der Wert in Catia 2000 mm² wird er aber als 0,002 in Excel geschrieben.

Wenn ich das noch gelöst habe, habe ich heute viel gelernt :-).

Grüße

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