| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| Auf dem Weg zur digitalen Auftragsmappe. , ein Anwenderbericht
|
Autor
|
Thema: Konturlänge per Formel berechnen, VBA (3097 mal gelesen)
|
Nicola2 Mitglied
Beiträge: 4 Registriert: 23.01.2015
|
erstellt am: 23. Jan. 2015 14:37 <-- editieren / zitieren --> Unities abgeben:
Hallo! ich bin neu hier und starte mit folgender Frage: Zur Kalkulation von Schnittkosten benötige ich die Summe aller Konturlängen eines Blechbauteils. Durch die Forensuche bin ich bei einem Beitrag namens "Physikalische Eigenschaften in Parameterliste benutzen" auf die Lösung gestoßen. Dort wurde ein VBA-Skript gepostet, welches genau das tun sollte, was ich mir vorstelle. (Skript von daywa1k3r):
Code:
Public Sub Kontur() Dim oPart As PartDocument Dim oFace As Face Dim oThicknessParam As Parameter Dim oSheetMetalCompDef As SheetMetalComponentDefinition Dim dArea As Double Dim dVolume As Double Dim dThickness As Double Dim dContour As Double ' Aktives Dokument holen Set oPart = ThisApplication.ActiveDocument dArea = 0 For Each oFace In oPart.ComponentDefinition.SurfaceBodies(1).Faces ' Gesamtfläche berechnen dArea = dArea + oFace.Evaluator.Area Next 'Volumen berechnen dVolume = oPart.ComponentDefinition.SurfaceBodies(1).Volume(0.01) Set oSheetMetalCompDef = oPart.ComponentDefinition Set oThicknessParam = oSheetMetalCompDef.ActiveSheetMetalStyle.Thickness ' Blechstärke berechnen dThickness = oThicknessParam.ModelValue ' Kontur berechnen dContour = (dArea - (2 * (dVolume / dThickness))) / dThickness MsgBox ("Fläche: " & dArea & vbCrLf & _ "Volumen: " & dVolume & vbCrLf & _ "Blechstärke: " & dThickness & vbCrLf & vbCrLf & _ "Kontur: " & dContour) End Sub
Leider scheint das aus 2006 stammende Skript mit meiner Inventor-Version (Professional 2015) nicht zu funktionieren. Bei "Set oThicknessParam = oSheetMetalCompDef.ActiveSheetMetalStyle.Thickness" kommt im VBA-Editor eine Fehlermeldung "Typen unverträglich". Kann mir jemand dabei helfen, das Skript zum Laufen zu bringen? Ich bin leider nicht so sehr bewandert wenn es um VBA geht.. Vielen Dank im voraus, Nicola Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied
|
erstellt am: 23. Jan. 2015 15:10
- Inhaltsloser Beitrag - |
Nicola2 Mitglied
Beiträge: 4 Registriert: 23.01.2015
|
erstellt am: 23. Jan. 2015 15:22 <-- editieren / zitieren --> Unities abgeben:
Hallo Jürgen, vielen Dank für die schnelle Antwort. Das Skript hatte ich auch schon gesehen und getestet, aber bei abgewickelten Blechteilen rechnet es fehlerhaft, wahrscheinlich da die Oberfläche des Teils dann in mehrere Flächen aufgeteilt wird (die man dann auch alle selektieren muss). Die im alten Beitrag angegebene (ziemlich elegante) Formel greift nur auf Gesamtoberfläche, Volumen und Blechstärke zu, da muss ich nichts selektieren und das Ergebnis passt immer. Grüße, Nicola Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied
|
erstellt am: 23. Jan. 2015 17:30
- Inhaltsloser Beitrag - |
Roland Schröder Moderator Dr.-Ing. Maschinenbau, Entwicklung & Konstruktion von Spezialmaschinen
Beiträge: 13438 Registriert: 02.04.2004 IV 2024
|
erstellt am: 24. Jan. 2015 00:18 <-- editieren / zitieren --> Unities abgeben: Nur für Nicola2
|
Torsten Niemeier Ehrenmitglied V.I.P. h.c. Maschinenbau Ingenieur
Beiträge: 3760 Registriert: 21.06.2001 "ZUSE I.36", 8 BIT, 32 Lämpchen, Service-Ölkännchen "ESSO-Super", Software: AO auf Kuhlmann-Parallelogramm-Plattform ** CSWP 04/2011 ** ** CSWE 08/2011 **
|
erstellt am: 24. Jan. 2015 02:52 <-- editieren / zitieren --> Unities abgeben: Nur für Nicola2
|
daywa1k3r Ehrenmitglied V.I.P. h.c. Softwareentwickler
Beiträge: 3497 Registriert: 01.08.2002 Desktop: 3.3GHz;8GB;SSD OCZ Vertex 3;Gainward Phantom GTX570 Laptop: Alienware m17x Win7, Inventor2012 64Bi
|
erstellt am: 25. Jan. 2015 09:42 <-- editieren / zitieren --> Unities abgeben: Nur für Nicola2
Guten Morgen! Es war nur eine Kleinigkeit - das Objektmodel wurde seitens Autodesk ein wenig geändert. Code:
' Das Makro gibt Fläche, Volumen, Blechstärke und Konturlänge ' eines Blechteils aus. Die Kontur wird nicht über die Summe ' von einzelnen Kanten, sondern mittels Formel berechnen ' (dArea - (2 * (dVolume / dThickness))) / dThickness' FX64 daywa1k3r, Igor Zupevc, 25.01.2015 >> 2x0, 2x1, 2x2 und 2x5 -> hübsch :) << Public Sub BlechteilParameter() Dim oPart As PartDocument Dim oFace As Face Dim oThicknessParam As Parameter Dim oSheetMetalCompDef As SheetMetalComponentDefinition Dim dArea As Double Dim dVolume As Double Dim dThickness As Double Dim dContour As Double ' Aktives Dokument holen Set oPart = ThisApplication.ActiveDocument dArea = 0 For Each oFace In oPart.ComponentDefinition.SurfaceBodies(1).Faces ' Gesamtfläche berechnen dArea = dArea + oFace.Evaluator.Area Next 'Volumen berechnen dVolume = oPart.ComponentDefinition.SurfaceBodies(1).Volume(0.01) Set oSheetMetalCompDef = oPart.ComponentDefinition Set oThicknessParam = oSheetMetalCompDef.Thickness ' Blechstärke berechnen dThickness = oThicknessParam.ModelValue ' Kontur berechnen dContour = (dArea - (2 * (dVolume / dThickness))) / dThickness MsgBox ("Fläche:" & vbTab & vbTab & Round(dArea, 2) & " cm^2" & vbCrLf & _ "Volumen:" & vbTab & vbTab & Round(dVolume, 2) & " cm^3" & vbCrLf & _ "Blechstärke:" & vbTab & Round(dThickness, 2) & " cm" & vbCrLf & vbCrLf & _ "Konturlänge:" & vbTab & Round(dContour, 2) & " cm") End Sub
------------------ Grüße Igor FX64 Software Solutions - Inventor Tools FX64 LambdaSpect - Lichtsimulation mit Autodesk Inventor Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Nicola2 Mitglied
Beiträge: 4 Registriert: 23.01.2015
|
erstellt am: 26. Jan. 2015 07:50 <-- editieren / zitieren --> Unities abgeben:
Guten Morgen allerseits! Vielen Dank an alle für die schnelle und freundliche Hilfe und speziell an Igor, das aktualisierte Skript funktioniert perfekt! Viele Grüße und eine schöne Woche, Nicola Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Andy1983 Mitglied Techniker Maschinenbau HF
Beiträge: 79 Registriert: 15.01.2014
|
erstellt am: 02. Nov. 2016 16:24 <-- editieren / zitieren --> Unities abgeben: Nur für Nicola2
|
AnMay Mitglied Konstrukteur MB
Beiträge: 633 Registriert: 16.02.2008 Inventor 2019 Inventor 2023
|
erstellt am: 02. Nov. 2016 18:22 <-- editieren / zitieren --> Unities abgeben: Nur für Nicola2
|