Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Analyze.Volume

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
Autor Thema:  Analyze.Volume (1940 mal gelesen)
RonnyS
Mitglied



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

Beiträge: 97
Registriert: 04.09.2003

erstellt am: 09. Okt. 2003 11:37    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

Hallo,

ich versuche gerade das Volumen eines gesamten Products (mehrere Parts) zu bestimmen).

Auszug:

Sub catmain()
    Dim myproduct As Product
    Dim myanalyse As Analyze
   
    Set myproduct = CATIA.ActiveDocument.Product
    Set myanalyze = myproduct.Analyze
   
    MsgBox myanalyze.Volume
End Sub

Das funtkioniert auch soweit sehr gut nur werden leider in den einzelnen Parts nur die Hauptkörper beachtet, ein zusätzlicher vom Nutzer hinzugefügter Block in einem zusätzlichen Körper deselben Parts wird hingegen völlig ignoriert. So verhält es sich über alle Parts.

Gibts es eine Möglichkeit dies auf alle Körper umzuschalten? Sei es nun durch eine analyze eigenschaft(sorry aber die automation.chm ist an der stelle wieder etwas dürftig mit erklärungen) oder durch eine innerhalb von Catia selbst zu setzende generelle eigenschaft? Oder gibt es noch eine ganz andere Möglichkeite das volumen zu bestimmen?

Hoffe ich habe mich einigermaßen verständlich ausgedrückt.

Ich weiss dass hier irgendwo die Beschreibung von "measurable" rumschwirrt mit dem es auch gehen soll. nur finde ich leider immer nur Verweise darauf aber kein Funktionierendes Beispiel in dem mal das Volumen bestimmt wird.

Vielen Dank

------------------
gr33t7 Ronny

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

bernds
Mitglied



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

Beiträge: 17
Registriert: 11.09.2003

erstellt am: 09. Okt. 2003 17:37    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 RonnyS 10 Unities + Antwort hilfreich

Hallo Ronny,

ich hab Dir ein Skript angehängt, um das Volumen eines Hauptkörpers zu ermitteln. Ich habs mit R11 getestet.

Gruß Bernd


Sub CATMain()

Set partDocument1 = CATIA.ActiveDocument
Set part1 = partDocument1.Part
Set bodies1 = part1.Bodies

Set body1 = bodies1.Item("Hauptkörper")
Set referenceObject = part1.CreateReferenceFromObject(body1)

Set TheSPAWorkbench = CATIA.ActiveDocument.GetWorkbench("SPAWorkbench")
Set TheMeasurable = TheSPAWorkbench.GetMeasurable(referenceObject)
vol = TheMeasurable.Volume
Box = MsgBox ("Volumen = " &  vol & " mm^2")

End Sub

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

RonnyS
Mitglied



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

Beiträge: 97
Registriert: 04.09.2003

erstellt am: 09. Okt. 2003 20:15    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

Vielen DAnk bernds

werds am Montag gleich testen *froiundimkreisspring*

------------------
gr33t7 Ronny

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

RonnyS
Mitglied



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

Beiträge: 97
Registriert: 04.09.2003

erstellt am: 13. Okt. 2003 08:56    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

Hum klappt leider noch nicht so ganz.

Habs 1:1 kopiert und sowohl mal in VBA (mit den ganzen Dims zusätzlich) und als catscript getestet...

Leider kommt immer wenn ich versuche .Volume zu machen Method "volume" of object "measurable" failed.

Ich hab mir zum Testen ledigich ein PartDocument mit einem einzelnen Block im Hauptkörper angelegt.

Die Automation.chm war mir keien grosse Hilfe da in deren Code an der Stelle noch ein zuätzlicher fehler drin ist...

Was mache ich verkehrt?

PS: Hab mal noch die anderen Properties getestet und jedesmal wieder eine analoge Fehlermeldung erhalten??? Muzss also irgendwie ein systemfehler sein???

------------------
gr33t7 Ronny

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

RonnyS
Mitglied



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

Beiträge: 97
Registriert: 04.09.2003

erstellt am: 13. Okt. 2003 09:30    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

hab mal weitergespielt....

wenn ich ein bestimmtes pad oder pocket als referenz angeb funzt es ohne probleme. Dert haken ist nur das nützt mir relativ wenig da ich dann nur die einzelvolumen habe und 2 pads die sich schneiden nunmal weniger raum einnehmen als wenn ich die einzelvolumen addiere

Weisst du wie das für ganze Körper oder parts geht so dass ich halt nur das reale Volumen bekomm?

------------------
gr33t7 Ronny

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

bernds
Mitglied



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

Beiträge: 17
Registriert: 11.09.2003

erstellt am: 13. Okt. 2003 14:58    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 RonnyS 10 Unities + Antwort hilfreich

Hallo Ronny,
ich hab mit dem Measurable auch lange gekämpft, um Ergebnisse zu erhalten.
Zu Deiner Frage kann ich Dir allerdings im Moment auch nicht weiterhelfen. Falls ich was finde, lass ichs Dir auf jeden fall zukommen.

Bernd

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

RonnyS
Mitglied



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

Beiträge: 97
Registriert: 04.09.2003

erstellt am: 13. Okt. 2003 15:17    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

jupp danke


na geht das denn bei dir das du nen ganzen Body auf einmal berechnen kannst?

------------------
gr33t7 Ronny

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

bernds
Mitglied



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

Beiträge: 17
Registriert: 11.09.2003

erstellt am: 13. Okt. 2003 17:12    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 RonnyS 10 Unities + Antwort hilfreich

Hi Ronny,

bei mir geht es ohne Probleme.

Gruß Bernd

R11SP4

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

RonnyS
Mitglied



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

Beiträge: 97
Registriert: 04.09.2003

erstellt am: 14. Okt. 2003 08:32    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

Hum

naja wir haben R11Sp5....soviel zum Thema kompatibilität *grummel*

------------------
gr33t7 Ronny

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

RonnyS
Mitglied



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

Beiträge: 97
Registriert: 04.09.2003

erstellt am: 14. Okt. 2003 16: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

Falls es en intressiert es geht doch!!! was berndS schrieb

Mein fehler war nur das ich es in einem leeren document versucht hab, sobald ein Körper drin war, war das volumen != 0 und es ging *froi* kein runtime fehler mehr :-)

ich versteh zwar net wo da eigentlich das Problem ist aber egal

------------------
gr33t7 Ronny

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

Stoffel
Mitglied
Student


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

Beiträge: 322
Registriert: 09.10.2002

R6/V2010

erstellt am: 16. Okt. 2003 10:36    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 RonnyS 10 Unities + Antwort hilfreich

Ganz nebenbei:
Im Beispielmakro ganz oben ist die Einheit für das Volumen mm^2 ?!?

Grüße
    Stoffel

[Diese Nachricht wurde von Stoffel am 16. Oktober 2003 editiert.]

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

Knoutsch
Mitglied
Teamleiter Rapid Prototyping

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

Beiträge: 6
Registriert: 01.04.2008

erstellt am: 30. Aug. 2018 16:09    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 RonnyS 10 Unities + Antwort hilfreich

Hallo zusammen,
ich habe ein ähnliches Problem, bei dem ich nicht weiterkomme:

Ich habe mehrere Körper in einem Part und möchte das Volumen der Körper bestimmen, die im Show sind.

Was ich inzwischen kann, ist das Volumen eines Parts zu bestimmen und ausgeben zu lassen:

Sub CATMain()
Dim myproduct As Product
Set myproduct = CATIA.ActiveDocument.Product 
Volumen = myproduct.Analyze.volume
MsgBox Volumen
End Sub
(ist ähnlich wie oben von RonnyS beschrieben)

Das bezieht sich aber auf alle Bodies in meinem Part.

Ich bekomme es auch hin, die Körper in einem Part zu selektieren, die im Show sind:

Sub CATMain()
Set partDocument1 = CATIA.ActiveDocument

Set selection1 = partDocument1.Selection
selection1.Search "(((((CATStFreeStyleSearch.BodyFeature + CATPrtSearch.BodyFeature) + CATGmoSearch.BodyFeature) + CATSpdSearch.SpdBodyRef) + CATSpdSearch.BodyFeature) & Visibility=Visible),all"

Was ich nun nicht hinbekomme ist es, diese Funktionen miteinander zu verbinden, also das Gesamtvolumen aller Körper auszugeben, die im Show sind.

Wäre schön, wenn mir hier jemand helfen könnte.

Gruß Jochen

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

bgrittmann
Moderator
Konstrukteur


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

Beiträge: 11780
Registriert: 30.11.2006

CATIA V5R19

erstellt am: 31. Aug. 2018 09:11    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 RonnyS 10 Unities + Antwort hilfreich

Servus Jochen

Du könntest die selektierten Körper per Schleife abarbeiten, per SPA-Workbench das Volumen messen und die Einzelvolumen addieren:

Code:
Sub CATMain()

Dim oPartDoc as PartDocument
Dim oSel as Selection
Dim oBody as BodyFeature
Dim oSPAWorkbench as SPAWorkbench
Dim oMeasurable as Measureable
Dim oRef as Reference
Dim dVolume as Double
Dim i as Integer

Set oPartDoc = CATIA.ActiveDocument
Set oSel = oPartDoc.Selection
dVolume = 0
Set oSPAWorkbench = oPartDoc.GetWorkbench("SPAWorkbench")

oSel.Search "CATGmoSearch.BodyFeature & Visibility=Visible,all"

if oSel.Count2 <> 0 then
  for i = 1 to oSel.Count2
      Set oBody = oSel.item2(i).Value
      Set oRef = oPartDoc.Part.CreateReferenceFromObject(oBody)
      Set oMeasurable = oSPAWorkbench.GetMeasurable(oRef)
      dVolume = dVolume + oMeasurable.Volume
  next
end if

MsgBox "Volumen = " &  dVolume & " m³"

End Sub


Eventuell werden Körper von Boole'schen Operationen auch mitgemessen.

Gruß
Bernd

------------------
Warum einfach, wenn es auch kompliziert geht.

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

Knoutsch
Mitglied
Teamleiter Rapid Prototyping

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

Beiträge: 6
Registriert: 01.04.2008

erstellt am: 31. Aug. 2018 10:42    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 RonnyS 10 Unities + Antwort hilfreich

Hallo Bernd,

vielen Dank! Funktioniert soweit.

Mit den Bool'schen Operationen hast du aber leider recht.
Die misst es tatsächlich mit.

Kann ich hier noch nach Strukturebenen filtern, dass mir nur die Bodies auf der ersten Ebene addiert werden?

Gruß Jochen

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

bgrittmann
Moderator
Konstrukteur


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

Beiträge: 11780
Registriert: 30.11.2006

CATIA V5R19

erstellt am: 31. Aug. 2018 10:46    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 RonnyS 10 Unities + Antwort hilfreich

Servus

Schau dir mal die Methode InBooleanOperation an, um vor der Messung die Körper zu prüfen und eventuell auszuschließen.

Gruß
Bernd

------------------
Warum einfach, wenn es auch kompliziert geht.

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