Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  Materialdatenbank und Aktualisierung

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
  
Vom digitalen 3D-Aufmaß bis hin zur Fertigung – Die komplette Prozesskette
Autor Thema:  Materialdatenbank und Aktualisierung (3369 mal gelesen)
Mixie
Mitglied



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

Beiträge: 276
Registriert: 12.10.2007

SolidWorks 2015 SP4 Office Professional
Workgroup PDM<P>

erstellt am: 11. Jan. 2012 07: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

Hallo!

Ich habe schwierigkeiten mit der Materialdatenbank in SWX2011 SP5.

Wir brauchen jetzt neuerdings für einige Bauteile das Gewicht. Daher habe ich mal nachgeschaut, wie gepflegt die Materialeigenschaften bei uns wirklich sind. Natürlich hat da bisher keiner drauf geachtet...
Wenn ich jetzt die Masse für ein Material ändere, wird die Masse nur für das aktuelle Teil geändert. Öffne ich nun bereits vorhandene Teile, die das gleiche Material haben, findet keine Änderung statt. Auch nicht nach einem Neuaufbau. Erst wenn ich das Material erneut auswähle wird das im Teil aktualisiert.

Ist das ein gewolltes Verhalten in SWXSolidWorks? Gibt es eine Möglichkeit z.B. in einer Baugruppe alle Bauteile mit geänderten Materialien neu aufzubauen?
Ich muss fast alle Materialien aktualisieren...also muss ich unseren kompletten Datenbestand ändern?

Gruß
Mixie

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

sonti
Mitglied
dipl. Masch.-Ing.


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

Beiträge: 1175
Registriert: 26.01.2007

Solid Works 2017 SP5
Inventor 2015
Windows 10
SWX (mein Liebling)

erstellt am: 11. Jan. 2012 14:02    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 Mixie 10 Unities + Antwort hilfreich

Hallo Mixie

Was sagt dein Support dazu?

Sonti

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

Olaf Wolfram
Ehrenmitglied V.I.P. h.c.
CAD-Mutti und Konstrukteur CSWP CSWI



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

Beiträge: 2431
Registriert: 30.06.2008

I7-3770 CPU 3,40 Ghz
32 Gb RAM
64 bit
WIN 10
SWX 2019 SP5
NVIDIA Quadro K2000<P>
Lenovo ThinkStation

erstellt am: 11. Jan. 2012 14:14    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 Mixie 10 Unities + Antwort hilfreich

Ich würde als Supporter sagen, dass es sich da um ein normales Verhalten von SWX handelt!
Ich habe eine Vermutung.

Zitat:
Wenn ich jetzt die Masse für ein Material ändere

Kannst du deine Vorgehensweise mal genau erläutern!

------------------
CSWST/CSWI/CSWP/  3DVia

DPS-Software GmbH
...strebe niemals nach den Dingen, die auch dümmeren gelingen.....

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

StefanBerlitz
Guter-Geist-Moderator
IT Admin (CAx)



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

Beiträge: 8756
Registriert: 02.03.2000

SunZu sagt:
Analysiere die Vorteile, die
du aus meinem Ratschlag ziehst.
Dann gliedere deine Kräfte
entsprechend und mache dir
außergewöhnliche Taktiken zunutze.

erstellt am: 11. Jan. 2012 14:24    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 Mixie 10 Unities + Antwort hilfreich

Hallo Mixie,
Zitat:
Original erstellt von Mixie:
Wenn ich jetzt die Masse für ein Material ändere, wird die Masse nur für das aktuelle Teil geändert. Öffne ich nun bereits vorhandene Teile, die das gleiche Material haben, findet keine Änderung statt.[...]
Ist das ein gewolltes Verhalten in SWX?

Ich kann zwar nicht für SolidWorks sprechen, aber ich finde dieses Verhalten logisch und richtig und vor allem praktisch genauso, wie sich SolidWorks bei allen anderen Dingen verhält. Die Materialdaten werden eingelagert, genauso wie (normalerweise) Blöcke, Blattformate, Tabelledefinitionen, Blechbiegetabellen usw. Dadurch werden die Dokumente autark, können weitergegeben werden und ändern sich vor allem nicht durch eine derartige externe Referenz.

Zitat:
Original erstellt von Mixie:
Gibt es eine Möglichkeit z.B. in einer Baugruppe alle Bauteile mit geänderten Materialien neu aufzubauen?

Nicht das ich wüsste, vielleicht mit einem Makro nebst Taskplaner, aber das ist vermutlich nicht so einfach.

Ciao,
Stefan

------------------
Inoffizielle deutsche SolidWorks Hilfeseite    http://solidworks.cad.de

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

Mixie
Mitglied



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

Beiträge: 276
Registriert: 12.10.2007

SolidWorks 2015 SP4 Office Professional
Workgroup PDM<P>

erstellt am: 11. Jan. 2012 14: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

Hallo!

Huch...plötzlich so viele...

@StefanBerlitz
Ja...das erklärt sich mir auch so. Allerdings hätte ich vermutet (und war eigentlich davon ausgegangen) das soblad die Materialdatenbank vorhanden ist, auch die Werte aktualisiert werden.
Ich hatte auch schon die die richtung Macro gesucht...aber bisher noch keinen Denkansatz gefunden. Ich werde jetzt aber mein Glück nochmal probieren.

@Olaf Wolfram
Ich erstelle zwei Bauteile mit einem gleichen Material. Jetzt ändere ich die Materialdatenbank. Das Teil was ich gerade geöffnet habe und das Material bearbeite, aktualisiert sich auch direkt.
Wenn ich jetzt wieder das andere Teil öffne kann ich aktualisieren was ich will...die Änderungen aus der Materialdatenbank werden nicht automatisch übernommen. Erst wenn ich das Material neu zuweise werden die Änderungen übernommen.

Gruß
Mixie

[Diese Nachricht wurde von Mixie am 11. Jan. 2012 editiert.]

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

Olaf Wolfram
Ehrenmitglied V.I.P. h.c.
CAD-Mutti und Konstrukteur CSWP CSWI



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

Beiträge: 2431
Registriert: 30.06.2008

I7-3770 CPU 3,40 Ghz
32 Gb RAM
64 bit
WIN 10
SWX 2019 SP5
NVIDIA Quadro K2000<P>
Lenovo ThinkStation

erstellt am: 11. Jan. 2012 15:02    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 Mixie 10 Unities + Antwort hilfreich

Ja genau wie ich gedacht habe, dass ist ein Denkfehler von dir!
Stefan hat ja oben schon beschrieben, warum das so sein soll!

Die normale Arbeitsweise mit Materialien sollte sich doch auf auswählen eines Materiales beschränken!

Zitat:
Jetzt ändere ich die Materialdatenbank....

Warum?

------------------
CSWST/CSWI/CSWP/  3DVia

DPS-Software GmbH
...strebe niemals nach den Dingen, die auch dümmeren gelingen.....

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

Mixie
Mitglied



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

Beiträge: 276
Registriert: 12.10.2007

SolidWorks 2015 SP4 Office Professional
Workgroup PDM<P>

erstellt am: 11. Jan. 2012 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

Hallo!

Ganz einfach... bisher wurde bis auf den Namen nichts an Werten gepflegt. (Wir nutzen unsere eigene Datenbank).
D.h. jetzt ist aktuell das Problem, dass die Masse nicht richtig eingetragen wurde und alle Materialien bei 7,9 Kg/dm³ liegen...auch alle Gummi und Kunststoffmaterialien...

Gruß
Mixie

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

Olaf Wolfram
Ehrenmitglied V.I.P. h.c.
CAD-Mutti und Konstrukteur CSWP CSWI



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

Beiträge: 2431
Registriert: 30.06.2008

I7-3770 CPU 3,40 Ghz
32 Gb RAM
64 bit
WIN 10
SWX 2019 SP5
NVIDIA Quadro K2000<P>
Lenovo ThinkStation

erstellt am: 11. Jan. 2012 15:27    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 Mixie 10 Unities + Antwort hilfreich

....alles klar, du weist den Teilen ein Material zu.

du hast aber geschrieben,

[QUOTE][Jetzt ändere ich die Materialdatenbank..../QUOTE]

das ist was anderes, als Material zuweisen!
Deswegen habe ich lieber nochmal nachgefragt.

------------------
CSWST/CSWI/CSWP/  3DVia

DPS-Software GmbH
...strebe niemals nach den Dingen, die auch dümmeren gelingen.....

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

StefanBerlitz
Guter-Geist-Moderator
IT Admin (CAx)



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

Beiträge: 8756
Registriert: 02.03.2000

SunZu sagt:
Analysiere die Vorteile, die
du aus meinem Ratschlag ziehst.
Dann gliedere deine Kräfte
entsprechend und mache dir
außergewöhnliche Taktiken zunutze.

erstellt am: 11. Jan. 2012 16: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 Nur für Mixie 10 Unities + Antwort hilfreich

Hallo Olaf,

ich hab das so verstanden:

User A: Wir sollten eine eigene Materialdatenbank haben, man sollte mal eine erstellen
Alle: Au ja prima! Man sollte das echt mal machen.

3 Tage später: ACA (armer Cad Admin) bekommt den Auftrag eine firmenspezifische Materialddatenbank zu erstellen, bekommt zwar weder Infos noch Materialkennzahlen, allerdings fast 2 Stunden Zeit dafür.

ACA sucht im Internet, findet eine Beispieldatenbank (z.B. im CAD.de Brett), kopiert die Materialien, ändert die Namen, aber in Ermangelung an Kenntnis nicht die Materialwerte.

ACA stellt Materialdatenbank im Netzwerklaufwerk zur Verfügung.

Alle: Super, endlich können wir unsere eigenen Materialien auswählen, wer versteht schon die DIN-EN Normnummern

Zeit vergeht, Materialdatenbank wird fleißig genutzt

Anruf vom Versand bei User A: Kannst du mir mal eben sagen, wie schwer die ganze Baugruppe XYZ so ungefähr werden wird, dann können wir schon mal in unsere Frachtpläne einarbeiten
User A: Kein Problem, Moment. [ruft SolidWorks Baugruppe auf]. Das sind ... [Extras/Eigenschaften Masse] ... 2.473 kg
Versandfutzi: #*§$%&
Versandfutzi: Bist du sicher? Die letzte Version ohne die Änderung wog nur knapp 170 Kilo ...
User A: #*§$%&
User A: ACA ist schuld!
.
.
.

Nach erfolgreicher Spurensuche wurde festgestellt, dass die Materialien in der Materialdatenbank zwar den richtigen Namen, aber nicht die richtigen Kennwerte enthalten. Jetzt war die Hoffnung, die eine Materialdatenbank zu korrigieren, so dass sich alle Modelle, die diese Materialien benutzt haben, von selbst aktualisieren. Was sie aber nur tun, wenn du die explizit aufrufst und das Material neu aus der jetzt korrigierten zentralen Materialdatenbank übernimmst.

Ciao,
Stefan

------------------
Inoffizielle deutsche SolidWorks Hilfeseite    http://solidworks.cad.de

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

Mixie
Mitglied



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

Beiträge: 276
Registriert: 12.10.2007

SolidWorks 2015 SP4 Office Professional
Workgroup PDM<P>

erstellt am: 11. Jan. 2012 16:04    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

Ja...ich ändere, während ich das Material zuweise.
Hätten wir die Sachen gleich gepflegt, bräuchten wir jetzt nicht wieder so einen Aufwand treiben.
Ich habe jetzt mal ein bisschen in Sachen Macro geforscht. Über GetMaterialPropertyName2 müsste man eigentlich das aktuelle Material auslesen können und über SetMaterialPropertyName2 wieder übernehmen...aber da muss ich mich erst noch weiter einarbeiten...

Gruß
Mixie

[edit]
@StefanBerlitz
Ja...genau so war es! Oder zumindest fast.
Also muss ich doch ein Macro entwerfen, um die Materialeigenschaften zu übernehmen. Was fertiges werde ich wohl nicht finden...und alle 100000 Teile von Hand ändern...so viel Zeit habe ich nicht.
[/edit]

[Diese Nachricht wurde von Mixie am 11. Jan. 2012 editiert.]

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

Olaf Wolfram
Ehrenmitglied V.I.P. h.c.
CAD-Mutti und Konstrukteur CSWP CSWI



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

Beiträge: 2431
Registriert: 30.06.2008

I7-3770 CPU 3,40 Ghz
32 Gb RAM
64 bit
WIN 10
SWX 2019 SP5
NVIDIA Quadro K2000<P>
Lenovo ThinkStation

erstellt am: 11. Jan. 2012 16: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 Nur für Mixie 10 Unities + Antwort hilfreich

OK.
Dann war ich gedanklich in eine andere Richtung unterwegs!

tut einfach so, als hätte ich nichts geschrieben.

 

------------------
CSWST/CSWI/CSWP/  3DVia

DPS-Software GmbH
...strebe niemals nach den Dingen, die auch dümmeren gelingen.....

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

Mixie
Mitglied



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

Beiträge: 276
Registriert: 12.10.2007

SolidWorks 2015 SP4 Office Professional
Workgroup PDM<P>

erstellt am: 12. Jan. 2012 09: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


SWXTestMaterial.zip


SWXTestMaterialnurExe.zip

 
Hallo!

Ich habe jetzt so einiges probiert um mit einem Macro das Material zu aktualisieren. Da bin ich dann aber weit über meinen Grenzen...
Bisher habe ich in VBA nur ein paar kleine Word/Excel-Macros erstellt und z.B. ein Schriftfeldmacro erfolgreich abgeändert.
In VB.net habe ich bereits etwas mehr Erfahrung...aber auch nur in der Windows-Programmierung. Mit SWX habe ich bisher nur sehr sehr wenig gemacht.

Mein Ansatz in VBA war es, in einer Baugruppe alle Komponenten zu durchlaufen, das Material auszulesen und neu zu setzen.

Code:

'---------------------------------------

'

' Preconditions: Assembly document is open.

'

' Postconditions: Assembly component names are changed by

'                 appending 123 to the end of the names.

'

'---------------------------------------

Option Explicit
Public Enum swUserPreferenceToggle_e
    swExtRefUpdateCompNames = 18
End Enum

Sub Main()
    Dim swApp                   As SldWorks.SldWorks
    Dim swModel                 As SldWorks.ModelDoc2
    Dim swModel2                As SldWorks.ModelDoc2
    Dim swConfigMgr             As SldWorks.ConfigurationManager
    Dim swConfig                As SldWorks.Configuration
    Dim swRootComp              As SldWorks.Component2
    Dim Children                As Variant
    Dim swChild                 As SldWorks.Component2
    Dim ChildCount              As Integer
    Dim OldName                 As String
    Dim NewName                 As String
    Dim bOldSetting             As Boolean
    Dim bRet                    As Boolean
    Dim i                       As Long
  

    Set swApp = Application.SldWorks
    Set swModel = swApp.ActiveDoc
    Set swConfigMgr = swModel.ConfigurationManager
    Set swConfig = swConfigMgr.ActiveConfiguration
    Set swRootComp = swConfig.GetRootComponent

   

    bOldSetting = swApp.GetUserPreferenceToggle(swExtRefUpdateCompNames)
    swApp.SetUserPreferenceToggle swExtRefUpdateCompNames, False
  

    Children = swRootComp.GetChildren
    ChildCount = UBound(Children)
   
    Dim configname As String
    Dim databasename As String
    Dim newpropname As String
    Dim value As String
   
   
    For i = 0 To ChildCount
        Set swChild = Children(i)
        Set swModel2 = Children(i).GetModelDoc2
     
        ' Changing component name requires component to be selected
        bRet = swChild.Select2(False, 0)
       

        On Error Resume Next
   
        value = swModel2.GetMaterialPropertyName2("", databasename)
        Debug.Print configname
        Debug.Print databasename
        Debug.Print newpropname
        Debug.Print value
   
        If Not value = "" Then
            swModel2.SetMaterialPropertyName2 "", "NameDerMaterialDatenbank", value
        End If
   
    Next i
   
    swApp.SetUserPreferenceToggle swExtRefUpdateCompNames, bOldSetting
End Sub



Soweit könnte das sogar klappen. Das Gewicht wurde mir nach einem Neuaufbau neu berechnet. Ob das dann nur in der aktuellen Konfiguration oder für alle Teile Berechnet wird...keine Ahnung

Es werden auch irgendwie nicht alle Teile aktualisiert...da sind also noch Fehler drin!

Da ich in VB.net etwas fitter bin, habe ich es hier probiert:

Code:

Imports SldWorks
Imports SwConst

Public Class Form1


    Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
        Dim swModelDoc As ModelDoc2
        Dim oSwAssembly As SldWorks.AssemblyDoc
        Dim swModelDocExt As ModelDocExtension
        Dim openFile As String
        Dim warnings As Integer
        Dim errors As Integer
        Dim swApp As SldWorks.SldWorks

        swApp = CreateObject("SldWorks.Application")

        Dim WarOffen As Boolean = True
        If swApp.Visible = False Then
            swApp.Visible = True
            WarOffen = False
        End If

        oSwAssembly = swApp.ActiveDoc

        Dim liste As New List(Of SldWorks.Component2)
        liste = GetComponents(oSwAssembly, False)

        Dim ListeFertig As New List(Of String)

        For i As Integer = 0 To liste.Count - 1
            Try

                Dim Model As SldWorks.ModelDoc2
                Model = liste(i).GetModelDoc2

                Dim Material As String = ""
                Dim Database As String = ""

                Material = Model.GetMaterialPropertyName2("", Database)
                Debug.WriteLine(Material)

                If Not Material = "" Then
                    Model.SetMaterialPropertyName2("", "MaterialDatenbank", Material)
                    ListeFertig.Add(liste(i).Name2 & " - " & Material)
                End If
            Catch ex As Exception
                'MsgBox(ex.Message)
            End Try
        Next

        TextBox1.Clear()
        For i As Integer = 0 To ListeFertig.Count - 1
            TextBox1.Text += ListeFertig(i) & vbCrLf
        Next

ModelUpdate(oSwAssembly, False)

    End Sub


    ''' <summary>
    ''' Die Function "GetComponents" ermittelt alle in der übergebenen Baugruppe (Parameter oSwAssembly) vorhandenen Komponenten.
    ''' Also alle in dieser Baugruppe verbauten Bauteile und Unterbaugruppen.
    ''' Der Parameter bTopLevelOnly legt fest ob nur die Komponenten der ersten Ebene, also direkte Komponenten der Baugruppe,
    ''' oder alle Komponenten, auch der Unterbaugruppen, ermittelt werden.
    ''' </summary>
    ''' <param name="oSwAssembly"></param>
    ''' <param name="bTopLevelOnly"></param>
    ''' <returns></returns>
    ''' <remarks>Quelle www.mysldworks.de/</remarks>
    Public Function GetComponents( _
                    ByVal oSwAssembly As SldWorks.AssemblyDoc, _
                    ByVal bTopLevelOnly As Boolean) As  _
                    List(Of SldWorks.Component2)
        Try
            Dim oComponentDummyObjekt As Object
            Dim oComponentDummyArray() As Object
            Dim oSwComponents As List(Of SldWorks.Component2)
            oComponentDummyObjekt = _
                oSwAssembly.GetComponents(bTopLevelOnly)
            oComponentDummyArray = _
                CType(oComponentDummyObjekt, [Object]())
            oSwComponents = New List(Of SldWorks.Component2)
            For iComponente As Integer = 0 To _
                            oComponentDummyArray.GetUpperBound(0)
                oSwComponents.Add( _
                    CType(oComponentDummyArray(iComponente),  _
                    SldWorks.Component2))
            Next
            Return oSwComponents
        Catch ex As Exception
            Debug.Assert(False)
            Trace.WriteLine("Fehler: Wo: " & _
                ex.StackTrace & " Was: " & ex.Message)
            Return Nothing
        End Try
    End Function

   ''' <summary>
    ''' Aktualisiert ein geöffnetes Dokument
    ''' durch Neuaufbau und Neuzeichnen in SolidWorks
    ''' </summary>
    ''' <param name="oSwModel">SolidWorks Dokument</param>
    ''' <param name="bEditOnly">
    ''' True = Nur bearbeitete Elemente neu aufbauen,
    ''' welche einen Neuaufbau benötigen
    ''' False = Komplettes Dokument neu aufbauen</param>
    ''' <remarks>Diese Prozedur stütz sich auf die Beispiele
    ''' "Rebuild Model Example (VB)" und
    ''' "Redraw Graphics Example (VB)"
    ''' der SolidWorks API Hilfe</remarks>
    Public Sub ModelUpdate( _
            ByVal oSwModel As SldWorks.ModelDoc2, _
            ByVal bEditOnly As Boolean)
        Try
            'Welche Elemente sollen neu aufgebaut werden
            If bEditOnly Then
                'Nur die Elemente neu aufbauen,
                'welche bearbeitet wurden und
                'somit einen Neuaufbau benötigen
                oSwModel.EditRebuild3()
            Else
                'Das komplette Dokument neu aufbauen
                oSwModel.ForceRebuild3(False)
            End If
            'Darstellung im Dokumentfenster aktualisieren
            oSwModel.GraphicsRedraw2()
        Catch ex As Exception
            Debug.Assert(False)
            Trace.WriteLine("Fehler: Wo: " & _
                ex.StackTrace & " Was: " & ex.Message)
        End Try
    End Sub

End Class



Das scheint sogar zu funktionieren. Nach einem Neuaufbau wurde die Masse neu berechnet.
Auch hier weiß ich noch nicht, wie sich das bei Konfigurationen verhällt.

Übrigens habe ich auf der Form nur eine Textbox mit Multiline = true und scrollbars = both. Hier wird dann das Ergebnis angezeigt.

Vielleicht habt ihr ja noch ideen dazu?

Gruß
Mixie

[edit]
Ich habe das VB.net programm noch ein bisschen verbessert. Ich durchlaufe jetzt jede Konfiguration...und ändere das Material. Ob das wirklich klappt...keine Ahnung. Ich habe den Quelltext oben nicht angepasst, dafür das ganze Projekt mit angehängt 
[/edit]

[Diese Nachricht wurde von Mixie am 12. Jan. 2012 editiert.]

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

Mixie
Mitglied



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

Beiträge: 276
Registriert: 12.10.2007

SolidWorks 2015 SP4 Office Professional
Workgroup PDM<P>

erstellt am: 12. Jan. 2012 11:46    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


SWXTestMaterialnurexe.zip


SWXTestMaterial(2).zip

 
Hallo!

Damit es nicht zu unübersichtlich wird...

Schon wieder eine kleine Verbesserung:
Jetzt auch auf Einzelteilebene möglich

Gruß
Mixie

Wichtiger Hinweis:
Die Benutzung ist auf eigene gefahr! Ich kann für nichts garantieren!

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