Widać już powierzchnię pokoju, ale zajmuje ona wszystkie powierzchnie każdego pomieszczenia, a ja chciałbym tylko te powierzchnie, które można pomalować.
Aby obliczyć ilość farby potrzebną na części lub złożeniu.
Widać już powierzchnię pokoju, ale zajmuje ona wszystkie powierzchnie każdego pomieszczenia, a ja chciałbym tylko te powierzchnie, które można pomalować.
Aby obliczyć ilość farby potrzebną na części lub złożeniu.
Witam
Aby osiągnąć swój cel, musisz postępować w dwóch krokach.
- Każdą powierzchnię musisz pomalować indywidualnie (spójrz na zaproponowany przeze mnie mini-tutorial https://www.lynkoa.com/forum/conception-3d/rendu-couleur-des-assemblage-sur-solidworks?page=0#answer-1083308)
- Musisz wybrać powierzchnię i aktywować funkcję pomiaru, a powierzchnia zostanie zainstalowana automatycznie.
Są to dwie ultrapodstawowe metody, ale mam nadzieję, że moi koledzy dadzą ci inne, bardziej zautomatyzowane rozwiązania.
Pozdrowienia
Okej, dziękuję za odpowiedź.
Ale tak, to, czego szukam, to coś automatycznego, ponieważ byłoby to przydatne dla programu, który pobierałby te dane bezpośrednio, bez konieczności wprowadzania czegokolwiek.
Witam
Zależy to od tego, co nazywa się automatycznym, ponieważ konieczne będzie wyznaczenie w danym momencie powierzchni do pomalowania. To zależy od tego, jak wykonana jest objętość, na przykład, jeśli robisz sześcian i chcesz pomalować tylko jedną stronę, cóż, nie możesz użyć ekstruzji w takiej postaci, w jakiej jest, ponieważ musisz przejść przez pozory, ponieważ dsplay nanager jest bezużyteczny w twoim przypadku.
Z pewnością oznacza to możliwość wyznaczenia powierzchni do malowania ręcznie (lub za pomocą kodu). Następnie za pomocą makra, które uruchomi pomiar powierzchni i utworzy listę z cechami "N" umieszczonymi w pliku, który można wykorzystać w programie Excel.
Czy spojrzałeś na samouczek, aby zdać sobie sprawę ze złożoności tego, co chcesz porównać ==> wybierz twarz ==> kliknij na miarę ==> umieść informacje w ??? połączone z pokojem.
Pozdrowienia
Witam;
Czy myślałeś o czujnikach?
http://help.solidworks.com/2020/French/SolidWorks/sldworks/c_Sensors_OH.htm
Do wyświetlenia bezpośrednio w nomenklaturze?
Witam
Jak widać jako przykład w moim załączniku, część jest spawana, następnie malowana i to co chciałbym mieć to tylko powierzchnia tego co jest w kolorze czerwonym a nie to co jest w środku. Innymi słowy, powierzchnie są widoczne gołym okiem, powierzchnie zewnętrzne. Widzisz?
Więc czujniki są dla mnie bezużyteczne, chyba że mają funkcję, której nie znam.
Tak, zdaję sobie sprawę ze złożoności tego, o co proszę, ale opracowanie programu nie byłoby możliwe?
Witam
Biorąc pod uwagę symbol środka ciężkości na ostatnim przechwycie, czy jest to zespół?
W takim przypadku możliwe jest utworzenie części w kontekście, a następnie za pomocą funkcji " powierzchnia przesunięcia " skopiowanie wszystkich powierzchni tego samego koloru (patrz przesunięcie ich o 0,05 mm, aby uniknąć błędów wyświetlania), a następnie wystarczy pobrać zmienną powierzchni tej części w nomenklaturze.
Operację można powtórzyć dla każdego koloru.
PS: rozwiązanie @ZozoMP w połączeniu z @Maclane 's to 1., które również przyszły mi do głowy.
Tak, to jest montaż i pod arkuszami zamykającymi znajduje się wiele elementów, więc powierzchnia nie jest wystarczająco precyzyjna i zmusiłaby nas do zamówienia zdecydowanie za dużo farby.
Czy możliwe jest skopiowanie wszystkich twarzy tego samego koloru jednocześnie? Bez konieczności wybierania ich wszystkich?
Witaj @l.manceau
"Czy możliwe jest skopiowanie wszystkich twarzy tego samego koloru jednocześnie? Bez konieczności wybierania ich wszystkich?" nie musisz próbować
Witam
Wydaje mi się to możliwe za pomocą makro, oto jeden, który powinien być w stanie posłużyć jako punkt wyjścia, prawdopodobnie ma być dostosowany do Twoich potrzeb:
Option Explicit
Sub main()
Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Dim Assembly As SldWorks.ModelDoc2
Dim myAssy As SldWorks.AssemblyDoc
Dim myComps As Variant
Dim myCmp As Component2
Dim swSelMgr As SldWorks.SelectionMgr
Dim swSelData As SldWorks.SelectData
Dim swPart As SldWorks.PartDoc
Dim swBody As SldWorks.Body2
Dim swFace As SldWorks.Face
Dim swEnt As SldWorks.Entity
Dim bRet As Boolean
Dim vBodies As Variant
Dim vMatProp As Variant
Dim mySurface As Double
Dim myColor As String
Dim mySearchColor As String
Dim i As Long
Dim ninfo As Long
Set swApp = CreateObject("SldWorks.Application")
Set Assembly = swApp.ActiveDoc
Set myAssy = Assembly
mySurface = 0
myColor = ""
myComps = myAssy.GetComponents(False)
For i = 0 To UBound(myComps)
Set myCmp = myComps(i)
bRet = myCmp.Select2(False, 0)
bRet = myAssy.EditPart2(True, True, ninfo)
Set swModel = myAssy.GetEditTarget
Set swPart = swModel
swModel.ClearSelection2 True
Set swSelMgr = swModel.SelectionManager
Set swSelData = swSelMgr.CreateSelectData
vBodies = swPart.GetBodies2(swAllBodies, True)
Set swBody = vBodies(0)
Set swFace = swBody.GetFirstFace
'C'est ici que l'on définit la couleur à chercher
mySearchColor = "[255, 0, 0]" 'rouge
'mySearchColor = "[0, 255, 0]" 'vert
'mySearchColor = "[0, 255, 255]" 'cyan
Do While Not swFace Is Nothing
vMatProp = swFace.MaterialPropertyValues
If Not IsEmpty(vMatProp) Then
myColor = "[" & vMatProp(0) * 255# & ", " & vMatProp(1) * 255# & ", " & vMatProp(2) * 255# & "]"
If myColor = mySearchColor Then
Set swEnt = swFace
bRet = swEnt.Select4(True, swSelData)
mySurface = mySurface + swFace.GetArea
End If
End If
Set swFace = swFace.GetNextFace
Loop
myAssy.EditAssembly
Next i
Debug.Print ""
Debug.Print "Surface totale de couleur " & mySearchColor & " : " & mySurface
End Sub
Pozdrowienia