| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS |
| |
| Nahe an industriellen Realbedingungen |
Autor
|
Thema: API in Baugruppe Excel Wert auslesen und an Bauteilskizze schicken (1571 / mal gelesen)
|
Bernhard09 Mitglied Konstrukteur Rohrbündelwärmetauscher
Beiträge: 80 Registriert: 09.04.2013 Intel i7-8850 @2,6GHz 32GB Ram Nvidia Quadro P1000 Windows 10 Enterprise 1809 Inventor Professional 2016 SP26 Vault Basic 2016 SoliWorks 2019 Pro.File 8.7
|
erstellt am: 24. Jun. 2019 11:09 <-- editieren / zitieren --> Unities abgeben:
Hallo Gemeinde Erst mal die Gegebenheiten beschreiben. Wir nutzen zur Zeit Inventor 2016 und müssen auf Solidworks 2017 (bald 2019) umsteigen. Im Inventor haben wir uns Baugruppen erstellt die per iLogic eine Excel Datei öffnen in der wir alle Parameter der einzelnen Bauteile berechnen und dann an die einzelnen Parameter der Bauteile schicken. Auch steuern wir Unterdrückungen von Bauteilen und Features darüber. In diesen Excel Dateien steckt viel arbeit und sie erleichtert uns das leben ungemein. Jetzt würden wir gerne diese Excel Dateien weiter nutzen in Solidworks. Ich habe es ja schon hinbekommen das einzelne Bauteile ihre Werte aus dem Excelsheet bekommen aber nie aus einer Baugruppe heraus. Jetzt dachte ich das könnte man vielleicht über die API per VBA oder andere Sprachen lösen aber ich habe von Programmierung gar keine Ahnung. iLogic im Inventor ist ja mehr ein zusammenklicken von Befehlen wie eine richtige Programmierung. Im Grunde würde es mir ja schon reichen wenn ich einen Anfang bekäme den ich dann erweitern könnte. Also Excel Datei per Pfadangabe des Users öffnen. Wert "X" aus Zelle "A24" der Exceldatei an Bauteil "X" das in der Baugruppe "Y" verbaut ist schicken. Ist das viel Aufwand oder ein Problem im allgemeinen???? Wie schon gesagt. Ich habe vom Programmieren überhaupt keine AHNUNG. Über Hilfe, Tips, Kommentare ect. würde ich mich sehr freuen. Danke Grüße Bernhard
------------------ Personalführung ist die Kunst, den Mitarbeiter so schnell über den Tisch zu ziehen das er die Reibungshitze als Nestwärme empfindet. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Lunik Mitglied Konstrukteur
Beiträge: 44 Registriert: 05.07.2017 Hardware -Intel Xeon W2123 -Nvidia Quadro P2000 -32GB RAM --------------------- Software -Windows 10 Professional 64bit -SolidWorks 2018 SP5.0 -Office 2010 --------------------- Sonstiges -SpaceMousePro Wireless -CadMouse Wireless
|
erstellt am: 24. Jun. 2019 11:48 <-- editieren / zitieren --> Unities abgeben: Nur für Bernhard09
Hallo Bernhard, vielleicht wäre das kostenlose DPS MacroSheet was für euch. Damit kannst du auch Teile über Logiken steuern. Du findest es bei DPS unter Servive > DPS Tools.
------------------ Grüße Lukas Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Bernhard09 Mitglied Konstrukteur Rohrbündelwärmetauscher
Beiträge: 80 Registriert: 09.04.2013 Intel i7-8850 @2,6GHz 32GB Ram Nvidia Quadro P1000 Windows 10 Enterprise 1809 Inventor Professional 2016 SP26 Vault Basic 2016 SoliWorks 2019 Pro.File 8.7
|
erstellt am: 24. Jun. 2019 11:55 <-- editieren / zitieren --> Unities abgeben:
Hallo Lunik. Danke für den Hinweis. Das Tool kenne ich schon. Funktioniert auch gut nur kann ich 1. die vorhandenen Sheets nicht benutzen. 2. Unser Chef will sich nicht von Software abhängig machen wo man nicht weiß wie lange sie noch unterstützt wird. Trotzdem Danke Gruß Bernhard ------------------ Personalführung ist die Kunst, den Mitarbeiter so schnell über den Tisch zu ziehen das er die Reibungshitze als Nestwärme empfindet. 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: 24. Jun. 2019 13:37 <-- editieren / zitieren --> Unities abgeben: Nur für Bernhard09
Hallo Bernhard, diese Aufgabe wirst du mit 0 VBA Kenntnissen wahrscheinlich nur schwer gelöst bekommen. MacroSheet ist doch auch nur ein Macro wie deines auch eines werden wird, in der Regel gibt es nur sehr sehr selten Umstellungen in der SWX API die ein Macro unbrauchbar machen. Ich würde MacroSheet oder alternativ DriveWorks für die Aufgabe verwenden. Je nach Komplexität könntest du die Tabelle auch direkt in SWX als Konfigurationstabelle einbinden und die Baugruppe über einbe Layoutskizze steuern die ihre Maße über die Tabelle bekommt. 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 |
Lenzcad Ehrenmitglied Selbständiger Handwerker
Beiträge: 1539 Registriert: 21.10.2003 CPU i7-9700K RAM 64GB Quadro P2200 SW 2022 SW Simulation 2022
|
erstellt am: 24. Jun. 2019 16:34 <-- editieren / zitieren --> Unities abgeben: Nur für Bernhard09
Hallo Bernhard, ich stand vor mehreren Jahren vor dem gleichen Problem. Damals habe ich es folgendermaßen gelöst (soweit ich mich erinnern kann). - In den betreffenden Komponenten eine eingebettete Exceltabelle mit den nötigen Parametern erstellt. - Die Tabelle von Text auf Standard formatiert. - Die Zellen für die Parameterwerte mit den entsprechenden Zellen in der externen "Gesamttabelle" verknüpft. Nachteil: - Werden Werte in der Gesamttabelle geändert oder hinzugefügt, müssen die Tabellen in den betreffenden Komponenten aktualisiert werden. Deshalb habe ich später, die Werte der Gesamttabelle in die einzelnen Tabellen kopiert und die Gesamttabelle gelöscht. Gruß - Lenz
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Bernhard09 Mitglied Konstrukteur Rohrbündelwärmetauscher
Beiträge: 80 Registriert: 09.04.2013 Intel i7-8850 @2,6GHz 32GB Ram Nvidia Quadro P1000 Windows 10 Enterprise 1809 Inventor Professional 2016 SP26 Vault Basic 2016 SoliWorks 2019 Pro.File 8.7
|
erstellt am: 25. Jun. 2019 08:04 <-- editieren / zitieren --> Unities abgeben:
Mhh dann wird mir wohl nichts anderes übrig bleiben wie mich in die Materie einzuarbeiten. Mein Chef weigert sich ein extra Tool einzusetzen. ich werde mal mein Glück versuchen. Danke euch für die Tipps. Ich möchte halt ungern den Excelsheet nochmal neu machen müssen. Da steckt jede menge Zeit drinne. ------------------ Personalführung ist die Kunst, den Mitarbeiter so schnell über den Tisch zu ziehen das er die Reibungshitze als Nestwärme empfindet. 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: 25. Jun. 2019 08:41 <-- editieren / zitieren --> Unities abgeben: Nur für Bernhard09
Hallo Bernhard, bekommst du dann wenigstens eine Schulung für die Thematik VBA bzw. SolidWorks / Excel API? Wenn du explizite Fragen zu einzelnen API Befehlen hast wird dir hier bestimmt gerne geholfen. Paar Tipps für den Einstieg: - Die SWX API Hilfe ist dein Freund auch wenn sie anfangs nicht unbedingt zugänglich ist - Hier und da mal den Macro-Recorder verwenden um einzelne Befehle ausfindig zu machen (der Macro-Recorder zeichnet i.d.R. mehr auf wie nötig manches aber leider auch garnicht) - SolidWorks auf Englisch stellen um Befehle zu finden - Beispiele im WWW oder auf YT anschauen um den allgemeinen Macro-Aufbau in SWX zu verstehen - Ganz viel Kommentare ins Macro schreiben um später nachzuvollziehen was deine Gedanken zu dem Zeitpunkt waren - Als Anfänger mit "Early Binding" arbeiten (Variablen vorab Deklarieren / Open Explicit verwenden) - Nicht frustrieren lassen wenn du anfangs viel Zeit dafür brauchen wirst und manchmal einen irrweg gehst 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 |
Bernhard09 Mitglied Konstrukteur Rohrbündelwärmetauscher
Beiträge: 80 Registriert: 09.04.2013 Intel i7-8850 @2,6GHz 32GB Ram Nvidia Quadro P1000 Windows 10 Enterprise 1809 Inventor Professional 2016 SP26 Vault Basic 2016 SoliWorks 2019 Pro.File 8.7
|
erstellt am: 26. Aug. 2019 09:14 <-- editieren / zitieren --> Unities abgeben:
Nee eine Schulung werde ich sicherlich nicht bekommen. Vielleicht wenn ich hartnäckig genug bin. mal sehen. In der Zwischenzeit habe ich mich mal an einem Teil versucht und auch hinbekommen. Jetzt sollte das ganze noch in einer Baugruppe passieren nur weiß ich jetzt nicht mehr weiter. Ich öffne die Braugruppe in der das Teil verbaut ist und möchte an diesem Teil ein Maß in der Skizze ändern. hier mein Code.
Code:
Option ExplicitDim swApp As SldWorks.SldWorks Dim Teil1 As SldWorks.PartDoc Dim myD1 As SldWorks.Dimension Dim objSource As Excel.Worksheet Dim xl As Excel.Workbook Dim Errors As Long Dim Warnings As Long Dim Name1, Name2 As String Sub main() Set swApp = Application.SldWorks Set Teil1 = swApp.ActiveDoc 'Verbindung zum Excel-Dokument Set xl = GetObject("C:\Users\Weinel.Be\OneDrive - Kelvion Holding GmbH\Desktop\Test\Mappe1.xlsx") 'Auswahl des Tabellenblatts Set objSource = xl.Worksheets("Tabelle1") Set myD1 = Teil1.Parameter("D1@Skizze1") 'bei Eingabe 20 (mm) in Excel wird SolidWorks es als 20.000 mm verarbeiten, da die API-Funktionen auf m ausgelegt sind. 'Siehe API-Hilfeseiten (Change dimensions) myD1.Value = objSource.Range("A2") 'swApp.SendMsgToUser (objSource.cells(2, 2)) Teil1.ClearSelection2 True End Sub
Vielen Dank für eure Zeit. ------------------ Personalführung ist die Kunst, den Mitarbeiter so schnell über den Tisch zu ziehen das er die Reibungshitze als Nestwärme empfindet. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |