Hallo
Ik wil automatisch een set gezichtskiezers maken (soms enkele honderden) op basis van bepaalde criteria (oppervlakte en hoogte).
Ik heb 2 oplossingen: ofwel selecteer je alle vlakken, maak je een selectieset en verwijder je uit de selectieset de vlakken die niet aan de criteria voldoen, ofwel test je alle gezichten en voeg je de gezichten toe die voldoen aan een selectieset.
Kunt u mij begeleiden en mij eventueel de syntaxis van de code geven?
Vriendelijke groeten
Frédéric
Om alle gezichten te selecteren is het vrij eenvoudig:
https://help.solidworks.com/2020/english/api/sldworksapi/select_all_faces_on_part_example_vb.htm?verRedirect=1
Aan de andere kant zal het voor het uitsluitingsgedeelte, afhankelijk van het gebied en/of de hoogte, veel moeilijker zijn.
Voor de ondergrond vond ik dit (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²"
Aan de andere kant, de hoogte van een oppervlak, ik weet het niet, maar we zouden eerder vanaf punten moeten beginnen, denk ik.
Edit: voor de hoogte probeer dit:
https://www.codestack.net/solidworks-api/geometry/get-face-center-parameters/
Hartelijk dank voor uw antwoord. Ja, dit is precies de code die nodig is voor de selectie van gezichten en om de coördinaten op te halen.
Op dit moment gebruik ik:
Stel swSelectionSet1 = swModelDocExt.SaveSelection(errors) in om een selectieset te maken
en
deselVal = swSelMgr.DeSelect2(selObjIndex, selectionMark) om de selectie van gezichten die niet aan de criteria voldoen op te heffen.
Ik heb nog steeds wat problemen met de verticale gezichten die niet altijd goed herkend worden... en dus niet gedeselecteerd!
Houd ons op de hoogte van je voortgang en stuur ons je definitieve code voor de community.
Hier is de functionele versie.
Bedankt voor je hulp!
select_faces.swpcarte_temp.sldprt
@fgauvreau je perfect bedankt voor de uitwisseling en vergeet niet je onderwerp af te sluiten door het beste antwoord te selecteren.