SolidWorks KnowHow - Eigene Hüllfunktion

sw-knhow.gif (10636 Byte) Sie kennen das alle: da werden die mühevoll konstruierten und detaillierten Einzelteile immer weiter in die nächst höhere Baugruppen zusammengeladen und der Rechner wird langsamer und langsamer ... das Geschrei ist da, die Rechner zu langsam und SolidWorks taugt nichts für große Baugruppen.

Horrorszenario aus dem täglichen Alltagsgeschäft ... und offensichtlich nichts gegen zu machen. Ich möchte Ihnen hier eine Methode vorstellen, wie Sie diesem ganz normalen Wahnsinn begegnen können.

Übersicht

Das Problem

Gleich vorweg: dies ist kein SolidWorks-eigenes Problem, sondern betrifft in dieser Form jedes CAD-System (auch 2D oder sogar Office-Software wie Word), welches mit Referenzzierungen arbeitet. Aber worum geht es überhaupt?

SolidWorks ist hervorragend dazu geeignet, schnell und einfach selbst komplexe Teile zu modellieren. Durch die einfache Handhabungen werden aus diesen Einzelteilen schnell Baugruppen zusammengestellt, diese werden weiter zusammengeladen und der Traum aller Marketingleute (oder der Projektplaner) ist dann das durchdetaillierte Modell der gesamten Anlage.

Also werden die Baugruppen immer weiter zusammengeladen, und noch eine Ebene dazu, und so weiter ... und irgendwann ist die Schmerzgrenze erreicht, bei der tatsächlich kein effizientes Arbeiten aufgrund der drastisch verringerten Geschwindigkeit möglich ist.

In dieser Situation (oder meist weit vorher) geht dann ein Aufheulen durch den Kreis der User: der Arbeitsplatz ist zu langsam, hat zuwenig Arbeitsspeicher, und sowieso gibt's beim ALDI ja bessere Rechner. Außerdem setzen wir kein Giga-Ethernet ein, SolidWorks taugt nichts, wozu bezahlen wir den Wartungsgebühren und "als ich am Wochenende in der Stadt nach einer neuen Küche geschaut habe, haben die das in 15 Minuten auch in 3D einplanen können".

kn_hull05_small.gif (10698 Byte)

Vollbild 21 KB

kn_hull04_small.gif (5157 Byte)

Vollbild 11 KB

Sie kennen das, nicht war? Tja, aber wie jetzt heraus aus diesem Dilemma?

Zurück zum Seitenanfang

Lösungsansätze

Es gibt verschiedene Lösungsansätze, um dieses Problem zu minimieren. Sie sehen schon, lösen geht nicht. Ich möchte hier kurz einige Lösungsansätze vorstellen und diese mit wenigen Kommentare versehen und Ihnen dann eine durchaus praxisgerechte Lösung vorschlagen, die einigen Erfolg verspricht.

Der erste und schnellste Weg ist die Aufrüstung des Rechners. Arbeitsspeicher ist unter NT sowieso durch nichts zu ersetzen (also 256MB bis 512 MB RAM sollten schon drin sein) und ein aktueller Prozessor (oder auch mit Abstrichen zwei) sowie eine exzellente Grafikkarte kann da helfen.

Aber: sie schieben damit das Problem nur hinaus. Der willige User bekommt jeden noch so gut ausgebauten Arbeitsplatz in die Knie. Sie schieben die Schmerzgrenze nur von 10 Teile auf 25 auf 50 auf 100 auf 250 auf ... soll ich weitermachen? Und fatalerweise hat diese Spirale eher einen gegenteiligen Effekt: weil die Rechner auf einmal mit noch so komplexen Einzelteilen überhaupt keine Probleme mehr habt wird noch weniger darauf geachtet, wie modelliert wird. Und die Rückstellfedern sehen doch wirklich gut aus, und wenn man den Deckel transparent macht sieht man alle 8 Stück sogar im Gehäuse ...

Der zweite (und meist schnell geforderte) Weg ist die Performance vom Systemanbieter einzufordern. Wenn sich nur genügend Kunden melden wird das auch sicherlich getan. Im Fall von SolidWorks konnten wir uns gerade bei den letzten Major-Releases immer wieder über eine deutliche Geschwindigkeitssteigerung freuen ... zumindest für ca. 2 Tage, dann hatte uns der Alltag wieder.

Auch hier wird das Problem nur weiter nach vorn verschoben. Wohlgemerkt, ich bin schon der Meinung, dass die Softwarehersteller (ich schließe dabei ausdrücklich SolidWorks mit ein) an der Performance arbeiten sollen, aber ihnen die gesamte Verantwortung zu übergeben wäre IMHO nicht richtig.

Dieser Schritt scheint der erfolgsversprechenste. Aber welche Funktionen brauchen wir denn dafür? Und wenn Sie doch genau wissen, was sie wollen, haben Sie schon einen Verbesserungsvorschlag an SolidWorks geschrieben?

Wenn wir uns auf dem Markt ein wenig umgucken, gibt es einiges an Funktionalität, das in dieser Situation hilft. Die Light-Weight-Komponenten von SolidWorks gepaart mit der Shrink-Wrap-Funktion von Pro/E und den Grafikfunktionen aus NavisWorks würden der Sache auf die Beine helfen. Voxeltechnik ist auch kein Fremdwort mehr, aber das ganze bitte voll-assoziativ. Und ja, ich habe das an SolidWorks übermittelt ...

Ich gehe mal davon aus, dass auch SolidWorks noch einige Ideen in der Schublade hat. Letztendlich löst das aber die heutigen Probleme nicht, und darauf warten oder deswegen das CAD-System zu wechseln ist keine Lösung.

Immer wieder in die Diskussion gebracht sind die abgespeckten Modelle. Soll heißen, Sie schmeißen aus ihren Teilen und Baugruppen alle nicht benötigten Features bzw. Teile heraus und minimieren so die Datenmenge. Der meiner Erfahrung nach zweitbeste Ansatz, aber auch mit relativ viel Arbeit verbunden. Die Konfigurationen von SolidWorks helfen dabei sicher weiter, aber so richtig glücklich ist der Anwender damit nicht.

Jetzt sind wir endlich zu meiner Nummer 1 gekommen: unter Ersatzmodell verstehe ich die bildlich und konstruktiv ausreichende Darstellung eines komplexen Teils oder Baugruppe; also so eine Art Legoklötzchen. Diese Ersatzmodelle können dann in die nächste Baugruppenebene eingebaut werden (statt des vollständig detaillierten Modells), von der dann wieder ein Ersatzmodell generiert wird.

Pro/E hat in der Version 2000i (glaube ich) eine Funktion, die genau so etwas (mit leichten Schwächen) leisten kann: Shrink-Wrap erzeugt so eine Art Hülle von einer Baugruppe. Apropos Hülle: als die Hüllfunktion in SolidWorks 98 vorgestellt wurde hatte ich eigentlich erwartet, dass es genau das ist ... leider kann man die so erzeugte Hülle nur zur erweiterten Auswahl und nicht als echtes Part benutzen. Mir gefiel die Übersetzung "Zone" für diese Funktion viel besser.

Okay, wenn Pro/E diese Funktion bietet kann es nicht mehr lange dauern und SolidWorks kann das auch. Aber diese Funktion hat auch einige Schwächen und wie schon oben gesagt: wer will darauf warten, die Probleme sind heute schon da.

Es hilft nichts, der Benutzer muss sich heute sein Ersatzmodell selbst machen. Einen erfolgversprechenden Weg möchte ich in den kommenden Absätzen vorstellen.

Zurück zum Seitenanfang

Hüllfunktion selber machen

Wie in den vorigen Absätzen zu lesen halte ich das Erzeugen von Ersatzmodellen (liebevoll Legomodelle genannt) für den besten Ansatz, um die Performanceprobleme mit den großen Baugruppen in den Griff zu kriegen.

Der Trick ist eigentlich recht einfach, wenn man erst mal bereit ist, die zusätzliche Arbeit zu investieren ein Ersatzmodell zu generieren. Sie können sich es ungefähr so vorstellen, als legten Sie eine Hülle um ihre Baugruppe, die praktisch nur noch die relevanten Außengeometrien und wichtige Anschlussmaße enthält.

Damit das ganze Spiel mit dem Ersatzmodell funktioniert, muss dieses voll assoziativ zu der Baugruppe sein, die es ersetzen soll. Wäre die Hülle losgelöst davon (wie z.B. der Ansatz über "Teile verschmelzen", als Parasolid exportieren und wieder als dummen Klumpen einzusetzen) müsste bei jeder Änderung der Baugruppe überprüft werden, ob auch das Ersatzmodell geändert werden muss und diese Arbeit ggf. durchgeführt werden. Eine recht aufwendige Sache, die entweder große Disziplin beim Anwender oder verhältnismäßig hohen Aufwand im PDM-System bedeutet.

Aber wie gesagt, es geht auch einfacher. Erstellen Sie in der Baugruppe, von der Sie das Ersatzmodell haben wollen, ein zusätzliches Einzelteil und geben dem Kind einen Namen (im Beispiel zyl_abgespeckt.sldprt). Ich persönlich bevorzuge es, dieses Modell immer als erstes in die Baugruppe einzusetzen, aber das ist nicht zwingend notwendig.

Modellieren Sie jetzt diese Hülle, indem Sie alle notwendigen Geometrien und Anschlussmaße (und nur diese) von Elementen, Kanten etc. aus der Baugruppe übernehmen. Durch diese Referenzierungen stellen Sie sicher, dass alle wichtigen Geometrien und Parameter des Ersatzmodells voll assoziativ zu ihrer Baugruppe sind.

Blenden Sie nun das Ersatzmodell aus. Wichtig: nicht unterdrücken, sondern nur ausblenden! Das zusätzliche Modell sollte im Vergleich zum Rest der Baugruppe keine zusätzliche Belastung für den Rechner darstellen, und dadurch, dass Sie es nur ausblenden, bekommt das Ersatzmodell alle Änderungen an den übernommen Geometrien und Parametern mit und ändert sich entsprechend.

In die nächst höhere Baugruppe bauen Sie nun das Ersatzmodell ein, nicht mehr die komplette Baugruppe mit allen Details. Hier kommt uns dann eine recht angenehme Eigenschaft von SolidWorks zu Hilfe: da das Ersatzmodell auf einmal alle referenzierten Parameter und Geometrien verloren hat, bleibt es genauso, wie es bei letzten Speichern in der Baugruppe gewesen ist.

Sie können das Ersatzmodell nicht direkt ändern, aber warum sollten Sie das auch tun wollen? Logischerweise ändern Sie die originale, vollständige Baugruppe. Wenn sich hier jetzt etwas an den übernommenen Geometrien oder Parametern ändert, ändert sich das Ersatzmodell automatisch mit und wird entsprechend mit abgespeichert.

Klingt ganz einfach, ist es auch! Wenn Sie ein Beispiel zum Spielen haben möchten ... ich hab das schon mal vorbereitet :-))) Laden Sie sich doch einfach den Beispielzylinder (621 KB) herunter (SolidWorks99 Format). Darin ist zum einen die Baugruppe zylinder.sldasm mit besagtem Ersatzmodell zyl_abgespeckt.sldprt sowie eine übergeordnete Baugruppe haupt-bg.sldasm, in der das Ersatzmodell eingebaut ist.

Ändern Sie mal in der Komplettbaugruppe die Dicke von Deckel oder Boden oder ziehen Sie einfach den Kolben ganz aus ... und schauen Sie, was das Ersatzmodell hier und nach dem Speichern in der Hauptbaugruppe macht.

Und auch eine Falle können Sie hier bewundern: schalten Sie mal auf die Explosionsdarstellung um und schauen sich dann die Hülle an

kn_hull00.gif (2526 Byte)

Schematische Darstellung

kn_hull02_small.gif (5695 Byte)

Vollbild 11 KB

kn_hull01_small.gif (9325 Byte)

Vollbild 29 KB

kn_hull03_small.gif (4903 Byte)

Vollbild 11 KB

Neben der besseren Performance durch die deutlich reduzierte Datenmenge (und Sie können sich sicherlich vorstellen, dass das hier nur ein sehr einfaches Beispiel ist) ist auch der benötigte Plattenplatz und damit auch der Durchsatz im Netzwerk trotz eines zusätzlichen Modells gesunken! (Dateigröße Ersatzmodell 69 KB, Haupt-Baugruppe mit Ersatzmodell 37 KB, mit detaillierter Baugruppe 239 KB, alle Werte ohne besondere Optimierung auf Dateigröße, aber mit unfrag behandelt). Sie können sich sicher leicht vorstellen, welche Auswirkungen dieses Verfahren hat, wenn es konsequent auf jede Baugruppe ab einer bestimmten Größe oder Detaillierungsgrad angewendet wird.

Aber jemand muss diese zusätzliche Arbeit leisten. Sinnvollerweise sollte dies der Konstrukteur der Baugruppe machen, da er/sie normalerweise weiß, welche Geometrien und Parameter auch in der nächsten Ebene wichtig sind. Dummerweise hat dieser Benutzer (wenn er nicht gerade selbst auch die nächste Stufe bearbeitet) keinen Vorteil, sondern nur mehr Arbeit. Zumal diesem Benutzer ja auch kein besonderes Problem mit der Performance in dieser Baugruppe entsteht. Auf den gesamten Prozess betrachtet natürlich eine sehr kurzsichtige Sichtweise, aber die Termine ... ich brauche nicht weiter reden, denke ich.

Zurück zum Seitenanfang

Vor- und Nachteile

Zunächst zusammenfassend die Vorteile der Methode mit eigenen Hüllkörpern zu arbeiten

Nicht verschwiegen werden sollen auch die Nachteile, die diese Arbeitstechnik mit sich bringt:

Zurück zum Seitenanfang

Nachteile ausbügeln: Ersatzmodelle umschaltbar

Mittlerweile schreiben wir das Jahr 2001 und von einer automatisch erzeugten Hülle in SolidWorks ist immer noch nichts zu sehen. Aber das Ersatzmodell lebt und hat schon einige Zeit bei Regenerieren und Arbeiten in diversen Baugruppen und Zeichnungen einsparen können. Und durch das fleißige Testen und Verfeinern unserer Anwender hat sich auch die Technik der Ersatzmodelle weiterentwickelt und viele der Nachteile konnten eliminiert werden.

So war die fehlende Möglich auf vollständige Darstellung umzuschalten eine der größten Hürden bei der Akzeptanz. Da man ja ein Part nicht durch eine Baugruppe ersetzen kann konnte selbst bei dringendem Bedarf nicht die vollständige Baugruppe eingeladen werden und das war (für viele ein willkommenes) KO-Kriterium.

So wird bei der erweiterten Variante des Ersatzmodells auf Konfigurationen zurückgegriffen. Sie arbeiten dabei mit zumindest drei Konfigurationen:

  1. Standard
    In dieser Konfiguration ist alles wie oben beschrieben, alle Komponenten sind eingeladen und das Ersatzmodell ist ausgeblendet (nicht unterdrückt) um alle Änderungen an der Baugruppe mit zu bekommen
  2. Ersatzmodell (oder einfach EM)
    In dieser Konfiguration ist nur das Ersatzmodell sichtbar, alle anderen Komponenten sind unterdrückt. Diese Konfiguration wird immer dann (gerade in übergeordneten Baugruppen) eingesetzt, wenn mit dem geringeren Datenvolumen des Ersatzmodells gearbeitet werden kann. Dadurch das alle anderen Komponenten unterdrückt sind kommt es zu dem erhofften Leistungsschub.
  3. Komplett (oder OEM = ohne Ersatzmodell)
    Hier sind alle Komponenten bis auf das Ersatzmodell vollständig, das Ersatzmodell ist unterdrückt. Diese Konfiguration wird eingesetzt, wenn es auf die vollständige Darstellung ohne Interferenzen mit dem Ersatzmodell ankommt, z.B. in Zeichnungen mit Schnitten.

Denken Sie daran, dass sie auch schon direkt beim Aufrufen einer Baugruppe eine bestimmte Konfiguration wählen können, was den Lade- und Aufbauvorgang erheblich beschleunigen kann.

Aber auch hier gibt es ein paar Fallen, in die man nicht treten sollte: um in der nächst höheren Ebene richtig zwischen den Konfigurationen umschalten zu können müssen ein paar wichtige Vorbereitungen getroffen werden. Diese sind notwendig, damit ihnen hinterher Ersatzmodell und Komplettdarstellung nicht hin- und herrucken.

Folgende Punkte bitte unbedingt beachten oder durchführen:

Achten Sie dabei darauf, dass z.B. bei der Übernahme von Bohrungskanten in diese Skizze auch ein Mittelkreuz von Hand eingezeichnet wird um eine horizontale oder vertikale Ausrichtung hinzubekommen.

Durch diese Art der Verarbeitung des Ersatzmodells ist es nun möglich in der übergeordneten Baugruppe ohne Schwierigkeiten zwischen Ersatzmodell und vollständiger Darstellung hin- und herzuschalten und auch eine Konfiguration zu benutzen, die ohne Interferenz zwischen EM und Original einher kommt.

Auch diese Art lässt sich beliebig weit nach oben vorsetzen, in dem jedes mal die entsprechenden Konfigurationen, Ersatzmodelle und Masterskizzen in jeder Baugruppenhierarchieebene erzeugt werden.

Zurück zum Seitenanfang

Fazit

Um mit großen Baugruppen sinnvoll arbeiten zu können gibt es verschiedene Ansätze die Gesamtperformance zu verbessern. Eine sinnvolle Lösung ist das Erstellen von abgespeckten und Ersatzmodellen. Solange die Softwarehersteller solche Funktionen nicht als Automatismus anbieten, sollten die Benutzer diese zusätzlichen Modelle selbst erstellen. Das hier vorgestellte Verfahren, wie dies mit einfachen Mitteln für ein voll assoziatives Ersatzmodell durchgeführt werden kann, kann einfach in jeder Hierarchieebene der Baugruppenstruktur eingebracht werden. Um zwischen dem Ersatzmodell und der vollständigen Darstellung wechseln zu können gibt es einen alternativen Ansatz.

Der dabei zu erzielende Performancegewinn ist gerade bei komplexen Baugruppen durch sinnvolle Ersatzmodelle erheblich.

Falls Sie zu diesem Themenkomplex eigene Erfahrungen oder weitere Anregungen haben schreiben Sie mir doch einfach unter Stefan.Berlitz@solidworks.cad.de .

Zurück zum Seitenanfang

hr.gif (4491 Byte)

counter Kritik und Anregungen bitte an Stefan Berlitz. Letzte Änderung dieser Seite am Donnerstag, 01. Februar 2007 17:40