| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS |
| |
| Data Disasters Goodbye: With PDM as a Service (PDMaaS), never overwrite data again – saved by version control! |
Autor
|
Thema: Material zuweisen Intern und extern (2599 mal gelesen)
|
whaaw Mitglied Konstrukteur
Beiträge: 12 Registriert: 17.12.2014 SW2015
|
erstellt am: 21. Sep. 2016 14:36 <-- editieren / zitieren --> Unities abgeben:
Guten Tag! Ich habe hunderte Baugruppen mit internen und externen gespeicherten Parts. Ich bin auf der suche nach einem Makro das nichts anderes macht, wie allen parts intern wie extern ein neues Material (DIN Baustahl 1.0037[S235JR]) zuweist. Leider habe ich überhaupt nichts aktuelles gefunden. Die meisten Makros sind über 10 Jahre alt. oder so kompliziert das sie niemand versteht. Es muss auch nicht speichern oder einen ganzen Ordner öffnen. nur in der Vorhanden - geöffneten Baugruppe alle teile auf Baustahl umwandeln. wen ich dan die Baugruppe schliesse wird es automatisch gespeichert nehme ich an. Vielen Dank für die Hilfe im voraus! EDIT: Da dieser Thread bereits sehr weit oben in der Google suche ist, stelle ich hier nochmal das Makro rein. Es ändert alle Materialien in einer Baugruppe und Unterbaugruppe, egal ob intern oder extern abgespeicherte parts! Gegebenfals müssen pfad zur material DB und Materialart angepasst werden. Hier das Beispiel für Baustahl St37
Code: Sub main() Dim swApp As SldWorks.SldWorks Dim swModel As SldWorks.ModelDoc2 Dim swConf As SldWorks.Configuration Dim swRootComp As SldWorks.Component2 Dim nStart As Long Dim bRet As Boolean Set swApp = Application.SldWorks Set swModel = swApp.ActiveDoc Set swConf = swModel.GetActiveConfiguration Set swRootComp = swConf.GetRootComponent3(True) nStart = Timer Debug.Print "File = " & swModel.GetPathName ' Traverse the assembly TraverseComponent swApp, swModel, swRootComp, 1 Debug.Print "" Debug.Print "Time to traverse the assembly = " & Timer - nStart & " seconds" bRet = swModel.ForceRebuild3(False) End Sub Sub TraverseComponent(swApp As SldWorks.SldWorks, swModel As SldWorks.ModelDoc2, swComp As SldWorks.Component2, nLevel As Long) Dim vChildComp As Variant Dim swChildComp As SldWorks.Component2 Dim swCompModelDoc As SldWorks.ModelDoc2 '<-- neu Dim swPart As SldWorks.PartDoc '<-- neu Dim sPadStr As String Dim i As Long For i = 0 To nLevel - 1 sPadStr = sPadStr + " " Next i vChildComp = swComp.GetChildren For i = 0 To UBound(vChildComp) Set swChildComp = vChildComp(i) '# Ab hier neu Set swCompModelDoc = swChildComp.GetModelDoc2 If swCompModelDoc.GetType = swDocPART Then Set swPart = swCompModelDoc swPart.SetMaterialPropertyName2 swChildComp.ReferencedConfiguration, "SolidWorks DIN Materials", "1.0037 (S235JR)" End If '# Bis hier neu Debug.Print sPadStr & "+" & swChildComp.Name2 & " <" & swChildComp.ReferencedConfiguration & ">" TraverseComponent swApp, swModel, swChildComp, nLevel + 1 Next i Set swApp = Application.SldWorks End Sub
[Diese Nachricht wurde von whaaw am 07. Okt. 2016 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Andi Beck Ehrenmitglied V.I.P. h.c. Konstrukteur
Beiträge: 2572 Registriert: 02.10.2006 Firma: SW 2023-4.0 + PDM Prof. Windows 10 Pro 64bit, i9-11900 32 GbRAM, Quadro P2200 Home: SW 2022-5.0 Passungstabelle von Heinz Windows 11 Pro 64bit, i7-12700K, 32 GbRAM, GeForce GTX 1050Ti Samsung C34H892, 3440x1440 Pixel
|
erstellt am: 21. Sep. 2016 18:31 <-- editieren / zitieren --> Unities abgeben: Nur für whaaw
Hallo, also, mir ist kein fertiges Makro bekannt, welches deine Anforderungen erfüllt. Evtl. lässt sich das mit der JobBox von DPS lösen. Ich weiß nicht, welchen Provider du hast. Würde ich das Makro selber schreiben wollen, würde ich dieses Makro von mir als Vorlage verwenden und entsprechend anpassen. http://ww3.cad.de/foren/ubb/Forum2/HTML/023775.shtml Aber Programmierkentnisse sollte man schon ein wenig haben. Grüße, Andi ------------------ Hast du kein Problem? Such dir eins. ( Und löse es ) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
whaaw Mitglied Konstrukteur
Beiträge: 12 Registriert: 17.12.2014 SW2015
|
erstellt am: 22. Sep. 2016 09:24 <-- editieren / zitieren --> Unities abgeben:
Danke für deine Antwort! ein bischen was verstehe ich schon vom programmieren, ob dies für ein SW Makro reicht ist eine andere Frage.^^ da ich ja nur die materialen setzen will müsst eigentlich eine einfache forech schleife reichen oder? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bk.sc Ehrenmitglied V.I.P. h.c. Konstrukteur Sondermaschinenbau
Beiträge: 2776 Registriert: 18.07.2012 -Solid Works 2019 SP5 -Pro Engineer WF 3
|
erstellt am: 22. Sep. 2016 09:42 <-- editieren / zitieren --> Unities abgeben: Nur für whaaw
Hallo, für solche Sachen wird in SWX i.d.R. die Komponenten Traversierung verwendet. Code: Sub main() Dim swApp As SldWorks.SldWorks Dim swModel As SldWorks.ModelDoc2 Dim swConf As SldWorks.Configuration Dim swRootComp As SldWorks.Component2 Dim nStart As Long Dim bRet As Boolean Set swApp = Application.SldWorks Set swModel = swApp.ActiveDoc Set swConf = swModel.GetActiveConfiguration Set swRootComp = swConf.GetRootComponent3(True) nStart = Timer Debug.Print "File = " & swModel.GetPathName ' Traverse the assembly TraverseComponent swApp, swModel, swRootComp, 1 Debug.Print "" Debug.Print "Time to traverse the assembly = " & Timer - nStart & " seconds" End Sub Sub TraverseComponent(swApp As SldWorks.SldWorks, swModel As SldWorks.ModelDoc2, swComp As SldWorks.Component2, nLevel As Long) Dim vChildComp As Variant Dim swChildComp As SldWorks.Component2 Dim swCompConfig As SldWorks.Configuration Dim sPadStr As String Dim i As Long For i = 0 To nLevel - 1 sPadStr = sPadStr + " " Next i vChildComp = swComp.GetChildren For i = 0 To UBound(vChildComp) Set swChildComp = vChildComp(i) 'Hier dann das ModelDoc2 holen dieses zum PartDoc machen 'Aktive Konfiguration holen und dann mit 'PartDoc.SetMaterialPropertyName2 Konfigurationsname, Materialdatenbankname, Materialnamename 'Material setzten Debug.Print sPadStr & "+" & swChildComp.Name2 & " <" & swChildComp.ReferencedConfiguration & ">" TraverseComponent swApp, swModel, swChildComp, nLevel + 1 Next i End Sub
Hier mal ein Beispiel für die Traverse inkl. Traverse durch die Unterbaugruppen aus der API Hilfe kopiert. Gruß Bernd ------------------ --- Man muß nicht alles wissen, man muß nur wissen wo es steht --- Staatlich anerkannte Deutschniete [Diese Nachricht wurde von bk.sc am 22. Sep. 2016 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
whaaw Mitglied Konstrukteur
Beiträge: 12 Registriert: 17.12.2014 SW2015
|
erstellt am: 22. Sep. 2016 10:24 <-- editieren / zitieren --> Unities abgeben:
wow, das ist ja mal richtig aufwendig, bis ich da einen guten Code zusammen habe der mir nicht gleich die ganze SW Installation weglöscht, werde ich das wohl oder übel per Hand machen müssen. Da ich den Support Vertrag von Solidworks habe, glaubt ihr die würden mir sowas programmieren? immerhin 3000.- im Jahr die ich bis jezt noch nie gebruacht habe ^^. vielen dank! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
KMassler Ehrenmitglied V.I.P. h.c. CAD Admin + Mädchen für Alles...
Beiträge: 2675 Registriert: 06.11.2000 SolidWorks Start 1999 ** CSWP 01/2008 ** ------------------ Zuletzt beruflich: - SWX2020 SP5; - SAP/PLM+ECTR; - DriveWorks Pro; - Programmierung: VBA, aktuell Visual Studio 2022/VB.Net ------------------ ab 2024 (privat): Onshape und anderes
|
erstellt am: 22. Sep. 2016 10:35 <-- editieren / zitieren --> Unities abgeben: Nur für whaaw
Zitat: Original erstellt von whaaw: wow, das ist ja mal richtig aufwendig, bis ich da einen guten Code zusammen habe der mir nicht gleich die ganze SW Installation weglöscht, werde ich das wohl oder übel per Hand machen müssen. ...
DAS ist aufwändig? :D :D Wenn du das aufwändig findest, dann rate ich dir: Lass es!
Zitat: Original erstellt von whaaw: ... Da ich den Support Vertrag von Solidworks habe, glaubt ihr die würden mir sowas programmieren? immerhin 3000.- im Jahr die ich bis jezt noch nie gebruacht habe ^^. vielen dank!
Die programmieren dir das gerne, aber nicht im Rahmen des Support Vertrages. Das geht extra. Und was so ein Tag Dienstleistung kostet, weißt du ja vermutlich. ------------------ Klaus www.al-ko.com | mein Gästebuch Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
whaaw Mitglied Konstrukteur
Beiträge: 12 Registriert: 17.12.2014 SW2015
|
erstellt am: 22. Sep. 2016 10:48 <-- editieren / zitieren --> Unities abgeben:
ja kann ich mir vorstellen was das kostet, ja das ist definitiv aufwendig wen man bedenkt das ich nur eine einzige "value" pro part ändern will. Mann müsste meinen das dies einfacher gehn muss wie eine ganze seite Code. $Parts = Active.parts forech part in parts { part.config.material = CrNi } so etwas würde ich als einfach bezeichnen. Aber wie Sie schon geschrieben haben werde ich es einfach lassen. Schon traurig das man bei einem 15.000.- Programm nicht mal "Bulk" aufgaben setzen kann für solche Sachen. Auch wenn man mit VB und Makros alle Möglichkeiten hat, ist das überhaupt nicht benutzerfreundlich. (sry bin gerade ein bischen angepisst) Trozdem Danke euch allen für eure Hilfe und Zeit! mfg Marco Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
whaaw Mitglied Konstrukteur
Beiträge: 12 Registriert: 17.12.2014 SW2015
|
erstellt am: 22. Sep. 2016 10:55 <-- editieren / zitieren --> Unities abgeben:
ja kann ich mir vorstellen was das kostet, ja das ist definitiv aufwendig wen man bedenkt das ich nur eine einzige "value" pro part ändern will. Mann müsste meinen das dies einfacher gehn muss wie eine ganze seite Code. $Parts = Active.parts forech part in parts { part.config.material = CrNi } so etwas würde ich als einfach bezeichnen. Aber wie Sie schon geschrieben haben werde ich es einfach lassen. Schon traurig das man bei einem 15.000.- Programm nicht mal "Bulk" aufgaben setzen kann für solche Sachen. Auch wenn man mit VB und Makros alle Möglichkeiten hat, ist das überhaupt nicht benutzerfreundlich. (sry bin gerade ein bischen angepisst) Trozdem Danke euch allen für eure Hilfe und Zeit! mfg Marco Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
StefanBerlitz Guter-Geist-Moderator IT Admin (CAx)
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: 22. Sep. 2016 12:24 <-- editieren / zitieren --> Unities abgeben: Nur für whaaw
Hallo whaaw, ich verstehe ja, dass du dir das vielleicht anders vorstellst, aber was ist denn an dem Code, den dir Bernd gepostet hat, so schwierig? Zitat: Original erstellt von whaaw: wow, das ist ja mal richtig aufwendig, bis ich da einen guten Code zusammen habe der mir nicht gleich die ganze SW Installation weglöscht, werde ich das wohl oder übel per Hand machen müssen.
Der Code macht genau das, was du gerne hättest, er hat nur sicherheitshalber die Zeile, die wirklich die Materialzuweisung macht auskommentiert und erklärt, was du tun musst, eben um genau den Effekt zu vermeiden, dass sich irgendjemand irgendwas aus dem Internet kopiert und dann wundert, warum seine Platte geputzt wurde. Aufwendig ist das aber nun ganz und gar nicht, und VBA ist eben die Standardprogrammiersprache, die seit über 20 Jahren nicht nur bei SolidWorks, sondern in allen möglichen Programmen wie z.B. auch dem weit verbreiteten Office, benutzt wird. Zitat: Original erstellt von whaaw: Da ich den Support Vertrag von Solidworks habe, glaubt ihr die würden mir sowas programmieren? immerhin 3000.- im Jahr die ich bis jezt noch nie gebruacht habe ^^.
Hm, wenn du einen guten Draht zu denen hast und vielleicht nicht gerade mit dieser Art Argimentation kommst (oder das von deinem Supportvertrag abgedeckt wird) kriegst du das Makro vielleicht für kleines oder gar für lau. Der Code, der oben von Bernd gepostet steht, muss "nur" um ein paar Zeilen erweitert werden, das sollte für einen halbwegs erfahrenen SolidWorks-Makroprogrammierer in dieser einfachen Variante in 30 Minuten erledigt sein. Ciao, Stefan ------------------ Inoffizielle deutsche SolidWorks Hilfeseite http://solidworks.cad.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bk.sc Ehrenmitglied V.I.P. h.c. Konstrukteur Sondermaschinenbau
Beiträge: 2776 Registriert: 18.07.2012 -Solid Works 2019 SP5 -Pro Engineer WF 3
|
erstellt am: 22. Sep. 2016 13:17 <-- editieren / zitieren --> Unities abgeben: Nur für whaaw
Hallo whaaw, hab mal den Code ergänzt, aber wie Stefan schon schrieb kann ich nur sagen das dieser bei mir Funktioniert, der Code ist bis auf die 2 Dim Anweisungen und 5 Zeilen Code aus der SWX Hilfe kopiert, sprich der Aufwand tendiert gegen 0 (Kopieren + Erweitern + Beitrag hier im Brett = ca. 10 min.). In diesem Code werden halt einige Umstände berücksichtigt wie: -Early Binding (Option Explicit) -Welche Konfiguration der Baugruppe ist aktiv -Gibt es evtl. Unterbaugruppen die auch durchgegangen werden wollen -Hat die Komponenten mehrere Konfigurationen -Debug.Prints fürs bessere nachverfolgen beim debuggen Wenn deine Baugruppen nur eine Ebene haben (keine UBG) und deine Komponenten auch keine Konfigurationen besitzten und du auf late Binding gehst könntest du den Code natürlich smaller gestallten aber er wäre halt nicht mehr so sprechend. Code:
Option ExplicitSub main() Dim swApp As SldWorks.SldWorks Dim swModel As SldWorks.ModelDoc2 Dim swConf As SldWorks.Configuration Dim swRootComp As SldWorks.Component2 Dim nStart As Long Dim bRet As Boolean Set swApp = Application.SldWorks Set swModel = swApp.ActiveDoc Set swConf = swModel.GetActiveConfiguration Set swRootComp = swConf.GetRootComponent3(True) nStart = Timer Debug.Print "File = " & swModel.GetPathName ' Traverse the assembly TraverseComponent swApp, swModel, swRootComp, 1 Debug.Print "" Debug.Print "Time to traverse the assembly = " & Timer - nStart & " seconds" End Sub Sub TraverseComponent(swApp As SldWorks.SldWorks, swModel As SldWorks.ModelDoc2, swComp As SldWorks.Component2, nLevel As Long) Dim vChildComp As Variant Dim swChildComp As SldWorks.Component2 Dim swCompModelDoc As SldWorks.ModelDoc2 '<-- neu Dim swPart As SldWorks.PartDoc '<-- neu Dim sPadStr As String Dim i As Long For i = 0 To nLevel - 1 sPadStr = sPadStr + " " Next i vChildComp = swComp.GetChildren For i = 0 To UBound(vChildComp) Set swChildComp = vChildComp(i) '# Ab hier neu Set swCompModelDoc = swChildComp.GetModelDoc2 If swCompModelDoc.GetType = swDocPART Then Set swPart = swCompModelDoc swPart.SetMaterialPropertyName2 swChildComp.ReferencedConfiguration, "_SolidWorks DIN Materials", "1.0037 (S235JR)" End If '# Bis hier neu Debug.Print sPadStr & "+" & swChildComp.Name2 & " <" & swChildComp.ReferencedConfiguration & ">" TraverseComponent swApp, swModel, swChildComp, nLevel + 1 Next i End Sub
Gruß Bernd ------------------ --- Man muß nicht alles wissen, man muß nur wissen wo es steht --- Staatlich anerkannte Deutschniete Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
whaaw Mitglied Konstrukteur
Beiträge: 12 Registriert: 17.12.2014 SW2015
|
erstellt am: 06. Okt. 2016 15:43 <-- editieren / zitieren --> Unities abgeben:
Danke für all die Antworten!, Ich hab nun ein bischen Zeit mir das genauer anzusehen. Das Problem war, ich kann nicht einfach eine Seite Code über meine parts laufen lassen ohne das ich genau weiss was dieses makro macht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
whaaw Mitglied Konstrukteur
Beiträge: 12 Registriert: 17.12.2014 SW2015
|
erstellt am: 06. Okt. 2016 16:01 <-- editieren / zitieren --> Unities abgeben:
Die manespaces musste ich alle ändern zu Code: Dim swApp As SolidWorks.Interop.sldworks.SldWorks Dim swModel As SolidWorks.Interop.sldworks.ModelDoc2 Dim swConf As SolidWorks.Interop.sldworks.Configuration Dim swRootComp As SolidWorks.Interop.sldworks.Component2 Dim nStart As Long Dim bRet As Boolean
habe nun trozdem noch fehlermeldungen im Editor und zwar: Code: Error 2 Name 'swDocPART' is not declared Error 1 Name 'Application' is not declared.
leider keinen erfolg diese fehler zu beheben Bernd's Code sieht nun so aus:
Code: Imports SolidWorks.Interop.sldworks Imports SolidWorks.Interop.swconst Imports System.Runtime.InteropServices Imports System.Diagnostics Imports SolidWorksPartial Class SolidWorksMacro Public Sub main() Dim swApp As SolidWorks.Interop.sldworks.SldWorks Dim swModel As SolidWorks.Interop.sldworks.ModelDoc2 Dim swConf As SolidWorks.Interop.sldworks.Configuration Dim swRootComp As SolidWorks.Interop.sldworks.Component2 Dim nStart As Long Dim bRet As Boolean swApp = Application.SldWorks swModel = swApp.ActiveDoc swConf = swModel.GetActiveConfiguration swRootComp = swConf.GetRootComponent3(True) nStart = Timer Debug.Print("File = " & swModel.GetPathName) ' Traverse the assembly TraverseComponent(swApp, swModel, swRootComp, 1) Debug.Print("") Debug.Print("Time to traverse the assembly = " & Timer - nStart & " seconds") End Sub Sub TraverseComponent(ByVal swApp As SolidWorks.Interop.sldworks.SldWorks, ByVal swModel As SolidWorks.Interop.sldworks.ModelDoc2, ByVal swComp As SolidWorks.Interop.sldworks.Component2, ByVal nLevel As Long) Dim vChildComp As Object Dim swChildComp As SolidWorks.Interop.sldworks.Component2 Dim swCompModelDoc As SolidWorks.Interop.sldworks.ModelDoc2 '<-- neu Dim swPart As SolidWorks.Interop.sldworks.PartDoc '<-- neu Dim sPadStr As String Dim i As Long For i = 0 To nLevel - 1 sPadStr = sPadStr + " " Next i vChildComp = swComp.GetChildren For i = 0 To UBound(vChildComp) swChildComp = vChildComp(i) '# Ab hier neu swCompModelDoc = swChildComp.GetModelDoc2 If swCompModelDoc.GetType = swDocPART Then swPart = swCompModelDoc swPart.SetMaterialPropertyName2(swChildComp.ReferencedConfiguration, "_SolidWorks DIN Materials", "1.0037 (S235JR)") End If '# Bis hier neu Debug.Print(sPadStr & "+" & swChildComp.Name2 & " <" & swChildComp.ReferencedConfiguration & ">") TraverseComponent(swApp, swModel, swChildComp, nLevel + 1) Next i End Sub Public swApp As SldWorks End Class
[Diese Nachricht wurde von whaaw am 06. Okt. 2016 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bk.sc Ehrenmitglied V.I.P. h.c. Konstrukteur Sondermaschinenbau
Beiträge: 2776 Registriert: 18.07.2012 -Solid Works 2019 SP5 -Pro Engineer WF 3
|
erstellt am: 06. Okt. 2016 16:05 <-- editieren / zitieren --> Unities abgeben: Nur für whaaw
Hallo, du kannst ja wie die meisten das ganze wohl machen, einfach mal das Makro Schrittweise durchlaufen lassen (im Macroeditor mit F8) und schauen was da Schritt für Schritt passiert. Mache ich ja auch nicht anders wenn ich Makros aufbaue oder mir Schnippsel irgendwo her kopiere. Macros tue ich immer erst mit Beispieldaten testen evtl. sogar mit beabsichtigten Fehlern in den Daten um z.B. Sonderfälle auch zu testen. Gruß Bernd ------------------ --- Man muß nicht alles wissen, man muß nur wissen wo es steht --- Staatlich anerkannte Deutschniete Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bk.sc Ehrenmitglied V.I.P. h.c. Konstrukteur Sondermaschinenbau
Beiträge: 2776 Registriert: 18.07.2012 -Solid Works 2019 SP5 -Pro Engineer WF 3
|
erstellt am: 06. Okt. 2016 16:08 <-- editieren / zitieren --> Unities abgeben: Nur für whaaw
Hallo nochmal, arbeitest du in VB oder in VBA? Weil das sieht mir eher ein bisschen nach VB aus. Wenn VBA hast du evtl. die Verweise auf deine SWX Version umgebogen? Gruß Bernd ------------------ --- Man muß nicht alles wissen, man muß nur wissen wo es steht --- Staatlich anerkannte Deutschniete Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
whaaw Mitglied Konstrukteur
Beiträge: 12 Registriert: 17.12.2014 SW2015
|
erstellt am: 06. Okt. 2016 16:19 <-- editieren / zitieren --> Unities abgeben:
Ja guter Einwand! da bin ich wohl im falschen Project drinnen gewesen XD, Hab nun deinen Code in eine SWP makro Kopiert, läuft nun auch durch ohne Fehlermeldung alles, nur die Materialien werden irgendwie nicht gesetzt. EDIT: HABE ES GESCHAFFT
geändert habe ich Code: swPart.SetMaterialPropertyName2(swChildComp.ReferencedConfiguration, "_SolidWorks DIN Materials", "1.0037 (S235JR)")
in Code: swPart.SetMaterialPropertyName2 swChildComp.ReferencedConfiguration, "C:/Program Files/SOLIDWORKS Corp/SOLIDWORKS/lang/german/sldmaterials/SolidWorks DIN Materials.sldmat", "1.0037 (S235JR)"
Gibt es noch eine möglichkeit einen neuaufbau (ctrl+Q) im makro mit einzubauen? [Diese Nachricht wurde von whaaw am 06. Okt. 2016 editiert.] [Diese Nachricht wurde von whaaw am 06. Okt. 2016 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bk.sc Ehrenmitglied V.I.P. h.c. Konstrukteur Sondermaschinenbau
Beiträge: 2776 Registriert: 18.07.2012 -Solid Works 2019 SP5 -Pro Engineer WF 3
|
erstellt am: 07. Okt. 2016 07:20 <-- editieren / zitieren --> Unities abgeben: Nur für whaaw
Hallo, das mit der umbenannten Datenbank war mein Fehler, bei dir hätte eigendlich das entfernen des "_" reichen müssen, aber mit dem Kompletten Pfad geht es natürlich auch. Neuaufbau wäre diese Zeile am Ende rein. Code: bRet= swModel.ForceRebuild3(False)
Gruß Bernd ------------------ --- Man muß nicht alles wissen, man muß nur wissen wo es steht --- Staatlich anerkannte Deutschniete [Diese Nachricht wurde von bk.sc am 07. Okt. 2016 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
whaaw Mitglied Konstrukteur
Beiträge: 12 Registriert: 17.12.2014 SW2015
|
erstellt am: 07. Okt. 2016 09:48 <-- editieren / zitieren --> Unities abgeben:
|