CAM
Jedes neue Teil beginnt mit denselben Klicks: Rohteil anlegen, Werkstoff wählen, Werkzeuge zuordnen, Strategien einstellen, Einrichteblatt ausgeben. Wer das bei jedem Teil von Hand macht, verliert Zeit – und vergisst irgendwann einen Schritt. Ein Add-in nimmt Ihren CAM-Programmierern diese Routine ab.
Wo die Zeit bleibt
In vielen Fertigungen steckt das Wissen, wie ein Teil in FeatureCAM vorbereitet wird, in den Köpfen weniger Mitarbeiter. Jeder hat seine eigene Reihenfolge, seine eigenen Vorgaben und seine eigenen Abkürzungen. Das funktioniert, bis jemand im Urlaub ist oder ein neuer Kollege anfängt. Dann dauert dasselbe Teil doppelt so lang, oder das NC-Programm sieht anders aus als sonst.
Typische Kandidaten für eine Automatisierung sind:
- wiederkehrende Einstellungen für Rohteil, Werkstoff und Aufmaß,
- die Auswahl von Werkzeugen und Bearbeitungsstrategien nach festen Regeln,
- Einrichteblätter und Protokolle im Format Ihrer Werkstatt,
- die Übergabe an Simulation, Messtechnik oder ein ERP-System,
- Prüfungen, bevor ein Programm an die Maschine geht.
Was FeatureCAM mitbringt
FeatureCAM, heute als „Autodesk Fusion with FeatureCAM“ erhältlich, ist von Haus aus erweiterbar. Die Autodesk-Hilfe beschreibt Add-ins als externe Skripte und Anwendungen, die den Funktionsumfang von FeatureCAM erweitern. Geladen werden sie auf der Registerkarte „Add-Ins“ über „Manage“ im Dialog „Macro Add-ins“. Dort steht auch eine Bibliothek mit Makros und Programmierbeispielen bereit, etwa für eigene Einrichteblätter oder die Übergabe an Vericut. Gestartet werden Makros über „Run Basic Macro“.
Auch beim Start lässt sich FeatureCAM steuern. Laut Hilfe lädt die Option -b ein VB-Add-in, -c führt ein Skript aus, und -m und -u laden Fertigungs- und Oberflächeneinstellungen aus INI-Dateien. Die Option -RegServer registriert die FeatureCAM-Typbibliothek, also die COM-Schnittstelle, über die auch .NET-Programme das Objektmodell ansprechen.
Vom Makro zum Add-in
Für einen einzelnen Handgriff reicht ein Makro. Sobald aber mehrere Mitarbeiter damit arbeiten, eine eigene Oberfläche gebraucht wird oder Daten aus einer Datenbank kommen, lohnt sich ein richtiges Add-in in C#. Dann haben Sie eine Oberfläche mit WPF oder Windows Forms, saubere Fehlerbehandlung, ein Protokoll, Versionsverwaltung und automatische Tests.
Genau so arbeiten wir seit Herbst 2016 für einen Kunden aus dem CAM-Umfeld: Wir haben seine FeatureCAM-Add-ins analysiert, erweitern und warten sie, entwickeln neue und haben ein neues Produkt zur Marktreife begleitet. Auch an der Schmuck-Software Benzinger Creative entwickeln wir mit, dort vor allem an Rechenleistung und Bedienung.
So bauen wir ein Automatisierungs-Add-in
Vier Grundsätze haben sich bewährt. Erstens: Vorgaben gehören in eine Datei, nicht in den Code. Dann ändert der CAM-Verantwortliche einen Werkstoff oder ein Aufmaß, ohne dass jemand neu kompilieren muss.
public sealed class Bearbeitungsvorgabe
{
public string Werkstoff { get; set; }
public double Aufmass { get; set; }
public List<string> Werkzeuge { get; set; } = new List<string>();
}
// Firmenwissen steht in einer Datei, nicht im Code und nicht im Kopf
var json = File.ReadAllText(vorgabePfad);
var vorgabe = JsonSerializer.Deserialize<Bearbeitungsvorgabe>(json);Zweitens: Die Automatisierung ist eine Kette benannter Schritte. Jeder Schritt schreibt ins Protokoll, und nach dem ersten Fehler hört die Kette auf, statt mit falschen Daten weiterzumachen.
public interface IArbeitsschritt
{
string Name { get; }
void Führe(Auftrag auftrag);
}
public bool FühreAlle(IEnumerable<IArbeitsschritt> schritte, Auftrag auftrag)
{
var erfolgreich = true;
foreach (var schritt in schritte)
{
// Nach dem ersten Fehler wird kein weiterer Schritt ausgeführt
if (erfolgreich)
{
try
{
schritt.Führe(auftrag);
_protokoll.Schreibe($"{schritt.Name}: erledigt");
}
catch (Exception fehler)
{
_protokoll.Schreibe($"{schritt.Name}: {fehler.Message}");
erfolgreich = false;
}
}
}
return erfolgreich;
}Drittens: Alle Zugriffe auf FeatureCAM stehen in wenigen Adapterklassen. Die Schritte selbst kennen nur Ihre eigenen Klassen. Ändert sich mit einer neuen FeatureCAM-Version etwas an der Schnittstelle, ist genau eine Stelle betroffen. Viertens: Nach jedem FeatureCAM-Update läuft das Add-in einmal über eine Reihe von Referenzteilen, und die Ergebnisse werden mit dem letzten Stand verglichen.
Typische Fehler
- Vorgaben sind fest im Code verdrahtet. Jede Änderung braucht einen Entwickler.
- Das Add-in macht nach einem Fehler einfach weiter und erzeugt ein falsches Programm.
- FeatureCAM-Aufrufe sind über den ganzen Code verstreut. Jedes Update wird zur Suche.
- Ein externes Werkzeug verbindet sich mit dem laufenden Programm über
Marshal.GetActiveObject. Diese Methode gibt es in .NET 10 nicht mehr. - Niemand testet nach dem Update. Der Fehler fällt erst an der Maschine auf.
So helfen wir
- Schulung: Die Grundlagen für saubere Add-ins vermittelt unsere Schulung „C# & .NET (Fortgeschrittene)“.
- Automatisierungs-Workshop FeatureCAM: Wir nehmen Ihre wiederkehrenden Schritte auf und zeigen, welche sich lohnen zu automatisieren.
- Projekt: Wir entwickeln, erweitern und warten Ihre FeatureCAM-Add-ins – oder übernehmen bestehende. Vereinbaren Sie ein Erstgespräch.
- Das Buch: Viele .NET-Themen gelten für CAD und CAM gleichermaßen. Ausführlich stehen sie in Ebi F. Eilbers Fachbuch „AutoCAD .NET API“, das voraussichtlich 2027 erscheint.
Quellen: Autodesk FeatureCAM-Hilfe („Working with add-ins“, „Command line options“); Projekterfahrung der Cadida Software GmbH
