Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  Inventor .NET
  Farbe bei DrawingView

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:  Farbe bei DrawingView (993 mal gelesen)
Niwrex
Mitglied
CAD Softwareentwickler


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

Beiträge: 40
Registriert: 24.08.2007

erstellt am: 07. Nov. 2008 11:35    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,
ich möchte per .Net die Farbe eines Bauteiles in einer Ansicht einer IDW ändern. Leider find ich die Eigenschaft hierzu irgendwie nicht.
Vielleicht hat jemand einen Tip ?
Also irgendwo im Nirvana von Inventor.DrawingDocument.ActiveSheet.DrawingView[].


Gruß Steffen Sameith

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

daywa1k3r
Moderator
Softwareentwickler




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

Beiträge: 3497
Registriert: 01.08.2002

Desktop: 3.3GHz;8GB;SSD OCZ Vertex 3;Gainward Phantom GTX570
Laptop: Alienware m17x
Win7, Inventor2012

erstellt am: 07. Nov. 2008 11: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 Nur für Niwrex 10 Unities + Antwort hilfreich

Hallo Stefan,

schön dich hier zu sehen. Die Ansichten (und ich gehe mal davon aus, dass es sich um eine schattierte Ansicht handelt) spiegeln nur das referenzierende Modell. Daher vermute ich, dass es wohl notwendig sein wird, das betreffende Bauteil selbst zu verändern. Schau dir dazu die Eigenschaft RenderStyle an.

------------------
Grüße Igor

FX64 Software Solutions - Inventor Tools

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

Niwrex
Mitglied
CAD Softwareentwickler


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

Beiträge: 40
Registriert: 24.08.2007

erstellt am: 07. Nov. 2008 16:09    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 Igor,

Ähm ich glaube das geht noch in eine Falsch Richtung. Nach meiner Inventor Logik ist es ja so, änder ich was am Bauteil dann ändert sich das überall wo das Bauteil verbaut ist, bzw. Referenziert ist. Das was man bei einer Ansicht macht ändert sich nur für die jeweilige Ansicht.
Geh mal im Inventor in einer IDW auf eine Erstansicht und klick im Objektbrowser auf das + davor bis du bei dem bauteil oder Baugruppe bist. Dort dann einen Rechtsklick --> Eigenschaften --> Farbe. Wenn man diese ändert, ändert sich die Linienfarbe in der Ansicht, aber nur in der jeweiligen Ansicht und auch z.b. nichtmal in der Paralell ansicht.
Aber ich guck mir das mit RenderStyle trotzdem jetzt mal an.

Gruß Steffen

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

Manfred Zirk
Mitglied



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

Beiträge: 513
Registriert: 01.11.2002

IV2012 WIN 7 x64 SP1

erstellt am: 09. Nov. 2008 00:54    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 Niwrex 10 Unities + Antwort hilfreich

Hallo Steffen,

meiner Meinung nach dient die von dir angesprochene Einstellung allein zur Konfiguration des Linien, mit den das Objekt dargestellt ist (Layer, Linienbreite, Farbe) und ist damit ein Objekt der idw.

Die Farbe der Objektfüllung ist die Farbe seines Materials (Renderstyle) und stammt aus dem zugundeliegenden Modell.

Eine Farbänderung ist also nur über eine Farbänderung des Modells bzw. bei einem Assembly über die Farbeigenschaft des Exemplars möglich.

Grüße

Manfred

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

Niwrex
Mitglied
CAD Softwareentwickler


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

Beiträge: 40
Registriert: 24.08.2007

erstellt am: 10. Nov. 2008 09:18    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 Manfred,

Genau die Farbe der Linien will ich ändern, nicht deren Füllung. Diese ist natürlich über das Material vom Bautteil zu ändern.
Aber mit der angesprochenen Funktion in meinem Letzen Beitrag, kann man die Farbe der Linien von einem Kompletten Bautteil ändern. Und diese bräuchte ich aus dem .Net herraus. Quasi eine Farbeigenschaft für die Linien eines Bauteils.

Gruß Steffen

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

Niwrex
Mitglied
CAD Softwareentwickler


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

Beiträge: 40
Registriert: 24.08.2007

erstellt am: 10. Nov. 2008 16:44    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

Also mit Renderstyle lässt sich da nix machen, meine einzige Vermutung ist noch das man irgendwas über die Klasse Layer machen kann um Programmgesteuert die Linienfarben zu ändern, aber so wirklich was gefunden hab ich nach fast einem Tag suchen nix.

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

Manfred Zirk
Mitglied



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

Beiträge: 513
Registriert: 01.11.2002

IV2012 WIN 7 x64 SP1

erstellt am: 10. Nov. 2008 17:44    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 Niwrex 10 Unities + Antwort hilfreich

Hallo Steffen,

ich würde sagen, du könntest dir das DrawingCurves Objekt aus dem DrawingView Objekt mal genauer anschauen.

Die DrawingCurve Objekte bilden die Kurven und Linien des Modells
im DrawingView ab.

Unter DrawingCurve.Segments finden sich dann die Segmente, die als Objekt Properties wie Layer, Sichtbarkeit, etc. bereitstellen.

Ich hoffe, das ich das so richtig wiedergegeben habe, was ich in der API gelesen habe.


edit:
Möglicherweise ist es aber auch zu umständlicher oder falsche Weg, ich habe mich bisher nicht tiefer damit beschäftigt.

Grüße

Manfred

[Diese Nachricht wurde von Manfred Zirk am 10. Nov. 2008 editiert.]

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

Niwrex
Mitglied
CAD Softwareentwickler


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

Beiträge: 40
Registriert: 24.08.2007

erstellt am: 11. Nov. 2008 15: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


ModelGeometry.JPG

 
Danke Manfred das war wohl der Richtige weg.

Das einzige was ich noch nich hin bekomme wie ich auf Runde Elemente drauf komme. Problem ist hierbei das ich die Farbe abhängig vom Bauteilname machen will und um auf den Bautteil Namen zugreifen zu können brauch ich zugriff auf das Object ModelGeometry.

Code:

object myModelGeometryObject = mydrawCurve.ModelGeometry;
                  EdgeProxy myedgeProxy = myModelGeometryObject as EdgeProxy;

                  if (myedgeProxy != null)
                  {
                      string Name = myedgeProxy.ContainingOccurrence.Name;
                      if (Name.Contains("Kurbel") == true)
                      {
                          Inventor.Color myColor = StandardAddInServer.m_inventorApplication.TransientObjects.CreateColor(255, 0, 0, 1);
                          myColor.SetColor(250, 0, 0);
                          mydrawCurve.OverrideColor = myColor;
                      }
                  }

              }


In dem angehängten Bild sieht man wie alle noch schwarzen Linien welche sich nicht in die Klasse EdgeProxy wandeln lassen (ist immer null).
Ich bekomm jetzt aber nicht wirklich raus welche anderen Proxy klassen das sein könnten. Vielleicht hat einer von euch da schon Erfahrungen.

Gruß Steffen

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

Manfred Zirk
Mitglied



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

Beiträge: 513
Registriert: 01.11.2002

IV2012 WIN 7 x64 SP1

erstellt am: 11. Nov. 2008 18:50    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 Niwrex 10 Unities + Antwort hilfreich

Hallo Steffen,

diese Kanten existieren am zugrunde liegenden Modell gar nicht.
Sie sind nur präsent in einer zeichnerischen Darstellung eines runden Bauteils.
Hast du die Auflistung der DrawingCurves irgendwie gefiltert?

Ich verstehe übrigens nicht, wie du einem DrawingCurve Objekt eine Farbe zuweisen kannst.
Dies Property ist laut 2008er API jedenfalls nicht vorhanden.
Ich werde das mal testen.

Grüße

Manfred

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

Niwrex
Mitglied
CAD Softwareentwickler


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

Beiträge: 40
Registriert: 24.08.2007

erstellt am: 11. Nov. 2008 22:06    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 Manfred,

Also die Eigenschaft OverideColor gibts erst ab 2009, mit 2008 muss man es etwas umständlicher über die Layer machen.
Die frage wäre dann damit wie ich rausbekomme zu welchen Bautteil solche Linien dann gehören.

Gruß Steffen

edit: Zwischendurch ersmtal Danke 

[Diese Nachricht wurde von Niwrex am 11. Nov. 2008 editiert.]

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

Manfred Zirk
Mitglied



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

Beiträge: 513
Registriert: 01.11.2002

IV2012 WIN 7 x64 SP1

erstellt am: 11. Nov. 2008 23:50    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 Niwrex 10 Unities + Antwort hilfreich

Hallo Steffen,

dem DrawingViews.DrawingCurves Objekt kannst du als Parameter
alles möglich zum Filtern übergeben, unter anderem auch ein Document Objekt oder die ComponentOcurrence.
Übergibst du nichts, dann erhälst du trotzdem nicht alle Elemente.
Siehe API.
Die entstehende Auflistung ist dann das Ergebnis der Filterung.
Alle in der Liste vorhandenen DrawingCurve Objekte müssten dann dem Filterkriterium entsprechen.

Vielleicht beginnst wegen dieser Linien mit einem ganz einfachen Bauteil, einem Zylinder statt eines Assembly.
Die Linien sind sicher dem betreffenden Bauteil zugeordnet.

Die Anzahl der DrawingCurve Objekte in dem DrawingView sollte dann klein genug sein, um die Objekte zu finden, die diese Linien erzeugen, falls sie dort überhaupt definiert sind.

Grüße

Manfred


 

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

Niwrex
Mitglied
CAD Softwareentwickler


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

Beiträge: 40
Registriert: 24.08.2007

erstellt am: 12. Nov. 2008 19:22    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

Es hatte heute Nachmittag übrigens geklappt... ich stell die Lösung morgen mal noch rein... will jetzt erstmal hier weg und hab schon alles zu ...

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

Niwrex
Mitglied
CAD Softwareentwickler


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

Beiträge: 40
Registriert: 24.08.2007

erstellt am: 13. Nov. 2008 16: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

Hier mal noch die Lösung
Code:

            Inventor.AssemblyDocument myAssemblyDocument = (AssemblyDocument)myDocument;
            Inventor.ComponentOccurrences myComponentOccurrences = myAssemblyDocument.ComponentDefinition.Occurrences;

            string name = ":1";

            try
            {

                foreach (ComponentOccurrence myCompOcc in myComponentOccurrences)
                {
                    if (myCompOcc.Name.Contains(name))
                    {
                        DrawingCurvesEnumerator myDrawingCurves = myDrawingView.get_DrawingCurves(myCompOcc);
                        if (myDrawingCurves != null)
                        {

                            foreach (DrawingCurve mydrawCurve in myDrawingCurves)
                            {

                                Inventor.Color myColor = StandardAddInServer.m_inventorApplication.TransientObjects.CreateColor(255, 0, 0, 1);
                                myColor.SetColor(250, 0, 250);
                                mydrawCurve.OverrideColor = myColor; 
                            }

                        }
                    }
                }
               
            }


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

Manfred Zirk
Mitglied



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

Beiträge: 513
Registriert: 01.11.2002

IV2012 WIN 7 x64 SP1

erstellt am: 15. Nov. 2008 13:50    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 Niwrex 10 Unities + Antwort hilfreich

Hallo Steffen,

hinsichtlich der Namen, die du zur Indentifizierung verwendest,
ist Vorsicht geboten, da der Benutzer den Namen überschreiben kann.
Dann läuft deine Auswahl ins Leere.
Vielleicht verwendest du besser das Property ReferencedDocument
des DrawingView entnimmst diesem Document die Auflistung AllReferencedDocuments.

Grüße

Manfred

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

Niwrex
Mitglied
CAD Softwareentwickler


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

Beiträge: 40
Registriert: 24.08.2007

erstellt am: 16. Nov. 2008 17: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 Manfred,

Ich bekomme so alle Dokumente wie Sie im Browser stehen, da das ganze für den Benutzer ist und er den String eingibt und eine Farbe bestimmt in die alle Bauteile mit dem String gefärbt werden passt es. Über Referenced Dokument geht es nicht weil du da erstens nicht die Farbe ändern kannst und die Drawing Curves kannst du nicht nach Objekt Document filtern lassen. Jedenfalls nich im 2009.

Gruß Steffen

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