Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Inventor
  Parameter der Bauteile innerhalb der Baugruppe ändern

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:  Parameter der Bauteile innerhalb der Baugruppe ändern (2767 mal gelesen)
Philfi
Mitglied
Student


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

Beiträge: 14
Registriert: 12.11.2021

erstellt am: 12. Nov. 2021 22:03    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

Guten Abend Zusammen,

ich habe bereits einige Foren und Beiträge durchsucht, aber leider keine zufriedenstellenden Lösungen zu meinem Problem gefunden.
Ich habe mehrere Bauteile einzeln erstellt und mit Benutzerparametern innerhalb der Parameterliste und Regeln in iLogic hinterlegt.
Ich würde gerne die Parameter in den einzelnen Bauteilen über die Baugruppe ändern, um nicht immer in die einzelnen Bauteile zu gehen und diese zu ändern.
Ich hatte es bereits mit "Verknüpfen" versucht, die Parameter können dann aber nicht geändert werden.

Ich hoffe mir kann jemand weiterhelfen.

Mit freundlichen Grüßen

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

Manfred Gündchen
Ehrenmitglied V.I.P. h.c.
SelbstständIng mit Planungsbüro Anlagenbau, Dipl.-Ing.-Maschinenbau


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

Beiträge: 2369
Registriert: 08.03.2008

IV seit den 5.3Er
aktuell den 2014Ner
WIN7pro-64bit
SP das jeweils aktuelle

erstellt am: 13. Nov. 2021 07:41    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 Philfi 10 Unities + Antwort hilfreich

Umgekehrt würde ein paar Schuhe draus.
Ein Mastermodell (MM) bildet mit ggf. verschiedenen Skizzen den Zusammenbau ab. Alle erforderlichen Parameter sind in diesem Modell, in den Skizzen und/oder der Parameterliste enthalten.
Per Abgeleiteter Komponente (AK) wird dieses Modell jeweils in die einzelnen schon modellierten Teile gebracht,. Die abgeleiteten und eingeblendeten Skizzen können als Basis der einzelnen Teile verwendet werden. Quasi als eingeblendetes Skelett. Siehe hierzu, und zu den beiden anderen Begriffen, per Suchfunktion mal hier im WBF nach.
Änderungen im MM werden über die jeweilige AK, nach einer Aktualisierung der Teile, übernommen.
Diese Vorgehensweise kann auch nachträglich noch eingesetzt werden. Wie, einfach hier nochmals die Suchfunktion nutzen.

------------------
In diesem Sinne wünsche ich allen, weiterhin effektives Schaffen

----------------
Manfred Gündchen
www.guendchen.com

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

Philfi
Mitglied
Student


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

Beiträge: 14
Registriert: 12.11.2021

erstellt am: 13. Nov. 2021 08:22    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


Boden_Auto_Pyramide_Kopie.iam

 
Hallo Manfred Gündchen,
danke für die Antwort.
Ich habe die Suchfunktion genutzt, trotzdem ist mir nicht klar geworden wie das Vorgehen ist, um das Problem zu lösen.
Könntest du oder jemand anderes die Vorgehensweise beschreiben?
Ich habe mein Modell (Baugruppe) mal angehängt, vielleicht wird das dadurch verständlicher oder man kann es anhand dessen erklären.

Mfg

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

Manfred Gündchen
Ehrenmitglied V.I.P. h.c.
SelbstständIng mit Planungsbüro Anlagenbau, Dipl.-Ing.-Maschinenbau


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

Beiträge: 2369
Registriert: 08.03.2008

IV seit den 5.3Er
aktuell den 2014Ner
WIN7pro-64bit
SP das jeweils aktuelle

erstellt am: 13. Nov. 2021 08:27    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 Philfi 10 Unities + Antwort hilfreich

Anderer Weg, aber von der Vorgehensweise sehr ähnlich, dass nachfolgende Verfahren. Das ist im Übrigen seit über 10 Jahren die Vorgehensweise meines Büros. In dieser Zeit wurde das Verfahren weitgehend perfektioniert.

Der Zusammmenbau wird in einem MM in einem Skizzenblock erstellt.
Da der einzelne Skizzenblock nur zweidimensional ist, muss ggf. etwas mehr abstrahiert werden, um den Zusammenbau abzubilden.
Ist, bzw. sollte aber kein wirklicher Hindernisgrund sein. Der Inventor (IV) ist ein Konstruktionsprogramm, hauptsächlich für den Maschinenbau. Anwender aus diesem Bereich sollten technisches Zeichnen beherrschen.
In diesem Sinne kann der Skizzenblock auch mit verschiedenen, vereinfachten Ansichten dargestellt werden, die die Linien für die erforderlichen Parameter abbilden.

Der Skizzenblock wird, wie oben beschrieben, per AK in das jeweilige Teil geholt.
Hier den Skizzenblock nach Erfordernissen in die jeweilige Skizze einfügen.
In den Skizzen die zu ändernden bzw. zu parametrisierenden Linien mit dem „= gleich-Parameter“ auf die entsprechende Linien des Skizzenblocks verweisen.
Für Änderungen der Einzelteile wird, wie schon oben beschrieben, dann der Skizzenblock geändert, Einzelteile/ bzw. Zusammenbau mit den Einzelteilen aktualisieren, Änderungen sind somit in alle Teile umgesetzt.
Dieses Verfahren kann leicht auch nachträglich nachgepflegt werden.
Die zu ändernden Parameter, vor der Zuweisung auf den Skizzenblock, dazu am besten zum Referenzmaß ändern.

Unbedingt ist hier zu beachten, dass der abgeleitete Skizzenblock in keiner Weise „festgemacht“ wird. Die offenen Freiheitsgrade in der Skizze sind für jeden Skizzenblock drei (3).
Der Skizzenblock wird nur zum „Transport“ von Längenparametern verwendet (!)! Mit Skizzenblöcken wird bei uns nie direkt modelliert.
Winkel können als Dreiecke übertragen werden.

------------------
In diesem Sinne wünsche ich allen, weiterhin effektives Schaffen

----------------
Manfred Gündchen
www.guendchen.com

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

Manfred Gündchen
Ehrenmitglied V.I.P. h.c.
SelbstständIng mit Planungsbüro Anlagenbau, Dipl.-Ing.-Maschinenbau


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

Beiträge: 2369
Registriert: 08.03.2008

IV seit den 5.3Er
aktuell den 2014Ner
WIN7pro-64bit
SP das jeweils aktuelle

erstellt am: 13. Nov. 2021 12:28    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 Philfi 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von Philfi:
…Ich habe die Suchfunktion genutzt, trotzdem ist mir nicht klar geworden wie das Vorgehen ist, um das Problem zu lösen…

Okay dann nochmal auf Anfang.
Nachfolgend mein Standarttext, den ich jetzt nicht weiter angepaßt habe.


Zunächst einmal von mir ein herzliches Willkommen.

Füll' doch mal die Systeminfo unter Deinem Profil aus.
Da erscheint dann all das, was Du da reinschreibst.

Uns interessiert immer welchen IV Du benutzt...


Mal etwas OT.
Offensichtlich bist Du ja wohl ein IV-Neuling, also sind IMHO nicht zu viele Deiner Bemühungen in die "falsche Richtung" gelaufen. Deshalb hier ein grundlegender Tipp.

Versuch Dich mal in die Konstruktionssystematik des Mastermodelling oder der Top Down-Modellierung.
Das ist schön direkt.
Dabei funktioniert der IV immer am besten.
Sauber durchkonstruiert.
Parameter im Master festgelegt.
Mit AKs modelliert.
Mit Nullpunktfixierung platziert.
Fettich, eigentlich kein Hexenwerk
Dann braucht's auch nicht so'n "Zeugs" wie Ilogic, oder-was-auch-immer.

Hier ein Link aus dem WBF , mit einer Zusammenfassung hierzu, von unserem sehr geschätzten Andreas Gawin.

http://ww3.cad.de/foren/ubb/Forum50/HTML/019398.shtml

oder der „Hammerbeitrag“ von Andreas als Lernanleitung:
http://ww3.cad.de/foren/ubb/Forum50/HTML/029654.shtml#000000

...mein Tipp, mal durcharbeiten und - viel Erfolg bei der Umsetzung...

...oder auf der offiziellen IV-Hilfeseite, allgemeine Hinweise zu der von mir bevorzugten Top Down-Modellierung

http://help.autodesk.com/view/INVNTOR/2016/DEU/?guid=GUID-C68767BC-9398-4D2A-8DF5-B87184E396B3

...und hier die IMHO sinnigsten Workflows in Inventor:
- Skelettmodellierung
- Gemeinsamer Ursprung

MG zu: Gemeinsamer aber doch flexibler Ursprung
http://ww3.cad.de/foren/ubb/Forum50/HTML/030486.shtml#000011

------------------
In diesem Sinne wünsche ich allen, weiterhin effektives Schaffen

----------------
Manfred Gündchen
www.guendchen.com

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

Michael Puschner
Moderator
Rentner




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

Beiträge: 13003
Registriert: 29.08.2003

Toshiba Encore mit MS Office

Ein Programm sollte nicht nur Hand und Fuß, sondern auch Herz und Hirn haben.
(Michael Anton)

erstellt am: 13. Nov. 2021 12: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 Philfi 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von Philfi:
... Ich würde gerne die Parameter in den einzelnen Bauteilen über die Baugruppe ändern, um nicht immer in die einzelnen Bauteile zu gehen und diese zu ändern. ...

Im Sinne von Manfred Gündchen ist das zwar "gegen den Strom geschwommen", geht aber per iLogic so, wie es der selige Jürgen seinerzeit hier an einem einfachen Beispiel beschrieben hat:

https://inventorfaq.blogspot.com/2018/11/ilogic-parameter-aus-einer-baugruppe-in.html

Übrigens hilft die oben abgehängte Baugruppendatei nicht viel, wenn die Komponenten fehlen.

------------------
Michael Puschner
Autodesk Certified Instructor
Autodesk Inventor Certified Expert
Autodesk Inventor Certified Professional
Mensch und Maschine Scholle GmbH

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

Manfred Gündchen
Ehrenmitglied V.I.P. h.c.
SelbstständIng mit Planungsbüro Anlagenbau, Dipl.-Ing.-Maschinenbau


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

Beiträge: 2369
Registriert: 08.03.2008

IV seit den 5.3Er
aktuell den 2014Ner
WIN7pro-64bit
SP das jeweils aktuelle

erstellt am: 13. Nov. 2021 14:44    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 Philfi 10 Unities + Antwort hilfreich

Moin Michael, „der Strom“ und damit die Richtung ist der der Mastermodellierer.
Andere Ströme geben andere Richtungen vor.

Okay genug der Allgemeinplätze.
Über dem in Deinem angehängten Beispiel, und wohl auch in dem vom Philfi, ist das alles auch - natürlich - möglich.
Bei meinem Verfahren wird aber schon im MM oder im Skizzenblock gezeigt wie‘s aussieht.
Ist, IMHO, nicht die schlechteste der Lösungen.

------------------
In diesem Sinne wünsche ich allen, weiterhin effektives Schaffen

----------------
Manfred Gündchen
www.guendchen.com

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

Philfi
Mitglied
Student


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

Beiträge: 14
Registriert: 12.11.2021

erstellt am: 13. Nov. 2021 18:20    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 für die Lösungsvorschläge.
Habe das jetzt nach dem Vorgehen von Michael bei iLogic gemacht.

MfG

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

Lothar Boekels
Ehrenmitglied V.I.P. h.c.
Dipl.-Ing. Maschinenbau und CAD-Trainer



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

Beiträge: 3823
Registriert: 15.02.2001

DELL Precision 7520 Win10Pro-64
Inventor mit Vault Professional 2024
---------------------
Während man es aufschiebt,
verrinnt das Leben.
Lucius Annaeus Seneca
(ca. 4 v. Chr - 65 n. Chr.)

erstellt am: 13. Nov. 2021 18:22    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 Philfi 10 Unities + Antwort hilfreich

Fuer den angefragten Weg gibt es auch prima Beispiele.

------------------
mit freundlichem Gruß
aus der Burggemeinde Brüggen
Lothar Boekels

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

Philfi
Mitglied
Student


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

Beiträge: 14
Registriert: 12.11.2021

erstellt am: 13. Nov. 2021 18:28    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

Hätte noch eine weitere Frage und würde die mal direkt hier stellen.
Habe dazu leider auch nichts hilfreiches gefunden.

In einer Baugruppe kann die Kollosion analysiert werden.
Gibt es die Möglichkeit in iLogic (hier nötig für weiteren Verlauf der Arbeit) bestimmte Überschneidungs/Schnitt Volumen bzw. Flächen zwischen 2 oder mehreren Bauteilen ausgeben zu lassen? Vielleicht auch schon ein vorgefertigter Code?
Bislang habe ich nur gefunden, dass man bei iLogic einen Code ausführen kann, der mir anzeigt wie viele Überschneidungen es gibt und dann welche.
Ich würde aber gerne die genauen Werte haben und diese dann in der Parameterliste der Baugruppe hinterlegen, die sich bei Veränderung der Bauteile entsprechend mit verändern.

Vielen Dank im Voraus.
Oder sollte ich lieber ein neues Thema dafür aufmachen?

MfG

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

Philfi
Mitglied
Student


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

Beiträge: 14
Registriert: 12.11.2021

erstellt am: 13. Nov. 2021 18: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

Hallo Lothar,
danke, könntest du einen/mehrere Links dazu teilen, damit ich das finde?

MfG

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

rkauskh
Moderator
Dipl.-Ing. (FH) Versorgungstechnik




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

Beiträge: 2428
Registriert: 15.11.2006

Windows 10 x64, AIP 2023

erstellt am: 13. Nov. 2021 21:16    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 Philfi 10 Unities + Antwort hilfreich

Hallo

Lösen wir gerade deine Semesterarbeit?

Wenn du schon einen iLogic Code hast, wäre es (mit Angabe der Quelle) sinnvoll gewesen ihn auch zu posten. So dürfen wir raten wie weit du bereits bist. Die Kollisionsanalyse kann mit 2 oder mehr Komponenten in einer Baugruppe durchgeführt werden. Zurück kommt je Kollision  ein InterferenceResult. Darin enthalten die beiden kollidierenden Komponenten, das Kollisionsvolumen, der Schwerpunkt des Kollisionsvolumens und eine transienter SurfaceBody des Kollisionsvolumens.
Welche Flächen der beiden Bauteile kollidieren bzw. sich durchdringen ist so direkt nicht herauszufinden.
Der Prozess ist recht rechenintensiv. Bei komplexeren Baugruppen kann das quälend zäh werden, wenn man die Veränderungen über einen iLogic Schieberegler hin und her fahren will.

------------------
MfG
Ralf

RKW Solutions GmbH
www.RKW-Solutions.com

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

Lothar Boekels
Ehrenmitglied V.I.P. h.c.
Dipl.-Ing. Maschinenbau und CAD-Trainer



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

Beiträge: 3823
Registriert: 15.02.2001

DELL Precision 7520 Win10Pro-64
Inventor mit Vault Professional 2024
---------------------
Während man es aufschiebt,
verrinnt das Leben.
Lucius Annaeus Seneca
(ca. 4 v. Chr - 65 n. Chr.)

erstellt am: 13. Nov. 2021 21: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 Philfi 10 Unities + Antwort hilfreich

Hallo Philfi,
vor einuger Zeit habe ich das Tutorial dazu hier gepostet.
Ist aber nicht mehr in meinen Uploads und kann es gerade auch nicht finden.
War irgendwas mit Blocks im Namen
Edit:
Hab es gefunden: Edit iLogic Parts from Within an Assembly/URL]

------------------
mit freundlichem Gruß
aus der Burggemeinde Brüggen
[URL=http://www.boekels-online.de] Lothar Boekels

[Diese Nachricht wurde von Lothar Boekels am 13. Nov. 2021 editiert.]

[Diese Nachricht wurde von Lothar Boekels am 13. Nov. 2021 editiert.]

[Diese Nachricht wurde von Lothar Boekels am 13. Nov. 2021 editiert.]

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

Philfi
Mitglied
Student


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

Beiträge: 14
Registriert: 12.11.2021

erstellt am: 14. Nov. 2021 12:27    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 rkauskh,

nein, das ist nicht der Fall und außerdem ist es doch wohl nicht verwerflich mehr als eine Frage zu stellen oder. Ich bin seit geraumer Zeit am Suchen und habe mich schließlich an die Community gewendet.

Den Code den ich bislang habe:

Code:
Sub Main

Dim oAsmDoc As AssemblyDocument
oAsmDoc = ThisApplication.ActiveDocument

Dim oAsmCompDef As AssemblyComponentDefinition
oAsmCompDef = oAsmDoc.ComponentDefinition

' Add each occurrence in the assembly to the object collection.
Dim oCheckSet As ObjectCollection
oCheckSet= ThisApplication.TransientObjects.CreateObjectCollection
Dim oOcc As ComponentOccurrence
For Each oOcc In oAsmCompDef.Occurrences
oCheckSet.Add (oOcc)
Next

' Call the AnalyzeInterference method, passing in a single
' collection. This will cause it to compare everything against
' everything else.
Dim oResults As InterferenceResults
oResults = oAsmCompDef.AnalyzeInterference(oCheckSet)

' Display the results of the interference.
MessageBox.Show(oResults.Count & " Interferences found ","iLogic")

Dim oResult As InterferenceResult
Dim iCount As Integer
iCount = 0
For Each oResult In oResults
If oResult.Volume > .1 Then
iCount = iCount + 1
Component.Color(FullOccurrenceName(oResult.OccurrenceOne)) = "Yellow"
Component.Color(FullOccurrenceName(oResult.OccurrenceTwo)) = "Magenta"
MessageBox.Show("    " & FullOccurrenceName(oResult.OccurrenceOne) & "      (colored yellow)" _
& vbLf & "interferes with " _
& vbLf & "    " & FullOccurrenceName(oResult.OccurrenceTwo) & "      (colored magenta)" _
& vbLf & "" _
& vbLf & "Volume: " & Round(oResult.Volume,5) & " cm^3", _
" Interference "& iCount)
Component.Color(FullOccurrenceName(oResult.OccurrenceOne)) = "As Material"
Component.Color(FullOccurrenceName(oResult.OccurrenceTwo)) = "As Material"
End If

Next

End Sub

' Used to display the full path of an occurrence. This is the path of the
' occurrence within the assembly structure.
Private Function FullOccurrenceName(Occ As ComponentOccurrence) As String
Dim i As Integer
For i = 1 To Occ.OccurrencePath.Count
If i = 1 Then
FullOccurrenceName = Occ.OccurrencePath.Item(i).Name
Else
FullOccurrenceName = FullOccurrenceName & "\" & Occ.OccurrencePath.Item(i).Name
End If
Next
End Function


Den Code habe ich aus dem "Inventor iLogic, API & VBA Forum" in Autodesk.

Damit ist es mir bislang möglich alle verfügbaren Schnittvolumen als MessageBox auszugeben. Gerne würde ich die Werte aber in der Parameterliste speichern und nach Möglichkeit innerhalb von iLogic von vornerein definieren welche Schnittvolumen (also zwischen welchen Bauteilen) ich ausgeben möchte.

MfG

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

rkauskh
Moderator
Dipl.-Ing. (FH) Versorgungstechnik




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

Beiträge: 2428
Registriert: 15.11.2006

Windows 10 x64, AIP 2023

erstellt am: 14. Nov. 2021 13:59    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 Philfi 10 Unities + Antwort hilfreich

Hallo

Nein es is natürlich nicht verboten Fragen zu stellen. Hab ich ja auch gemacht. 

Man kann dem Set der Teilnehmer zwei Occurrences (Exemplare) mit ihrem Namen aus dem Teilebrowser einfach hinzufügen und einen entsprechenden Parameter erstellen bzw. aktualisieren. Die Namen der Occurrences solltest du eventuell vorher stabilisieren/normalisieren, sonst gibt's Probleme beim Kopieren der Baugruppe.


Code:

Option Explicit On
Sub Main

Dim oAsmDoc As AssemblyDocument = ThisDoc.Document
Dim oAsmCompDef As AssemblyComponentDefinition= oAsmDoc.ComponentDefinition
Dim oCheckSet As ObjectCollection = ThisApplication.TransientObjects.CreateObjectCollection

Dim sOccName_1 As String = "Boden_als_Platte-01:1"
Dim sOccName_2 As String = "Auto_als_Block-01:1"

' Add 2 occurrences by it's name
Dim oOcc As ComponentOccurrence
For Each oOcc In oAsmCompDef.Occurrences
If oOcc.Name = sOccName_1 Or oOcc.Name = sOccName_2 Then
oCheckSet.Add(oOcc)
End If
Next

Dim oResults As InterferenceResults = oAsmCompDef.AnalyzeInterference(oCheckSet)

Dim oParam As UserParameter
Try
oAsmDoc.ComponentDefinition.Parameters.UserParameters.Item(sOccName_1 & "_vs_" & sOccName_2).Value = Round(oresults(1).Volume,3)
Catch
oAsmDoc.ComponentDefinition.Parameters.UserParameters.AddByExpression(sOccName_1 & "_vs_" & sOccName_2, Round(oresults(1).Volume,3) , "cm^3")
End Try

End Sub


------------------
MfG
Ralf

RKW Solutions GmbH
www.RKW-Solutions.com

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

Philfi
Mitglied
Student


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

Beiträge: 14
Registriert: 12.11.2021

erstellt am: 14. Nov. 2021 17:31    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

danke für den Code.
Leider bekomme ich bei der Verwendung und Implementierung des Codes immer eine Fehlermeldung:
Unbekannter Fehler (Ausnahme von HRESULT: 0x80004005 (E_FAIL))

Keine Veränderungen haben bislang geholfen.

MfG

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

rkauskh
Moderator
Dipl.-Ing. (FH) Versorgungstechnik




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

Beiträge: 2428
Registriert: 15.11.2006

Windows 10 x64, AIP 2023

erstellt am: 14. Nov. 2021 18:51    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 Philfi 10 Unities + Antwort hilfreich

Hallo

Achja, Bindestriche sind im Parameternamen nicht erlaubt. Muss man ersetzen.

Code:

Option Explicit On
Sub Main

If Not ThisDoc.Document.DocumentType = DocumentTypeEnum.kAssemblyDocumentObject Then
    Exit Sub
End If

Dim oAsmDoc As AssemblyDocument = ThisDoc.Document
Dim oAsmCompDef As AssemblyComponentDefinition= oAsmDoc.ComponentDefinition

' Add each occurrence in the assembly to the object collection.
Dim oCheckSet As ObjectCollection
oCheckSet= ThisApplication.TransientObjects.CreateObjectCollection

Dim sOccName_1 As String = "Boden_als_Platte-01:1"
Dim sOccName_2 As String = "Auto_als_Block-01:1"

' Add 2 occurrences by it's name
Dim oOcc As ComponentOccurrence
For Each oOcc In oAsmCompDef.Occurrences
    If oOcc.Name = sOccName_1 Or oOcc.Name = sOccName_2 Then
        oCheckSet.Add(oOcc)
    End If
Next

If oCheckSet.Count<2 Then
    MsgBox("Es werden mindestens 2 Bauteile benötigt." & vbCrLf & "Zur Zeit sind " & oCheckSet.Count & " Bauteile in der Auswahl.", MsgBoxStyle.Critical, "iLogic Analyze Interference")
    Exit Sub
End If

Dim oResults As InterferenceResults
oResults = oAsmCompDef.AnalyzeInterference(oCheckSet)

If oResults Is Nothing
    MsgBox("Fehler in der Kollisionsanalyse", MsgBoxStyle.Critical, "iLogic Analyze Interference")
    Exit Sub
End If

Dim dVolume As Double
If oResults.Count=0 Then
    MsgBox("Keine Kollisionen gefunden.", MsgBoxStyle.Critical, "iLogic Analyze Interference")
    dVolume = 0
Else
    dVolume=Round(oresults(1).Volume,3)
End If

Dim oParam As UserParameter
Try
    oAsmDoc.ComponentDefinition.Parameters.UserParameters.Item(Replace(sOccName_1 & "_vs_" & sOccName_2,"-","_")).Value = dVolume
Catch
    oAsmDoc.ComponentDefinition.Parameters.UserParameters.AddByExpression(Replace(sOccName_1 & "_vs_" & sOccName_2,"-","_"), dVolume , "cm^3")
End Try

End Sub


------------------
MfG
Ralf

RKW Solutions GmbH
www.RKW-Solutions.com

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

Philfi
Mitglied
Student


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

Beiträge: 14
Registriert: 12.11.2021

erstellt am: 19. Nov. 2021 18:07    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,

super danke, der Code hat funktioniert. (Tatsächlich haben die Bindestriche im Parameternamen keine Probleme bereitet  )
Ich bin jetzt seit einiger Zeit am versuchen, den Code anzupassen, sodass ich gleichzeitig mehrere Überschneidungsvolumen ausgeben kann.
Meine Idee war es eine Art Liste (Array) oder Vektor mit Bauteilen zu definieren, zwischen denen das Überschneidungsvolumen definiert werden kann.
(Da es sich bei meinem Fall um ein Optimierungsproblem handelt, werden im Laufe der Zeit mehr Bauteile hinzukommen, somit müsste es flexibel gehalten werden.)
Bislang hat aber leider kein Versuch einen Erfolg gebracht. Beim Hinzufügen von weiteren Bauteilen wird immer wieder das gleiche Überschneidungsvolumen ausgegeben.

Hättest du eventuell eine Idee, wie man das lösen könnte? 

MfG
Philipp

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

KraBBy
Mitglied
Maschinenbau-Ingenieur


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

Beiträge: 702
Registriert: 19.09.2007

Inventor Professional 2020
WinX

erstellt am: 19. Nov. 2021 19:28    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 Philfi 10 Unities + Antwort hilfreich

Die Ergebnisse der Analyse sind in einer collection enthalten (oResults). Im Code wird aber bisher nur das erste Ergebnis ausgegeben ( oResults(1).... )

Hilfe - InterferenceResults Object

Alle Ergebnisse kannst du mit einer Schleife durchgehen:
dim oRes as interferenceResult
for each oRes in oResults
...
Next

Jetzt sehe ich, dass das schon in Deinem Beispiel enthalten ist. Nun verstehe ich das Problem nicht 

------------------
Gruß KraBBy

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

rkauskh
Moderator
Dipl.-Ing. (FH) Versorgungstechnik




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

Beiträge: 2428
Registriert: 15.11.2006

Windows 10 x64, AIP 2023

erstellt am: 19. Nov. 2021 21: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 Philfi 10 Unities + Antwort hilfreich

Hallo

Mir ist auch nicht ganz klar, was du jetzt machen möchtest.
Wenn man in das Set für die Analyse nur zwei benannte Bauteilexemplare einfügt, können rundherum tausende andere hinzukommen, die Analyse betrachtet nur die beiden. Man könnte alle Bauteile in das Set einfügen. Als Ergebnis bekommt man eine Sammlung aller Kollisionen. Die Sammlung kann man schrittweise durchlaufen und jeweils einen Parameter mit den Namen der beiden Beteiligten und dem Kollisionsvolumen erzeugen. Die erzeugten Ergebnisse könnte man natürlich auch nach bestimmten Kombinationen von Bauteilexemplaren durchsuchen und nur diese ausgeben.

Code:

If Not ThisDoc.Document.DocumentType = DocumentTypeEnum.kAssemblyDocumentObject Then
    Exit Sub
End If

Dim oAsmDoc As AssemblyDocument = ThisDoc.Document
Dim oAsmCompDef As AssemblyComponentDefinition= oAsmDoc.ComponentDefinition

' Add each occurrence in the assembly to the object collection.
Dim oCheckSet As ObjectCollection
oCheckSet= ThisApplication.TransientObjects.CreateObjectCollection

' Add all occurrences by it's name
Dim oOcc As ComponentOccurrence
For Each oOcc In oAsmCompDef.Occurrences
    oCheckSet.Add(oOcc)
Next

If oCheckSet.Count<2 Then
    MsgBox("Es werden mindestens 2 Bauteile benötigt." & vbCrLf & "Zur Zeit sind " & oCheckSet.Count & " Bauteile in der Auswahl.", MsgBoxStyle.Critical, "iLogic Analyze Interference")
    Exit Sub
End If

Dim oResults As InterferenceResults
oResults = oAsmCompDef.AnalyzeInterference(oCheckSet)

If oResults Is Nothing
    MsgBox("Fehler in der Kollisionsanalyse", MsgBoxStyle.Critical, "iLogic Analyze Interference")
    Exit Sub
End If

Dim dVolume As Double
If oResults.Count=0 Then
    MsgBox("Keine Kollisionen gefunden.", MsgBoxStyle.Critical, "iLogic Analyze Interference")
    dVolume = 0
End If

   
Dim oResult As InterferenceResult
Dim sOccName_1 As String
Dim sOccName_2 As String
Dim oParam As UserParameter
For Each oResult In oResults
dVolume = Round(oResult.Volume, 3)
sOccName_1 = oResult.OccurrenceOne.Name
sOccName_2 = oResult.OccurrenceTwo.Name
Try
    oAsmDoc.ComponentDefinition.Parameters.UserParameters.Item(Replace(sOccName_1 & "_vs_" & sOccName_2,"-","_")).Value = dVolume
Catch
    oAsmDoc.ComponentDefinition.Parameters.UserParameters.AddByExpression(Replace(sOccName_1 & "_vs_" & sOccName_2,"-","_"), dVolume , "cm^3")
End Try
Next



Man kann alternativ das Set differenziert um ein drittes, viertes usw. benanntes Bauteilexemplar erweitern und nur diese Kollisionen untersuchen.

Code:

If Not ThisDoc.Document.DocumentType = DocumentTypeEnum.kAssemblyDocumentObject Then
    Exit Sub
End If

Dim oAsmDoc As AssemblyDocument = ThisDoc.Document
Dim oAsmCompDef As AssemblyComponentDefinition= oAsmDoc.ComponentDefinition

' Add each occurrence in the assembly to the object collection.
Dim oCheckSet As ObjectCollection
oCheckSet= ThisApplication.TransientObjects.CreateObjectCollection

Dim sOccNames() As String = New String() { "Boden_als_Platte-01:1", "Auto_als_Block-01:1", "Boden"}

' Add occurrences by it's name if exist in ass
Dim oOcc As ComponentOccurrence
Dim i As Integer
For Each oOcc In oAsmCompDef.Occurrences
    For i=0 To UBound( sOccNames)-1
If oOcc.Name = sOccNames(i)Then
        oCheckSet.Add(oOcc)
    End If
Next
Next

If oCheckSet.Count<2 Then
    MsgBox("Es werden mindestens 2 Bauteile benötigt." & vbCrLf & "Zur Zeit sind " & oCheckSet.Count & " Bauteile in der Auswahl.", MsgBoxStyle.Critical, "iLogic Analyze Interference")
    Exit Sub
End If

Dim oResults As InterferenceResults
oResults = oAsmCompDef.AnalyzeInterference(oCheckSet)

If oResults Is Nothing
    MsgBox("Fehler in der Kollisionsanalyse", MsgBoxStyle.Critical, "iLogic Analyze Interference")
    Exit Sub
End If

Dim dVolume As Double
If oResults.Count=0 Then
    MsgBox("Keine Kollisionen gefunden.", MsgBoxStyle.Critical, "iLogic Analyze Interference")
    dVolume = 0
End If

   
Dim oResult As InterferenceResult
Dim sOccName_1 As String
Dim sOccName_2 As String
Dim oParam As UserParameter
For Each oResult In oResults
dVolume = Round(oResult.Volume, 3)
sOccName_1 = oResult.OccurrenceOne.Name
sOccName_2 = oResult.OccurrenceTwo.Name
Try
    oAsmDoc.ComponentDefinition.Parameters.UserParameters.Item(Replace(sOccName_1 & "_vs_" & sOccName_2,"-","_")).Value = dVolume
Catch
    oAsmDoc.ComponentDefinition.Parameters.UserParameters.AddByExpression(Replace(sOccName_1 & "_vs_" & sOccName_2,"-","_"), dVolume , "cm^3")
End Try
Next


Eine dritte Variante, man kann zwei Sets von Bauteilexemplaren erzeugen und deren Kollisionen ermitteln. Dabei werden nur Kollisionen von einem Teil aus Set 1 mit einem Teil aus Set 2 ausgegeben.

Code:

If Not ThisDoc.Document.DocumentType = DocumentTypeEnum.kAssemblyDocumentObject Then
    Exit Sub
End If

Dim oAsmDoc As AssemblyDocument = ThisDoc.Document
Dim oAsmCompDef As AssemblyComponentDefinition= oAsmDoc.ComponentDefinition

' Add each occurrence in the assembly to the object collection.
Dim oCheckSet As ObjectCollection
oCheckSet= ThisApplication.TransientObjects.CreateObjectCollection

Dim sOccNames() As String = New String() { "Boden_als_Platte-01:1", "Auto_als_Block-01:1", "Boden:1"}

' Add occurrences by it's name if exist in ass
Dim oOcc As ComponentOccurrence
Dim i As Integer
For Each oOcc In oAsmCompDef.Occurrences
    For i = 0 To UBound(sOccNames) -1
If oOcc.Name = sOccNames(i)Then
        oCheckSet.Add(oOcc)
    End If
Next
Next

Dim oCheckSet2 As ObjectCollection
oCheckSet2 = ThisApplication.TransientObjects.CreateObjectCollection

Dim sOccNames2() As String = New String() { "Sensor1:1", "Sensor2:1", "Sensor1:2"}

' Add occurrences by it's name if exist in ass
Dim oOcc As ComponentOccurrence
Dim i As Integer
For Each oOcc In oAsmCompDef.Occurrences
    For i = 0 To UBound(sOccNames2) -1
If oOcc.Name = sOccNames2(i)Then
        oCheckSet2.Add(oOcc)
    End If
Next
Next

If oCheckSet.Count=0 Or oCheckSet2.Count=0 Then
    MsgBox("Es werden mindestens 1 Bauteil je Set benötigt.", MsgBoxStyle.Critical, "iLogic Analyze Interference")
    Exit Sub
End If

Dim oResults As InterferenceResults
oResults = oAsmCompDef.AnalyzeInterference(oCheckSet,oCheckSet2)

If oResults Is Nothing
    MsgBox("Fehler in der Kollisionsanalyse", MsgBoxStyle.Critical, "iLogic Analyze Interference")
    Exit Sub
End If

Dim dVolume As Double
If oResults.Count=0 Then
    MsgBox("Keine Kollisionen gefunden.", MsgBoxStyle.Critical, "iLogic Analyze Interference")
    dVolume = 0
End If

   
Dim oResult As InterferenceResult
Dim sOccName_1 As String
Dim sOccName_2 As String
Dim oParam As UserParameter
For Each oResult In oResults
dVolume = Round(oResult.Volume, 3)
sOccName_1 = oResult.OccurrenceOne.Name
sOccName_2 = oResult.OccurrenceTwo.Name
Try
    oAsmDoc.ComponentDefinition.Parameters.UserParameters.Item(Replace(sOccName_1 & "_vs_" & sOccName_2,"-","_")).Value = dVolume
Catch
    oAsmDoc.ComponentDefinition.Parameters.UserParameters.AddByExpression(Replace(sOccName_1 & "_vs_" & sOccName_2,"-","_"), dVolume , "cm^3")
End Try
Next



Da nicht mehr bestehende Kollisionen ihre Parameter nicht selbst löschen, musst du dir da auch noch was überlegen alle zu Beginn zu löschen bzw. das Volumen auf null zu setzen.

------------------
MfG
Ralf

RKW Solutions GmbH
www.RKW-Solutions.com

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

Philfi
Mitglied
Student


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

Beiträge: 14
Registriert: 12.11.2021

erstellt am: 25. Nov. 2021 11: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

Hallo,

danke für die Antwort KraBBy.
Tatsächlich ging es mir um sowas, wie Ralf es formuliert hat.
Danke für die Codes, ich habe sie ausprobiert und das sind sehr gute Lösungsmöglichkeiten.

Tatsächlich stellt das Löschen oder Überschreiben nicht mehr bestehender Kollisionen kein triviales Problem dar. Die Parameter werden momentan sofort aktualisiert bis zum Moment wenn ein Kollisionsvolumen 0 ist, dann wird der letzte Werte davor angezeigt und nicht als 0 ausgegeben oder halt gelöscht (wobei 0 setzen besser wäre, dann kann ich mit den Parametern weiter rechnen).

Muss ich die Ausführung mehrere Regeln gleichzeitig über iTrigger lösen oder geht das über eine zusätzliche Regel in der die Ausführung der Regeln definiert ist?

MfG
Philipp

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

rkauskh
Moderator
Dipl.-Ing. (FH) Versorgungstechnik




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

Beiträge: 2428
Registriert: 15.11.2006

Windows 10 x64, AIP 2023

erstellt am: 25. Nov. 2021 20: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 Nur für Philfi 10 Unities + Antwort hilfreich

Hallo

Geht beides. Ich würde es aber über eine Regel machen. Gleichzeitig geht bei beiden Varianten nicht. Die Regeln werden nacheinander in der Reihenfolge wie sie in der Hauptregel stehen abgearbeitet. Beim Trigger bin ich mir nicht sicher, ob die Reihenfolge der in der Definition entspricht oder unvorhersehbar ist.

Um nicht mehr kollidierende Paare zu "finden", könnte man bei jeder Änderung erst alle Volumenwerte auf null setzen und dann die neuen Kollisionswerte schreiben. Alle die keine Kollision mehr haben bleiben dann auf null. Ich weiß nur ehrlich gesagt nicht, ob Inventor bei den Kollisionsergebnissen mal die Reihenfolge der Occurrences umdreht. Das könnte man vielleicht verhindern, indem man die beiden Occurrencenames alphabetisch sortiert und dadurch den Parameternamen immer in der gleichen Reihenfolge zusammensetzt.

------------------
MfG
Ralf

RKW Solutions GmbH
www.RKW-Solutions.com

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

Philfi
Mitglied
Student


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

Beiträge: 14
Registriert: 12.11.2021

erstellt am: 26. Nov. 2021 19:39    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

Für das Setzen des Volumens auf 0 habe ich zunächst die erzeugten Parameter aus den Benutzerparametern am Anfang des Codes gleich 0 gesetzt: Bsp.
Boden_vs_Pyramide1 = 0
Damit hat es geklappt, aber bei dazu kommenden Bauteilen müsste ich jedes mal wieder manuell diesen Parameter definieren.
Daher habe ich zahlreiche Versuche gestartet und es letztendlich mit einer If-Bedingung versucht:
If dVolume <> 0 Then
sOccName_1_vs_sOccName_2 = dVolume
Else
sOccName_1_vs_sOccName_2 = 0
End If

Habe es für den dritten Code, also die dritte Möglichkeit versucht, welche du geteilt hattest.
Leider funktioniert es damit nicht, die Volumen werden aktualisiert, aber sobald kein Überschneidungsvolumen vorliegt, wird der letzte Wert angezeigt anstatt 0.

Gibt es innerhalb des Codes bzw. allgemein die Möglichkeit einen berechneten Parameter als Objekt oder neues Bauteil zu definieren? Zur Erklärung was ich meine:
Ich habe 2 Sensoren (Kameras auf einem Fahrzeug) als Volumenkörper (Pyramide), die ein Überschneidungsvolumen bilden.
Außerdem habe einen Raum über dem Boden und einer unter dem Boden.
Über den Code kann ich alle gewünschten Volumen berechnen und den nicht gewollten Bereich unter dem Boden rausschneiden. Soweit so gut.
Ich würde aber bspw. nur den Teil des Überschneidungsvolumens oberhalb des Bodens haben wollen.
Dies ist aber nicht möglich weil es sich um kein Bauteil handelt welches ich innerhalb des Codes
Dim sOccNames() As String = New String() { "Unterboden", "Oberboden", "Pyramide1_vs_Pyramide2"}
implementieren kann.
Ich habe versucht diesen Parameter zu definieren, aber er wird nicht als neuer Volumenkörper angesehen.
Ich hoffe das war soweit verständlich, ansonsten kann ich nochmal anders versuchen.

MfG
Philipp

[Diese Nachricht wurde von Philfi am 29. Nov. 2021 editiert.]

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

Philfi
Mitglied
Student


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

Beiträge: 14
Registriert: 12.11.2021

erstellt am: 09. Dez. 2021 16: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

Hallo,

für das die zweite Frage habe ich rausgefunden dass es nicht möglich ist ein berechnetes Schnittvolumen als neuen Körper zu definieren und diesen für eine neue Kollisionsanalyse zu verwenden.

Somit habe ich versucht den von dir (@rkauskh) geteilten Code (den zur Berechnung des Schnittvolumens zwischen allen auftretenden Bauteilen) anzupassen:

Code:
If Not ThisDoc.Document.DocumentType = DocumentTypeEnum.kAssemblyDocumentObject Then
    Exit Sub
End If
Dim oAsmDoc As AssemblyDocument = ThisDoc.Document
Dim oAsmCompDef As AssemblyComponentDefinition= oAsmDoc.ComponentDefinition

' Add each occurrence in the assembly to the object collection.
Dim oCheckSet As ObjectCollection
oCheckSet= ThisApplication.TransientObjects.CreateObjectCollection

' Add all occurrences by it's name
Dim oOcc As ComponentOccurrence
For Each oOcc In oAsmCompDef.Occurrences
    oCheckSet.Add(oOcc)
Next

If oCheckSet.Count<3 Then
    MsgBox("Es werden mindestens 3 Bauteile benötigt." & vbCrLf & "Zur Zeit sind " & oCheckSet.Count & " Bauteile in der Auswahl.", MsgBoxStyle.Critical, "iLogic Analyze Interference")
    Exit Sub
End If

Dim oResults As InterferenceResults
oResults = oAsmCompDef.AnalyzeInterference(oCheckSet)

If oResults Is Nothing
    MsgBox("Fehler in der Kollisionsanalyse", MsgBoxStyle.Critical, "iLogic Analyze Interference")
    Exit Sub
End If

Dim dVolume As Double
If oResults.Count=0 Then
    MsgBox("Keine Kollisionen gefunden.", MsgBoxStyle.Critical, "iLogic Analyze Interference")
    dVolume = 0
End If

 
Dim oResult As InterferenceResult
Dim sOccName_1 As String
Dim sOccName_2 As String
Dim sOccName_3 As String
Dim oParam As UserParameter
For Each oResult In oResults
dVolume = Round(oResult.Volume, 3)
sOccName_1 = oResult.OccurrenceOne.Name
sOccName_2 = oResult.OccurrenceTwo.Name
sOccName_3 = oResult.OccurrenceThree.Name
Try
    oAsmDoc.ComponentDefinition.Parameters.UserParameters.Item(Replace(sOccName_1 & "_vs_" & sOccName_2 & "_vs_" & sOccName_3,"-","_")).Value = dVolume
Catch
    oAsmDoc.ComponentDefinition.Parameters.UserParameters.AddByExpression(Replace(sOccName_1 & "_vs_" & sOccName_2 & "_vs_" & sOccName_3,"-","_"), dVolume , "cm^3")
End Try
Next


Leider bekomme ich die Fehlermeldung: "Der öffentliche Member OccurrenceThree für den Typ InterferenceResult wurde nicht gefunden."

Gibt es anderweitig die Möglichkeit das gemeinsamen Volumen zwischen mehr als 2 Bauteilen/Körpern zu bestimmen.

Vielen Dank im Voraus.

MfG Philipp

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

rkauskh
Moderator
Dipl.-Ing. (FH) Versorgungstechnik




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

Beiträge: 2428
Registriert: 15.11.2006

Windows 10 x64, AIP 2023

erstellt am: 17. Dez. 2021 20: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 Philfi 10 Unities + Antwort hilfreich

Hallo

Zitat:
für das die zweite Frage habe ich rausgefunden dass es nicht möglich ist ein berechnetes Schnittvolumen als neuen Körper zu definieren und diesen für eine neue Kollisionsanalyse zu verwenden.

Jein. Das Kollisionsvolumen ist ein transienter SurfaceBody, der z.B. als NonParametricBaseFeature in ein temporäres Bauteil kopiert werden könnte. Damit wäre eine nachfolgende zweite Kollisionsanalyse möglich. Das aber als Schleife in quasi Echtzeit durchlaufen lassen und immer wieder aktualisieren ... vermutlich eher nicht. Inventor ist halt ein Kontruktionsprogramm und für Simulationen nur bedingt geeignet.

Zitat:
Gibt es anderweitig die Möglichkeit das gemeinsamen Volumen zwischen mehr als 2 Bauteilen/Körpern zu bestimmen.

Kollisionen bestehen immer nur zwischen zwei Körpern. Es kann der Fall eintreten, dass die Kollisionsvolumen von drei Körpern sich überschneiden. Man könnte dann die Kollisionsvolumen in ein neues Bauteil kopieren und mit einem Combine Feature verbinden. Entsteht ein Volumen, haben sich die drei Volumina überschnitten.

------------------
MfG
Ralf

RKW Solutions GmbH
www.RKW-Solutions.com

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

Roland Schröder
Moderator
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: 13310
Registriert: 02.04.2004

IV 2019 + 2020 + 2021
W7pro64 F-Secure-Safe
Dell-M4600 2,13GHz 12GB
Quadro2000M
15,4"1920x1080
MS-IntelliMouse-Optical
SpacePilotClassic

erstellt am: 18. Dez. 2021 15:57    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 Philfi 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von Philfi:
Gibt es anderweitig die Möglichkeit das gemeinsamen Volumen zwischen mehr als 2 Bauteilen/Körpern zu bestimmen.
Wenn Du die beteiligten Bauteile kennst, kannst Du mit der Funktion Abgeleitete Komponenten (AK) einen Schnittkörper auch aus mehreren Bauteilen als ganz normales stabiles Modell erstellen. Die Schnittlogik kannst Du schon in der AK wählen, oder Du leitest einzelne Volumenkörper ab und erzeugst die Schnitte mit der Funktion "Volumenkörper kombinieren", die kann ebenfalls boolesch. 

Die Schnittmengen sind allerdings oder-verknüpft. Es muss immer ein Bauteil 1 geben und des Ergebnis ist dann >1und2 oder 1und3<.

Wenn Du 1und2und3 willst, musst Du zwei Ableitungen hintereinander hängen: >(1und2)und3<. Mit Volumenkörper kombinieren geht das in einer ipt.

(Kleine Erinnerung: Um nicht zwangsweise alle sichtbaren Komponenten zu erhalten, auf der dritten Seite des AK-Dialogfensters ("Darstellung") den Haken bei Assoziativ rausmachen!)

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

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)2024 CAD.de | Impressum | Datenschutz