Hot News aus dem CAD.de-Newsletter:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  Solidworks Material mit VBA eintragen

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
Autor Thema:   Solidworks Material mit VBA eintragen (339 mal gelesen)
Christoph Weise
Mitglied
Technischer Produktdesigner /Konstruktion


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

Beiträge: 82
Registriert: 22.03.2015

DELL Precision T3610
Intel Xenon E5-1650
16 GB RAM
AMD FirePro W7100 8GB
Win 7 64-bit
SolidWorks 2016

erstellt am: 29. Mrz. 2017 16:16    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 CAD´ler,

um bei uns den Prozess sicherer und einfacher zu machen suche ich eine Möglichkeit SolidWorks ein Material zuzuweisen.
Mir geht es nur um den Materialnamen, die anderen Eigenschaften werden im späteren Verlauf nicht beachtet.

Das Problem dabei ist das das Material nicht in der .sldmat Datenbank vorhanden ist.( Somit scheidet die SetMaterialPropertyName Funktion aus)

Gibt es eine andere Funktion die keine Datenbank voraussetzt (was es wahrscheinlich nicht gibt, da immer andere Parameter hinterlegt werden müssen)?

Oder gibt es eine Funktion von SolidWorks die ein neues Material in einer Datenbank anlegt?

Gruß

Christoph

------------------
Wer einen Fehler findet darf ihn behalten,
wer zwei findet kann beide behalten,
ab fünf Fehler gibs Rabatt :-)

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

ThoMay
Ehrenmitglied V.I.P. h.c.
Konstrukteur



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

Beiträge: 4630
Registriert: 15.04.2007

SWX 2015
Windows 7 x64

erstellt am: 29. Mrz. 2017 22:38    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 Christoph Weise 10 Unities + Antwort hilfreich

Hallo Christoph.

Lege doch einfach eine eigene Mat Datenbank an. (kopieren oder Neue und einzelne mat kopieren)

Solange du die Mat nicht in der Simulation brauchst kannst du auch auf die spez Eigenschaften verzichten.
Halt nur Stahl oder Kunstoff oder..

Gruß
ThoMay

------------------
Hast du Fragen?
Brauchst du
Schaut mal nach im Bereich
Alle Foren => Wissenstransfer.
oder
Konstrukteure Online hier bei CAD.de
Richtig fragen -
Nettiquette - Konstruktionshilfen - Systeminfo - Unities - CAD Freeware - Forenübersicht - 3D Modelle - SolidWorks Videos

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

Christoph Weise
Mitglied
Technischer Produktdesigner /Konstruktion


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

Beiträge: 82
Registriert: 22.03.2015

DELL Precision T3610
Intel Xenon E5-1650
16 GB RAM
AMD FirePro W7100 8GB
Win 7 64-bit
SolidWorks 2016

erstellt am: 30. Mrz. 2017 07:29    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 ThoMay,

eine normale Materialdatenbank haben wir.
In dieser stehen alle Werkstoffe in allen benötigten Ausführungen.

Bei uns werden aber oft z.B. Zylinderstifte oder vorgefertigte eigene Bauteile als Ausgangswerkstoff verwendet. Eine Datenbank mit allen möglichen "Materialen" ist daher nicht erstellbar.

Der Vorteil für uns wäre, das wenn das Material im SolidWorks vergeben ist, die Daten bei der Anlage im SAP-System übernommen werden. Ansonsten müssen die Materialien nach der Anlage im System nachgepflegt werden. Falls man dies vergisst (ca. 5% der Fälle, ansonsten ist ein normaler Werkstoff vergeben) steht am Ende kein Werkstoff auf der Zeichnung.

Gruß Christoph

------------------
Wer einen Fehler findet darf ihn behalten,
wer zwei findet kann beide behalten,
ab fünf Fehler gibs Rabatt :-)

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

HenryV
Mitglied
Konstrukteur, Engineering


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

Beiträge: 564
Registriert: 18.05.2005

SolidWorks 2014 x64 SP5.0
Dell T3600 Workstation
Intel XENON 6x3.2 GHz
NVIDIA Quadro 4000 2 GB
16GB RAM
2x HP LP2065, 20" TFT
Windows 7 Professional x64 SP1
Microsoft Office Pro 2010 SP2
Kaspersky Anti-Virus 10.2.2.10535
Microsoft VB 2010 Express
SpacePilot von 3Dconnexion

erstellt am: 30. Mrz. 2017 11:38    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 Christoph Weise 10 Unities + Antwort hilfreich

Hallo Christoph

Hier meine Variante:
- Eine temporäre Material-DB erstellen
- Material-DB-Pfad in Solidworks hinzufügen
- Material dem Teil zuweisen
- Material-DB-Pfad in Solidworks wieder entfernen
- temporäre Material-DB löschen

Code:
Public swApp As SldWorks.SldWorks
Public swModel As SldWorks.ModelDoc2
Public swPart As SldWorks.PartDoc

Sub main()

    Dim dbname As String
    Dim MatName As String
    Dim MatDbPaths As String
    Dim bRet As Boolean
     
    dbname = Environ("temp") & "\tempMatDb.sldmat"
    MatName = "Mein Material"

    CreateDataBase dbname, MatName

    Set swApp = Application.SldWorks
    Set swModel = swApp.ActiveDoc
    Set swPart = swModel
   
    MatDbPaths = swApp.GetUserPreferenceStringValue(swUserPreferenceStringValue_e.swFileLocationsMaterialDatabases)
       
    bRet = swApp.SetUserPreferenceStringValue(swUserPreferenceStringValue_e.swFileLocationsMaterialDatabases, MatDbPaths & ";" & Left(dbname, InStrRev(dbname, "\") - 1))
    swPart.SetMaterialPropertyName2 "", dbname, MatName
    swApp.SetUserPreferenceStringValue swUserPreferenceStringValue_e.swFileLocationsMaterialDatabases, MatDbPaths

    Kill dbname

End Sub


Sub CreateDataBase(DatabaseName As String, MaterialName As String)

    Dim fso As Object
    Set fso = CreateObject("Scripting.FileSystemObject")
    Dim oFile As Object
    Set oFile = fso.CreateTextFile(DatabaseName)
    oFile.WriteLine "<?xml version=""1.0"" encoding=""UTF-16"" standalone=""no""?>"
    oFile.WriteLine "<mstns:materials xmlns:mstns=""http://www.solidworks.com/sldmaterials"" xmlns:msdata=""urn:schemas-microsoft-com:xml-msdata"" xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"" xmlns:schemaLocation=""http://matwebtest.matweb.com/sw/XSD/sldmaterials.xsd"" xmlns:sldcolorswatch=""http://www.solidworks.com/sldcolorswatch"" version=""2008.03"">"
    oFile.WriteLine "    <curves id=""curve0"">"
    oFile.WriteLine "        <point x=""1.0"" y=""1.0""/>"
    oFile.WriteLine "        <point x=""2.0"" y=""1.0""/>"
    oFile.WriteLine "        <point x=""3.0"" y=""1.0""/>"
    oFile.WriteLine "    </curves>"
    oFile.WriteLine "  <classification name=""Stahllegierungen"">"
    oFile.WriteLine "      <material name=""" & MaterialName & """ description="""" propertysource="""" appdata="""">"
    oFile.WriteLine "          <xhatch name=""ISO (Stahl)"" angle=""0"" scale=""1""/>"
    oFile.WriteLine "          <physicalproperties>"
    oFile.WriteLine "              <EX displayname=""E-Modul"" value=""2.1E+011"" usepropertycurve=""0""/>"
    oFile.WriteLine "              <NUXY displayname=""Poissonzahl"" value=""0.29"" usepropertycurve=""0""/>"
    oFile.WriteLine "              <GXY displayname=""Schubmodul"" value=""7.7E+010"" usepropertycurve=""0""/>"
    oFile.WriteLine "              <ALPX displayname=""Wärmeausdehnungskoeffizient"" value=""1.5e-005"" usepropertycurve=""0""/>"
    oFile.WriteLine "              <DENS displayname=""Massendichte"" value=""7850"" usepropertycurve=""0""/>"
    oFile.WriteLine "              <KX displayname=""Wärmeleitfähigkeit"" value=""47"" usepropertycurve=""0""/>"
    oFile.WriteLine "              <C displayname=""Spezifische Wärmekapazität"" value=""420"" usepropertycurve=""0""/>"
    oFile.WriteLine "              <SIGXT displayname=""Zugfestigkeit"" value=""540000000"" usepropertycurve=""0""/>"
    oFile.WriteLine "              <SIGYLD displayname=""Fließgrenze"" value=""355000000"" usepropertycurve=""0""/>"
    oFile.WriteLine "          </physicalproperties>"
    oFile.WriteLine "          <shaders>"
    oFile.WriteLine "              <pwshader2 name=""Farbe"" path=""\color.p2m""/>"
    oFile.WriteLine "          </shaders>"
    oFile.WriteLine "          <swatchcolor RGB=""c6c6d1"">"
    oFile.WriteLine "              <sldcolorswatch:Optical Ambient=""1.000000"" Transparency=""0.000000"" Diffuse=""1.000000"" Specularity=""0.700000"" Shininess=""0.300000"" Emission=""0.000000""/>"
    oFile.WriteLine "          </swatchcolor>"
    oFile.WriteLine "          <custom/>"
    oFile.WriteLine "      </material>"
    oFile.WriteLine "  </classification>"
    oFile.WriteLine "</mstns:materials>"
   
    oFile.Close
    Set fso = Nothing
    Set oFile = Nothing

End Sub


Gruss Andreas

------------------
21 ist nur die halbe Antwort.

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

Lueghi
Mitglied



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

Beiträge: 203
Registriert: 01.07.2005

erstellt am: 30. Mrz. 2017 12: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 Christoph Weise 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von Christoph Weise:
Hallo ThoMay,

eine normale Materialdatenbank haben wir.
In dieser stehen alle Werkstoffe in allen benötigten Ausführungen.

Bei uns werden aber oft z.B. Zylinderstifte oder vorgefertigte eigene Bauteile als Ausgangswerkstoff verwendet. Eine Datenbank mit allen möglichen "Materialen" ist daher nicht erstellbar.

...


Wir haben uns so beholfen, dass wir in unserer Materialdatenbank eigene, allgemein gehaltene Material-Einträge (Aluminium, Stahl, Edelstahl, etc.) gemacht haben und dann ganz normal in SolidWorks das Material zuweisen. Damit bleibt man in der Systematik und muss nicht für alles eine eigenen Spezifikation anlegen. Bei uns ist das absolut ausreichend.

------------------
Gruß Stefan

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

Christoph Weise
Mitglied
Technischer Produktdesigner /Konstruktion


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

Beiträge: 82
Registriert: 22.03.2015

DELL Precision T3610
Intel Xenon E5-1650
16 GB RAM
AMD FirePro W7100 8GB
Win 7 64-bit
SolidWorks 2016

erstellt am: 03. Apr. 2017 11: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

@Andreas:  Funktioniert einwandfrei und ist genau das was ich brauche 

@Lueghi Allgemeine Einträge wie Stahl und Alu haben wir auch, da darf der Fertiger das nehmen,was ihm gerade in die Finger fällt. In diesem Fall benötige ich aber spezifische Angaben wo ein bestimmter Werkstoff verwendet werden muss oder bzw. ein bestimmtes Kaufteil nachgearbeitet werden muss. Diese Kaufteile können natürlich variieren.

Schlussendlich Problem gelöst 

------------------
Wer einen Fehler findet darf ihn behalten,
wer zwei findet kann beide behalten,
ab fünf Fehler gibs Rabatt :-)

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)2017 CAD.de