Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  Inventor VBA
  Feature und Flächen einfärben

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte
Autor Thema:  Feature und Flächen einfärben (2298 / mal gelesen)
Volker E
Mitglied
Konstrukteur


Sehen Sie sich das Profil von Volker E an!   Senden Sie eine Private Message an Volker E  Schreiben Sie einen Gästebucheintrag für Volker E

Beiträge: 164
Registriert: 20.08.2012

Win 7 64 bit,
Inventor 2015 Sp2 64 bit
Intel Xeon CPU E5-1607 3,00 GHz 32GB RAM
Nvidia Quadro 4000
Space Explorer

erstellt am: 23. Apr. 2016 20:51    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities


IV_001.JPG

 
Hallo zusammen,

ich möchte mit einem Macro Flächen und Featzure einfärben. Soll für den Bearbeiter sein, weil der nur Stepdaten verarbeiten kann.

Folgendes habe ich schon umgesetzt
Über ein Makro färbe ich die Flächen eines BT ein dies funktioniert soweit auch ganz gut.
Ich habe ein Formular erstellt auf den mehrere Buttons sind jeder Button steht für eine Farbe.
Jetzt möchte ich mit dem selben Button der die Flächen einfärbt auch Feature ( Bohrungen Extrusionen Reihenanordnungen usw.)einfärben.
Mir ist nur nicht klar wie ich das bewerkstelligen muß. Kann mir einer von euch einen Tipp geben?

im Voraus Danke für eure Bemühungen

Mein bissheriger Code und mein Formular:

Private Sub CommandButton1_Click()

Dim strColorName As String

    strColorName = "Glatt - Elfenbein"

    On Error Resume Next
    Dim oPartDoc As PartDocument
    Set oPartDoc = ThisApplication.ActiveDocument

    If Err Then

        MsgBox "A part document must be active."

        Exit Sub

    End If

    Dim oRenderStyle As RenderStyle
    Set oRenderStyle = oPartDoc.RenderStyles.Item(strColorName)

    If Err Then

        MsgBox "The specified render style """ & strColorName & """ does not exist."

        Exit Sub

    End If

    On Error GoTo 0

    ' Create a list of the selected faces.

    Dim oFaceCollection As FaceCollection
    Set oFaceCollection = ThisApplication.TransientObjects.CreateFaceCollection

    Dim i As Integer

    For i = 1 To oPartDoc.SelectSet.count

        On Error Resume Next

        Dim oFace As Face
       
        Set oFace = oPartDoc.SelectSet.Item(i)

        If Err.Number = 0 Then

            oFaceCollection.Add oFace

        End If

    Next

    ' Set the color of the selected faces.

    For Each oFace In oFaceCollection

        Call oFace.SetRenderStyle(kOverrideRenderStyle, oRenderStyle)

    Next

End Sub

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Chris 31
Mitglied
Konstrukteur und Mädchen für alles


Sehen Sie sich das Profil von Chris 31 an!   Senden Sie eine Private Message an Chris 31  Schreiben Sie einen Gästebucheintrag für Chris 31

Beiträge: 575
Registriert: 23.04.2013

Inventor 2013/2015
Windows 7 64 bit
16GB RAM
nVidia Quadro 600

erstellt am: 25. Apr. 2016 07:32    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Volker E 10 Unities + Antwort hilfreich

Normalerweise sollte es mit deinem Code schon gehen.

Wenn nicht, dann hilft dir das hier vielleicht weiter:

Code:
    Dim actPart As PartDocument
    Dim pfeature As PartFeature
    Dim oface As Face
    Dim renderstyle As renderstyle
   
    Set actPart = ThisApplication.ActiveDocument
    Set renderstyle = actPart.RenderStyles.Item("schwarz")
    Set pfeature = actPart.ComponentDefinition.Features.HoleFeatures.Item(1)
    Set oface = pfeature.Faces(1)
   
    Call oface.SetRenderStyle(kOverrideRenderStyle, renderstyle)

------------------
MFG

Chris

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Ticky72
Mitglied



Sehen Sie sich das Profil von Ticky72 an!   Senden Sie eine Private Message an Ticky72  Schreiben Sie einen Gästebucheintrag für Ticky72

Beiträge: 35
Registriert: 17.02.2016

Inventor 2019
Win7 64Bit

erstellt am: 25. Apr. 2016 17:16    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Volker E 10 Unities + Antwort hilfreich

Hallo,

ich hoffe das ist nicht ganz am Thema vorbei:
In der Inventor API Hilfe gibts unter 'Sample Programs-Materials and Appearances - Appearances - Change color of part, features or faces' ein Beispiel zum Thema Farbänderung von Features. Hier muß man allerdings jedes Feature mit der gewünschten Farbe per Hand/Maus auswählen. Du wirst vermutlich die verschiedenen Feature-Typen automatisch mit vordefinierten Farben versehen wollen.

MFG
Helmut


Nachtrag: Um das Beispiel lauffähig zu bekommen, muß man den oberen Teil (bis zu den fünf Kommentarzeilen) in ein normales Modul kopieren und den unteren Teil (ab den fünf Kommentarzeilen) in ein neues Class Modul mit dem Namen 'clsColorChange' kopieren. Gestartet wird dann 'Sub ChangeAppearanceMiniToolbarSample()'

[Diese Nachricht wurde von Ticky72 am 25. Apr. 2016 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Volker E
Mitglied
Konstrukteur


Sehen Sie sich das Profil von Volker E an!   Senden Sie eine Private Message an Volker E  Schreiben Sie einen Gästebucheintrag für Volker E

Beiträge: 164
Registriert: 20.08.2012

Win 7 64 bit,
Inventor 2015 Sp2 64 bit
Intel Xeon CPU E5-1607 3,00 GHz 32GB RAM
Nvidia Quadro 4000
Space Explorer

erstellt am: 25. Apr. 2016 20:57    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Ticky72

das war genau das was ich suche, muss es jetzt nur noch auf meine Anwendung anpassen.Hat mir weiter geholfen. Danke

Danke

Ps. habe das Bsp. in der APi nicht gesehen!


Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Luti91
Mitglied
Projektleiter


Sehen Sie sich das Profil von Luti91 an!   Senden Sie eine Private Message an Luti91  Schreiben Sie einen Gästebucheintrag für Luti91

Beiträge: 29
Registriert: 18.06.2012

Inventor 2011
Blue Ciello Meridian Enterprise 2011
Bald: Inv 15 oder 16 und Keytech.<P>Dell Precision T3600
Intel Xeon E5-1620 @3,6GHz
16GB Ram
Nvidia Quadro 4000

erstellt am: 06. Jun. 2016 11:40    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Volker E 10 Unities + Antwort hilfreich

Hallo Zusammen

Dieses Beispiel funktioniert in IV2011 nicht da Masken und Symbole von neueren Versionen verwendet werden. Leider ist es mir nicht gelungen das ganze an IV2011 anzupassen. Für unsere Fertigung wäre es ein Vorteil wenn alle Elemente in einer bestimmten Farbe daher kommen, somit kann ihr CAM sie automatisch gruppieren.

Ich möchte gerne alle Features (Bohrungen,Extrusionen,Drehungen usw.) in (vorerst) einer Farbe einfärben.
Bin kein VBA Profi und hoffe auf eure Hilfe.

Mein Code bis jetzt:

Code:
Public Sub FeatureFarbe()

Dim oPartDoc As PartDocument
Set oPartDoc = ThisApplication.ActiveDocument

Dim oDef As PartComponentDefinition
Set oDef = oPartDoc.ComponentDefinition

Dim oPartFeature As PartFeature
Set oPartFeature = oDef.Features.Item(1)

Dim oRS As RenderStyles
Set oRS = Red

For Each oPartFeature In oPartDoc
Call oPartFeature.SetRenderStyle(kOverrideRenderStyle, oRS)
Next

End Sub


Ich bin dankbar für jede Hilfe.

[Diese Nachricht wurde von Luti91 am 06. Jun. 2016 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Luti91
Mitglied
Projektleiter


Sehen Sie sich das Profil von Luti91 an!   Senden Sie eine Private Message an Luti91  Schreiben Sie einen Gästebucheintrag für Luti91

Beiträge: 29
Registriert: 18.06.2012

Inventor 2011
Blue Ciello Meridian Enterprise 2011
Bald: Inv 15 oder 16 und Keytech.<P>Dell Precision T3600
Intel Xeon E5-1620 @3,6GHz
16GB Ram
Nvidia Quadro 4000

erstellt am: 06. Jun. 2016 17:05    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Volker E 10 Unities + Antwort hilfreich

Hallo Zusammen

Habe das Problem mittlerweile selber lösen können.

Code:

Dim oPartDoc As PartDocument
Set oPartDoc = ThisApplication.ActiveDocument

Dim oDef As PartComponentDefinition
Set oDef = oPartDoc.ComponentDefinition

Dim oPartFeature As PartFeature
Set oPartFeature = oDef.Features.Item(1)

Dim oRS As renderstyle
Set oRS = oPartDoc.RenderStyles.Item("gelb")

For Each oPartFeature In oDef.Features
Call oPartFeature.SetRenderStyle(kOverrideRenderStyle, oRS)
Next


Was mir jetzt fehlt, ist der genaue Wert den ich eintragen muss, wenn ich die Elemente wieder gemäss dem Material oder der Bauteilfarbe einfärben möchte. Die Werte "Standard" und "Default" funktionieren nicht bzw. sie greifen nicht auf die ursprünglich gewählte Bauteilfarbe oder Materialfarbe zurück.

Weiss vielleicht jemand von euch was für Werte da eingetragen werden müssen?

Gruss + Danke
L91

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

BernoAn
Mitglied



Sehen Sie sich das Profil von BernoAn an!   Senden Sie eine Private Message an BernoAn  Schreiben Sie einen Gästebucheintrag für BernoAn

Beiträge: 164
Registriert: 16.01.2014

erstellt am: 07. Jun. 2016 08:00    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Volker E 10 Unities + Antwort hilfreich

Hallo

Hier bitte!

Code:

Public Sub RemovePartOverrides()

Dim partDoc As PartDocument
Set partDoc = ThisApplication.ActiveDocument


Dim obj As Object
For Each obj In partDoc.ComponentDefinition.AppearanceOverridesObjects

If TypeOf obj Is SurfaceBody Then
obj.AppearanceSourceType = kPartAppearance

ElseIf TypeOf obj Is PartFeature Then
obj.AppearanceSourceType = kBodyAppearance

ElseIf TypeOf obj Is Face Then
obj.AppearanceSourceType = kFeatureAppearance
Else
MsgBox "Unexpected type with appearance override: " & TypeName(obj)
End If
Next
End Sub


Gruß Berno

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Luti91
Mitglied
Projektleiter


Sehen Sie sich das Profil von Luti91 an!   Senden Sie eine Private Message an Luti91  Schreiben Sie einen Gästebucheintrag für Luti91

Beiträge: 29
Registriert: 18.06.2012

Inventor 2011
Blue Ciello Meridian Enterprise 2011
Bald: Inv 15 oder 16 und Keytech.<P>Dell Precision T3600
Intel Xeon E5-1620 @3,6GHz
16GB Ram
Nvidia Quadro 4000

erstellt am: 07. Jun. 2016 15:03    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Volker E 10 Unities + Antwort hilfreich

Besten Dank Berno

Das hat mich auf die richtige Spur gebracht!
Jetzt hab ichs hinbekommen.

Gruss
L91

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz