Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  Inventor VBA
  Part macro bei doppelklick in baugruppe nutzen

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:  Part macro bei doppelklick in baugruppe nutzen (1195 mal gelesen)
dero2k
Mitglied
Technicher Zeichner ma bau


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

Beiträge: 53
Registriert: 24.04.2009

Inventor 2008 (hauptsächlich)
win xp

erstellt am: 13. Aug. 2012 14:08    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

Hi forum

Ich habe ein Makro um in einem part mit einem klick direkt die ausgewählte fläche in einer bestimmten farbe einzufärben

allerdings funktioniert dies leider nicht wenn ich das part in der baugruppe geöffnet habe. also doppelklick auf das teil. dann wird ja alles andere durchsichtig.

hier mal der code, villeicht kann mir ja jemand helfen dies so anzupassen 

Code:

Public Sub Passflächen()

    Dim strColorName As String

    strColorName = "RAL 1012 Zitronengelb"

 

    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



Danke schonmal
Dero

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

rkauskh
Moderator
Dipl.-Ing. (FH) Versorgungstechnik




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

Beiträge: 2166
Registriert: 15.11.2006

Windows 10 x64, AIP 2022

erstellt am: 15. Aug. 2012 18:42    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 dero2k 10 Unities + Antwort hilfreich

Hallo

Probier mal den:

Code:
Public Sub Passflächen()

    Dim oObject As Object
    Dim oBool As Boolean
    oBool = True
    While oBool = True
        Set oObject = ThisApplication.CommandManager.Pick(kPartFaceFilter, "Wähle eine Fläche ...")
        oBool = FlaecheFaerben(oObject)
        ThisApplication.ActiveView.Update
    Wend

End Sub


Public Function FlaecheFaerben(oFace As Face) As Boolean
   
    If oFace Is Nothing Then
        FlaecheFaerben = False
        Exit Function
    End If
   
    Dim strColorName As String
    strColorName = "RAL 1012 Zitronengelb"

    Dim oRenderStyle As RenderStyle
    Set oRenderStyle = ThisApplication.ActiveEditDocument.RenderStyles.Item(strColorName)
    If Err Then
        MsgBox "The specified render style """ & strColorName & """ does not exist."
        Exit Function
    End If
   
    On Error GoTo 0
   
    If TypeOf oFace Is FaceProxy Then
        Set oFace = oFace.NativeObject
    End If
   
    Call oFace.SetRenderStyle(kOverrideRenderStyle, oRenderStyle)
   
    FlaecheFaerben = True
   
End Function


Das spart dir auch gleich noch in jedes Bauteil per Doppelklick reingehen zu müssen. Einfärben geht auch direkt in der Baugruppe. Beenden der Schleife mit ESC.

EDIT: Und wie ich grad feststellen mußte, geht es auch in der Bauteilbearbeitung eine transparent geschaltete Fläche eines Nachbarbauteils zu färben.   

------------------
MfG
Ralf

[Diese Nachricht wurde von rkauskh am 15. Aug. 2012 editiert.]

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