Je kunt het oppervlak van de kamer al zien, maar het neemt alle oppervlakken van elke kamer in beslag, en ik zou alleen de oppervlakken willen die kunnen worden geverfd.
Om de hoeveelheid verf te berekenen die nodig is op een onderdeel of assemblage.
Hallo
Om je doel te bereiken, moet je in twee stappen te werk gaan.
- Je moet elk oppervlak afzonderlijk schilderen (kijk naar de mini-tutorial die ik https://www.lynkoa.com/forum/conception-3d/rendu-couleur-des-assemblage-sur-solidworks?page=0#answer-1083308 heb voorgesteld)
- U moet het oppervlak selecteren en de meetfunctie activeren, u zult het oppervlak automatisch hebben.
Dit zijn de twee ultra-basale methoden, maar mijn collega's zullen u hopelijk andere, meer automatiseerbare oplossingen geven.
Vriendelijke groeten

1 like
Oké, bedankt voor het antwoord.
Maar ja, waar ik naar op zoek ben, is iets automatischs, omdat het handig zou zijn voor een programma dat deze gegevens direct zou nemen zonder iets in te voeren.
Hallo
Het hangt af van wat automatisch wordt genoemd, omdat het nodig zal zijn om op een bepaald moment het te schilderen oppervlak aan te wijzen. Het hangt ervan af hoe het volume is gemaakt, bijvoorbeeld als je een kubus maakt en je wilt maar één kant schilderen, nou, je kunt geen extrusie gebruiken zoals het is, omdat je door de schijn moet gaan omdat de dsplay-nanarer in jouw geval geen nut heeft.
Dit betekent zeker dat je het te schilderen oppervlak met de hand (of met een code) kunt aanwijzen. Vervolgens met een macro die de oppervlaktemeting start en een lijst vormt met "N" -kenmerken die in een bestand wordt geplaatst dat in Excel kan worden gebruikt.
Heb je de tutorial bekeken om de complexiteit te realiseren van wat je wilt vergelijken met ==> selecteer het gezicht ==> klik op meten ==> de informatie in een ??? gekoppeld aan de kamer.
Vriendelijke groeten
2 likes
Hallo;
Heb je al nagedacht over sensoren?
http://help.solidworks.com/2020/French/SolidWorks/sldworks/c_Sensors_OH.htm
Om direct in een nomenclatuur te worden weergegeven?
2 likes
Hallo
Zoals je als voorbeeld in mijn bijlage kunt zien, is het onderdeel gelast en vervolgens geverfd en wat ik zou willen hebben is alleen het oppervlak van wat in rood is en niet wat erin zit. Met andere woorden, de oppervlakken zijn zichtbaar voor het blote oog, de buitenoppervlakken. Zie je?
Dus de sensoren hebben niets voor mij, behalve als ze een functie hebben die ik niet ken.
Ja, ik ben me bewust van de complexiteit van wat ik vraag, maar de ontwikkeling van een programma zou niet mogelijk zijn?
capture.png
Hallo
Gezien het symbool van het zwaartepunt op de laatste vangst, is het een assemblage?
In dit geval is het mogelijk om een onderdeel in de context te maken, vervolgens met de functie " offset-oppervlak " om alle vlakken van dezelfde kleur te kopiëren (zie ze met 0,05 mm verschoven om weergavebugs te voorkomen), dan is het voldoende om de oppervlaktevariabele van dit onderdeel in de nomenclatuur op te halen.
De bewerking kan voor elke kleur worden herhaald.
PS: de oplossing van @ZozoMP in combinatie met die van @Maclane zijn ook de 1e die in me opkwam.
2 likes
Ja, dit is een samenstel en er zitten veel componenten onder de sluitplaten, dus het oppervlak is niet precies genoeg en zou ons veel te veel verf laten bestellen.
Is het mogelijk om alle gezichten van dezelfde kleur in één keer te kopiëren? Zonder ze allemaal te hoeven selecteren?
Hallo @l.manceau
"Is het mogelijk om alle gezichten van dezelfde kleur in één keer te kopiëren? Zonder ze allemaal te hoeven selecteren?" hoef je het niet te proberen
Hallo
Het lijkt mij mogelijk per macro, hier is er een die als uitgangspunt zou moeten kunnen dienen, het moet waarschijnlijk worden aangepast aan uw behoeften:
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
Vriendelijke groeten
1 like