Programmieren uvm. mit KI Claude

Tokoloshe

ww-robinie
Registriert
31. Dezember 2023
Beiträge
1.359
Ort
Niedersachsen
FreeCAD hat auch eine OpenSCAD integration, das dürfte dann eigentlich gehen. Mal schauen, ob ich das in meiner einwöchigen Testphase noch hinbekomme. Zumindest habe ich gestern den Kaestle Generator zum laufen gebracht, hatte einfach nur nicht einmal eine ältere Version getestet, die läuft ohne Probleme mit Wine.
 

wirdelprumpft

ww-robinie
Registriert
31. März 2013
Beiträge
4.563
Ort
Rems-Murr-Kreis
also Gemini kennt Boxes.py und kann die Kerf. Varialble Fingerzinken für Fräser umschreiben allerdings dürfte das Optisch nicht so toll aussehen.
Open-Source da gibt es bestimmt vieles was man sich umbauen kann.
Muss ich mal gezielter danach suchen wenn ich was erstellen will.
Umbauen geht schneller als komplett neu erstellen.
 

Tokoloshe

ww-robinie
Registriert
31. Dezember 2023
Beiträge
1.359
Ort
Niedersachsen
Ja, ich wollte gerne sowas wie Kaestle als HTML haben, mit den verdeckten Zinken, fachteilern etc., vielleicht dann noch mit der Variation von boxes.py. Mal schauen, ob da was bei rumkommt.
 

wirdelprumpft

ww-robinie
Registriert
31. März 2013
Beiträge
4.563
Ort
Rems-Murr-Kreis
da ich es schon in html probiert hab allerdings nicht getestet dürfte das wahrscheinlich gehen.
KI antwort:
Hier ist ein vollständiger, eigenständiger HTML- und JavaScript-Code, den du direkt als .html-Datei speichern und im Browser öffnen kannst.Er berechnet die CNC-Fingerzinken inklusive Kerf und Dogbones live auf dem Bildschirm. Die Grafik wird als dynamische SVG gerendert, die du über den Button direkt als fertige Datei für deine CNC-Fräse herunterladen kannst.html<!DOCTYPE html>
Code:
<html lang="de">
<head>
    <meta charset="UTF-8">
    <title>CNC Fingerzinken Generator</title>
    <style>
        body { font-family: sans-serif; margin: 20px; background: #f5f5f5; color: #333; }
        .container { display: flex; gap: 20px; max-width: 1200px; margin: 0 auto; }
        .controls { background: white:emoji_stuck_out_tongue_winking_eye:adding: 20px; border-radius: 8px; box-shadow: 0 2px 4px rgba(0,0,0,0.1); width: 320px; }
        .visualizer { flex-grow: 1; background: white:emoji_stuck_out_tongue_winking_eye:adding: 20px; border-radius: 8px; box-shadow: 0 2px 4px rgba(0,0,0,0.1); display: flex; flex-direction: column; align-items: center; }
        .form-group { margin-bottom: 15px; }
        label { display: block; font-weight: bold; margin-bottom: 5px; font-size: 14px; }
        input, select { width: 100%:emoji_stuck_out_tongue_winking_eye:adding: 8px; box-sizing: border-box; border: 1px solid #ccc; border-radius: 4px; }
        button { width: 100%:emoji_stuck_out_tongue_winking_eye:adding: 12px; background: #007bff; color: white; border: none; border-radius: 4px; font-weight: bold; cursor: pointer; margin-top: 10px; }
        button:hover { background: #0056b3; }
        svg { border: 1px solid #ddd; background: #fafafa; max-width: 100%; height: auto; }
    </style>
</head>
<body>

<h1>CNC Fingerzinken Generator mit Kerf & Dogbone</h1>

<div class="container">
    <!-- Links: Eingabemaske -->
    <div class="controls">
        <div class="form-group">
            <label for="fraeser">Fräser Durchmesser (mm):</label>
            <input type="number" id="fraeser" value="6" step="0.1" oninput="draw()">
        </div>
        <div class="form-group">
            <label for="kerf">Kerf / Passungsspiel (mm):</label>
            <input type="number" id="kerf" value="0.2" step="0.05" oninput="draw()">
        </div>
        <div class="form-group">
            <label for="staerke">Materialstärke (mm):</label>
            <input type="number" id="staerke" value="18" step="1" oninput="draw()">
        </div>
        <div class="form-group">
            <label for="zapfen">Gewünschte Zapfenbreite (mm):</label>
            <input type="number" id="zapfen" value="30" step="1" oninput="draw()">
        </div>
        <div class="form-group">
            <label for="breite">Bauteil Breite (mm):</label>
            <input type="number" id="breite" value="150" step="1" oninput="draw()">
        </div>
        <div class="form-group">
            <label for="typ">Ecken-Typ:</label>
            <select id="typ" onchange="draw()">
                <option value="dogbone">Dogbone (45° Ecke)</option>
                <option value="mauseohr">Mauseohr (Zentriert)</option>
                <option value="keine">Keine Freifräsung</option>
            </select>
        </div>
        <button onclick="downloadSVG()">SVG Exportieren</button>
    </div>

    <!-- Rechts: Live-Vorschau -->
    <div class="visualizer">
        <h3>2D-Fräspfad (Vorschau)</h3>
        <div id="svg-container"></div>
    </div>
</div>

<script>
function draw() {
    // Parameter einlesen
    const d_fraeser = parseFloat(document.getElementById('fraeser').value);
    const kerf = parseFloat(document.getElementById('kerf').value);
    const staerke = parseFloat(document.getElementById('staerke').value);
    const z_breite_wunsch = parseFloat(document.getElementById('zapfen').value);
    const b_breite = parseFloat(document.getElementById('breite').value);
    const ecken_typ = document.getElementById('typ').value;

    const r_fraeser = d_fraeser / 2;
    const offset_dogbone = r_fraeser * Math.sqrt(0.5);

    // Exakte Anzahl der Zapfen berechnen, damit es symmetrisch aufgeht
    const anzahl_segmente = Math.round(b_breite / z_breite_wunsch);
    const z_breite = b_breite / anzahl_segmente;

    // SVG Dimensionen festlegen (mit etwas Sicherheitsabstand)
    const padding = 20;
    const svg_w = b_breite + (padding * 2);
    const svg_h = (staerke * 4) + (padding * 3);

    let svgPath1 = `M ${padding} ${padding + staerke}`;
    let svgElements = "";

    // --- PLATTE 1 (ZAPFEN-LOGIK) ---
    // Startpunkt oben links der Zinkenverbindung
    let current_x = padding;
    let current_y = padding + staerke;

    for (let i = 0; i < anzahl_segmente; i++) {
        let x_start = padding + (i * z_breite);
        let x_ende = padding + ((i + 1) * z_breite);

        if (i % 2 === 0) {
            // Zapfen steht vor (wird durch das Kerf minimal schmaler)
            let z_links = x_start + (kerf / 2);
            let z_rechts = x_ende - (kerf / 2);
        
            svgPath1 += ` L ${z_links} ${current_y}`;
            svgPath1 += ` L ${z_links} ${current_y - staerke}`;
            svgPath1 += ` L ${z_rechts} ${current_y - staerke}`;
            svgPath1 += ` L ${z_rechts} ${current_y}`;
        } else {
            // Tasche geht rein (wird durch das Kerf minimal breiter)
            let t_links = x_start - (kerf / 2);
            let t_rechts = x_ende + (kerf / 2);

            svgPath1 += ` L ${t_links} ${current_y}`;
        
            // Freifräsungen generieren
            if (ecken_typ === 'dogbone') {
                svgElements += `<circle cx="${t_links - offset_dogbone}" cy="${current_y}" r="${r_fraeser}" fill="none" stroke="red" stroke-width="0.5" />`;
                svgElements += `<circle cx="${t_rechts + offset_dogbone}" cy="${current_y}" r="${r_fraeser}" fill="none" stroke="red" stroke-width="0.5" />`;
            } else if (ecken_typ === 'mauseohr') {
                svgElements += `<circle cx="${t_links}" cy="${current_y}" r="${r_fraeser}" fill="none" stroke="red" stroke-width="0.5" />`;
                svgElements += `<circle cx="${t_rechts}" cy="${current_y}" r="${r_fraeser}" fill="none" stroke="red" stroke-width="0.5" />`;
            }
        
            svgPath1 += ` L ${t_rechts} ${current_y}`;
        }
    }
 
    // Rest der Außenkontur für Platte 1 schließen
    svgPath1 += ` L ${padding + b_breite} ${padding + staerke + 40}`;
    svgPath1 += ` L ${padding} ${padding + staerke + 40} Z`;

    // --- HTML GENERIEREN ---
    const svgCode = `
        <svg width="${svg_w}" height="${svg_h}" viewBox="0 0 ${svg_w} ${svg_h}" xmlns="http://w3.org" id="cnc-svg">
            <!-- Platte 1 (Holzkontur) -->
            <path d="${svgPath1}" fill="#e6c280" stroke="#8b5a2b" stroke-width="2" />
            <!-- CNC Freifräsungen (Bohrungen) -->
            ${svgElements}
        </svg>
    `;

    document.getElementById('svg-container').innerHTML = svgCode;
}

function downloadSVG() {
    const svgElement = document.getElementById('cnc-svg');
    if (!svgElement) return;
 
    const serializer = new XMLSerializer();
    let source = serializer.serializeToString(svgElement);
 
    // Download-Link im Hintergrund triggern
    const url = "data:image/svg+xml;charset=utf-8," + encodeURIComponent(source);
    const downloadLink = document.createElement("a");
    downloadLink.href = url;
    downloadLink.download = "cnc_fingerzinken.svg";
    document.body.appendChild(downloadLink);
    downloadLink.click();
    document.body.removeChild(downloadLink);
}

// Initialer Start beim Laden der Seite
window.onload = draw;
</script>

</body>
</html>
Verwende Code mit Vorsicht.Das bietet diese HTML-VarianteEchte CNC-Ausgabe: Der Export-Button erzeugt eine saubere, skalierte Vektordatei (.svg). Diese kannst du direkt in deine CAM-Software (wie Estlcam, VCarve oder Fusion 360) laden, um die Fräsbahnen zu erzeugen.Mathematische Aufteilung: Das Skript verhindert krumme Endstücke an den Rändern. Es berechnet die Wunsch-Zapfenbreite automatisch so um, dass die Zinken exakt symmetrisch auf die Gesamtbreite des Bauteils aufgeteilt werden.Visuelles Feedback: Die Freifräsungen (Dogbones/Mauseohren) werden als rote Kreise dargestellt, damit du sofort siehst, wie weit der Fräser in das Holz eintaucht.Möchtest du, dass das Skript auch die zweite, dazugehörige Gegenplatte direkt darunter in der gleichen SVG-Datei zeichnet, oder sollen wir eine Eingabe für die Schachtelung (Nesting) hinzufügen, um mehrere Platten nebeneinander zu platzieren?KI-Antworten können Fehler enthalten. Weitere Informationen
 
Zuletzt bearbeitet:

KalterBach

ww-robinie
Registriert
1. Oktober 2017
Beiträge
5.382
Ort
Markgräflerland
FreeCAD hat auch eine OpenSCAD integration, das dürfte dann eigentlich gehen. Mal schauen, ob ich das in meiner einwöchigen Testphase noch hinbekomme. Zumindest habe ich gestern den Kaestle Generator zum laufen gebracht, hatte einfach nur nicht einmal eine ältere Version getestet, die läuft ohne Probleme mit Wine.
FreeCAD kann auch headless betrieben werden.
 

heiko-rech

ww-robinie
Registriert
17. Januar 2006
Beiträge
4.708
Ort
Saarland
Hallo,
Cowork holt sich die Rechnungen aus dem Thunderbird C Ordner sortiert sie nach Vorgabe, gleicht sie mit Bankdaten aus CSV ab. Erstellt mir ne Liste damit ich sehe was bezahlt ist und macht von der Rechnung ne Kopie in Steuerberaterordnern mit Datev-PDF-Namen. Das hat aber noch Nachbesserungspotenzial.
Das Beste was ich damit bisher geschaffen hab.
als jemand, der sich wenig mit KI beschäftigt, aber recht viel mit Datenschutz und Datensicherheit frage ich mich jetzt, wie es bei einem solchen Arbeitsablauf mit der DSGVO aussieht? Auf Anhieb habe ich dazu gefunden, dass es dabei auf den gewählten Tarif ankommt. Bei der kostenlosen Variante ist das schon mal nicht der Fall. Und wie sonst üblich muss man auch hier einen Datenverarbeitungsvertrag abschließen. Hast du das alles berücksichtigt?

Und Als Kunde würde ich auch gerne wissen und vor allem auch einwilligen oder ablehnen können, ob und wie meine persönlichen Daten von einer nicht lokalen KI verarbeitet werden. Es schadet sicher nicht, wenn man sich auch mal gedanklich in die Rolle des Kunden begibt.

Ich habe den Eindruck, dass das ganze Thema Datenschutz und vor allem der Schutz persönlicher Daten zum Teil völlig ignoriert wird. Ich bin mal gespannt, wann die ersten Abmahnanwälte auf diesen Zug aufspringen.

Gruß
Heiko
 

wirdelprumpft

ww-robinie
Registriert
31. März 2013
Beiträge
4.563
Ort
Rems-Murr-Kreis
Danke für den Hinweis:
Die Ki hat mir Buchhaltung_starter.bat gebaut - damit starte ich die von der KI erstellten Script ohne die KI, somit geht nichts mehr auf die Cloude.
Nur Sonderfälle wie nicht lesbar etc. gingen seither zur Klärung in die KI-Cloude, das mach ich jetzt manuell.
Somit dürfte das passen, da keine KI mehr im Arbeitsablauf ist.
Die AVV etc. bekommt man im moment erst ab Teams also den 100€+/Monat Abos bzw. API Modell
 

wirdelprumpft

ww-robinie
Registriert
31. März 2013
Beiträge
4.563
Ort
Rems-Murr-Kreis
Das Foto-Aufmaß-Tool hab ich nochmal verbessert, zahlreiche Buttons + DXF ausgabe. Schon super was die KI so alles erstellen kann.
DXF hat haufen Layer eingebaut damit man alles im CAD ein und ausblenden kann, war Vorschlag der KI.
Die Zeiterfassung startet jetzt auf der NAS und nicht mehr im Browserspeicher somit Geräteübergreifend start-stop bar.
Nächstes Projekt - neue Website bauen.
 

Tokoloshe

ww-robinie
Registriert
31. Dezember 2023
Beiträge
1.359
Ort
Niedersachsen
Ich habe mir für meinen Shop mit meinem Claude Pro trial noch ein Plugin für eine Back in Stock Mail für WooCommerce programmieren lassen mit double opt in für den Kunden, um Mißbrauch vorzubeugen, funktioniert wunderbar.
Auch mein Etsy Plugin hat Pro noch einmal verbessert (hoffe ich), ob es nun wirklich alles läuft sehe ich erst, wenn wieder eine Bestellung reinkommt. :emoji_grin: Die Grundfunktionalität ist allerdings sowieso gegeben.
Ich versuche mich auch gerade an einer neuen Version des Boxengenerators mit verdeckten Zinken und Dogbones als html, damit es Betriebssystemunabhängig läuft. Läuft inzwischen auch ganz gut, braucht aber noch die ein- oder andere Funktion.
 

flo20xe

ww-robinie
Registriert
8. Dezember 2006
Beiträge
1.805
Alter
45
Ort
Oberbayern
Hab mir mit Claude einen Voronoi-Generator in Python erstellen lassen.
Ich brauche das für ein Geländer einer Hochebene mit Treppenschrank.
Der Generator erzeugt mir ein DXF, dieses lese ich in PaletteCAD ein und erzeuge damit die Bearbeitung in der Geländerplatte. Aus Palette generiere ich dann automatisch das CNC-Programm für die Maschine. Echt geile Sache was da mittlerweile alles geht wenn man das zu nutzen weis.
Das Geländer selbst soll aus einer 12mm Compactplatte mit weißem Kern gefräst werden.
 

Anhänge

  • Screenshot 2026-06-12 145759.png
    Screenshot 2026-06-12 145759.png
    660,2 KB · Aufrufe: 49
  • Screenshot 2026-06-12 145820.png
    Screenshot 2026-06-12 145820.png
    1 MB · Aufrufe: 46

Tokoloshe

ww-robinie
Registriert
31. Dezember 2023
Beiträge
1.359
Ort
Niedersachsen
Ich bastel mir gerade einen neuen box generator auf HTML Basis. Kann schon Viereck bis quasi unendlich Eck. Mit Fachteilern, Dogbones etc. Und auch schon ein grobes nesting. :emoji_slight_smile:
 

Tokoloshe

ww-robinie
Registriert
31. Dezember 2023
Beiträge
1.359
Ort
Niedersachsen
Dogbones was macht man damit?
Als Ausschnitte in Kästen mit Fingerzinken, da eine CNC ja nicht 90 Grad kann, wenn man nicht vertikal spannen kann.
Ich poste nachher mal ein Bild.

Der Etsy Import funktioniert nun auch, wenn jetzt noch das automatische Tracking funktioniert, stelle ich das Plugin auch zur Verfügung, genauso wie das Benachrichtigungsplugin.
 

wirdelprumpft

ww-robinie
Registriert
31. März 2013
Beiträge
4.563
Ort
Rems-Murr-Kreis
heute hat Claude bis 16.11.26 das Fable 5.2 Modell zur Nutzung freigegeben.
Dachte frag ich mal das schlauere Modell was man so am Kundentool #22 verbessern kann.
Ist für mich jetzt nicht Problematisch da nur ich das Tool nutze und ein Verkauf oder kostenlose Weitergabe nie vorgesehen war.
Zeigt mir aber das es besser ist man hat das Programmieren von Software mal gelernt.

Echte Fehler (können Daten kosten)​

  1. Timer verschwindet nach schnellem Neustart. Wenn du einen Timer stoppst (z. B. falsche Kategorie) und in derselben Minute neu startest, hält das Tool den neuen für “schon gestoppt”. Er wird nach spätestens 30 s gelöscht oder beim Stoppen nicht gespeichert. Ursache: der Doppel-Stopp-Schutz vergleicht nur Datum + Startzeit auf die Minute. Betrifft Projekt-Zeiterfassung und Werkstattliste.
  2. Stoppen ohne Netz verliert die Stoppzeit. Beim Stopp wird der Timer erst lokal gelöscht, dann gesendet. Kommt das Senden nicht an (LTE in der Werkstatt), läuft er nach dem Neuladen einfach weiter.
  3. Kalkulation geht ohne Netz beim Reiterwechsel verloren. Schlägt das Hintergrund-Speichern fehl, wechselt die Seite trotzdem. Die Meldung “nicht gespeichert” siehst du dann nicht mehr.
  4. Kalkulation wird ohne Absicherung neu geschrieben. Beim Speichern wird erst alles gelöscht, dann Zeile für Zeile neu angelegt. Bricht das mittendrin ab, ist ein Teil weg. Eine Transaktion behebt das und macht das Speichern auf der NAS schneller.

Rechenlogik​

  1. Stundensatz, Aufschlag und MwSt wirken rückwirkend. Zeilen ohne eigenen Satz rechnen immer mit dem aktuellen Wert aus den Einstellungen. Änderst du den Satz, ändern sich alle alten Angebote, Nachkalkulationen und archivierten Werkstatt-Abrechnungen mit. Abhilfe: Werte beim Abschließen bzw. Abrechnen im Projekt festschreiben.
  2. Nachkalkulation mischt Sätze. Soll-Arbeit rechnet mit dem Satz je Zeile, Ist-Arbeit immer mit dem Standardsatz. Sobald eine Zeile einen abweichenden Satz hat, stimmt “Ergebnis Arbeit” nicht mehr.
  3. Übersicht zeigt Scheingewinn. Ohne erfasste Zeiten und Rechnungen steht in der Spalte “Differenz” Arbeit plus Aufschlag als Plus, auch bei reinen Angeboten.
  4. Der Rest (Positionen, “beauftragt”, Aufschlag je Zeile, Gewinn-Aufschlüsselung) ist in sich stimmig und rechnet im Browser und auf dem Server gleich.

Sicherheit (Tool hängt am Internet)​

  1. Passwort. In der lokalen config.php steht noch das Standardpasswort, und es steht zusätzlich in CLAUDE.md, INSTALLATION.md und allen ZIPs. Ob es auf der NAS geändert ist, kann ich von hier nicht sehen. Bitte prüfen.
  2. Keine Sperre bei Fehlversuchen. Das Login lässt sich beliebig oft durchprobieren. Mindestlänge für neue Passwörter ist 4 Zeichen, und das Passwort liegt im Klartext in der Datei.
  3. Projekt löschen lässt Fotos liegen. Die Datenbankeinträge sind weg, der Upload-Ordner auf der NAS bleibt.

Ordner​

  1. Löschkandidaten(erst nach deiner Freigabe):
    • fünf Temp-Reste zi8SXCD1, ziA4cvs5, ziE11DaG, ziMwx2CI, ziSbpIkp
    • sechs alte ZIPs und der Ordner Schreinerei_Tool_Update_Bildschirm3
    • werkstatt.php.bak
    • die Vorschau_*.html
    • Projektplan und Funktionsliste vom Juni
  2. CLAUDE.md ist veraltet:
    • Eine Regel steht doppelt.
    • Es fehlen das Verschieben der Projekte in der Übersicht (Spalte sortierung) sowie Foto-Druck und “Drucken mit Anhängen”.
    • Im Code ist der Standard-Stundensatz 68 €, in der Datei 70 €.
  3. Projektanweisung passt nicht mehr. Sie beschreibt noch “Google Drive + Zeiterfassung per Chat”, nicht das Tool.
 

Tokoloshe

ww-robinie
Registriert
31. Dezember 2023
Beiträge
1.359
Ort
Niedersachsen
Das sieht super aus! Hattest du den Generator mal freigegeben?

Claude hat meine CNC Box weitergebastelt, das hat jetzt die Option, automatisch die Layer so zu bennennen, dass Esltcam gleich automatisch die Toolpathes genriert beim Öffnen. Es gibt außerdem Kleintierhäuschen in Form einer Burg...

Jetzt wird gerade eine Kindergarderobe mit eingebaut... :emoji_grin:
 

ingoogni

ww-nussbaum
Registriert
13. November 2024
Beiträge
79
Ort
enschede
@flo20xe frag deinen Claude mal um das gleiche zu machen mit:

- Squared Euclidean
- Manhattan
- Chebyshev
- Canberra
- Minkowski(order:float) oder gibt lineaire interpolation: 1.0 → Manhattan, 2.0 → Euclidean, ∞ → Chebyshev
- Anisotropic(stretch: Vec3, rotation: Mat4 = mat4()): DistanceFn =
## Anisotropic Euclidean — stretches space before measuring distance.
## stretch: scale per axis (e.g. vec3(2,1,1) stretches X).
## rotation:emoji_open_mouth:ptional orientation for the stretch axes.
## Produces elongated, grain-like Voronoi cells.
Es gibt noch noch mehr methoden um abstaende zu messen auf der basis vom Worley noise, die sind aber weniger interessant.
 

Tokoloshe

ww-robinie
Registriert
31. Dezember 2023
Beiträge
1.359
Ort
Niedersachsen
Ich habe mir jetzt mit Opus und Fable eine Buchhaltungssoftware unter Linux schreiben lassen, die mit python läuft und die mir alle Daten von Etsy, WooCommerce und PayPal holt, meinen Bankimport als CSV nimmt und meine Mailbox scannt nach Rechnungsanhängen und diese automatisch ausliest (mit tesseract) und zuordnet. Screenshots von "Rechnungen" von Aliexpress kann ich auch einfach in einen spezifischen Ordner ziehen und der scannt die.
Die neuen Richtlinien für Steuern vom Finanzministerium hat es auch bekommen, so dass es mir genau sagt, was ich wo in der EÜR eintragen muss. Ziemlich nice. Man kann es auch komplett offline nutzen und immer CSVs hochladen, wenn man keine APIs hat von Etsy etc. oder diese nicht nutzen will.
Eine Gewinnberechnung pro Produkt ist auch dabei, wenn man sowas braucht, das ist aber eher Spielerei.
Ich habe die Datei mal angehängt. Für mich funktioniert es einwandfrei, die Bank ist aber hardcoded als N26 was die Felder der CSV betrifft, das müsste man anpassen (lassen). Teilweise sind die Menüs für die Einrichtung auch noch etwas unübersichtlich, aber was solls...
ICH ÜBERNEHME KEINE GARANTIE FÜR IRGENWDAS! FABLE HAT DEN CODE GESCHRIEBEN, ER IST SPEZIFISCH AUF MEINEN ANWENDUNGSFALL ERSTELLT WORDEN (Etsy, WooCommerce mit Etsy Connector (hatte ich woanders mal gepostet), PayPal, N26).
 

Anhänge

  • Buchhaltung-Weitergabe.zip
    126,2 KB · Aufrufe: 1

wirdelprumpft

ww-robinie
Registriert
31. März 2013
Beiträge
4.563
Ort
Rems-Murr-Kreis
Fable hat mir mein Buchhaltungstool auch besser gemacht,
War sogar vorrrausschauend und hat den Jahreswechsel berücksichtigt. Bei mir werden die Belege in Monatsordner + einen mit Umbenannten PDF für Steuerberater sortiert, Bankdaten per CSV und Thunderbird, Kassenzettel gehn jetzt auch ohne KI hilfe.
@Tokoloshe dein Tool hat mein Tool indirekt verbessert als die KI deine Belegsortierung bei mir getestet hat dadurch sind jetzt 8 Beträge eindeutig zugeordnet worden.
Online stellen von meinem Tool bräuchte zu viel Anpassung weil es auf meine Belege und Sonderfälle zugeschnitten ist so wie bei dir.
Hier noch die Beschreibung meiner Suchlogik:
Belegverarbeitung und Bankabgleich: die Regeln
1. Einsortieren neuer Belege

  • Das Datum kommt zuerst aus den Daten der E-Rechnung (XML), sonst ist es das häufigste Datum auf den ersten Seiten, sonst ein Datum mit Monatsnamen.
  • Erlaubt sind nur Jahre vom ersten Buchhaltungsjahr bis heute. Ein „zahlbar bis“ im Folgejahr zieht den Beleg so nicht ins falsche Jahr.
  • Der Beleg wandert in den Ordner Jahr_Monat. Ohne erkennbares Datum bleibt er liegen und wird gemeldet.
2. Betrag lesen, in dieser Reihenfolge
  • E-Rechnung: Gesamtbetrag aus dem XML. Der „noch zu zahlende Betrag“ taugt nicht, er ist bei Vorkasse 0.
  • Stichwörter im Text: Gesamtbetrag, Rechnungsbetrag, Zahlbetrag, Endbetrag, „zu zahlender Betrag“, Gesamtsumme.
  • Sonderregeln je Lieferant, wo das Layout es verlangt (Tabellenzeilen, unterstrichene Summen).
  • Kassenbon: Die größte Zahl gilt, wenn sie mindestens zweimal vorkommt (Summe und Kartenzeile).
  • Rückfall: die größte Zahl im Text, aber mit der Markierung „unsicher“.
  • Gegenprobe: Netto plus Steuer muss den Bruttobetrag ergeben. Bei steuerfreien EU-Lieferungen ist Netto gleich Brutto.
3. Lieferant bestimmen
Stichwort im Text oder Dateinamen, dann Name aus dem XML, dann USt-IdNr. oder IBAN auf dem Beleg (eigene Nachschlageliste), zuletzt der Dateiname.
4. Zuordnung Eingangsrechnung zu Abbuchung
  • In Frage kommen Abbuchungen mit höchstens 5 % Betragsabweichung, die nicht mehr als 10 Tage vor dem Rechnungsdatum liegen.
  • Punkte: Betrag passt 0,5; Rechnungsnummer im Verwendungszweck +0,4; Lieferant im Empfänger oder Verwendungszweck +0,2 (ähnlicher Name +0,1); Abstand bis 14 Tage +0,2, bis 30 Tage +0,1, über 60 Tage −0,2.
  • Stimmt der Betrag nicht auf den Cent und ist es kein exakter Skonto von 2 oder 3 %, muss zusätzlich die Rechnungsnummer oder der Lieferant passen.
  • Bei „unsicheren“ Beträgen zählt nur ein Treffer auf den Cent oder mit exakt 2 % Skonto.
  • Die Buchung mit den meisten Punkten gewinnt, ab 0,5. Unter 0,7 wird sie als schwach markiert.
5. Zuordnung Ausgangsrechnung zu Geldeingang
Nur wenn die Rechnungsnummer als eigene Zahl im Verwendungszweck steht und der Betrag auf 5 % passt. Bei mehreren Treffern gilt das nächstliegende Datum.
6. Handkorrekturen
Eine eigene Datei, Schlüssel ist der Dateiname. Sie wird vor jedem Abgleich angewendet und überlebt jeden Neulauf. Dort stehen korrigierte Beträge, fest zugeordnete Zahlungen, Teilzahlungen und „nicht zuordnen“.
7. Prüfungen nach jedem Lauf
  • dieselbe Bankbuchung mehreren Rechnungen zugeordnet
  • gezahlt mehr als Rechnung, oder Abweichung über 2,5 %
  • Rechnungsnummer steht in einer Buchung, aber der Betrag weicht über 3 % ab (Lesefehler)
  • „unsicherer“ Betrag ohne Bankbestätigung
  • Abbuchung ohne Beleg: Als belegt gilt die Rechnungsnummer im Verwendungszweck, Datum plus Betrag einer Zuordnung, oder bei PayPal und Amazon ein gleicher Rechnungsbetrag innerhalb von 10 Tagen. Ausgenommen sind Miete, Versicherung, Steuern und Ähnliches.
  • Geldeingang ohne Ausgangsrechnung, Lücke im Rechnungsnummernkreis
  • Kennzahlen (Anzahl Rechnungen, Buchungen, Belege) dürfen gegenüber dem letzten Lauf nicht sinken
8. Bankdaten
  • Doppelte Zeilen werden über Datum, Betrag und Anfang des Verwendungszwecks erkannt.
  • Eine vorgemerkte Buchung entfällt, wenn dieselbe Zahlung innerhalb von 10 Tagen gebucht vorliegt.
  • Der Abgleich sieht auch das Vor- und Folgejahr, damit eine Dezember-Rechnung ihre Januar-Zahlung findet.
Grundsatz: Das Programm ordnet lieber nichts zu als falsch. Was nicht eindeutig ist, landet auf einer kurzen Prüfliste und wird am Beleg entschieden.

Die Schwellenwerte (5 %, 10 Tage, die Punkte) sind an deinen Belegen eingestellt. Für einen Shop mit vielen kleinen PayPal-Zahlungen müsste er sie an seinen Daten nachprüfen.
 
Oben Unten