Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Inventor
  Layer in DWG über benutzerdefinierte iProperty anwählen

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:  Layer in DWG über benutzerdefinierte iProperty anwählen (1328 mal gelesen)
d.a.w.i.
Mitglied
Konstrukteur

Sehen Sie sich das Profil von d.a.w.i. an!   Senden Sie eine Private Message an d.a.w.i.  Schreiben Sie einen Gästebucheintrag für d.a.w.i.

Beiträge: 7
Registriert: 19.07.2013

erstellt am: 19. Jul. 2013 14: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 zusammen!

Folgende Ausgangssituation:
Wir wollen bei unseren Anlagenplänen in der Inventor-DWG unsere Maschinen und Fördertechnik anhand der Linienfarbe unterscheiden.
Bisher haben wir das über RMT Eigenschaften gemacht.
Das müssen wir aber in jeder Ansicht "zu Fuß" machen.

Schön wäre z.B. Im IPT oder der IAM einen Benutzerparameter anzulegen, der den Namen "Maschinen" trägt.
In der IV-DWG gibt es einen Layer "Maschinen". Und jetz soll bei allen Bauteilen/Baugruppen der entsprechende Layer verknüpft werden.

Ist das über iLogic-Regeln oder VBA-Makros irgendwie möglich?

Ich habe hierzu schon viel gegoogelt, aber noch nicht das passende gefunden.

Vielen Dank schon mal!!

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

Frank_Schalla
Ehrenmitglied
CAD_SYSTEMBETREUER


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

Beiträge: 1732
Registriert: 06.04.2002

DELL M6800
Cad Admin
Methodikentwickler 3D

erstellt am: 20. Jul. 2013 16:29    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 d.a.w.i. 10 Unities + Antwort hilfreich

Hallo

überdenke das mit den layern noch mal IV ist kein Autocad.
Ich denke dies hier kommt deinem Wunsch schon sehr nahe
http://modthemachine.typepad.com/my_weblog/2010/10/changing-drawing-curves-to-match-assembly-color.html

------------------
************************************
 

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

d.a.w.i.
Mitglied
Konstrukteur

Sehen Sie sich das Profil von d.a.w.i. an!   Senden Sie eine Private Message an d.a.w.i.  Schreiben Sie einen Gästebucheintrag für d.a.w.i.

Beiträge: 7
Registriert: 19.07.2013

erstellt am: 22. Jul. 2013 08:21    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,

leider kommt das für uns nicht in Frage, da wir nicht die Farben im Assembly haben. Unsere Assemblys sind sozusagen in "Realfarben" dargestellt, was auch so bleiben soll.
Deswegen brauchen wir irgendeine andere Möglichkeit um mit möglichst wenigen Klicks (max. 3  ) in einem Plan, mit sagen wir 10 Ansichten oder mehr, die Kantenfarben zu ändern.

Ich hatte mal ein Makro gefunden dass das angeblich können soll, aber zum einen finde ich es nicht mehr, zum anderen hat es auch irgendwie nicht geklappt. Ich wäre aber bereit es nochmals zu testen, wenn ich es finden würde.

Viele Grüße aus Ladshut,

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

d.a.w.i.
Mitglied
Konstrukteur

Sehen Sie sich das Profil von d.a.w.i. an!   Senden Sie eine Private Message an d.a.w.i.  Schreiben Sie einen Gästebucheintrag für d.a.w.i.

Beiträge: 7
Registriert: 19.07.2013

erstellt am: 22. Jul. 2013 14:41    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

Jetzt habe ich den Code wieder gefunden. Im Moment habe ich allerdings keine Zeit es zu testen.
Was meint die kundige Gemeinde? Könnte das klappen? Der Code wurde für eine *.idw geschrieben, ich möchte es für *.dwg verwenden.
In dem Thread wurde dann nicht weiter darauf eingegangen, ob der Code funktioniert hat.

Code:

Option Explicit

Private Sub MoveToLayer()

'verschiebt Zeichnungslinien anhand des Wertes des benutzerdefinierten
'iProps "Layer" auf einen gleichnamigen Layer
'Dieser Layer muß vorhanden sein !!!

Dim oApp As Application
Set oApp = ThisApplication

Dim oDrawDoc As DrawingDocument
Set oDrawDoc = oApp.ActiveDocument

Dim oView As DrawingView
Dim oiProp As String
Dim oDrawCurve As DrawingCurve
Dim oDrawCurveSegment As DrawingCurveSegment
Dim oDrawCurvesEnum As DrawingCurvesEnumerator
Dim oCompOcc As ComponentOccurrence
Dim oTopCompOcc As ComponentOccurrence
Dim oRefedAssDoc As AssemblyDocument
Dim oRefedDoc As Document
Dim oCompOccProxy As ComponentOccurrenceProxy
Dim oLayer As Layer

For Each oView In oDrawDoc.ActiveSheet.DrawingViews
    Set oRefedAssDoc = oView.ReferencedDocumentDescriptor.ReferencedDocument
 
    For Each oCompOcc In oRefedAssDoc.ComponentDefinition.Occurrences
        'Ersatzobjekte lassen wir erstmal weg
        If oCompOcc.IsSubstituteOccurrence = False Then
            'Sichtbar muss sie sein, sonst darf sie nicht mit rein ... Höh, das reimt sich *lol*
            If oCompOcc.Visible = True Then
                ' Check if it's child occurrence (leaf node)
                If oCompOcc.SubOccurrences.Count = 0 Then
                    Set oRefedDoc = oCompOcc.Definition.Document
                    oiProp = oRefedDoc.PropertySets.Item(4).Item("Layer").Value
                    'Call oCompOcc.CreateGeometryProxy(oCompOcc, oCompOccProxy)
                    Set oDrawCurvesEnum = oView.DrawingCurves(oCompOcc)
     
                    For Each oLayer In oDrawDoc.StylesManager.Layers
                        If oLayer.Name = oiProp Then
                            Exit For
                        End If
                    Next
     
                    For Each oDrawCurve In oDrawCurvesEnum
                        For Each oDrawCurveSegment In oDrawCurve.Segments
                            If oDrawCurveSegment.HiddenLine = False Then
                                oDrawCurveSegment.Layer = oLayer
                            End If
                        Next
                    Next
                Else
                    'eine Ebene tiefer springen
                    Set oTopCompOcc = oCompOcc
                    Call processAllSubOcc(oTopCompOcc, oCompOcc, oView, oDrawDoc) ' subassembly
                End If
            End If
        End If
    Next
Next
End Sub

' This function is called for processing sub assembly.  It is called recursively
' to iterate through the entire assembly tree.
Private Sub processAllSubOcc(ByVal oTopCompOcc As ComponentOccurrence, ByVal oCompOcc As ComponentOccurrence, oView As DrawingView, oDrawDoc As DrawingDocument)

Dim oDrawCurvesEnum As DrawingCurvesEnumerator
Dim oDrawCurve As DrawingCurve
Dim oDrawCurveSegment As DrawingCurveSegment
Dim oSubCompOcc As ComponentOccurrence
Dim oRefedDoc As Document
Dim oiProp As String
Dim oLayer As Layer

For Each oSubCompOcc In oCompOcc.SubOccurrences
    'Ersatzobjekte lassen wir erstmal weg
    If oSubCompOcc.IsSubstituteOccurrence = False Then
        'Sichtbar muss sie sein, sonst darf sie nicht mit rein ... Höh, das reimt sich *lol*
        If oSubCompOcc.Visible = True Then
            ' Check if it's child occurrence (leaf node)
            If oSubCompOcc.SubOccurrences.Count = 0 Then
                Set oRefedDoc = oSubCompOcc.Definition.Document
                On Error Resume Next
                oiProp = oRefedDoc.PropertySets.Item(4).Item("Layer").Value
                If Not oiProp = "" Then
                    'Call oCompOcc.CreateGeometryProxy(oCompOcc, oCompOccProxy)
                    Set oDrawCurvesEnum = oView.DrawingCurves(oCompOcc)
     
                    For Each oLayer In oDrawDoc.StylesManager.Layers
                        If oLayer.Name = oiProp Then
                            Exit For
                        End If
                    Next
                    Set oDrawCurvesEnum = oView.DrawingCurves(oSubCompOcc)
                    If Not oDrawCurvesEnum Is Nothing Then
                        For Each oDrawCurve In oDrawCurvesEnum
                            For Each oDrawCurveSegment In oDrawCurve.Segments
                                If oDrawCurveSegment.HiddenLine = False Then
                                    oDrawCurveSegment.Layer = oLayer
                                End If
                            Next
                        Next
                    End If
                End If
            Else
                Call processAllSubOcc(oTopCompOcc, oSubCompOcc, oView, oDrawDoc)
            End If
        End If
    End If
Next

Set oDrawCurvesEnum = Nothing
Set oDrawCurve = Nothing
Set oSubCompOcc = Nothing
End Sub

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)2024 CAD.de | Impressum | Datenschutz