Autor
|
Thema: Anzahl der Paramert aus einem Part auslesen (785 mal gelesen)
|
joohhnnnnyy Mitglied
Beiträge: 7 Registriert: 17.07.2009 Catia V5 R16 SP2 auf HP-Unix Catia V5 R16 SP2 auf Win2000
|
erstellt am: 17. Jul. 2009 09:39 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen, ich habe ein kleines Problem und zwar möchte ich die Anzahl der Parameter aus einem Part per CATScript auslesen um entsprechend viel Variablen zu deklarieren. Ich hoffe Ihr könt mir weiterhelfen. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Bopkes Mitglied
Beiträge: 40 Registriert: 21.04.2009
|
erstellt am: 17. Jul. 2009 09:49 <-- editieren / zitieren --> Unities abgeben: Nur für joohhnnnnyy
|
joohhnnnnyy Mitglied
Beiträge: 7 Registriert: 17.07.2009 Catia V5 R16 SP2 auf HP-Unix Catia V5 R16 SP2 auf Win2000
|
erstellt am: 17. Jul. 2009 09:55 <-- editieren / zitieren --> Unities abgeben:
Danke für die schnelle Antwort, Parameter.Count bekomme die Anzahl aller Parameter die in dem Part sind, das ist schon mal was. Ich benotige aber nur die Anzahl der Parameter, die ich selbst erstellt habe. Allso die Anzahl der User-Parameter. Gibt es da auch eine möglichkeit diese auszulesen? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Bopkes Mitglied
Beiträge: 40 Registriert: 21.04.2009
|
erstellt am: 17. Jul. 2009 10:15 <-- editieren / zitieren --> Unities abgeben: Nur für joohhnnnnyy
Müßte über ....Parameters.RootParameterSet.DirectParameters.Count (oder anstatt DirectParameters , sollte auch AllParameters funktionieren). Also so in der Art: Code: Set A = -----.ParametersSet B = A.RootParameterSet Set C = B.DirectParameters D = C.Count
Da gibt dir die Anzahl der Paramter in einem Parameterset zurück! [Diese Nachricht wurde von Bopkes am 17. Jul. 2009 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
DanielFr. Moderator Manager
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: 17. Jul. 2009 10:17 <-- editieren / zitieren --> Unities abgeben: Nur für joohhnnnnyy
Hallo joohhnnnnyy, bitte fülle zuerst einmal deine Systeminformation aus damit wir wissen in welchem Release du arbeitest. Jetzt zu deinem Problem: IMHO gibt es zwei Möglichkeiten. 1. Du schreibst dir eine Schleife und durchläufst in dieser alle Parameter. Jeder Parameter hat die Eigenschaft "Renamed". Ist ein Parameter umbenannt worden dann ist es höchstwahrscheinlich ein UserParameter. Das Problem ist das es nur höchstwahrscheinlich so ist. D.h. dieser Ansatz wird ggf. zu Fehlern führen 2. Du machst es mit den Parameter.Count und ziehst einfach die Summe der Standardparameter (also die die immer in einem CATPart vorhanden sind) ab. Ich habe hier R18 am laufen und bei mir werden standardmäßig 18 Parameter in einem Part angelegt. Hier müsste aber definitiv noch eine Sicherheitsabfrage rein. Du müsstest erst einmal schauen welche Release überhaupt eingesetzt werden. Dann solltest du kontrollieren ob die Anzahl aller Standardparameter in den unterschiedlichen Releases auch gleich ist. Ist das der Fall hast du kein Problem. Ist das nicht der Fall braucht du noch eine Abfrage in welchem Release das Script ausgeführt wird. Je nach Release ziehst du dann von den Parameter.Count die entsprechende Anzahl ab. Hier mal eine Script das mit R18 läuft. (leider kann ich keine anderen Versionen testen da ich gerade keine zur Hand habe ) Code: Sub CATMain()'**********************************Abfrage Dokumente********************************** Dim oFenster As Windows Dim oDoc As Document Dim ObjType As String Set oFenster = CATIA.Windows If oFenster.Count = 0 Then Box = MsgBox("Es ist kein Dokument geladen!" + Chr(10) + "Das Makro kann nicht ausgeführt werden und wird beendet!", vbCritical, "Keine Dokument geladen") Exit Sub End If Set oDoc = CATIA.ActiveDocument ObjType = TypeName(oDoc) If ObjType <> "PartDocument" Then Box = MsgBox("Das aktive Dokument ist kein PartDocumentCATPart!" + Chr(10) + "Das Makro kann nicht ausgeführt werden!", _ vbCritical + vbOKOnly, "Falscher Dateityp") Exit Sub End If ObjType = "" '**********************************Abfrage Parameter********************************** Dim oPart As Part Dim oPara As Parameters Dim myCount As Integer Set oPart = oDoc.Part Set oPara = oPart.Parameters '18 Parameter enthält ein Part in der R18 standartmäßig myCount = oPara.Count - 18 'Array Deklarieren mit variabler Dimension Dim myArray() As String 'Dimension zuweisen (Array fängt mit 0 an, deswegen myCount-1) ReDim Preserve myArray(myCount - 1) End Sub
------------------ MFG Daniel Die KATJA ist halt doch nur ne zickige Französin Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
joohhnnnnyy Mitglied
Beiträge: 7 Registriert: 17.07.2009 Catia V5 R16 SP2 auf HP-Unix Catia V5 R16 SP2 auf Win2000
|
erstellt am: 17. Jul. 2009 10:59 <-- editieren / zitieren --> Unities abgeben:
|
joohhnnnnyy Mitglied
Beiträge: 7 Registriert: 17.07.2009 Catia V5 R16 SP2 auf HP-Unix Catia V5 R16 SP2 auf Win2000
|
erstellt am: 21. Jul. 2009 14:01 <-- editieren / zitieren --> Unities abgeben:
Hallo an meine Helfer, die Methode von Bopkes hat wunderbar geklappt, danke dafür. DanielFr's Lösungsansatz habe ich nicht probiert, aber trotzdem danke für die schnelle Hilfe. Gruß, joohhnnnnyy
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |