Autor
|
Thema: Längere Edge einer Intersection messen (1029 mal gelesen)
|
student1992 Mitglied Student
Beiträge: 98 Registriert: 03.05.2017
|
erstellt am: 23. Aug. 2017 14:47 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen, ich möchte gerne die längere Seite einer Intersection messen, doch finde seit mehreren Stunden keine Lösung dazu. Ich wollte es mit Disassemble die Intersection erstmal aufteilen, und anschließend die einzelnen Kurven messen. Die Längere Kurve interessiert mich, die möchte ich automatisiert messen ohne selection. Dazu habe ich ein Bild angefertigt, damit ich wisst was ich meine. Hat jemand eine Idee 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: 23. Aug. 2017 15:13 <-- editieren / zitieren --> Unities abgeben: Nur für student1992
Servus Also ich würde die Intersection selektieren und innerhalb dieser in der Topologie nach Kanten suchen. zB: Code: Sub CATMain()Dim partDocument1 As Document Dim osel As Selection Dim TheSPAWorkbench As Workbench Dim TheMeasurable As Measurable Set partDocument1 = CATIA.ActiveDocument Set osel = partDocument1.Selection if osel.count = 0 then exit sub end if osel.Search "Topology.CGMEdge,sel" Set TheSPAWorkbench = CATIA.ActiveDocument.GetWorkbench ( "SPAWorkbench" ) if osel.count <> o then for i = 1 to osel.count Set TheMeasurable = TheSPAWorkbench.GetMeasurable(osel.item2(i).reference) MsgBox "Element " & i & ", Länge: " & CStr(TheMeasurable.Length) next end if End Sub
Dann die Ergebnisse der Messungen mit einander vergleichen. Warum willst/kannst du keine Selection verwenden? Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
student1992 Mitglied Student
Beiträge: 98 Registriert: 03.05.2017
|
erstellt am: 23. Aug. 2017 15:22 <-- editieren / zitieren --> Unities abgeben:
|
student1992 Mitglied Student
Beiträge: 98 Registriert: 03.05.2017
|
erstellt am: 23. Aug. 2017 16:28 <-- editieren / zitieren --> Unities abgeben:
Code: Sub CATMain() Dim partDocument1 As Document Dim osel As Selection Dim TheSPAWorkbench As Workbench Dim TheMeasurable As MeasurableSet partDocument1 = CATIA.ActiveDocument Set osel = partDocument1.Selection if osel.count = 0 then exit sub end if osel.Search "Topology.CGMEdge,sel" Set TheSPAWorkbench = CATIA.ActiveDocument.GetWorkbench ( "SPAWorkbench" ) if osel.count <> o then for i = 1 to osel.count Set TheMeasurable = TheSPAWorkbench.GetMeasurable(osel.item2(i).reference) MsgBox "Element " & i & ", Länge: " & CStr(TheMeasurable.Length) next end if End Sub
funktioniert soweit top:) ;) , nur der schritt mit Code: osel.Search "Topology.CGMEdge,sel"
dauert ziemlich lange. kann man diesen schritt anders lösen? 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: 23. Aug. 2017 16:35 <-- editieren / zitieren --> Unities abgeben: Nur für student1992
Servus Was hast du denn alles selektiert? Bei vielen bzw komplexen Elementen dauert es alle Kanten zu ermitteln. Der andere Weg ist wohl über ein Disassemble. Ich befürchte dass das aber auch nicht schneller geht. Gruß Bernd EDIT: vielleicht hilft bei der Selektion auch HSOSynchronized ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
student1992 Mitglied Student
Beiträge: 98 Registriert: 03.05.2017
|
erstellt am: 23. Aug. 2017 19:05 <-- editieren / zitieren --> Unities abgeben:
|
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 23. Aug. 2017 19:20 <-- editieren / zitieren --> Unities abgeben: Nur für student1992
Servus Nein, da im Suchstring ja der Filter ,sel vorkommt. Probier das ganze doch mal manuell aus (Bearbeiten -> Suchen) Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
student1992 Mitglied Student
Beiträge: 98 Registriert: 03.05.2017
|
erstellt am: 24. Aug. 2017 08:18 <-- editieren / zitieren --> Unities abgeben:
vielen dank erstmal für die schnellen antworten Code: HSOSynchronized = false
anschließend die suchfunktion (zwischen false und true) Code: HSOSynchronized = true
so habe ich das ausgetestet, sehe aber von der Leistung her keinen Unterschied. --- und beim manuell suchen (bearbeiten > suchen) habe ich das intersection gesucht, das findet er sehr schnell. Nach "Edge"s der Intersection zu suchen habe ich noch nicht hinbekommen Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
student1992 Mitglied Student
Beiträge: 98 Registriert: 03.05.2017
|
erstellt am: 24. Aug. 2017 08:31 <-- editieren / zitieren --> Unities abgeben:
|
student1992 Mitglied Student
Beiträge: 98 Registriert: 03.05.2017
|
erstellt am: 24. Aug. 2017 10:43 <-- editieren / zitieren --> Unities abgeben:
|