Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  Inventor VBA
  Volumenkörperliste im ipt

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte
Autor Thema:  Volumenkörperliste im ipt (820 mal gelesen)
Roland Schröder
Ehrenmitglied V.I.P. h.c.
Dr.-Ing. Maschinenbau, Entwicklung & Konstruktion von Spezialmaschinen



Sehen Sie sich das Profil von Roland Schröder an!   Senden Sie eine Private Message an Roland Schröder  Schreiben Sie einen Gästebucheintrag für Roland Schröder

Beiträge: 13115
Registriert: 02.04.2004

AIP2013SP2.2 XPproSP2 MS-IntelliMouse-Optical SpacePilot
DellM4600 2,13GHz 2GB FxGo1400 1920x1200
am Dock Dell2711

erstellt am: 21. Sep. 2021 12:50    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Moin!

Ich würde gern ein kleines Modul erstellen, das mir alle Volumenkörper eines ipt mit dem jeweiligen Volumen auflistet.

Ich stelle mir das ungefähr wie folgt vor, wobei ich sicher bin, dass das so noch nicht funktioniert (vor allem bei den Fragezeichen  . Ich wäre also für Tips und Korrekturen sehr dankbar


Public Sub VolumesAndProperties()
     
    If ThisApplication.ActiveDocumentType = kPartDocumentObject Then
       
        Dim oPart As PartDocument
        Set oPart = ThisApplication.ActiveDocument
        Dim n as integer
        n=oPart.ComponentDefinition.Volumes.Count
       
        Dim oVol as Volume
        Dim V(n) As ...????...
        Dim Name(n) As ...????...
        Dim i as integer
        i=1

        If oPart.ComponentDefinition.Volumes.Count > 0 Then
            For Each oVol In oPart.ComponentDefinition.Volumes
                V(i)= oVol.Volume
                Name(i)= oVol.Name
                i=i+1
            Next
            MsgBox "Name            Volumen in cm³"
                  "Name(1).????.          V(1).????.."
                  "Name(2).????.          V(2).????.."
                  "...                      "
        EndIf
    ElseIf
        MsgBox "Geht nur für gesondert geöffnete ipt."
        Exit Sub
    End If
   
End Sub

------------------
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

xerxses
Mitglied
Laufbursche


Sehen Sie sich das Profil von xerxses an!   Senden Sie eine Private Message an xerxses  Schreiben Sie einen Gästebucheintrag für xerxses

Beiträge: 130
Registriert: 06.09.2011

IV2019
ACDM2019

erstellt am: 21. Sep. 2021 22:14    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Roland Schröder 10 Unities + Antwort hilfreich

hallo Roland,

Anfänger hier.
das wäre eine schöne Übung für den Abend gewesen.
zwar komme ich mit "odoc.ComponentDefinition.SurfaceBodies" an die Volumenkörper, aber in allen "Items" steht immer das Gesamtvolumen der IPT drin.
Ich finde nirgends die Massproperties der einzelnen Volumenkörper. (dazugelernt, leider nicht möglich. Siehe Link unten)

mein gescheiterter Versuch zum Testen.

Sub Name_Volumen()
Dim odoc As Document
Set odoc = ThisApplication.ActiveDocument
Dim Anzahl As Long
Dim obj As Object

Set obj = odoc.ComponentDefinition.SurfaceBodies

Anzahl = obj.Count
Dim i As Integer
i = 1

    For Each Item In obj
       If i <= Anzahl Then
         iVol = obj.Item(i).ComponentDefinition.MassProperties.Volume
         MsgBox ("Name: " & Item.Name & "     Volumen: " & iVol)
         i = i + 1
       End If
    Next
End Sub


hier eine Lösung über Umwege.
keine schlechte Umsetzung. Eventuell so umbauen dass die Textdatei sich am Ende selbst öffnet und die erzeugten Dateien automatisch gelöscht werden.

Grüße

[Diese Nachricht wurde von xerxses am 22. Sep. 2021 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

bwr
Mitglied
Konstrukteur


Sehen Sie sich das Profil von bwr an!   Senden Sie eine Private Message an bwr  Schreiben Sie einen Gästebucheintrag für bwr

Beiträge: 129
Registriert: 21.02.2007

erstellt am: 22. Sep. 2021 07:23    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Roland Schröder 10 Unities + Antwort hilfreich

Hallo,
prinzipiell funktioniert es so:

Code:

Public Sub VolumesAndProperties()
   
    If ThisApplication.ActiveDocumentType = kPartDocumentObject Then
     
        Dim oPart As PartDocument
        Set oPart = ThisApplication.ActiveDocument
        Dim sText As String
       
        Dim oBody As SurfaceBody
        For Each oBody In oPart.ComponentDefinition.SurfaceBodies
          sText = sText & oBody.Name & vbTab & oBody.Volume(0.001) & vbCrLf
        Next
       
        MsgBox sText

    End If
End Sub


Das ganze lässt sich dann noch mit Fehlerabfragen und einer schöneren Ausgabe verfeinern.

------------------
Grüße
Andreas
etaCAD

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Roland Schröder
Ehrenmitglied V.I.P. h.c.
Dr.-Ing. Maschinenbau, Entwicklung & Konstruktion von Spezialmaschinen



Sehen Sie sich das Profil von Roland Schröder an!   Senden Sie eine Private Message an Roland Schröder  Schreiben Sie einen Gästebucheintrag für Roland Schröder

Beiträge: 13115
Registriert: 02.04.2004

AIP2013SP2.2 XPproSP2 MS-IntelliMouse-Optical SpacePilot
DellM4600 2,13GHz 2GB FxGo1400 1920x1200
am Dock Dell2711

erstellt am: 22. Sep. 2021 11:49    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Zitat:
Original erstellt von bwr:
...prinzipiell...
Perfekt! Genau wie, nein, viel besser als ich es mir erträumt hab. So schön schlicht und einfach.

Danke!

------------------
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

bwr
Mitglied
Konstrukteur


Sehen Sie sich das Profil von bwr an!   Senden Sie eine Private Message an bwr  Schreiben Sie einen Gästebucheintrag für bwr

Beiträge: 129
Registriert: 21.02.2007

erstellt am: 22. Sep. 2021 13:43    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Roland Schröder 10 Unities + Antwort hilfreich

Bitteschön.
Zitat:
Elegante, schlanke und intelligente Lösungen sind meine Spezialität.

Den Satz habe ich von deiner Internetseite geklaut.

Das gilt sowohl fürs Konstruieren als auch fürs Programmieren: je einfacher, desto besser.

------------------
Grüße
Andreas
etaCAD

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

xerxses
Mitglied
Laufbursche


Sehen Sie sich das Profil von xerxses an!   Senden Sie eine Private Message an xerxses  Schreiben Sie einen Gästebucheintrag für xerxses

Beiträge: 130
Registriert: 06.09.2011

IV2019
ACDM2019

erstellt am: 22. Sep. 2021 17:35    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Roland Schröder 10 Unities + Antwort hilfreich

Hallo Andreas,

wie kommst du auf die ".Volume"-Eingenschaft? die finde ich in der API nicht. Zumindest nicht in IV2021. und wofür steht (0.001)?

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

bwr
Mitglied
Konstrukteur


Sehen Sie sich das Profil von bwr an!   Senden Sie eine Private Message an bwr  Schreiben Sie einen Gästebucheintrag für bwr

Beiträge: 129
Registriert: 21.02.2007

erstellt am: 23. Sep. 2021 09:24    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Roland Schröder 10 Unities + Antwort hilfreich

Hallo xerxses,
das habe ich aus der Programmierhilfe.
Der Parameter steht für die Genauigkeit:

Input Double that specifies the requested relative accuracy of the result as a percentage. For example, a value of 0.01 requests a maximum error of one percent. The application should find the mass properties for several requested accuracies and compare the results since there is a limitation to the current algorithm in that it does have a bound on how precisely the algorithm can calculate mass properties, due to hard coded convergence criteria in the functions. If you tighten the relative error value and the mass properties values don't change, that means it is as close as can be achieved.

------------------
Grüße
Andreas
etaCAD

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

xerxses
Mitglied
Laufbursche


Sehen Sie sich das Profil von xerxses an!   Senden Sie eine Private Message an xerxses  Schreiben Sie einen Gästebucheintrag für xerxses

Beiträge: 130
Registriert: 06.09.2011

IV2019
ACDM2019

erstellt am: 23. Sep. 2021 10:01    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Roland Schröder 10 Unities + Antwort hilfreich

Danke für die Erklärung

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

bwr
Mitglied
Konstrukteur


Sehen Sie sich das Profil von bwr an!   Senden Sie eine Private Message an bwr  Schreiben Sie einen Gästebucheintrag für bwr

Beiträge: 129
Registriert: 21.02.2007

erstellt am: 23. Sep. 2021 11:38    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Roland Schröder 10 Unities + Antwort hilfreich

Gern geschehen.
Hier ist übrigens noch ein Link auf die entsprechende Seite in der API-Hilfe.

'Volume' ist eine ganz normale Eigenschaft von SurfaceBody

------------------
Grüße
Andreas
etaCAD

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

xerxses
Mitglied
Laufbursche


Sehen Sie sich das Profil von xerxses an!   Senden Sie eine Private Message an xerxses  Schreiben Sie einen Gästebucheintrag für xerxses

Beiträge: 130
Registriert: 06.09.2011

IV2019
ACDM2019

erstellt am: 23. Sep. 2021 13:04    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Roland Schröder 10 Unities + Antwort hilfreich


obody_om1xx.JPG

 
man lernt immer dazu. 

Zitat:
'Volume' ist eine ganz normale Eigenschaft von SurfaceBody

taucht im Object Model nicht auf.
Bin immer davon ausgegangen, Eigenschaften die da nicht aufgelistet sind gibt es auch nicht.
Wohl falsch gedacht.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz