Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  Farbe ändern per Marko

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 SOLIDWORKS
  
PLM TechnologieForum Hannover
Autor Thema:  Farbe ändern per Marko (394 mal gelesen)
katterfe
Mitglied



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

Beiträge: 12
Registriert: 31.10.2001

erstellt am: 07. Nov. 2007 22:55    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,

ich weiß es gibt bereits mehrere Einträge zum obigen Thema und die grundlegende Technik zum Farbe ändern per Makro kenne ich.

Ich habe ein Problem mit der Selektion des Features dessen Farbe ich verändern möchte. Ich erzeuge in einem PART mehrere Kugeln durch verschieben/kopieren und skalieren eines vorher erstellten Rotationsfeatures. Nun will ich jeder einzelnen so erstellten Kugel eine spezifische Farbe zuweisen.

Der Code für die Selektion und Skalierung (der letzte Schritt vor der Farbänderung) lautet:

Part.ClearSelection2 True

boolstatus = Part.Extension.SelectByID2("", "SOLIDBODY", X, Y, Z,_ False, 1, Nothing, 0)

Set Feature = Part.FeatureManager.InsertScale(0, True, rad, rad, rad)
       
Ich dachte jetzt wäre schon etwas selektiert und ich hatte mit SelectedFaceProperties oder Part.MaterialPropertyValues (danke Stephans MakroMania!) versucht, die Farbe der Kugel zu ändern. Aber ich kriege entweder nen Fehler oder alle Kugeln kriegen die gleiche Farbe.

Kann mir jemand helfen?
Danke und Grüße!
Andre

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

u.clemens
Mitglied
Konstrukteur


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

Beiträge: 964
Registriert: 04.07.2000

engineer's law
o cheap
o fast
o good
check only two !

erstellt am: 08. Nov. 2007 09:45    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 katterfe 10 Unities + Antwort hilfreich

so wie deine Beschreibung klingt, mußt du die Bodys auswählen und färben - nicht Features oder Parts.
Hast du schon mal Body2::MaterialPropertyValues2 probiert ?

------------------
mfg uc

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

tbd
Mitglied
Teamleiter


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

Beiträge: 825
Registriert: 26.01.2006

Dell Percision T5400
Intel(R) Xeon(R) CPU
X5460 @ 3.16GHz
3,25 GB RAM
Nvidia Quadro FX 4600
-----
Win XP Prof SP 3
SW 2008 SP 5.0
PARTsolutions 8.1.08
Cideon SAP PLM 5.103.5.17
Visual Studio 2008

erstellt am: 08. Nov. 2007 09:53    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 katterfe 10 Unities + Antwort hilfreich

Wenn es nur an der fehlenden Selektion lieht, kannst du deine Features direkt über das Feature Objekt mit Select2 selektieren. Das Feature Objekt bekommst du bei der Erzeugung deines Features im FeatureManager zurück, oder du belegst es mit
Code:
retval = PartDoc.FeatureByName ( Name)
. Dann sollte die Selektion immer klappen.

------------------
Mfg Daniel

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

katterfe
Mitglied



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

Beiträge: 12
Registriert: 31.10.2001

erstellt am: 08. Nov. 2007 10: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

Danke für Eure Antworten. Ich weiß nicht wie ich den Body als solchen selektiere. Ich erzeuge hintereinander eine ganze Reihe (>1000) von diesen Kugeln bzw. Features bzw. Bodys. Eine Selektion über die Namen ist denke ich deshalb schwierig.

Ich habe es bislang so gemacht:

boolstatus = Part.Extension.SelectByID2("", "SOLIDBODY", X, Y, Z, False, 1, Nothing, 0) 
Set obj = Part.SelectionManager.GetSelectedObject5(1)

vMatProp(0) = col1
vMatProp(1) = col2
vMatProp(2) = col3
vMatProp(3) = 0#
vMatProp(4) = 1#
vMatProp(5) = 1#
vMatProp(6) = 1#
vMatProp(7) = 0.31
vMatProp(8) = 0#
       
obj.MaterialPropertyValues2 = (vMatProp)

Ich bin mir nicht sicher, ob das nun ein Body-Objekt ist oder nicht?!
Die Kugeln sehen jetzt auch verschieden aus. Allerdings nur in Graustufen und nicht in den Farben. Wenn ich sie einzeln auswähle und mir die Farbeigenschaften ansehe, dann kommt da immer das Standardgrau.

Bin für jeden Rat dankbar!
Andre

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

katterfe
Mitglied



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

Beiträge: 12
Registriert: 31.10.2001

erstellt am: 08. Nov. 2007 10:17    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

Ich habe jetzt nochmal genauer die Farben untersucht. Es gibt ja Feature-, Flächen- und Körperfarben. Also die Körperfarben sind verändert. Es muss also die Body-Eigenschaft sein, die ich anspreche.

Allerdings scheint der Array vMatProp die Eigenschaften nicht in der gewünschten Reihenfolge zu übergeben. Komischer Weise ändere ich nur die Eigenschaften Umgebung, Diffusion und Spiegeleffekt. Alle anderen Eigenschaften sind 0 (daher auch die Graustufen).

Gelten für den Body andere Parameter für vMatProp?

Danke & Grüße!
Andre

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

u.clemens
Mitglied
Konstrukteur


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

Beiträge: 964
Registriert: 04.07.2000

engineer's law
o cheap
o fast
o good
check only two !

erstellt am: 08. Nov. 2007 11:34    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 katterfe 10 Unities + Antwort hilfreich

 
Zitat:
Original erstellt von katterfe:
... Alle anderen Eigenschaften sind 0 (daher auch die Graustufen).

ich hoffe doch, daß du deinen Variablen col1 ... col3 auch die entsprechenden Werte zugewiesen hast ...
Hast du mal "debuggt", ob die Werte beim Aufruf der Methode auch gesetzt sind?

3x 0 müßte allerdings schwarz sein ...
------------------
mfg uc

[Diese Nachricht wurde von u.clemens am 08. Nov. 2007 editiert.]

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

katterfe
Mitglied



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

Beiträge: 12
Registriert: 31.10.2001

erstellt am: 08. Nov. 2007 11:45    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

Habt vielen Dank Ihr alle! Hab das Problem gelöst. Es lag am Safearray. Code sieht nun so aus:

        Dim MatProp(9) as Double
        Dim vMatProp as Variant
        boolstatus = Part.Extension.SelectByID2("", "SOLIDBODY", X, Y, Z, False, 1, Nothing, 0)
        Set obj = Part.SelectionManager.GetSelectedObject5(1)
       
        MatProp(0) = col1
        MatProp(1) = col2
        MatProp(2) = col3
        MatProp(3) = 0
        MatProp(4) = 1
        MatProp(5) = 1
        MatProp(6) = 1
        MatProp(7) = 0.31
        MatProp(8) = 0
       
        vMatProp = MatProp
       
        obj.MaterialPropertyValues2 = (vMatProp)

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