Czy byłoby możliwe, aby powierzchnia części lub złożenia, która ma zostać pomalowana, była bezpośrednio w solidworks?

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

1 polubienie

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

 

2 polubienia

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?

2 polubienia

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? 

 


capture.png

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.

2 polubienia

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

1 polubienie