• This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Leggi altro.

due domande sui colori

cacciatorino

Moderatore SolidEdge
Staff Forum
Professione: Ingegnere meccanico
Software: SolidEdge CoCreate Salome-Meca
Regione: Porto Recanati, ma con l'appennino nel cuore
#1
la prima:

avendo un par colorato con vari colori, come faccio a sapere come si chiamano i vari colori usati su ogni faccia (mi serve per colorare con le stesse tinte degli altri par).

la seconda:

Se ho degli assembly con i vari par che lo compongono che mantengono i colori assegnati in ambiente par (strumenti-->getione colore--> mostra e consenti sostituzione stili di assieme DESELEZIONATO), nel momento in cui inserisco una feature d'assieme perdo tutti i colori dei par che vengono sovrascritti con il colore dell'assembly. Lo scopo sarebbe invece di avere le parti di un colore e le feature d'assieme di un altro colore cosi' il fresatore capisce al volo quali sono le superfici grezze e quelle lavorate.

Ciao.

Solid Edge V18
 

Fere

Utente Junior
Professione: impiegato
Software: autocad - mechanical
Regione: umbria
#2
Hai per caso trovato la risposta alla prima domanda. Anche a me interessa sta cosa.
 

cacciatorino

Moderatore SolidEdge
Staff Forum
Professione: Ingegnere meccanico
Software: SolidEdge CoCreate Salome-Meca
Regione: Porto Recanati, ma con l'appennino nel cuore
#3
No, nessuna soluzione....
 

vespa_83

Utente Standard
Professione: disegnatore
Software: Solid Edge
Regione: Romagna
#5
Per la prima: o macro o ti scrivi su un foglio i colori che imposti alle facce :p
 

Be_on_edge

Moderatore
Staff Forum
Professione: Progettazione
Software: Solid Edge
Regione: Emilia Romagna
#6
Ecco un primo tentativo.

Far partire come macro all'interno di un file PAR, o lanciarla con un PAR aperto.

View attachment Style.rar

Se il colore è stato applicato al "corpo" questo non verrà rilevato (ho tolto questa funzione perchè altrimenti mi selezionava per prima cosa tutto il corpo e bisognava usare il quick pick per selezionare una faccia).

Se il colore proviene da un file importato non viene rilevato (non ho ancora capito dove questa informazione sia memorizzata).

Codice:
Dim objApp As SolidEdgeFramework.Application
Dim objPar As SolidEdgePart.PartDocument
Dim objFace As Object 'SolidEdgeGeometry.Face
Dim objStyle As SolidEdgeFramework.FaceStyle

Dim WithEvents objComm As SolidEdgeFramework.Command
Dim WithEvents objMouse As SolidEdgeFramework.Mouse

Dim objHighlightSets As SolidEdgeFramework.HighlightSets
Dim objHighlightSet As SolidEdgeFramework.HighlightSet


Sub Form_Load()
    
    Me.Hide
    
    Set objApp = GetObject(, "SolidEdge.Application")
    Set objPar = objApp.ActiveDocument
    
    Set objComm = objApp.CreateCommand(2)
    Set objMouse = objComm.Mouse
    objComm.Start
    objMouse.LocateMode = 2         '<-- QuickPick mode
    'objMouse.DynamicsMode = 0
    Call objMouse.ClearLocateFilter
    
    'objMouse.AddToLocateFilter (68) '<-- Body
    objMouse.AddToLocateFilter (32) '<-- Face selection filter
    
End Sub


Private Sub objMouse_MouseUp(ByVal sButton As Integer, ByVal sShift As Integer, ByVal dX As Double, ByVal dY As Double, ByVal dZ As Double, ByVal pWindowDispatch As Object, ByVal lKeyPointType As Long, ByVal pGraphicDispatch As Object)
  ' End the command with RMB
  If sButton = 2 Then
    objComm.Done = True
    If Not (objMouse Is Nothing) Then
       Set objMouse = Nothing
    End If
    End
    Exit Sub
  End If
  
  If Not (pGraphicDispatch Is Nothing) Then
    
    If pGraphicDispatch.Type = igFace Then
        If Not (pGraphicDispatch.Style Is Nothing) Then
            Set FaceStyle = pGraphicDispatch.Style
        Else
            Set FaceStyle = pGraphicDispatch.Parent.GetStyle
        End If
    Else
        Set FaceStyle = pGraphicDispatch.Style
    End If
  
    If Not (FaceStyle Is Nothing) Then
    
    Set objHighlightSets = objPar.HighlightSets
    Set objHighlightSet = objHighlightSets.Add()
    objHighlightSet.AddItem pGraphicDispatch
    objHighlightSet.Draw

    MsgBox FaceStyle.StyleName

    objHighlightSet.RemoveAll
    objHighlightSet.Draw
    
    End If
    
  End If
  
End Sub