Wäre es möglich, die zu lackierende Oberfläche eines Teils oder einer Baugruppe direkt auf SolidWorks zu haben?

Sie können bereits die Oberfläche des Raumes sehen, aber es nimmt alle Oberflächen eines jeden Raumes ein, und ich möchte nur die Oberflächen, die bemalt werden können.

Um die Menge an Farbe zu berechnen, die für ein Teil oder eine Baugruppe benötigt wird.

Hallo

Um Ihr Ziel zu erreichen, müssen Sie in zwei Schritten vorgehen.

- Du musst jede Oberfläche einzeln bemalen (schau dir das Mini-Tutorial an, das ich https://www.lynkoa.com/forum/conception-3d/rendu-couleur-des-assemblage-sur-solidworks?page=0#answer-1083308 vorgeschlagen habe)

- Sie müssen die Oberfläche auswählen und die Messfunktion aktivieren, Sie erhalten die Oberfläche automatisch.

Dies sind die beiden ultra-grundlegenden Methoden, aber meine Kollegen werden Ihnen hoffentlich andere, stärker automatisierbare Lösungen anbieten.

Herzliche Grüße

1 „Gefällt mir“

Okay, danke für die Antwort. 

Aber ja, was ich suche, ist etwas Automatisches, weil es für ein Programm nützlich wäre, das diese Daten direkt nimmt, ohne etwas eingeben zu müssen.

Hallo

Es hängt davon ab, was als automatisch bezeichnet wird, da es notwendig ist, zu einem bestimmten Zeitpunkt die zu lackierende Oberfläche zu bestimmen. Es hängt davon ab, wie das Volumen hergestellt wird, zum Beispiel, wenn Sie einen Würfel erstellen und nur eine Seite bemalen möchten, können Sie die Extrusion so nicht verwenden, weil Sie durch Erscheinungen gehen müssen, weil der dsplay Nanager in Ihrem Fall nicht von Nutzen ist.

Das bedeutet sicherlich, dass man die zu lackierende Oberfläche entweder von Hand (oder durch einen Code) bestimmen kann. Dann mit einem Makro, das die Oberflächenmessung startet und eine Liste mit "N" Merkmalen  bildet, die in eine Datei eingefügt wird, die in Excel verwendet werden kann.

Haben Sie sich das Tutorial angesehen, um die Komplexität dessen zu erkennen, womit Sie vergleichen möchten ==> wählen Sie das Gesicht ==> klicken Sie auf Messen ==> geben Sie die Informationen in einem ??? mit dem Raum verknüpft.

Herzliche Grüße

 

2 „Gefällt mir“

Hallo;

Haben Sie schon über Sensoren nachgedacht?

http://help.solidworks.com/2020/French/SolidWorks/sldworks/c_Sensors_OH.htm

Soll sie direkt in einer Nomenklatur angezeigt werden?

2 „Gefällt mir“

Hallo

Wie Sie als Beispiel in meinem Anhang sehen können, wird das Teil geschweißt, dann lackiert und was ich gerne hätte, ist nur die Oberfläche dessen, was in Rot ist, und nicht das, was sich im Inneren befindet. Mit anderen Worten, die Oberflächen sind mit bloßem Auge sichtbar, die äußeren Flächen. Siehst du? 

Die Sensoren nützen mir also nichts, es sei denn, sie haben eine Funktion, die ich nicht kenne.

Ja, ich bin mir der Komplexität dessen, was ich verlange, bewusst, aber die Entwicklung eines Programms wäre nicht möglich? 

 


capture.png

Hallo

Handelt es sich angesichts des Schwerpunktsymbols bei der letzten Erfassung um eine Baugruppe?
In diesem Fall ist es möglich, ein Teil im Kontext zu erstellen, dann mit der Funktion " Oberfläche versetzen " alle Flächen der gleichen Farbe zu kopieren (siehe um 0,05 mm versetzt, um Anzeigefehler zu vermeiden), dann reicht es aus, die Oberflächenvariable dieses Teils in der Nomenklatur abzurufen.
Der Vorgang kann für jede Farbe wiederholt werden.

PS: Die Lösung von @ZozoMP in Kombination mit der von @Maclane ist auch die 1., die mir in den Sinn gekommen ist.

2 „Gefällt mir“

Ja, es handelt sich um eine Montage und es befinden sich viele Komponenten unter den Verschlussblechen, so dass die Oberfläche nicht präzise genug ist und wir viel zu viel Farbe bestellen würden. 

Ist es möglich, alle Flächen der gleichen Farbe auf einmal zu kopieren? Ohne sie alle auswählen zu müssen?

Hallo @l.manceau 

"Ist es möglich, alle Gesichter der gleichen Farbe auf einmal zu kopieren? Ohne sie alle auswählen zu müssen,  müssen Sie es nicht versuchen

Hallo

Es scheint mir möglich durch Makro, hier ist eines, das als Ausgangspunkt dienen können sollte, es ist wahrscheinlich an Ihre Bedürfnisse anzupassen:

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

Herzliche Grüße

1 „Gefällt mir“