Couleur de la Pièce dans les mises en plan Inventor

Autodesk Mechanical Desktop "le retour"

Souvenez vous d'Autodesk Mechanical Desktop appelé aussi MDT pour les "pratiquants"

Couleur de pièce IDW -001

Il avait et a encore pour ceux qui ont besoin ponctuellement, de convertir des anciens DWG paramétriques 3D vers Inventor, si si c'est toujours possible en 2021.

un paramétrage configurable (Use Part Color) dans les "Options" afin d'obtenir dans les vues de mise en plan , la même couleur que les composants.

Ceci facilite la compréhension des notices ou mode d'emploi techniques afin de mieux différencier les composants selon différentes orientations de vues.

Couleur de pièce IDW -002

Nous obtenions dans les "présentations" de jolies vues colorées comme la 3D.

Couleur de pièce IDW -003

Qu'en est-il avec Inventor 2022 ?

Et bien, cela reste encore à ce jour, une demande sur le Forum des idées Inventor avec un 45éme vote de ma part ce 15 avril 2021.

Lien ICI Couleur de pièce IDW -010

Couleur de pièce IDW -004

Une solution de contournement consiste à lancer une règle iLogic externe de Curtis Waguespack  dont voici le code :

Sub Main 
	' Get the active drawing document. 
	Dim oDoc As DrawingDocument 
	oDoc = ThisApplication.ActiveDocument 
	
	Dim oSheets As Sheets
	oSheets = oDoc.Sheets
	Dim oSheet As Sheet
	
	'get current sheet so it can
	'be made active again later
	Dim oCurrentSheet As Sheet
	oCurrentSheet = oDoc.ActiveSheet	
	
	Dim oViews As DrawingViews
	Dim oView As DrawingView
	
	' Iterate through the sheets
	For Each oSheet In oSheets
	'	activate the sheet
		oSheet.Activate
		
		'get the collection of view on the sheet
		oViews = oSheet.DrawingViews		
		
		' Iterate through the views on the sheet
		For Each oView In oViews	
			
			Dim docDesc As DocumentDescriptor 
			docDesc = oView.ReferencedDocumentDescriptor  
			
			' Verify that the drawing view is of an assembly. 
			If docDesc.ReferencedDocumentType <> kAssemblyDocumentObject Then 
				Continue For
			End If  
			
			' Get the component definition for the assembly. 
			Dim asmDef As AssemblyComponentDefinition 
			asmDef = docDesc.ReferencedDocument.ComponentDefinition  
			
			' Process the view, wrapping it in a transaction so the 
			' each view can be undone with a single undo operation. 
			Dim trans As Transaction 
			trans = ThisApplication.TransactionManager.StartTransaction( _ 
									oDoc, "Change drawing view color")  
			
			' Call the recursive function that does all the work. 
			Call ProcessAssemblyColor(oView, asmDef.Occurrences) 
			trans.End 
		Next
		'update the sheet
		oSheet.Update
	Next
	
	'return to original sheet	
	oCurrentSheet.Activate
End Sub 



Private Sub ProcessAssemblyColor(drawView As DrawingView, _ 
                                 Occurrences As ComponentOccurrences) 
   ' Iterate through the current collection of occurrences. 
   Dim occ As ComponentOccurrence 
   For Each occ In Occurrences 
      ' Check to see if this occurrence is a part or assembly. 
      If occ.DefinitionDocumentType = kPartDocumentObject Then 
         ' ** It's a part so process the color.  

         ' Get the render style of the occurrence. 
         Dim color As RenderStyle 
         Dim sourceType As StyleSourceTypeEnum 
         color = occ.GetRenderStyle(sourceType)  

         ' Get the TransientsObjects object to use later. 
         Dim transObjs As TransientObjects 
         transObjs = ThisApplication.TransientObjects  

         ' Verify that a layer exists for this color. 
         Dim layers As LayersEnumerator 
         layers = drawView.Parent.Parent.StylesManager.layers  

         Dim oDoc As DrawingDocument 
         oDoc = drawView.Parent.Parent  

         On Error Resume Next 
         Dim colorLayer As Layer 
         colorLayer = layers.Item(color.Name)  

         If Err.Number <> 0 Then 
            On Error GoTo 0 
            ' Get the diffuse color for the render style. 
            Dim red As Byte 
            Dim green As Byte 
            Dim blue As Byte  

            ' Create a color object that is the diffuse color. 
            Call color.GetDiffuseColor(red, green, blue) 
            Dim newColor As color 
            newColor = transObjs.CreateColor(red, green, blue)  

            ' Copy an arbitrary layer giving it the name 
            ' of the render style. 
            colorLayer = layers.Item(1).Copy(color.Name) 

            ' the attributes of the layer to use the color, 
            ' have a solid line type, and a specific width. 
            colorLayer.Color = newColor 
            colorLayer.LineType = kContinuousLineType 
            colorLayer.LineWeight = 0.02 
         End If 
         On Error GoTo 0  

         ' Get all of the curves associated with this occurrence. 
         On Error Resume Next 
         Dim drawcurves As DrawingCurvesEnumerator 
         drawcurves = drawView.DrawingCurves(occ) 
         If Err.Number = 0 Then 
            On Error GoTo 0  

            ' Create an empty collection. 
            Dim objColl As ObjectCollection 
            objColl = transObjs.CreateObjectCollection()  

            ' Add the curve segments to the collection. 
            Dim drawCurve As DrawingCurve 
            For Each drawCurve In drawcurves 
               Dim segment As DrawingCurveSegment 
               For Each segment In drawCurve.Segments 
                  objColl.Add (segment)
               Next 
            Next  

            ' Change the layer of all of the segments. 
            Call drawView.Parent.ChangeLayer(objColl, colorLayer) 
         End If 
         On Error GoTo 0 
      Else 
         ' It's an assembly so process its contents. 
         Call ProcessAssemblyColor(drawView, occ.SubOccurrences) 
      End If 
   Next 
End Sub

Voici les conditions d'utilisation :

1- Créez vos différentes vues de mise en plan de manière habituelle.

Couleur de pièce IDW -005

2- Lancez la règle iLogic, ici nommée IDW Calque par Couleur de pièce.

NB: Nous obtenons des couleurs sur toutes les vues, toutes les feuilles et selon la vue de conception active de l'assemblage.

Couleur de pièce IDW -006

Les calques par couleur sont créés en fonctions de la couleur affectée à l'occurrence de pièce,

l'épaisseur de ces nouveaux calques est gérée par la règle iLogic  

colorLayer.LineWeight = 0.02 

0.02 ici équivaut à 0.20 mm

Couleur de pièce IDW -009

3- Si vous souhaitez une ou plusieurs vues colorisées sans affecter les autre vues et feuilles existantes,

il faut copier/coller la ou les vues dans un nouveau dessin vierge,

lancer la règle iLogic  dans ce nouveau dessin

puis copier/coller depuis ce dessin temporaire vers la feuille de ce fichier initial.

Vous obtenez ceci :

Couleur de pièce IDW -008

Ces articles peuvent vous intéresser :

Aplicit vous épaule dans tous les métiers
de l'Industrie

Leave A Comment

Aller en haut