Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  API: SetMaterialPropertyValues

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
  
3DEXPERIENCE Conference 2024 | München
Autor Thema:  API: SetMaterialPropertyValues (1529 mal gelesen)
Piet
Mitglied
Konstruktionsleiter & Konstrukteur


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

Beiträge: 661
Registriert: 20.11.2001

SWx 2021

erstellt am: 12. Jun. 2008 17:00    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 versuche, unsere selbsterstellten Normteile neu einzufärben, dabei soll das Teil selbst die Farbe tragen, unabhängig von der Konfiguration. Dazu passt der Befehl SetMaterialPropertyValues:

void = ModelDocExtension.SetMaterialPropertyValues ( material_property_values, config_opt, config_names )

Der Befehl SetMaterialPropertyValues2 ist nicht geeignet, da er die Farbe nur der jeweiligen Konfiguration zuweist.
Hier mein Code soweit:


Sub main()
    Set swApp = CreateObject("SldWorks.Application")
    Set swModel = swApp.ActiveDoc
    Set ModelExt = swModel.Extension
    ReDim vMatProp(8)
   
    ConfigNames = swModel.GetConfigurationNames
    ReDim vConfigName(0)    'zur Sicherheit eventuelle Werte im Speicher löschen
    vConfigName(0) = ""

    vMatProp = swModel.MaterialPropertyValues
   
    vMatProp(0) = 0.5  'R 128
    vMatProp(1) = 0.5  'G 128
    vMatProp(2) = 0  'B 0
    vMatProp(3) = 1  'Umgebung
    vMatProp(4) = 0.96  'Diffusion
    vMatProp(5) = 0.6  'Spiegeleffekt
    vMatProp(6) = 0.02  'Glanz
    vMatProp(7) = 0  'Transparenz
    vMatProp(8) = 0  'Emissionsgrad
   
  ModelExt.SetMaterialPropertyValues = (vMatProp, swAllConfiguration, vConfigName) <<<klappt nicht!

    bRet = swModel.EditRebuild3
End Sub

Wie muss die Syntax richtig lauten? Und ist vConfigName als Input richtig, oder müsste da "" stehen? Die Hilfe zu diesem Befehl ist leider nicht allzu ausführlich.

Auf dem Schlauch:
Piet

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

VBSpawn
Mitglied
Programmierer


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

Beiträge: 514
Registriert: 23.08.2005

Sorgfältige Planung ersetzt niemals pures Glück.

erstellt am: 13. Jun. 2008 07: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 Nur für Piet 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von Piet:

void = ModelDocExtension.SetMaterialPropertyValues ( material_property_values, config_opt, config_names )

ModelExt.SetMaterialPropertyValues = (vMatProp, swAllConfiguration, vConfigName) <<<klappt nicht!
Auf dem Schlauch:
Piet
[/i]


Hallo Piet,
Properties setzt man mit 'blubb = True' und Funktionen ruft man auf mit Call blubb(Parameter1) auf.
SetMaterialPropertyValues ist eine Funktion und keine Property deswegen
Versuch es mal mit:
Call ModelExt.SetMaterialPropertyValues(vMatProp, swAllConfiguration, vConfigName)

Wenn du den Rückgabe Wert brauchst dann
Dim ret as Variant
ret = ModelExt.SetMaterialPropertyValues(vMatProp, swAllConfiguration, vConfigName)

Gruß
Micha

------------------
Stell dir vor, es geht, und keiner kriegts hin.

  

Zitat:
Interpunktion und Orthographie des Postings sind frei erfunden.
Eine Übereinstimmung mit aktuellen oder ehemaligen Regeln wäre rein zufällig und ist nicht beabsichtigt.

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

MWN
Mitglied
Dipl.-Ing.


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

Beiträge: 492
Registriert: 14.02.2007

erstellt am: 13. Jun. 2008 07:23    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 Piet 10 Unities + Antwort hilfreich

Guten Morgen Piet,

du wirst wohl bei vConfigName ein "" eintragen müssen, denn du sagst ihm ja schon, dass er das Teil in allen Configurationen (swAllConfiguration) einfärben soll. Der Rest sieht soweit ganz gut aus.
Du kannst ja auch mal dein Makro hochladen, damit man das besser testen kann!
Grüße

Tobias

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

Piet
Mitglied
Konstruktionsleiter & Konstrukteur


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

Beiträge: 661
Registriert: 20.11.2001

SWx 2021

erstellt am: 13. Jun. 2008 12:48    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


Normteilfarbesetzen.zip

 
Ich pack's nicht, vielleicht könnt ihr euch das Ding mal angucken. Aber Achtung: Mit Verarbeiten der fraglichen Zeile stürzt mein SWXSolidWorks komplett ab, egal ob ich "" oder vconfigname einsetze!

Gruß,
Piet

[Diese Nachricht wurde von Piet am 13. Jun. 2008 editiert.]

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

MWN
Mitglied
Dipl.-Ing.


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

Beiträge: 492
Registriert: 14.02.2007

erstellt am: 13. Jun. 2008 13: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 Nur für Piet 10 Unities + Antwort hilfreich


Normteilfarbe_setzen.zip

 
Hallo Piet,

im Anhang das lauffähige Makro!  
Grüße

Tobias

[Diese Nachricht wurde von MWN am 13. Jun. 2008 editiert.]

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

Piet
Mitglied
Konstruktionsleiter & Konstrukteur


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

Beiträge: 661
Registriert: 20.11.2001

SWx 2021

erstellt am: 13. Jun. 2008 14:56    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

Super, ich danke dir!

Piet

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