| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| PNY WIRD VON NVIDIA ZUM HÄNDLER DES JAHRES GEWÄHLT, eine Pressemitteilung
|
Autor
|
Thema: Parameterstudie automatisch und in Excel speichern (3221 / mal gelesen)
|
Roland Schröder Moderator Dr.-Ing. Maschinenbau, Entwicklung & Konstruktion von Spezialmaschinen
Beiträge: 13438 Registriert: 02.04.2004 IV 2024
|
erstellt am: 23. Dez. 2017 14:52 <-- editieren / zitieren --> Unities abgeben:
Moin! Ich weiß, dass es schon ähnliche Threads gab, aber ich finde nichts Passendes. Ich will mit dem CAD ausprobieren, bei welchem [Neigungs-]Winkel ein bestimmtes Flüssigkeitsvolumen in der Ecke eines vorgegebenen Behälters die geringste [Gesamt-]Oberfläche hat. Das parametrische Modell dazu habe ich schon gemacht, und nun möchte ich Folgendes programmieren: ---------------------- Schleife Kippwinkel von Start- bis Endwert Schleife Füllhöhe von Start- bis Endwert Kippwinkel und Füllhöhe neu setzen Modell aktualisieren Physikalische iProperties aktualisieren Volumen und Oberfläche auslesen und eintragen in eine [wenn möglich...] zweidimensionale Tabelle (Excel) Schleife Füllhöhe Ende Schleife Kippwinkel Ende -------------------------- Die Start- und Endwerte und der Dateiname für die Tabelle können Konstanten im Programm sein, denn ich brauch das jetzt ja nur ein Mal und kann die Werte direkt im Code anpassen. Ich weiß bloß nicht, welche Programmierumgebung ich dafür am besten nehme und wie ich anfangen soll. Das Codebeispiel aus dem gesuchten Thread, wenn ich ihn denn wüsste, wäre ja schon mal ein Ansatz. ------------------ Roland www.Das-Entwicklungsbuero.de It's not the hammer - it's the way you hit! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Andi Spieler Mitglied Mechaniker
Beiträge: 1390 Registriert: 12.12.2002 SOLIDWORKS 2019SP2
|
erstellt am: 23. Dez. 2017 21:02 <-- editieren / zitieren --> Unities abgeben: Nur für Roland Schröder
Hallo Roland, vielleicht geht das bei Dir auch: • Excel Tabelle als OLE-Objekt einfügen. • In der Tabelle ist ein VBA-Makro das in diesem Beispiel den Massenmittelpunkt, X und Y-Koordinate und den Bohrungsdurchmesser ausliest. • Über den Excel-Solver werden die 3 Parameter iterativ optimiert, so dass der Massenmittelpunkt gegen Null geht. Randbedingungen: Bohrungsdurchmesser <32mm, Bohrung auf Teilkreis >120 und <160mm • Das wird anschließend zurück in die Excel-Tabelle geschrieben. Viele Grüße Andi
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
KraBBy Mitglied Maschinenbau-Ingenieur
Beiträge: 721 Registriert: 19.09.2007 Inventor Professional 2020 WinX
|
erstellt am: 24. Dez. 2017 14:46 <-- editieren / zitieren --> Unities abgeben: Nur für Roland Schröder
|
Roland Schröder Moderator Dr.-Ing. Maschinenbau, Entwicklung & Konstruktion von Spezialmaschinen
Beiträge: 13438 Registriert: 02.04.2004 IV 2024
|
erstellt am: 24. Dez. 2017 15:51 <-- editieren / zitieren --> Unities abgeben:
Moin! Danke Andi, für das Beispiel, das ich erst mal verstehen musste. Excel führt also die Iteration aus, muss aber in jedem Schritt das CAD fragen, was mit den veränderten Parametern rauskommt. Ob und wie das mit IV geht, weiß ich nicht. Außerdem müsste ich das Verfahren für mein Vorhaben mehrfach schachteln. Meine Kernfage ist, etwas konkreter erklärt, bei welchem Neigungswinkel eines Gefäßes ein bestimmtes, kleines, darin in eine Ecke zusammenfließendes Volumen die geringste Oberfläche hat. Das Gefäß ist eine kleine zylindrische Kammer. Das fragliche Volumen ist ein kleines Rest-Luftvolumen, eine Luftblase, in der ansonsten flüssigkeitsgefüllten Kammer. Die Luftblase ist so klein, dass sie die Stirnfläche der Kammer nur teilweise bedeckt. Durch Schrägstellung soll die Luftblase so an der kreisförmigen Zylinderkante konzentriert werden, dass die Gesamtoberfläche der Blase minimimal wird. Es gibt für jede Kombination von Luftblasenvolumen zu Kammerdurchmesser einen Neigungswinkel, bei dem das der Fall ist. Die geometrische Form der Luftblase ist dann (abgesehen von den rundherum sich einstellenden Menisken) ein schräger Zylinderabschnitt, genannt "Zylinderhuf" (s. z. B. Bronstein-Semendjajew, Taschenbuch der Mathematik, S. 199). Das erste Problem ist, dass es einer nicht ganz so einfachen Rechnung bedürfte, diese Form bei einem bestimmten Winkel mit einem bestimmten Volumen zu erzeugen. Als nächstes müsste man dann die Oberfläche dieses Körpers in Abhängigkeit vom Neigungswinkel formulieren und ein Minimum dieser Funktion ermitteln. Das geht vermutlich auch analytisch, und wer gut in Mathe ist, darf mir gern bei der Lösung helfen. Ich bin da etwas aus der Übung, und wollte es lieber numerisch lösen. Das würde dann nämlich auch für Formen gehen, die analytisch nicht mehr zu packen sind. Anstatt das Volumen parametrisch vorzugeben, wollte ich deshalb zu jedem Neigungswinkel eine kleine Reihe verschiedener Höhen der Luftlbase rechnen, so dass es ein Volumen gibt, das in jeder der zu jedem Neigungswinkel jeweils gerechnten Reihen vorkommt, im Beispiel ca. 60 mm³. Dann könnte ich die zu diesem Volumen gehörigen Oberflächen (im Beispiel ca. 138 mm²), bei verschiedenen Winkeln in ein Diagramm eintragen und damit sowohl sehen, wo das Minimum ist, als auch, wie stark Abweichungen vom "idealen" Winkel die Oberfläche vergrößern würde, also wie wichtig diese Frage überhaupt ist. Zum Spielen anbei meine Datei (IV 2018) mit einem die Luftblase darstellenden CAD-Modell und ein Bild davon. ------------------ Roland www.Das-Entwicklungsbuero.de It's not the hammer - it's the way you hit! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Roland Schröder Moderator Dr.-Ing. Maschinenbau, Entwicklung & Konstruktion von Spezialmaschinen
Beiträge: 13438 Registriert: 02.04.2004 IV 2024
|
erstellt am: 24. Dez. 2017 15:58 <-- editieren / zitieren --> Unities abgeben:
|
Andi Spieler Mitglied Mechaniker
Beiträge: 1390 Registriert: 12.12.2002 SOLIDWORKS 2019SP2
|
erstellt am: 25. Dez. 2017 17:55 <-- editieren / zitieren --> Unities abgeben: Nur für Roland Schröder
Hallo Roland, hab‘ Deine Aufgabe in „meinem“ CAD versucht zu lösen. Zylinder AD=22mm, ID=20mm, L=60mm In der Baugruppe kippbar gelagert, Ausgangswinkel=15 Grad, Füllhöhe =15mm Volumen des Zylinderhuts= 65mm^3, Oberfläche= 170mm^2 Es gibt in der Baugruppe 2 Favoriten (Parameter): Höhe und Winkel. Außerdem zeigen 2 Sensoren das Volumen und die Oberfläche des Zylinderhuts. Nun kann man an den 2 Parametern zupfen und in den Sensoren die Ergebnisse sehen. In der Software gibt es seit 2010 die Konstruktionsstudien, da können Parameter unter Randbedingungen und Zielvorgaben optimiert werden. Die Ergebnisse lassen sich als CSV-Tabellen exportieren, auch Diagramme werden angezeigt. Ich weiß nicht ob es eine bestimmte Winkel-Grundlage des Behälters gibt, oder ob dieser aus der waagrechten Lage starten soll. Man kann mehrere Studien anlegen oder einfach mit den Parametern spielen, um die gewünschten Reihen zu erstellen. Die hier gezeigte Optimierung startet bei einem Winkel von 15 Grad und einer Füllhöhe von 16 mm. Übrigens gibt es für den Zylinderhut eine eigene Funktion „Schneiden“, die das innerer Volumen aus dem Hohlzylinder und der Füllstandsebene automatisch erstellt. Viele Grüße Andi Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Frank_Schalla Ehrenmitglied CAD_SYSTEMBETREUER
Beiträge: 1732 Registriert: 06.04.2002 DELL M6800 Cad Admin Methodikentwickler 3D
|
erstellt am: 25. Dez. 2017 19:46 <-- editieren / zitieren --> Unities abgeben: Nur für Roland Schröder
Hi Roland haben ja alle im Moment frei und irgendwiehat mich das Video der Kubus Kollegen angeregt. Hier mal die Inventor Variante Gelöst über ILOGIC. Die Excel Datei im Anhang bitte nach C:\TEMP\ kopieren. Innerhalb der IV Datei (2018) gibt es die ILOGIC Regel ROLAND_CAD_DE Die dann einfach mal ausführen. Es wird als Ergebniss eine neue Excel Datei unter C:\TEMP\ erstellt. Da mir nicht ganz klar war welche parameter du untersuchen willst habe ich den Winkel und die Höhe (Neue Parametername sind KIPP_W & FUELL_H) verwendet. Dies kannst du aber beliebig anpassen. Wichtig sind noch am Anfang der Regel wo du ein paar Grenzwerte und Schrittweiten definieren kannst. ************** Dim VAR_FUELL_H_MAX = 5 Dim VAR_FUELL_H_MIN = 1 Dim VAR_FUELL_H_STEP_SIZE = 0.5 Dim VAR_KIPP_W_MAX = 60 Dim VAR_KIPP_W_MIN = 40 Dim VAR_KIPP_W_STEP_SIZE = 1 *********************** Im Anhang noch ein Video welches die Vorgehensweise zeigt
[Diese Nachricht wurde von Frank_Schalla am 26. Dez. 2017 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Roland Schröder Moderator Dr.-Ing. Maschinenbau, Entwicklung & Konstruktion von Spezialmaschinen
Beiträge: 13438 Registriert: 02.04.2004 IV 2024
|
erstellt am: 27. Dez. 2017 15:19 <-- editieren / zitieren --> Unities abgeben:
Moin und Vielen Dank an Frank! Damit konnte ich schnell loslegen und mir das anpassen. Ich habe das Schreiben der Tabelle auf die Zeilen mit ungefähr dem gewünschten Volumen eingeschränkt. Nun würde ich gerne auch noch die danach folgenden Berechnungsschritte weglassen. Frage also: (Wie) Kann man dann die innere For-Next-Schleife abbrechen und in die nächste Runde der äußeren For-Next-Schleife springen? Der Code sieht inzwischen so aus: Code: Parameter.UpdateAfterChange = True myXLS_File = "C:\Temp\ROLAND_CAD_DE.xlsx" myName = ThisDoc.PathAndFileName(False) RuleParametersOutput InventorVb.DocumentUpdate() Dim Time As DateTime = DateTime.Now Dim Format As String = "yyyyMdHHmm" Dim varname =( "C:\temp\" & Time.ToString(Format) & ".xlsx") My.Computer.FileSystem.CopyFile (myXLS_File, varname, True) GoExcel.Open(varname, "ERGEBNISSE") GoExcel.CellValue("B1") = (myName) zeile = 3 r = 999 'Oberflächenverhältnis Reset For wv = 45 To 55 Step 1 For yv = 2.620 To 2.635 Step 0.001 y = yv w = wv RuleParametersOutput() InventorVb.DocumentUpdate(True) If (iProperties.Volume) > 59.9 And (iProperties.Volume) < 60.1 GoExcel.CellValue("A"&Zeile) = (w) GoExcel.CellValue("B"&Zeile) = (y) GoExcel.CellValue("C"&Zeile) = (iProperties.Volume) GoExcel.CellValue("D"&Zeile) = (iProperties.Area) rv= (iProperties.Area)/(iProperties.Volume) GoExcel.CellValue("E"&Zeile) = rv Zeile = Zeile + 1 If rv < r Then r=rv End If End If Next Next GoExcel.Save GoExcel.Close MessageBox.Show("Best Value r = " & r & " at " & w & " ° and " & y & " mm")
------------------ Roland www.Das-Entwicklungsbuero.de
It's not the hammer - it's the way you hit! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ruzy5624 Mitglied Konstruktionsleiter / staatl. gepr. Techniker
Beiträge: 280 Registriert: 01.07.2015 Product Design Suite 2018 Ultimate Visual Studio 2017 Windows 10 Pro Intel Xeon E3-1245 v5 @ 3,5GHz Nvidia Quadro M4000 8GB RAM 32GB 2x 24" Monitore FullHD SpaceMouse Pro
|
erstellt am: 27. Dez. 2017 17:14 <-- editieren / zitieren --> Unities abgeben: Nur für Roland Schröder
Moin Roland, ohne den Code jetzt genauer betrachtet zu haben... Eine For-Next-Schleife kann jederzeit durch ein "Exit For" vorzeitig verlassen werden. Ohne Probleme kann dies auch an eine If-Bedingung geknüpft werden, zum Beispiel so: Code: If meinWert < 10 then Exit For End If
Ich hoffe dies hilft dir schon weiter. ------------------ Mit Besten Grüßen Marcel Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Frank_Schalla Ehrenmitglied CAD_SYSTEMBETREUER
Beiträge: 1732 Registriert: 06.04.2002 DELL M6800 Cad Admin Methodikentwickler 3D
|
erstellt am: 27. Dez. 2017 17:45 <-- editieren / zitieren --> Unities abgeben: Nur für Roland Schröder
|
Frank_Schalla Ehrenmitglied CAD_SYSTEMBETREUER
Beiträge: 1732 Registriert: 06.04.2002 DELL M6800 Cad Admin Methodikentwickler 3D
|
erstellt am: 27. Dez. 2017 18:41 <-- editieren / zitieren --> Unities abgeben: Nur für Roland Schröder
|
Andi Spieler Mitglied Mechaniker
Beiträge: 1390 Registriert: 12.12.2002 SOLIDWORKS 2019SP2
|
erstellt am: 27. Dez. 2017 20:27 <-- editieren / zitieren --> Unities abgeben: Nur für Roland Schröder
Danke Frank , es klappt mit Deinem Modell in CUBUS-CAD . Nur ist bei mir beim Winkel 52 Grad und Füllhöhe 0,5 mm die Oberfläche noch etwas kleiner. Deine Werte bei 48 Grad und 0,5 mm habe ich auch gefunden. Übrigens gibt es auch viele Dinge die in IV schöner sind als in CUBUS-CAD. Viele Grüße AndiS
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Roland Schröder Moderator Dr.-Ing. Maschinenbau, Entwicklung & Konstruktion von Spezialmaschinen
Beiträge: 13438 Registriert: 02.04.2004 IV 2024
|
erstellt am: 27. Dez. 2017 21:39 <-- editieren / zitieren --> Unities abgeben:
|