Witam
Chcę automatycznie utworzyć zestaw selektorów twarzy (czasami kilkaset) według określonych kryteriów (obszar i wysokość).
Mam 2 rozwiązania: albo zaznaczyć wszystkie powierzchnie, zrobić zbiór wskazań i usunąć ze zbioru wskazań ściany, które nie spełniają kryteriów, albo przetestować wszystkie ściany i dodać te, które są zgodne w zbiorze wskazań.
Czy możesz mnie poprowadzić i ewentualnie podać mi składnię kodu?
Pozdrowienia
Frédéric
Aby wybrać wszystkie twarze, jest to dość proste:
https://help.solidworks.com/2020/english/api/sldworksapi/select_all_faces_on_part_example_vb.htm?verRedirect=1
Z drugiej strony, w przypadku części wykluczenia, w zależności od obszaru i/lub wysokości, będzie to znacznie trudniejsze.
Na powierzchni znalazłem to (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²"
Z drugiej strony, wysokość powierzchni, nie wiem, ale chyba powinniśmy zacząć od punktów.
Edycja: dla wysokości spróbuj tego:
https://www.codestack.net/solidworks-api/geometry/get-face-center-parameters/
Bardzo dziękuję za odpowiedź. Tak, to jest dokładnie ten kod, który jest potrzebny do wyboru ścian i pobrania współrzędnych.
Na razie używam:
Ustaw swSelectionSet1 = swModelDocExt.SaveSelection(errors), aby utworzyć zbiór wskazań
i
deselVal = swSelMgr.DeSelect2(selObjIndex, selectionMark), aby usunąć zaznaczenie powierzchni, które nie spełniają kryteriów.
Nadal mam pewne problemy z pionowymi ścianami, które nie zawsze są dobrze rozpoznawalne... i dlatego nie odznaczone!
Informuj nas o swoich postępach i opublikuj nam swój ostateczny kod dla społeczności.
@fgauvreau bardzo dziękuję za wymianę zdań i nie zapomnij zamknąć swojego tematu, wybierając najlepszą odpowiedź.