{"id":3604,"date":"2025-10-03T21:20:22","date_gmt":"2025-10-03T19:20:22","guid":{"rendered":"https:\/\/davidka.net\/?p=3604"},"modified":"2025-10-24T12:42:01","modified_gmt":"2025-10-24T09:42:01","slug":"erstellen-von-addons-fur-freecad-lektion-1-vorbereitung-der-entwicklungsumgebung","status":"publish","type":"post","link":"http:\/\/de.davidka.net\/de\/erstellen-von-addons-fur-freecad-lektion-1-vorbereitung-der-entwicklungsumgebung\/","title":{"rendered":"\ud83d\udcd8 Tutorial: Erstellen von Addons f\u00fcr FreeCAD. Lektion 1. Vorbereitung der Entwicklungsumgebung"},"content":{"rendered":"\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\"><strong>Lernziel<\/strong>: Alles Notwendige einrichten, um Addons m\u00fchelos zu erstellen, zu testen und zu debuggen.<\/p>\n<\/blockquote>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83d\udd27 Schritt 1. Stellen Sie sicher, dass FreeCAD installiert ist<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Anforderungen:<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>FreeCAD Version 0.20 oder neuer<\/strong> (besser 1.0+)<\/li>\n\n\n\n<li>L\u00e4uft unter <strong>Windows<\/strong>, <strong>Linux<\/strong> oder <strong>macOS<\/strong><\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">\ud83d\udc49 Wenn Sie FreeCAD noch nicht haben, laden Sie es von der offiziellen Website herunter:<br>\ud83d\udd17 <a href=\"https:\/\/www.freecad.org\/downloads.php\">https:\/\/www.freecad.org\/downloads.php<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">W\u00e4hlen Sie:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Windows<\/strong>: <code class=\"\" data-line=\"\">.exe<\/code> (Installer) oder <code class=\"\" data-line=\"\">.7z<\/code> (portable)<\/li>\n\n\n\n<li><strong>Linux<\/strong>: AppImage oder Paket aus dem Repository<\/li>\n\n\n\n<li><strong>macOS<\/strong>: <code class=\"\" data-line=\"\">.dmg<\/code><\/li>\n<\/ul>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">\ud83d\udca1 <strong>Tipp<\/strong>: Zum Lernen ist es besser, eine <strong>installierte Version<\/strong> (\u00fcber den Installer) zu verwenden, da diese stabiler und einfacher einzurichten ist.<\/p>\n<\/blockquote>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83d\udcc1 Schritt 2. Suchen Sie den Addon-Ordner<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">FreeCAD sucht benutzerdefinierte Addons in einem speziellen <code class=\"\" data-line=\"\">Mod<\/code>-Ordner.<br>Der Pfad h\u00e4ngt von Ihrem Betriebssystem und der Installationsart ab.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u2705 Wie finde ich den Ordner genau?<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Starten Sie FreeCAD.<\/li>\n\n\n\n<li>\u00d6ffnen Sie die <strong>Python-Konsole<\/strong>:<br><code class=\"\" data-line=\"\">Ansicht \u2192 Panels \u2192 Python-Konsole<\/code><\/li>\n\n\n\n<li>Geben Sie den Befehl ein:<\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-code line-numbers\"><code class=\" language-python\" data-line=\"\">import FreeCAD\nprint(FreeCAD.getUserAppDataDir())<\/code><\/pre>\n\n\n\n<ol start=\"4\" class=\"wp-block-list\">\n<li>Dr\u00fccken Sie <strong>Enter<\/strong>.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">Sie sehen einen Pfad, zum Beispiel:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Windows (installierte Version)<\/strong>:<br><code class=\"\" data-line=\"\">C:\\Users\\IhrName\\AppData\\Roaming\\FreeCAD\\<\/code><\/li>\n\n\n\n<li><strong>Windows (portable)<\/strong>:<br><code class=\"\" data-line=\"\">D:\\FreeCAD\\data\\<\/code><\/li>\n\n\n\n<li><strong>Linux<\/strong>:<br><code class=\"\" data-line=\"\">\/home\/ihr_name\/.local\/share\/FreeCAD\/<\/code><\/li>\n\n\n\n<li><strong>macOS<\/strong>:<br><code class=\"\" data-line=\"\">\/Users\\ihr_name\/Library\/Application Support\/FreeCAD\/<\/code><\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">\u2795 Erstellen Sie den <code class=\"\" data-line=\"\">Mod<\/code>-Ordner<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Innerhalb dieses Verzeichnisses <strong>muss ein <code class=\"\" data-line=\"\">Mod<\/code>-Ordner vorhanden sein<\/strong>.<br>Wenn er nicht existiert, erstellen Sie ihn manuell.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Beispiel f\u00fcr Windows:<\/p>\n\n\n\n<pre class=\"wp-block-code line-numbers\"><code class=\" language-python\" data-line=\"\">C:\\Users\\IhrName\\AppData\\Roaming\\FreeCAD\\Mod\\<\/code><\/pre>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">\ud83d\udca1 Schnelle M\u00f6glichkeit, den Ordner unter Windows zu \u00f6ffnen:<br>Dr\u00fccken Sie <strong>Win + R<\/strong> \u2192 geben Sie <code class=\"\" data-line=\"\">%APPDATA%\\FreeCAD<\/code> ein \u2192 Enter<\/p>\n<\/blockquote>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83d\udda5 Schritt 3. Konfigurieren Sie einen Texteditor (optional, aber sehr empfehlenswert)<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Obwohl Sie Code im Editor schreiben k\u00f6nnen, ist es bequemer, einen Editor mit:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Python-Syntaxhervorhebung<\/li>\n\n\n\n<li>Autovervollst\u00e4ndigung<\/li>\n\n\n\n<li>M\u00f6glichkeit zum Ausf\u00fchren von Skripten<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">\ud83d\udd39 Wir empfehlen: <strong>Visual Studio Code (VS Code)<\/strong><\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Herunterladen und installieren: <a href=\"https:\/\/code.visualstudio.com\/\">https:\/\/code.visualstudio.com\/<\/a><\/li>\n\n\n\n<li>Installieren Sie die <strong>Python<\/strong>-Erweiterung (von Microsoft)<\/li>\n\n\n\n<li>(Optional) Installieren Sie die Erweiterung <strong>FreeCAD for VS Code<\/strong> \u2013 sie f\u00fcgt Hinweise zur FreeCAD-API hinzu<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">\ud83d\udd39 Wie \u00f6ffne ich den Addon-Ordner in VS Code?<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Starten Sie VS Code<\/li>\n\n\n\n<li><code class=\"\" data-line=\"\">Datei \u2192 Ordner \u00f6ffnen<\/code><\/li>\n\n\n\n<li>W\u00e4hlen Sie den <code class=\"\" data-line=\"\">Mod<\/code>-Ordner (oder ein einzelnes Addon darin)<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">Jetzt sehen Sie die Projektstruktur und k\u00f6nnen Dateien bequem bearbeiten.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83d\udee0 Schritt 4. Erkunden Sie die integrierten FreeCAD-Tools<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">FreeCAD enth\u00e4lt bereits alles, was Sie f\u00fcr die Entwicklung ben\u00f6tigen.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">1. <strong>Python-Konsole<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Men\u00fc: <code class=\"\" data-line=\"\">Ansicht \u2192 Panels \u2192 Python-Konsole<\/code><\/li>\n\n\n\n<li>Erm\u00f6glicht die Ausf\u00fchrung von Befehlen in Echtzeit<\/li>\n\n\n\n<li>Beispiel: Geben Sie <code class=\"\" data-line=\"\">App.newDocument()<\/code> ein \u2192 ein neues Dokument wird erstellt<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">2. <strong>Berichtsansicht<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Men\u00fc: <code class=\"\" data-line=\"\">Ansicht \u2192 Panels \u2192 Berichtsansicht<\/code><\/li>\n\n\n\n<li>Zeigt <strong>Fehler<\/strong>, <strong>Warnungen<\/strong>, Protokolle<\/li>\n\n\n\n<li><strong>Halten Sie sie unbedingt offen<\/strong>, wenn Sie ein Addon testen!<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">3. <strong>Makro-Recorder<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Men\u00fc: <code class=\"\" data-line=\"\">Makro \u2192 Makros...<\/code><\/li>\n\n\n\n<li>Schaltfl\u00e4che <strong>Aufnehmen<\/strong> \u2013 zeichnet Ihre Aktionen als Python-Code auf<\/li>\n\n\n\n<li>Eine hervorragende M\u00f6glichkeit, die <strong>FreeCAD-API zu lernen<\/strong><\/li>\n<\/ul>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">\ud83d\udca1 Probieren Sie dies aus:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Klicken Sie auf <strong>Makro \u2192 Aufnahme starten<\/strong><\/li>\n\n\n\n<li>Erstellen Sie eine Box (<code class=\"\" data-line=\"\">Part \u2192 Box<\/code>)<\/li>\n\n\n\n<li>Aufnahme stoppen<\/li>\n\n\n\n<li>\u00d6ffnen Sie das Makro \u2013 Sie sehen den tats\u00e4chlichen Code zum Erstellen des Objekts!<\/li>\n<\/ol>\n<\/blockquote>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83e\uddea Schritt 5. \u00dcberpr\u00fcfung: Erstellen Sie einen Testordner<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Um sicherzustellen, dass alles funktioniert:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Erstellen Sie im <code class=\"\" data-line=\"\">Mod<\/code>-Ordner einen Unterordner:<\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-code line-numbers\"><code class=\" language-python\" data-line=\"\">   TestAddon<\/code><\/pre>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li>Erstellen Sie darin eine Datei <code class=\"\" data-line=\"\">__init__.py<\/code> (sie kann leer sein) \u2013 dies teilt Python mit, dass der Ordner ein Modul ist.<\/li>\n\n\n\n<li>Starten Sie FreeCAD neu.<\/li>\n\n\n\n<li>\u00d6ffnen Sie die <strong>Berichtsansicht<\/strong>.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">Wenn Sie <strong>keine Fehler sehen<\/strong> \u2013 bedeutet dies, dass FreeCAD den <code class=\"\" data-line=\"\">Mod<\/code>-Ordner erfolgreich scannt.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">\u2757 Wenn ein Fehler wie <code class=\"\" data-line=\"\">ImportError<\/code> auftritt \u2013 \u00fcberpr\u00fcfen Sie:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Korrektheit des Ordnernamens (keine Leerzeichen oder kyrillischen Zeichen)<\/li>\n\n\n\n<li>Vorhandensein von <code class=\"\" data-line=\"\">__init__.py<\/code> (in neueren Versionen nicht immer zwingend, aber sicherer hinzuzuf\u00fcgen)<\/li>\n<\/ul>\n<\/blockquote>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83d\uddc2 Struktur des Entwicklerordners (Ergebnis)<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Am Ende dieser Lektion sollten Sie diese Struktur haben:<\/p>\n\n\n\n<pre class=\"wp-block-code line-numbers\"><code class=\" language-python\" data-line=\"\">(FreeCAD Benutzerordner)\n\u2514\u2500\u2500 Mod\/\n    \u2514\u2500\u2500 TestAddon\/\n        \u2514\u2500\u2500 __init__.py   \u2190 kann leer sein<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Und Sie wissen:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Wo sich <code class=\"\" data-line=\"\">Mod<\/code> befindet<\/li>\n\n\n\n<li>Wie man die Python-Konsole und die Berichtsansicht \u00f6ffnet<\/li>\n\n\n\n<li>Wie man den Makro-Recorder verwendet<\/li>\n\n\n\n<li>Wie man VS Code einrichtet (optional)<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\u2705 Praktische Aufgabe<\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Suchen Sie den <code class=\"\" data-line=\"\">Mod<\/code>-Ordner \u00fcber <code class=\"\" data-line=\"\">FreeCAD.getUserAppDataDir()<\/code><\/li>\n\n\n\n<li>Erstellen Sie den Ordner <code class=\"\" data-line=\"\">MyFirstAddon<\/code> im <code class=\"\" data-line=\"\">Mod<\/code>-Ordner<\/li>\n\n\n\n<li>F\u00fcgen Sie eine leere Datei <code class=\"\" data-line=\"\">__init__.py<\/code> hinzu<\/li>\n\n\n\n<li>Starten Sie FreeCAD neu<\/li>\n\n\n\n<li>Stellen Sie sicher, dass in der <strong>Berichtsansicht<\/strong> keine Fehler auftreten<\/li>\n<\/ol>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">\ud83c\udfaf <strong>Ziel<\/strong>: FreeCAD sollte fehlerfrei starten und Ihren Ordner &#8222;sehen&#8220;.<\/p>\n<\/blockquote>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\u25b6\ufe0f Was kommt als N\u00e4chstes?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">In <strong>Lektion 2<\/strong> werden wir ein <strong>echtes funktionierendes Addon<\/strong> erstellen:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Wir werden eine Schaltfl\u00e4che hinzuf\u00fcgen<\/li>\n\n\n\n<li>Wir werden sie etwas tun lassen<\/li>\n\n\n\n<li>Wir werden lernen, Befehle und Arbeitsbereiche zu registrieren<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Lernziel: Alles Notwendige einrichten, um Addons m\u00fchelos zu erstellen, zu testen und zu debuggen. \ud83d\udd27 Schritt 1. Stellen Sie sicher, dass FreeCAD installiert ist Anforderungen: \ud83d\udc49 Wenn Sie FreeCAD noch nicht haben, laden Sie es von der offiziellen Website herunter:\ud83d\udd17 https:\/\/www.freecad.org\/downloads.php W\u00e4hlen Sie: \ud83d\udca1 Tipp: Zum Lernen ist es besser, eine installierte Version (\u00fcber den&hellip;&nbsp;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"neve_meta_sidebar":"","neve_meta_container":"","neve_meta_enable_content_width":"","neve_meta_content_width":0,"neve_meta_title_alignment":"","neve_meta_author_avatar":"","neve_post_elements_order":"","neve_meta_disable_header":"","neve_meta_disable_footer":"","neve_meta_disable_title":"","_themeisle_gutenberg_block_has_review":false,"footnotes":""},"categories":[],"tags":[],"class_list":["post-3604","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/de.davidka.net\/de\/wp-json\/wp\/v2\/posts\/3604","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/de.davidka.net\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/de.davidka.net\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/de.davidka.net\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/de.davidka.net\/de\/wp-json\/wp\/v2\/comments?post=3604"}],"version-history":[{"count":0,"href":"https:\/\/de.davidka.net\/de\/wp-json\/wp\/v2\/posts\/3604\/revisions"}],"wp:attachment":[{"href":"https:\/\/de.davidka.net\/de\/wp-json\/wp\/v2\/media?parent=3604"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/de.davidka.net\/de\/wp-json\/wp\/v2\/categories?post=3604"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/de.davidka.net\/de\/wp-json\/wp\/v2\/tags?post=3604"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}