Programmieren uvm. mit KI Claude

Tokoloshe

ww-robinie
Registriert
31. Dezember 2023
Beiträge
1.266
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.361
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.266
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.361
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.329
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.586
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.361
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.361
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.266
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.799
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: 32
  • Screenshot 2026-06-12 145820.png
    Screenshot 2026-06-12 145820.png
    1 MB · Aufrufe: 30

Tokoloshe

ww-robinie
Registriert
31. Dezember 2023
Beiträge
1.266
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.266
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.
 
Oben Unten