Zitat:
Original erstellt von Sir-Mad:
... Aber wieso hat Inv damit Probleme? Ist die Funktion einfach nicht so schnell, so dass Inv es nicht rafft, wenn man zu schnell zieht? Oder hat das Ganze irgendeinen Sinn? ...
Die Berechnung auf Kontakt ist eine Kollisionsprüfung. Es muss also laufend die Schnittmenge aller Volumina der betroffenen Komponenten berechnet werden. Das ist sehr rechenintensiv und es würde die Bewegung der Komponenten unerträglich langsam machen, wenn nach jeder Bewegung des Mauszeigers um einen Bildschirmpunkt das Berechnungsergebnis abgewartet würde.
Daher läuft die Kollisionsprüfung zyklisch im Hintergrund ohne die Mausbewegung anzuhalten. Bewegt man nun die Komponenten mit der Maus über eine Kollision hinweg, während noch die Berechnung einer Situation vor der Kollision läuft, startet die nächste Berechnung erst erneut, wenn bereits wieder ein kollisionsfreier Zustad erreicht wurde.
Damit ist die Erkennung eines Kontaktes vor allem von der Geschwindigkeit des Rechners und der Bewegungsgeschwindigkeit der Maus abhängig. Damit die Wahrscheinlichkeit der Kontakterkennung steigt, kann die Überprüfung auch optimiert werden. Dazu stehen zwei Möglichkeiten in den Dokumenteinstellungen der Baugruppe zur Verfügung:
- Nur Kontaksatz: Hiermit kann die Anzahl der zu untersuchenden Komponenten eingeschränkt werden. Was sich nicht berühren kann, brauch ja auch nicht auf mögliche Kollision untersucht werden. Die potenziellen Komponenten müssen dann aber dem Kontaktsatz hinzugefügt werden (Kontextmenü oder Exemplareigenschaft).
- Da die Berechnungszeit erheblich von der Komplexität der Flächengeometrie abhängt, kann die Berechnung auf einfachere Flächen beschränkt werden. Die Kollision komplexerer Flächen wird dann aber nicht erkannt.
Interessant ist vielleicht noch, das in dem genannten Beispiel das plötzliche Herausziehen der Kolbens aus dem Zylinder wesentlich einfacher ist, als ihn wieder hinein zu bringen.
Das liegt daran, dass zunächst geprüft wird, ob die Boundingboxen (Quader der maximalen Ausdehnung in x, y und z) der Komponenten sich überschneiden. Ist dies nicht der Fall, können sich auch die Komponenten selbst nicht überschneiden. Diese Berechnung aufgrund der Quader erfolgt erheblich schneller als die Berchnung über die wirkliche Geometrie der Volumenkörper. Erst wenn sich die Boundingboxen überschneiden, wird die wirkliche Geometrie zur Berechnung herangezogen.
Ist der Kolben also außerhalb des Zylinders, reicht zunächst die schnelle Berechnung der Boundingboxen aus. Befndet sich der Kolben im Zylinder überschneiden sich die Boundingboxen laufend und die langsamere und genauere Berechnung der Volumenkörper ermöglicht ein leichteres Überspringen des Kontaktpunktes.
Bei einer Bewegung über eine animierte Abhängigkeit (Bauteil nach Abhängigkeiten bewegen) erfolgt übrigens die Kontaktprüfung für jeden Bewegungsschritt explizit.
Man sieht, es steckt schon einiges an Überlegungen hinter so einer Funktion, um sie wenigstens so brauchbar wie möglich zu machen.
Zitat:
Original erstellt von nightsta1k3r:
Roland (Doc Snyder) hat es einmal erklärt, sollte sich finden lassen ...
Da ich diese Erklärung nicht finden konnte, habe ich obige mal neu geschrieben. Vielleicht findet man diese dann bei Bedarf.
Zitat:
Original erstellt von Sir-Mad:
... ein Kollege hat mir gerade am Beispiel eines Pneumatikzylinders die Funktion Kontaktlöser gezeigt. ... bewegt er sich innerhalb der physikalischen Grenzen des Zylinders. ...
Ab IV2011 kann die Begrenzung eines Pneumatikzylinders aber auch über die Grenzwerte einer Abhängigkeit erfolgen. Diese können durch eine Bewegung nicht übersprungen werden.
In IV2010 und früher musste man hierzu noch den tanzenden Arbeitspunkt verwenden. Und der wiederum stammt ursprünglich von Doc Snyder ...
------------------
Michael Puschner
Autodesk Inventor Certified Expert
Mensch und Maschine Scholle GmbH
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP