Auswahlspiel nach VBA-Kriterien

Hallo

Ich möchte automatisch einen Satz von Gesichtsselektoren (manchmal mehrere hundert) nach bestimmten Kriterien (Fläche und Höhe) erstellen.

Ich habe 2 Lösungen: Entweder wählen Sie alle Gesichter aus, erstellen Sie einen Auswahlsatz und entfernen Sie die Flächen, die nicht den Kriterien entsprechen, aus dem Auswahlsatz, oder testen Sie alle Gesichter und fügen Sie diejenigen hinzu, die in einem Auswahlsatz konform sind.

Können Sie mir bitte helfen und mir möglicherweise die Syntax des Codes geben?

Herzliche Grüße

Frédéric

Um alle Flächen auszuwählen, ist es ganz einfach:

https://help.solidworks.com/2020/english/api/sldworksapi/select_all_faces_on_part_example_vb.htm?verRedirect=1

Auf der anderen Seite wird es für den Ausschlussteil je nach Gebiet und/oder Höhe viel schwieriger sein.

Für die Oberfläche habe ich folgendes gefunden (https://r1132100503382-eu1-3dswym.3dexperience.3ds.com/#community:yUw32GbYTEqKdgY7-jbZPg/post:RN7LsVLNRHKp5EW5viOLLw):

    Dim Area As Double
    Area = swFace.GetArea

    Debug.Print "Area = " & Area & " m²"
    Debug.Print "Area = " & Math.Round(Area * 1000000, 1) & " mm²"

Auf der anderen Seite, die Höhe einer Oberfläche, weiß ich nicht, aber wir sollten lieber von Punkten aus starten, denke ich.

Bearbeiten: Für die Höhe versuchen Sie Folgendes:

https://www.codestack.net/solidworks-api/geometry/get-face-center-parameters/

Vielen Dank für Ihre Antwort. Ja, das ist genau der Code, der für die Auswahl der Flächen und das Abrufen der Koordinaten benötigt wird.

Im Moment verwende ich:

Set swSelectionSet1 = swModelDocExt.SaveSelection(errors), um einen Auswahlsatz zu erstellen

und

deselVal = swSelMgr.DeSelect2(selObjIndex, selectionMark), um die Auswahl von Flächen aufzuheben, die die Kriterien nicht erfüllen.

Ich habe immer noch einige Probleme mit den vertikalen Flächen, die nicht immer gut erkannt werden... und daher nicht abgewählt!

 

Halten Sie uns über Ihre Fortschritte auf dem Laufenden und posten Sie uns Ihren endgültigen Code für die Community.

Hier ist die funktionale Version.

Danke für Ihre Hilfe!

 


select_faces.swp
carte_temp.sldprt

@fgauvreau bedanke mich herzlich für den Austausch und vergiss nicht, dein Thema mit der Auswahl der besten Antwort abzuschließen.