Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de
  Inventor VBA
  Drawing View Modell ansprechen

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
  
PNY wird von NVIDIA zum Händler des Jahres gewählt – zum dritten Mal in Folge, eine Pressemitteilung
Autor Thema:  Drawing View Modell ansprechen (476 / mal gelesen)
Bluejay
Mitglied
Ingenieur


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

Beiträge: 207
Registriert: 14.05.2007

Inventor 2011 for Simulation<P>Microsoft Windows XP Professional<P>Dell Precision T3400
Intel(R) Core(TM)2 Duo CPU
E6750 @2,66 GHz
3,00 GB RAM

erstellt am: 04. Apr. 2023 09:39    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 ans Forum,
ich habe folgenden Code, der mir in einer Zeichung die DrawingViews durcharbeitet und dann entsprechend der aktiven Modellansichtsdarstellung eine Farbüberschreibung startet (abhängig von Modellfarben). Mein Problem ist das mir das Makro dies nicht nach der abhängigen Ansichtsdarstellung der DrawingView macht sondern nach der aktiven im geöffnten Modell? Wie kann man das umstellen?

Vielen Dank schon mal für alle Unterstützung

Public Sub RefDarstellung()
' Aktives Dokument auswählen
Dim drawDoc As DrawingDocument
Set drawDoc = ThisApplication.ActiveDocument

Dim drawView As DrawingView
For Each drawView In drawDoc.ActiveSheet.DrawingViews

Dim docDesc As DocumentDescriptor
Set docDesc = drawView.ReferencedDocumentDescriptor


' Checken das die selectierte Drawing View von einer Baugruppe ist
'If docDesc.ReferencedDocumentType <> kAssemblyDocumentObject Then
'MsgBox "Reference Farben werden nur von Baugruppenzeichnungen erstellt!"
'Exit Sub
'End If

' Get the component definition for the assembly.
Dim asmDef As AssemblyComponentDefinition
Set asmDef = docDesc.ReferencedDocument.ComponentDefinition


' Process the occurrences, wrapping it in a transaction so the
' entire process can be undone with a single undo operation.
Dim trans As Transaction
Set trans = ThisApplication.TransactionManager.StartTransaction(drawDoc, "Change drawing view Layer")

' Call the recursive function that does all the work.
Call ProcessAssemblyColor(drawView, asmDef.Occurrences)
trans.End

Next

'MsgBox "Reference Farben wurden aktualisiert!!"

Call Counter

End Sub

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

BlueJay

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: 2788
Registriert: 15.11.2006

Windows 10 x64, AIP 2020-2025

erstellt am: 04. Apr. 2023 13:30    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 Bluejay 10 Unities + Antwort hilfreich

Moin

In dem Stück Code passiert nichts von dem was du als Problem beschrieben hast.

Zwei Möglichkeiten
1. Die Farbinfos werden gespeichert in AssembylDocument.ComponentDefinition.Representationsmanager.DesignRepresentations. Dort findest du für jede Ansichtsdarstellung einen eigene DesignRepresentation. Jede davon hat ein Property DesignViewInfo. Das ist ein ellenlanger String, in dem Autodesk in XML-Tags verpackt, die Infos geschrieben hat. Schön, wenn man einen fertigen Parser zum Auslesen der Infos hat, in deinem Fall viel Arbeit.
2. Du liest aus deinem DrawingView den Namen im DrawingView.DesignViewRepresentation Property aus. Den benutzt du, um in deiner Baugruppe über AssembylDocument.ComponentDefinition.Representationsmanager.DesignRepresentations den passenden DesignView zu finden und aktivierst ihn. Ab da kannst du die Farbinfos über deinen bisherigen Weg auslesen. Die Baugruppe muss eventuell vor Beginn gespeichert werden, da sonst das Umschalten der DesignViews nicht möglich ist, bin mir aber nicht sicher. Das Herumschalten der DesignViews kann die Laufzeit merklich verlängern. Speichere dir zu Beginn den aktuell aktiven DesignView in einer Variable, dann kannst du den am Ende einfach wieder aktiv schalten.

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

RKW Solutions GmbH
www.RKW-Solutions.com

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