Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  Eigenschaften von Volumenkörpern

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
  
Smart Engineering Session: CAD-Automation in SOLIDWORKS in Berlin, eine Veranstaltung am 12.03.2026
Autor Thema:  Eigenschaften von Volumenkörpern (587 mal gelesen)
grinsemann
Mitglied


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

Beiträge: 6
Registriert: 08.03.2006

erstellt am: 08. Mrz. 2006 13: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

Hi,

ich würde gerne mit einem Makro die Eigenschaften (z.B. Transparenz) von Volumenkörpern auslesen/vergleichen.
Als Grundlage für meine bemühungen habe ich ein Makro von Stefan Berlitz verwendet zum zurücksetzten von Flächenfarben. (man will sich ja nicht mit fremden Federn schmücken *g*)

Code:
' zunächst mal ein paar Deklarartionen die gebraucht werden
Dim SwApp As Object
Dim ModelDoc As Object
Dim body As Object
Dim faceCnt As Integer
Dim retval As Integer

Dim vbody As Variant
Dim vSinglebody As Variant
Const swSolidbody = 0

' die Konstanten aus swconst.bas, damit nicht mit Zahlen gearbeitet werden muss
Const swDocNONE = 0              ' Used to be TYPE_NONE
Const swDocPART = 1              ' Used to be TYPE_PART
Const swDocASSEMBLY = 2          ' Used to be TYPE_ASSEMBLY
Const swDocDRAWING = 3            ' Used to be TYPE_DRAWING
Const swDocSDM = 4                ' Solid data manager.


Sub Main()
    ' an SolidWorks Session anklinken und ggf. sichtbar machen
    Set SwApp = CreateObject("SldWorks.Application")
    SwApp.Visible = True

    ' Zeiger auf aktives Dokument holen und überprüfen, ob überhaupt eins aktiv ist
    Set ModelDoc = SwApp.ActiveDoc
    If ModelDoc Is Nothing Then
        MsgBox ("Kein Modell geöffnet")
        End
    End If

    ' ausserdem funktioniert das so nur mit Parts, also sollte das aktive
    ' Dokument auch ein Part sein
    If ModelDoc.GetType() <> swDocPART Then
        MsgBox ("Das Makro funktioniert nur mit Parts")
        End
    End If

    ' die Volumenkörper des Modells holen
    vbody = ModelDoc.GetBodies2(swSolidbody, False) 'ModelDoc -> PartDoc
    If Not IsEmpty(vbody) Then
        vKoerperCnt = 0
        For Each vSinglebody In vbody
            ' die Flächen werden über das body-Object angesprochen, also erstmal
            ' den Körper des aktiven Modells anwählen.
            Debug.Print vSinglebody.GetType
            Debug.Print vSinglebody.Name
            Debug.Print "-------"
            ' Zähler für durchlaufenen Koerper einen hochzählen
            vKoerperCnt = vKoerperCnt + 1
        Next
        ' nur noch eine Erfolgsmeldung
        MsgBox (Str(vKoerperCnt) & " Körper durchlaufen")
    Else
        MsgBox "Keine Volumenkörper im Modell"
    End If
End Sub


Da wo die debug.print Zeilen stehen müsste ich irgendwie auf die Eigenschaften des Volumenkörpers zugreifen, leider weiss ich nicht wie. Versucht hatte ich es mit MaterialPropertyValues2 was aber leider nicht funktionierte.
Kann mir da evtl. jemand weiter helfen?
Danke im voraus.

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

grinsemann
Mitglied


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

Beiträge: 6
Registriert: 08.03.2006

erstellt am: 09. Mrz. 2006 16:25    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

Hat denn keiner ne idee?

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

Mausus
Mitglied
Projektleiter / Konstrukteur


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

Beiträge: 30
Registriert: 19.01.2006

WIN XP Pro SP2
Pentium IV 3,20GHz
2GB RAM
Grafik Quadro FX 540

erstellt am: 11. Mrz. 2006 00:08    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 grinsemann 10 Unities + Antwort hilfreich

Hallo,
so wie es ausschaut hat keiner eine Idee.
Ich ehrlich gesagt auch nicht.
Für was benötigst du so etwas?
Gruß
Markus

------------------
M.H.

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

Marc Bräuninger
Mitglied
Konstruktion mit SWX


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

Beiträge: 111
Registriert: 27.03.2002

erstellt am: 11. Mrz. 2006 10: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 Nur für grinsemann 10 Unities + Antwort hilfreich

Hallo,

ich habe mal kurz gesucht und folgendes gefunden:
MaterialPropertyValues
Damit kann man die RBG-Farbe von Flächen, Teilen und Baugruppenkomponenten ermitteln. Aber auch Transparenz, etc., alles was man als Farbeigenschaft eintragen kann.
Das Ergebnis ist ein SafeArray mit folgenden Werten:
[ R, G, B, Ambient, Diffuse, Specular, Shininess, Transparency, Emission ]

Gruß
Marc

[Diese Nachricht wurde von Marc Bräuninger am 11. Mrz. 2006 editiert.]

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

grinsemann
Mitglied


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

Beiträge: 6
Registriert: 08.03.2006

erstellt am: 13. Mrz. 2006 09: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

Danke für die Bemühungen.
Wie oben erwähnt hatte ich es mit MaterialPropertyValues2 versucht, konnte aber weder Werte Zuweisen, noch die aktuellen Werte auslesen. Wie müsste denn ein Aufruf mit
MaterialPropertyValues aussehen? Versucht hatte ich es so:

Dim MatVal As Variant
MatVal = Array(0.8, 0.7, 0.6, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9)
vSinglebody.MaterialPropertyValues = (MatVal)
MatVal = vSinglebody.MaterialPropertyValues
Debug.Print MatVal

Läuft einwandfrei durch, allerdings ohne das Werte zurück geliefert werden  Was mach ich da falsch?

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

ChrisB
Mitglied



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

Beiträge: 61
Registriert: 14.03.2005

SolidWorks 2006/2008
WinXP Pro
MS VS 2005

erstellt am: 14. Mrz. 2006 09:51    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 grinsemann 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von grinsemann:
Versucht hatte ich es mit MaterialPropertyValues2 was aber leider nicht funktionierte.
Kann mir da evtl. jemand weiter helfen?
Danke im voraus.

Kannst du ein bisschen genauer werden, was nicht funktioniert(Fehlermeldung)? Ich kann mich schwach daran erinnern Body2::MaterialPropertyValues2 ein paar mal benutzt zu haben. Hat bei mir eigentlich recht gut funktioniert.

In der API Hilfe gibt's zu diesem Befehl auch ein Beispiel. Das macht im Endeffekt genau das was du möchtest.

Grüße
Christian

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

grinsemann
Mitglied


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

Beiträge: 6
Registriert: 08.03.2006

erstellt am: 14. Mrz. 2006 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

Danke für die Antwort. Durch den Hinweis mit dem Beispiel bin ich darauf aufmerksam geworden, das ich die ganze Zeit mit MaterialPropertyValues anstatt MaterialPropertyValues2 hantiert hatte, und dazu ist kein Beispiel aufgeführt... Mein Problem war es das ich mit MaterialPropertyValues immer einen Leeren Rückgabewert bekommen habe. Aber mit dem Beispiel hat sich die Sache nun geklärt. Danke

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