Autor
|
Thema: ParameterSet unter einem Geoset ansprechen (643 mal gelesen)
|
Booyaka Mitglied
Beiträge: 122 Registriert: 22.06.2012 CATIA V5 R19, 24, 26, 28, 29
|
erstellt am: 09. Mai. 2019 14:51 <-- editieren / zitieren --> Unities abgeben:
Hallo, ich hoffe mir kann jemand helfen. Der Grundgedanke ist der das ich in ein ParameterSet nach dem anderen nach Parametern durchsuche und diese rausschreibe (tabelarisch das man die Parameter zum jeweiligen ParameterSet zugeordnet hat). Ich habe folgenden Aufbau: Code:
Body.1 | |-Geoset.1 | |-ParameterSet.1 | |-String.1= | |-ParameterSet.2 |-Length.1=0mm
Und ich möchte per Makro an den namen des ParameterSets kommen. Ich schaffe es leider nur bis davor(Geoset) oder danach (String) :/ Code:
... oBodyName = oSel1.Item(1).Value.Name Set oBody = bodies1.Item(oBodyName) oBodyGeoSetName = oBody.HybridBodies.Item(1).Name Set oBodyGeoSet = oBody.HybridBodies.Item(oBody.HybridBodies.Item(1).Name) 'Name des Parameters MsgBox part1.Parameters.SubList(oBodyGeoSet, True).Item(1).Name ...
Anscheind kommt man mit der SubList nicht an die Sets ran :/ MfG Sascha ------------------ „Nicht Erfolg ist der Schlüssel zum Glück, sondern Glück ist der Schlüssel zum Erfolg. Wenn du gerne tust, was du tust, wirst du auch erfolgreich sein.“ ― Albert Schweitzer Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 09. Mai. 2019 15:19 <-- editieren / zitieren --> Unities abgeben: Nur für Booyaka
Servus Meine Idee dazu: GeoSet selektieren und darin nach den ParameterSets suchen: Code: oSelection.Search "CATKnowledgeSearch.AdvisorParameterSet,sel"
Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Randle Mitglied CAD/PLM Consultant
Beiträge: 695 Registriert: 12.04.2003 Win10 x64 CATIA V5 R18, R19, R21, R27-29
|
erstellt am: 09. Mai. 2019 15:50 <-- editieren / zitieren --> Unities abgeben: Nur für Booyaka
Hallo, oder wenn du die Selektion Klasse vermeiden willst so ... Code:
Option ExplicitSub CATMain() Dim oPartDoc As PartDocument Dim oPart As Part Dim oHyBdy As HybridBodies Dim oParams As Parameters Dim oParam As StrParam Dim oModEl As ModelElement On Error Resume Next Set oPartDoc = CATIA.ActiveDocument If Err.Number <> 0 Then MsgBox "Macro supports CATPart only.", vbInformation, "Program abort" Exit Sub End If On Error GoTo 0 Set oPart = oPartDoc.Part Set oHyBdy = oPart.HybridBodies.Item(1) Set oParam = oPart.Parameters.SubList(oHyBdy, False).GetItem("TestParam") ' oder Set oParam = oPart.Parameters.SubList(oHyBdy, False).Item(1) Set oModEl = oParam.GetItem("ModelElement") MsgBox oModEl.InternalName & ":" & vbNewLine & oParam.ValueAsString End Sub
... erfolgreich getestet mit R21. Beispielpart habe ich angehängt. Nachtrag: Sorry, hatte überlesen das es um ein ParameterSET geht. Werde ich mir nochmal ansehen. Gruß Randle ------------------ Wer für nichts steht, fällt für alles! [Diese Nachricht wurde von Randle am 09. Mai. 2019 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Booyaka Mitglied
Beiträge: 122 Registriert: 22.06.2012 CATIA V5 R19, 24, 26, 28, 29
|
erstellt am: 10. Mai. 2019 06:44 <-- editieren / zitieren --> Unities abgeben:
Ich dank euch schonmal für die Anregungen. ich werd mir das gleich mal anschauen. ------------------ „Nicht Erfolg ist der Schlüssel zum Glück, sondern Glück ist der Schlüssel zum Erfolg. Wenn du gerne tust, was du tust, wirst du auch erfolgreich sein.“ ― Albert Schweitzer Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Booyaka Mitglied
Beiträge: 122 Registriert: 22.06.2012 CATIA V5 R19, 24, 26, 28, 29
|
erstellt am: 10. Mai. 2019 10:35 <-- editieren / zitieren --> Unities abgeben:
So hab mich nochmal dran gesetzt und noch eine andere Möglichkeit die ohne ne Selection auskommt.(stand hier irgendwo im Forum nach ziemlich langen googeln gefunden ^^ gefunden) Allerdings ist darauf zu achten das bei der Bezeichnung der Parameter der Local Name geändert wird und nicht der Name. Da ich mit der Splitfunction arbeite. So lässt sich das gut verbauen und für alle selektierten Körper in ne schleife bauen
Code:
... oBodyGeoSetName = oBody.HybridBodies.Item(1).Name Set oBodyGeoSet = oBody.HybridBodies.Item(oBodyGeoSetName) Set oParameterSubList = part1.Parameters.SubList(oBodyGeoSet, True) Set oParameter = oParameterSubList.Item(1) oParameterSetName2 = FuncSplitNameParaSet(oParameter.Name) ... ______________________________________________________________________________ Private Function FuncSplitNameParaSet(ByVal strName As String) As String Dim strTempSplit Dim i As Integer strTempSplit = Split(strName, "\") If UBound(strTempSplit) > 0 Then FuncSplitNameParaSet = strTempSplit(UBound(strTempSplit) - 1) End If End Function
------------------ „Nicht Erfolg ist der Schlüssel zum Glück, sondern Glück ist der Schlüssel zum Erfolg. Wenn du gerne tust, was du tust, wirst du auch erfolgreich sein.“ ― Albert Schweitzer Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|