| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS |
| |
| Technikerschüler der staatlichen Feintechnikschule Schwenningen zu Besuch bei SolidCAM GmbH in Schramberg |
Autor
|
Thema: Makro um Stückliste auf Excel auslesen (1687 mal gelesen)
|
swx-cad-nutzer Mitglied Konstr
Beiträge: 411 Registriert: 15.06.2011 SWX 2023 SP 4.0 64 bit
|
erstellt am: 31. Mrz. 2017 12:19 <-- editieren / zitieren --> Unities abgeben:
Hallo Zusammen, ich arbeite mit einem Makro welches eine vorhandene Stückliste auf eine Stücklisten-Vorlage schreibt und als Excel ablegt. Das funktioniert soweit ganz gut, allerding liest das Makro nur die Benutzerdefinierten Eigenschaften aus.(hat mal ausgereicht) Dadurch dass unsere "Normteile" konfiguriert sind und die Eigenschaften in den Feldern: Material; Abmessungen; Bemerkungen sich unterscheiden, fehlen diese im Excel. Wie kann das Makro die Benutzerdefinierten Eigenschaften abfragen und bei einem Eintrag diesen Vorrangig in die Excelstückliste übertragen? Leider habe ich keine Programierkenntnisse und mein Elektrotechniker, der davon ein bischen was versteht, wenig Ahnung vom CAD. Anbei das Makro und die Vorlage Danke für Eure Hilfe! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CAD-Maler Mitglied Konstrukteur / CAD-Admin / Mädchen für alles
Beiträge: 720 Registriert: 17.01.2007 SWX 2019 SP5 AutoCAD 2019 Win 10 pro 64 bit Intel(R) Xeon(R) CPU E5-1650 v4 @ 3.60GHz 64GB RAM Nvidia Quadro M5000 SWx EPDM
|
erstellt am: 31. Mrz. 2017 13:17 <-- editieren / zitieren --> Unities abgeben: Nur für swx-cad-nutzer
Zitat: Original erstellt von swx-cad-nutzer: Wie kann das Makro die Benutzerdefinierten Eigenschaften abfragen und bei einem Eintrag diesen Vorrangig in die Excelstückliste übertragen?
Die Funktion GetCustomInfoValue hat ja schon einen Parameter für die Konfiguration dabei. Du musst mit einer Schleife durch die Konfigurationen rödeln, die Konfigurationsnamen auslesen und diese der Funktion jeweils als Parameter mitgeben. Wenn in einer konfig.-spezifischen Eigenschaft was drin steht, diese verwenden. Ansonsten die nächste durchlaufen oder eben die benutzerdefinierte Eigenschaft verwenden. Zitat: Leider habe ich keine Programierkenntnisse und mein Elektrotechniker, der davon ein bischen was versteht, wenig Ahnung vom CAD.
[Ironie] Das sind ja perfekte Vorraussetzungen für ein Vorhaben dieser Art... [/Ironie] Gruß, Jens
------------------ CSWA, CSWP, CSWPA-SM =) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
swx-cad-nutzer Mitglied Konstr
Beiträge: 411 Registriert: 15.06.2011 SWX 2023 SP 4.0 64 bit
|
erstellt am: 03. Apr. 2017 07:40 <-- editieren / zitieren --> Unities abgeben:
Zitat: Original erstellt von CAD-Maler:
Du musst mit einer Schleife durch die Konfigurationen rödeln, die Konfigurationsnamen auslesen und diese der Funktion jeweils als Parameter mitgeben. Wenn in einer konfig.-spezifischen Eigenschaft was drin steht, diese verwenden. Ansonsten die nächste durchlaufen oder eben die benutzerdefinierte Eigenschaft verwenden.
Danke. klar, so würde ich das machen, Aber das wie war die Frage. vllt ist es ja einfach, aber für mich halt nicht Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CAD-Maler Mitglied Konstrukteur / CAD-Admin / Mädchen für alles
Beiträge: 720 Registriert: 17.01.2007 SWX 2019 SP5 AutoCAD 2019 Win 10 pro 64 bit Intel(R) Xeon(R) CPU E5-1650 v4 @ 3.60GHz 64GB RAM Nvidia Quadro M5000 SWx EPDM
|
erstellt am: 03. Apr. 2017 09:25 <-- editieren / zitieren --> Unities abgeben: Nur für swx-cad-nutzer
Schleife zum Durch-die-Konfigs-Rödeln: Code:
Sub main() Dim swApp As SldWorks.SldWorks Dim swModel As SldWorks.ModelDoc2 Dim swConfigMgr As SldWorks.ConfigurationManager Dim swConfig As SldWorks.Configuration Dim instance As IModelDocExtension Dim ConfigName As String Dim value As CustomPropertyManager Dim liste As Variant Dim vConfigNameArr As Variant Dim vConfigName As Variant Dim n As VariantSet swApp = Application.SldWorks Set swModel = swApp.ActiveDoc Set swConfigMgr = swModel.ConfigurationManager Set instance = swModel.Extension vConfigNameArr = swModel.GetConfigurationNames Set swConfig = swConfigMgr.ActiveConfiguration For Each vConfigName In vConfigNameArr Set swConfig = swModel.GetConfigurationByName(vConfigName) Set value = instance.CustomPropertyManager(swConfig.Name) liste = value.GetNames If Not IsEmpty(liste) Then For Each n In liste '### Hier Abfragen der Eigenschaften einfügen ### Next End If Next End Sub
Wie du jetzt noch eine > If Eigenschaft(Konfig.-Name) <> Leer Then Eigenschafts-Variable = Eigenschaft(Konfig.-Name).Value < -Schleife programmierst, werde ich dir jetzt hier nicht erklären. Für VBA-Grundlagen gibt es genügend Bücher, VHS- oder Online-Lehrgänge. (Meine Meinung Und bei so einem zentralen und wichtigen Prozess wie dem Stücklisten-Auslesen sollte man sich nicht zu schade sein, professionelle Hilfe zu holen, wenn man die entsprechenden Kompetenzen nicht im Unternehmen hat. Ihr habt ja sicherlich einen Wartungsvertrag und die Kollegen von den Resellern haben sowieso immer Langeweile. (/Meine Meinung) Gruß, Jens ------------------ CSWA, CSWP, CSWPA-SM =) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
swx-cad-nutzer Mitglied Konstr
Beiträge: 411 Registriert: 15.06.2011 SWX 2023 SP 4.0 64 bit
|
erstellt am: 03. Apr. 2017 11:32 <-- editieren / zitieren --> Unities abgeben:
|
swx-cad-nutzer Mitglied Konstr
Beiträge: 411 Registriert: 15.06.2011 SWX 2023 SP 4.0 64 bit
|
erstellt am: 03. Apr. 2017 12:08 <-- editieren / zitieren --> Unities abgeben:
|
jörg.jwd Ehrenmitglied V.I.P. h.c. CAD-PDM Administrator
Beiträge: 3109 Registriert: 05.11.2003
|
erstellt am: 03. Apr. 2017 12:17 <-- editieren / zitieren --> Unities abgeben: Nur für swx-cad-nutzer
...einfach in dem Beitrag des Users dem du welche geben willst oben rechts je nachdem wieviele er bekommen soll die entsprechende Zahl anklicken. Wenn du einem ganz hinten die 10 mit dem grünen Haken verpasst bekommt sein Beitrag 10 Ü's und einen grünen Haken. (siehe auch hier ------------------ Grüße Jörg da ich weiß daß ich nichts weiß weiß ich immer noch mehr als die die nicht wissen daß sie nichts wissen (weiß nicht von wem) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
swx-cad-nutzer Mitglied Konstr
Beiträge: 411 Registriert: 15.06.2011 SWX 2023 SP 4.0 64 bit
|
erstellt am: 03. Apr. 2017 13:03 <-- editieren / zitieren --> Unities abgeben:
|
jörg.jwd Ehrenmitglied V.I.P. h.c. CAD-PDM Administrator
Beiträge: 3109 Registriert: 05.11.2003
|
erstellt am: 03. Apr. 2017 13:27 <-- editieren / zitieren --> Unities abgeben: Nur für swx-cad-nutzer
...das hört sich an al hättest du in deinem eigenen Beitrag geklickt oder versucht jemand zweimal die gleiche Anzahl zu geben. Das geht nicht. du kannst pro Beitrag von 1 bis zehn alle vergeben aber nur einmal. bei nächsten Beitrag das selbe Spiel. Edit: es kann auch sein dass der 10+ Knopf ganz hinten nicht mehr geht wenn der Beitrag bereits als gelöst gekennzeichnet ist. Ist aber nur ne Vermutung. Das weiß ich nicht wirklich. ------------------ Grüße Jörg da ich weiß daß ich nichts weiß weiß ich immer noch mehr als die die nicht wissen daß sie nichts wissen (weiß nicht von wem) [Diese Nachricht wurde von jörg.jwd am 03. Apr. 2017 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |