Zou het mogelijk zijn om het te schilderen oppervlak van een onderdeel of assemblage direct op solidworks te laten staan?

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