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“