SolidWorks KnowHow - Bohrungsassistent anpassen

sw-knhow.gif (10636 Byte) Schon in einer der ersten Versionen (ich glaube SW98) wurde der Bohrungsassistent eingeführt. Dieser dient dazu in einfacher Weise aus vorgegebenen Listen komplette Bohrungen auch mit Formsenkungen oder Gewinden in SolidWorks modellieren zu können.

Dieses praktische Werkzeug hat im Laufe der Jahre eine kontinuierliche Weiterentwicklung erlebt. Was aber fehlt ist die Möglichkeit die Werte anzupassen oder eigene hinzuzufügen. Dieser Artikel soll die Vorgehensweise dazu erläutern.

Inhalt

  1. Vorsicht ist die Mutter ...
  2. Die Datenbanken
  3. Die default.mdb
  4. Eigene Tabellen erstellen oder Vorhandene editieren
  5. Anpassen der Wertedatenbanken
  6. Zusammenfassung

Update zu SolidWorks 2003 

Mein Dank gilt an dieser Stelle Herr Peter Storz von der SolidLine AG, der mir mit seiner Beschreibung "Inside SW2000 HoleWizard" die Anregung zu diesem Artikel gegeben hat.

Update ab SolidWorks 2004

Ab der SolidWorks 2004 gibt es eine offiziell unterstützte Methode den Bohrungsassistenten anzupassen, dazu in den Systemoptionen ganz unten auf Datenoptionen klicken und dort auf den Knopf Normdaten bearbeiten. Dann eine bestehende Norm kopieren und darin die Änderungen durchführen.

Viele Tipps und Kniffe dazu sind im Thread Bohrungsassistent anpassen auch unter 2004 ( http://ww3.cad.de/foren/ubb/Forum2/HTML/004519.shtml ) zu finden, diesen sollten Sie sich unbedingt komplett durchlesen.

Zurück zum Seitenanfang

Vorsicht ist die Mutter ... 

Der Bohrungsassistent bezieht seine Werte aus einigen Handvoll Datenbanken, die weiter unten aufgeführt sind. Um den Bohrungsassistenten anzupassen müssen diese Datenbanken geändert werden. Alle hier vorgestellten Informationen und Techniken sind nach bestem Wissen beschrieben, werden aber in keiner Form offiziell von SolidWorks oder dem Autor unterstützt. Sie führen alle Veränderungen auf eigene Gefahr durch. Machen Sie immer vollständige Sicherheitskopien aller zu verändernden Dateien falls doch etwas schief geht. Wenn Ihnen die Begriffe Access, Datenbank, Tabelle und Feld nichts sagen lassen Sie ganz die Finger davon.

Auch sollten Sie sich im Klaren darüber sein, dass SolidWorks den Aufbau und die Verwendung der Datenbanken jederzeit ändern kann. Sie sollten sicherheitshalber vor dem Einspielen eines Servicepacks die ursprüngliche Version der Datenbanken wieder herstellen, falls diese verändert werden. Machen Sie weder SolidWorks noch den Autor für irgendwelche Probleme verantwortlich und probieren Sie im Zweifelsfall selber weiter.

Zurück zum Seitenanfang

Die Datenbanken 

Der Bohrungsassistent bezieht seine Werte aus verschiedenen lokalisierten (also sprachabhängigen) Datenbanken. Aus diesem Grund finden Sie diese im Verzeichnis [SW-Install]\lang\german , es sind alles Access-Datenbanken im Access-97-Format. Wenn Sie eine dieser Datenbanken anpassen und auch auf eine andere Sprachversion umstellen können (z.B. für Fremdarbeiter, die auf die englische Benutzerführung umschalten) müssen Sie diese auch im entsprechenden Ordner der Installation anpassen (also z.B. [SW-Install]\lang\english).

Zusätzlich erzeugt SolidWorks beim ersten Aufruf des Bohrungsassistenten die Datei default.mdb im Verzeichnis [SW-Install]\data. Aus welchem Grund auch immer hat diese Datenbank im Gegensatz zu allen Anderen das Format von Access 2000, kann aber ohne Schwierigkeiten im Format Access 97 abgespeichert und so benutzt werden. Zu den Besonderheiten und Fallen, die im Zusammenhang mit der default.mdb lauern lesen Sie bitte weiter unten den Abschnitt über die default.mdb.

Mit der SolidWorks 2001 werden die folgenden Datenbanken für unterschiedlichen Normen mit ausgeliefert:

Datenbankname Anzeige im Bohrungsassistent
ansiinch.mdb ANSI Zoll
ansimtrc.mdb ANSI metrisch
bsi.mdb BSI
din.mdb DIN
dme.mdb DME Werkzeugnormalien
hasco-metric.mdb HASCO metrische Werkzeugnormalien
hcoil-inch.mdb Helicoil Zoll
hcoil-metric.mdb Helicoil metrisch
iso.mdb ISO
jis.mdb JIS
pcs.mdb PCS Werkzeugnormalien
progressive.mdb Progressive Werkzeugnormalien
superior.mdb Superior Werkzeugnormalien

Außerdem gibt es noch die Datei holewzd.idx im Verzeichnis [SW-Install]\lang\german (also auch sprachabhängig), in der die Beschreibungen für den Reiter Übertragung hinterlegt ist. Dies ist eine reine ASCII-Datei und kann mit einem gewöhnlichen Editor bearbeitet werden, ist aber nicht Bestandteil dieser Beschreibung.

Zurück zum Seitenanfang

Die default.mdb 

Die default.mdb ist das Herzstück des Bohrungsassistenten. Hier sind die Datenbanken eingetragen, die bei jedem Start des Assistenten dynamisch ausgewertet werden. Ferner werden hier die letzten Einstellungen und Favoriten gespeichert, was die default.mdb eigentlich zu einer userbezogenen Datei machen sollte. Die default.mdb wird erst beim ersten Aufruf des Bohrungsassistenten im Access-2000-Format normalerweise im Verzeichnis [SW-Install]\data angelegt. Sie können diese aber auch im Access-97-Format abspeichern, sie arbeitet trotzdem klaglos.

Leider führen einige Besonderheiten zu Problemen, die Sie kennen sollten, um bei der Fehlersuche nicht dem Wahnsinn anheim zu fallen. Diese treten vor allem in Verbindung mit Rechteinschränkungen auf und sind entsprechend  schwer zu lokalisieren. Schauen wir uns die verschiedenen Fälle nacheinander an:

Der normale Fall

Wenn das data-Verzeichnis schreibberechtigt ist und die default.mdb noch nicht existiert wird dort die Datei default.mdb erstellt. Bei weiteren Aufrufen werden dort die zuletzt gesetzten Einstellungen und Favoriten gespeichert.

Der normale Fall bei schreibgeschützten Installationen

Bei Serverinstallationen sind die Installationsverzeichnisse üblicherweise schreibgeschützt, so auch der Ordner data und alle Dateien darin. Wenn jetzt ein User den Bohrungsassistenten aufruft erhält er folgende Warnmeldung/Frage.

Jetzt kann man einen Ordner auswählen, in dem eine neue default.mdb erzeugt wird; es wird nicht einfach eine vorhandene aus dem data-Verzeichnis kopiert. Dieses angegebene Verzeichnis wird userabhängig in der Registry im Schlüssel  HKEY_CURRENT_USER\Software\SolidWorks\SolidWorks 2001\General im Zeichenfolgenwert User Data Path abgelegt. Und genau da beginnen dann die Probleme.

Ein komischer Fall

Komisch deswegen, weil die Voraussetzungen eher ungewöhnlich sind, aber durchaus mal auftauchen können: in diesem Szenario sei das data-Verzeichnis schreibberechtigt, die default.mdb ist aber schreibgeschützt. Ob eine "eigene" default.mdb des Users im Verzeichnis laut User Data Path existiert spielt keine Rolle.

So kurios die Voraussetzungen sind, so kurios ist die Fehlermeldung. Wenn diese Konstellation auftritt und der User den Bohrungsassistenten aufruft erhält er folgende Warnmeldung:

und anschließend noch die berühmt-berüchtigte Gültige Profilkonfiguration konnte nicht erstellt werden Meldung mit einem nachfolgend kurzen Aufflackern des Assistenten.

Der Verzweiflungsfall

Manchmal will der Bohrungsassistent bei einem User einfach nicht mehr starten. Wie in der FAQ-Frage Der Bohrungsassistent kann nicht mehr gestartet werden beschrieben ist das fast immer darauf zurückzuführen, dass das data-Verzeichnis nicht schreibberechtigt ist und beim Benutzer im User Data Path in der Registry ein nicht (mehr) gültiges Verzeichnis eingetragen ist. Dies kann recht schnell passieren, wenn z.B. bei der erstmaligen Fragen nach dem Ablageort ein Projektverzeichnis angegeben wurde, was nun gelöscht ist. Tückisch bei der Suche danach ist die Tatsache, dass SolidWorks auch in Registryzweigen älterer Installationen nach diesem Schlüssel sucht, also schauen Sie unter HKEY_CURRENT_USER\Software\SolidWorks\SolidWorks 2001Plus\General, dann unter ...\SolidWorks 2001\General, dann ...\SolidWorks 2000\General usw. bis sie den Schlüssel gefunden haben. Diesen einfach löschen, dann erfolgt beim nächsten Aufruf des Assistenten wieder die Frage.

Zurück zum Seitenanfang

Eigene Tabellen erstellen oder Vorhandene editieren 

Warum nun diese ganzen Erklärungen zur default.mdb? Um besser entscheiden zu können, wie wir den Bohrungsassistenten anpassen wollen.

Prinzipiell haben wir zwei Vorgehensmöglichkeiten: wir ändern direkt die originalen Wertedatenbanken ab oder kopieren uns eine davon als "Eigenentwicklung" und tragen diese dann zur Verwendung mit in der default.mdb ein.

Die eigene Wertedatenbank hat den riesigen Vorteil, dass Sie praktisch nichts kaputt machen können und Ihnen auch ein Servicepack oder neue Version keinerlei Kopfschmerzen bereitet.

Aus den vorigen Abschnitten können Sie aber sehen, dass es bei einer servergestützten Installation praktisch nicht in Frage kommt, die default.mdb zu editieren und überall in den verschiedensten Verzeichnissen auf dem aktuellen Stand zu halten. Selbstverständlich gibt es aber auch Strategien, die es in diesem Fall erlauben.

Wenn Sie aber z.B. eine Einzelplatz-Installation haben ist das Einbinden einer "eigenen" Datenbank einfacher und sicherer. Dazu rufen Sie ein mal den Bohrungsassistenten auf um die default.mdb zu erzeugen und öffnen diese anschließend in Access 2000. Wenn Sie nur Office97 haben müssen Sie sich die default.mdb von jemandem nach Access 97 konvertieren lassen, SolidWorks arbeitet auch dann zuverlässig damit.

In der default.mdb gibt es 3 (später 5) Tabellen:

Tabelle Beschreibung
favorites Indextabelle der Favoriten
settings zuletzt benutzte Einstellungen und Werte der Favoriten
standards zu benutzende Wertedatenbanken

Dazu kommen später dann die beiden Tabellen fav_bak und set_bak (nur Backup).

Um Ihre eigene Datenbank mit einzubinden kopieren Sie also einfach eine vorhandene Datenbank und benennen Sie diese um. Im Beispiel habe ich die din.mdb genommen und als mydin.mdb ins Verzeichnis [SW-Install]\lang\german kopiert.

Öffnen Sie nun die Tabelle standards und erzeugen Sie einen neuen Datensatz mit dem Namen Ihrer eigenen Wertedatenbank. Am einfachsten hängen Sie diesen einfach hinten dran.

Im Bohrungsassistenten werden die Datenbanken übrigens genau in dieser Reihenfolge angezeigt. Wenn Sie hier irgendwelche Datensätze löschen werden diese auch nicht mehr in der Auswahlliste angezeigt.

Das war's schon. Schließen Sie jetzt noch die Datenbank und ab sofort haben Sie ihre eigene Tabelle mit in der Auswahlliste drin. Welcher Name in der Auswahlliste angezeigt wird ist in der Wertedatenbank selbst abgelegt.

Wenn Sie nicht eigene Datenbanken einbinden können oder wollen empfehle ich diese Methode aber in jedem Fall während der Entwicklungsphase, wenn eine bestehende Datenbank angepasst wird. Wenn dann alles okay ist können Sie einfach ihre Eigenentwicklung unter dem Originalnamen wieder zurückkopieren. 

Zurück zum Seitenanfang

Anpassen der Wertedatenbanken 

Bevor wir ins Eingemachte gehen hier noch ein allgemeiner Hinweis: wenn Sie die Wertedatenbank editieren wollen kann es passieren, das Sie folgende Fehlermeldung bekommen:

Irgendjemand hat wohl in SolidWorks gerade den Bohrungsassistenten auf und sperrt damit ihren Zugriff. Andersherum kann das auch passieren: haben Sie die Originaldatenbanken zum Editieren offen, werden diese (ohne Warnmeldung!) in SolidWorks nicht mehr in den Auswahllisten des Bohrungsassistenten angezeigt.

Und noch ein mal der Hinweis: die Wertedatenbanken sind Access 97 Format, wenn Sie also mit Access 2000 oder höher arbeiten bitte unter dem "alten" Format abspeichern.

Die Wertedatenbank

Aber nun (endlich) zum Editieren der Wertedatenbanken: wenn Sie die gewünschte Datenbank in Access öffnen erhalten Sie die Übersicht über die Wertetabellen, jede Wertedatenbank hat dabei 3 festgelegte und mehrere weitere Tabellen. Die festgelegten Tabellen sind properties, fields und index.

Tabelle properties

In der Tabelle properties gibt es nur einen einzigen Datensatz, der angibt, was in den Dropdownlisten des Bohrungsassistenten als Name angezeigt wird. Ändern Sie den Wert in Feld description auf den gewünschten Anzeigewert ab. Dies ist immer zu empfehlen um einfacher die "eigenen" Tabellen erkennen zu können. Verändern Sie den Namen auch, wenn Sie die Originaltabellen editieren, damit Sie merken, ob Sie es mit der Original- oder der editierten Datenbank zu tun haben.

Tabelle fields

Die Tabellen fields dient nur (?) der Dokumentation der verwendeten Feldnamen. In der Spalte desc_english finden Sie bei den meisten Feldnamen eine mehr oder weniger sinnvolle Beschreibung, wofür dieses Feld da ist. Die Spalte include enthält bei einigen Datensätzen einen Haken, ich kann allerdings nicht nachvollziehen, dass es irgendetwas bedeuten würde, da auch eine große Menge benutzter Feldnamen in den Tabellen keinen Haken haben. Vielleicht wurde auch nur vergessen diese Tabelle konsequent weiter zu pflegen.

Tabelle index

Die Tabelle index ist die zentrale Steuerung der Wertedatenbanken. Hier ist aufgeführt welche Wertetabellen von welchem Typ es gibt. Schauen wir uns die unterschiedlichen Felder an:

Hier finden Sie also heraus, welche Wertetabelle hinter der Auswahl steckt und können eigene Wertetabellen hinzufügen oder vorhandene von der Anzeige ausschließen. Damit Sie die Datensätze nicht löschen müssen können Sie einfach den Wert in der Spalte Type auf irgendetwas anderes setzen (ich hab mir z.B. rem HOLEFEAT angewöhnt), dann können Sie diese Tabellen schnell wieder reaktivieren.

Die Wertetabellen

Bleiben also noch die Wertetabellen. Hier ist eigentlich nur ein wenig Detektivarbeit angesagt, um herauszufinden, in welcher Tabelle in welchen Feldern die Werte stehen, die Sie ändern oder ergänzen möchten. Bitte nicht daran stören, wenn Sie so wie ich auch nicht den Verwendungszweck aller Felder herausfinden. Editieren Sie einfach nur die Felder, die der Bohrungsassistent auch braucht.

Machen wir es anhand von ein paar Beispielen. Erstes Beispiel: Sie möchten bei den Durchgangslöchern nach DIN eine Bohrung für M1.4 zufügen und die für M3.5 und M6.5 entfernen.

Aus den Angaben oben können wir sehen, dass es eine Tabelle vom Sub-Type holes sein muss. Wir schauen also in der Wertedatenbank din.mdb in die Tabelle index und sehen dort, dass es die Tabelle sclr ist, die wir ändern müssen:

Also rufen wir diese Tabelle auf, löschen die beiden Datensätze für M3.5 und M6.5 und erzeugen einen neuen Datensatz für M1.4. Geben Sie die drei Werte für Fein (CLOSE_FIT), Mittel (NORMAL_FIT) und Grob (LOOSE_FIT) ein.

Der Lohn der Mühe ist dann im Bohrungsassistenten zu sehen, wenn Sie die Durchgangslöcher aufrufen: ab sofort ist eines für M1.4 zu sehen, während die für M3.5 und M6.5 verschwunden sind:

Noch eine Anmerkung: die Tabelle sclr ist eine sehr wichtige und zentrale Wertetabelle, da viele andere Tabellen hier ihre Werte zusätzlich herausholen (so z.B. die Tabellen für Form- und Stirnsenkungen). Werden hier Datensätze gelöscht, die in anderen gebraucht werden, erhalten Sie in SolidWorks die folgende Fehlermeldung: 

Ein weiteres Beispiel: Die Senkungen bei den Senkschrauben mit Schlitz/Kreuzschlitz sollen auf 90° geändert und die Werte für Senktiefe und -durchmesser angepasst werden. Außerdem soll auch ein Datensatz für M12 angelegt werden.

Wir finden die Informationen im Bohrungsassistenten im Reiter Formsenkungen, das entspricht dem Sub-Type csink. Laut der Tabelle index ist die Wertetabelle für die Senkschrauben mit Schlitz also die fhms_cr

Mit etwas Vergleichen stellen wir fest, dass wir die Werte in den Feldern HEAD_DIA und HEAD_ANG anpassen müssen, alle anderen Felder werden (zumindest im Bohrungsassistenten noch) nicht benutzt.

Auch das Feld DIAMETER wird vom Bohrungsassistenten nicht benutzt, wie wir oben schon gesehen haben werden die Werte für den Durchgangslochteil der Senkung aus der Tabelle sclr geholt. Ob und wenn ja wo die restlichen Werte benutzt werden (in Toolbox oder in künftigen Versionen) konnte ich bisher nicht feststellen.

So reicht es also, wenn wir die Werte dieser zwei Spalten ändern und für den neuen Datensatz diese beiden Werte eintragen.

Zurück zum Seitenanfang

Zusammenfassung 

Der Bohrungsassistent bezieht seine Werte aus verschiedenen Datenbanken im Access-97-Format, die auf einfache Weise editiert werden können. In der Tabelle index jeder Wertedatenbank ist dabei der Verweis auf die eigentlichen Wertetabellen zu finden. Durch Vergleichen (oder Probieren) findet man dort die Felder, die editiert oder ergänzt werden müssen, da die Feldbeschreibungen in der Tabelle fields meist ungenau oder nicht mehr aktuell sind. Die Werte der Durchgangslöcher (auch der von Stirn- oder Formsenkungen) werden dabei immer der Tabelle sclr entnommen, wobei der Wert des Feldes SIZE als Referenz benutzt wird.

Ich hoffe ich konnte Ihnen ein paar Hilfestellungen geben, wie und wo Sie den Bohrungsassistenten anpassen können. Wenn Sie noch Anmerkungen, Infos und Kritik (natürlich auch positive) loswerden wollen schreiben Sie doch einfach eine Mail an stefan.berlitz@solidworks.cad.de 

Zurück zum Seitenanfang

Update zu SolidWorks 2003 

Die folgenden Hinweise für das Anpassen des Bohrungsassistenten in der SolidWorks 2003 habe ich von Hauke Krohn erhalten:

  1. Bei SWX2003 ist in den Wertedatenbanken (din.mdb, iso.mdb, usw.) in den Tabellen "index" und "properties" am Tabellenende eine neue Spalte hinzugekommen. Diese Spalte heißt in beiden Tabellen "SWCONST_ENUM_VALUE" (Zweck?).
  2. Die eigene Wertedatenbank (z.B. Meine-Norm.mdb) muss nun auch in den beiden Tabellen "index" und "properties" jeweils um die Spalte "SWCONST_ENUM_VALUE" ergänzt werden.
  3. In der Tabelle "index" habe ich die Spaltenwerte aus "din.mdb" übernommen. In der Tabelle "properties" habe ich den Wert "1" eingetragen (warum?).
  4. Die modifizierte "default.mdb" kann aus dem Data-Verzeichnis bzw. aus dem DataUserPath-Verzeichnis ohne Änderungen übernommen werden.
  5. Jetzt taucht die eigene Norm wieder in der Normliste auf und scheint auch richtig zu arbeiten.

Falls Ihr den Zweck dieser neuen Spalte rausfindet, bitte kurze Info an mich.

Ergänzend aktuelle Infos von Peter Storz von SolidLine zu diesen Infos:

Info der Wert SWCONST_ENUM_VALUE ist nicht anderes als ein Index (vermutlich wg. Performance). Anbei zwei screenshots mit den korrekten Werten.

1. Änderung MyBA.mdb - Tabelle Properties

Hier muss unbedingt der Wert 13 eingetragen werden. Der Wert 1 ist reserviert für ANSI Metrisch. Generell sind die Werte 0-12 z.Z. reserviert für SW.

2. Änderung MyBA.mdb - Tabelle Index

Hier muss der erste Wert 250 sein. Die Werte 0 - 249 sind von SW bereits verwendet. Die Werte müssen ab 250 sequentiell fortgeschrieben werden, abhängig von der Anzahl der Einträge. Die auf der Seite angegebenen Werte können zu massiven Problemen führen.

Und noch eine Info von Werner Radfelder (aka Radius):

Die Wert DIAMETER steuert die Sortierreinenfolge der einträge im Bohrungsassistenten, das heißt wenn mahn z. b. M10 vor M8 stehen haben will kann man bei M10 "DIAMETER (8)" eintragen und bei M8 "DIAMETER (10)". Dieses gilt für alle Auswahltabellen im Bohrungsassistent.

siehe auch http://ww3.cad.de/foren/ubb/Forum2/HTML/003038.shtml 

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