| |
| KISTERS 3DViewStation: 3D-Heatmaps für aussagekräftige Machbarkeitsanalysen, eine Pressemitteilung
|
Autor
|
Thema: Geometrische Sets im Part alphabetisch ordnen (2801 / mal gelesen)
|
olleiCAD Mitglied
Beiträge: 59 Registriert: 24.04.2018 Catia V5 R32 SP2 | Windows 10 Pro
|
erstellt am: 27. Jul. 2018 11:28 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen, ich habe ein Geometrisches Set mit vielen Unter-Sets, die alphabetisch, bzw aufsteigend (0-10 z.B.) geordnet werden müssen. Händisch will ich sie nicht ordnen. Automatisch sortieren funktioniert leider nicht. Auch ein passendes Makro habe ich nicht gefunden. Gibts hierfür eine Lösung/Makro? Vielen Dank. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Randle Mitglied CAD/PLM Consultant
Beiträge: 743 Registriert: 12.04.2003 Win10 x64 CATIA V5 R18, R19, R21, R27-29
|
erstellt am: 27. Jul. 2018 11:39 <-- editieren / zitieren --> Unities abgeben: Nur für olleiCAD
Hallo, solange die Abhängigkeiten der in den einzelnen GeoSets enthaltenen Geometrie nicht in andere GeoSets referenzieren, könnte es mit Ausschneiden und Einfügen gehen. Ansonsten sehe ich eher schwarz, bzw. viel zu aufwändig. Gruß Randle ------------------ Wer für nichts steht, fällt für alles! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
olleiCAD Mitglied
Beiträge: 59 Registriert: 24.04.2018 Catia V5 R32 SP2 | Windows 10 Pro
|
erstellt am: 27. Jul. 2018 13:00 <-- editieren / zitieren --> Unities abgeben:
|
Randle Mitglied CAD/PLM Consultant
Beiträge: 743 Registriert: 12.04.2003 Win10 x64 CATIA V5 R18, R19, R21, R27-29
|
erstellt am: 27. Jul. 2018 13:09 <-- editieren / zitieren --> Unities abgeben: Nur für olleiCAD
|
Sylas Mitglied
Beiträge: 349 Registriert: 19.11.2012 Dell Precision T3500 Intel Xeon W3550 @ 3,07 GHz 12 GB RAM CATIA V5 R28
|
erstellt am: 27. Jul. 2018 13:22 <-- editieren / zitieren --> Unities abgeben: Nur für olleiCAD
Hallo Wenn sie lehren sind, Ich wurde schon existierte Names ins Tabelle auslesen, sortieren mit z.B. BubbleSort script, alles löschen, und die Struktur neu erstellen... Grüß Lukas [Diese Nachricht wurde von Sylas am 27. Jul. 2018 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
imation1999 Mitglied dipl.-ing. Maschinenbau
Beiträge: 276 Registriert: 02.08.2011 Dell Precision T3500 Intel® Xeon® Quad Core NVIDIA Quadro® 5000 Win7 x64 Ultimate CATIA V5 R20 SP2
|
erstellt am: 27. Jul. 2018 14:12 <-- editieren / zitieren --> Unities abgeben: Nur für olleiCAD
|
olleiCAD Mitglied
Beiträge: 59 Registriert: 24.04.2018 Catia V5 R32 SP2 | Windows 10 Pro
|
erstellt am: 01. Aug. 2018 08:28 <-- editieren / zitieren --> Unities abgeben:
|
roccat Mitglied Konstrukteur
Beiträge: 172 Registriert: 19.02.2010 WinXP/Win7 Office XP/2007 Catia V5 R16-R19, VB6.0, VBA, BASCOM-AVR VB .Net 2010
|
erstellt am: 01. Aug. 2018 10:56 <-- editieren / zitieren --> Unities abgeben: Nur für olleiCAD
|
roccat Mitglied Konstrukteur
Beiträge: 172 Registriert: 19.02.2010 WinXP/Win7 Office XP/2007 Catia V5 R16-R19, VB6.0, VBA, BASCOM-AVR VB .Net 2010
|
erstellt am: 01. Aug. 2018 11:16 <-- editieren / zitieren --> Unities abgeben: Nur für olleiCAD
Evtl. so: Code: Option ExplicitSub CATMain() Dim MyDocument As Document Dim MyPart As Part Dim MyHybBodies As HybridBodies Dim MyHybBody As HybridBody Dim i As Integer Dim z As Integer Dim MyNames() As String Dim MyName As String 'Allgemeines Set MyDocument = CATIA.ActiveDocument Set MyPart = MyDocument.Part Set MyHybBodies = MyPart.HybridBodies 'Auslesen ReDim MyNames(MyHybBodies.Count - 1) For i = 1 To MyHybBodies.Count Set MyHybBody = MyHybBodies.Item(i) MyNames(i - 1) = MyHybBody.Name Next 'Sortieren For z = UBound(MyNames) - 1 To LBound(MyNames) Step -1 For i = LBound(MyNames) To z If LCase(MyNames(i)) > LCase(MyNames(i + 1)) Then MyName = MyNames(i) MyNames(i) = MyNames(i + 1) MyNames(i + 1) = MyName End If Next i Next 'Umbenennen For i = 1 To MyHybBodies.Count Set MyHybBody = MyHybBodies.Item(i) MyHybBody.Name = MyNames(i - 1) Next End Sub
mfG Mario ------------------ Wenn das die Lösung sein soll, will ich mein Problem zurück !! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
roccat Mitglied Konstrukteur
Beiträge: 172 Registriert: 19.02.2010 WinXP/Win7 Office XP/2007 Catia V5 R16-R19, VB6.0, VBA, BASCOM-AVR VB .Net 2010
|
erstellt am: 01. Aug. 2018 11:37 <-- editieren / zitieren --> Unities abgeben: Nur für olleiCAD
oder kürzer: Code:
Option ExplicitSub CATMain() Dim MyDocument As Document Dim MyPart As Part Dim MyHybBodies As HybridBodies Dim i As Integer Dim z As Integer Dim MyName As String 'Allgemeines Set MyDocument = CATIA.ActiveDocument Set MyPart = MyDocument.Part Set MyHybBodies = MyPart.HybridBodies 'Bearbeiten For z = MyHybBodies.Count To 1 Step -1 For i = 1 To z - 1 If LCase(MyHybBodies.Item(i).Name) > LCase(MyHybBodies.Item(i + 1).Name) Then MyName = MyHybBodies.Item(i).Name MyHybBodies.Item(i).Name = MyHybBodies.Item(i + 1).Name MyHybBodies.Item(i + 1).Name = MyName End If Next i Next End Sub
------------------ Wenn das die Lösung sein soll, will ich mein Problem zurück !! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
roccat Mitglied Konstrukteur
Beiträge: 172 Registriert: 19.02.2010 WinXP/Win7 Office XP/2007 Catia V5 R16-R19, VB6.0, VBA, BASCOM-AVR VB .Net 2010
|
erstellt am: 01. Aug. 2018 11:50 <-- editieren / zitieren --> Unities abgeben: Nur für olleiCAD
Achso, hab grad auf dein Bild gesehen das es ein UntergeometricalSet ist. Dann so: Code:
Option ExplicitSub CATMain() Dim MyDocument As Document Dim MyPart As Part Dim MyHybBodies As HybridBodies Dim i As Integer Dim z As Integer Dim MyName As String 'Allgemeines Set MyDocument = CATIA.ActiveDocument Set MyPart = MyDocument.Part Set MyHybBodies = MyPart.HybridBodies.GetItem("Externe Daten").HybridBodies 'Bearbeiten For z = MyHybBodies.Count To 1 Step -1 For i = 1 To z - 1 If LCase(MyHybBodies.Item(i).Name) > LCase(MyHybBodies.Item(i + 1).Name) Then MyName = MyHybBodies.Item(i).Name MyHybBodies.Item(i).Name = MyHybBodies.Item(i + 1).Name MyHybBodies.Item(i + 1).Name = MyName End If Next i Next End Sub
------------------ Wenn das die Lösung sein soll, will ich mein Problem zurück !! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
olleiCAD Mitglied
Beiträge: 59 Registriert: 24.04.2018 Catia V5 R32 SP2 | Windows 10 Pro
|
erstellt am: 06. Aug. 2018 14:21 <-- editieren / zitieren --> Unities abgeben:
|
Randle Mitglied CAD/PLM Consultant
Beiträge: 743 Registriert: 12.04.2003 Win10 x64 CATIA V5 R18, R19, R21, R27-29
|
erstellt am: 06. Aug. 2018 14:29 <-- editieren / zitieren --> Unities abgeben: Nur für olleiCAD
|
olleiCAD Mitglied
Beiträge: 59 Registriert: 24.04.2018 Catia V5 R32 SP2 | Windows 10 Pro
|
erstellt am: 06. Aug. 2018 15:01 <-- editieren / zitieren --> Unities abgeben:
|
olleiCAD Mitglied
Beiträge: 59 Registriert: 24.04.2018 Catia V5 R32 SP2 | Windows 10 Pro
|
erstellt am: 07. Aug. 2018 13:59 <-- editieren / zitieren --> Unities abgeben:
Sobald eine tote Fläche drin ist wird diese nicht mit verschoben. Kann man das nicht einfach über die "Kinder neu ordnen" Funktion ablaufen lassen im Makro? Also dass dort hin und hergeschoben wird bis es alphabetisch ist. Allgemein ein Makro wäre toll, wo man das Fenster Kinder neu ordnen öffnet und in diesem Fenster dann alles geordnet wird. [Diese Nachricht wurde von olleiCAD am 07. Aug. 2018 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Randle Mitglied CAD/PLM Consultant
Beiträge: 743 Registriert: 12.04.2003 Win10 x64 CATIA V5 R18, R19, R21, R27-29
|
erstellt am: 07. Aug. 2018 14:59 <-- editieren / zitieren --> Unities abgeben: Nur für olleiCAD
|
bgrittmann Moderator Konstrukteur
Beiträge: 12005 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 07. Aug. 2018 16:26 <-- editieren / zitieren --> Unities abgeben: Nur für olleiCAD
Servus Zitat: Allgemein ein Makro wäre toll, wo man das Fenster Kinder neu ordnen öffnet und in diesem Fenster dann alles geordnet wird.
und gerade dieser Ansatz ist sehr komplex (per WinAPI "Mausklicks" nachstellen. Pass dir doch einfach dieses Makro zum ordnen von Bodies an deine Bedürfnisse an. Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |