Python/de: Difference between revisions

From FreeCAD Documentation
(Created page with "* Wenn Code über mehrere Zeilen gebrochen werden muss, sollte dies mit einem Komma in Klammern oder Klammern erfolgen; die zweite Zeile sollte mit der vorherigen übereinstim...")
(Created page with "* Funktionen können ein Objekt zurückgeben, das als Basis für eine andere Zeichenfunktion verwendet werden kann.")
Line 61: Line 61:
}}
}}


* Funktionen können ein Objekt zurückgeben, das als Basis für eine andere Zeichenfunktion verwendet werden kann.
* Functions may return an object that can be used as the base of another drawing function.
{{Code|code=
{{Code|code=
Wire = makeWire(pointslist, closed=True, face=True)
Wire = makeWire(pointslist, closed=True, face=True)

Revision as of 19:19, 21 November 2019

(January 2020) FreeCAD wurde ursprünglich für die Arbeit mit Python 2 entwickelt. Da Python 2 im Jahr 2020 das Ende seiner Lebensdauer erreicht hat, wird die zukünftige Entwicklung von FreeCAD ausschließlich mit Python 3 durchgeführt, und die Abwärtskompatibilität wird nicht unterstützt.

Beschreibung

Python ist eine allgemeine, hochrangige Programmiersprache, die in großen Anwendungen sehr häufig verwendet wird, um einige Aufgaben zu automatisieren, indem man Skripte erstellt oder Makros.

In FreeCAD kann Python-Code verwendet werden, um verschiedene Elemente programmgesteuert zu erstellen, ohne auf die grafische Benutzeroberfläche klicken zu müssen. Darüber hinaus sind viele Werkzeuge und Arbeitsbereiche von FreeCAD in Python programmiert.

Siehe |Einführung in Python, um mehr über die Programmiersprache Python zu erfahren, und dann Python Skript Tutorien und FreeCAD Skriptgrundlagen, um das Skripting in FreeCAD zu starten.

Beim Schreiben von Python-Code ist es ratsam,PEP8: Style Guide for Python Code zu beachten.

Konventionen

In dieser Dokumentation sollten einige Konventionen für Python-Beispiele eingehalten werden.

Dies ist eine typische Funktionssignatur

Wire = makeWire(pointslist, closed=False, placement=None, face=None, support=None)
  • Argumente mit Schlüsselwert Paaren sind optional, wobei der Standardwert in der Signatur angegeben ist. Das bedeutet, dass die folgenden Aufrufe gleichwertig sind:
Wire = makeWire(pointslist, False, None, None, None)
Wire = makeWire(pointslist, False, None, None)
Wire = makeWire(pointslist, False, None)
Wire = makeWire(pointslist, False)
Wire = makeWire(pointslist)
In diesem Beispiel hat das erste Argument keinen Standardwert, daher sollte es immer einbezogen werden.
  • Wenn die Argumente mit dem expliziten Schlüssel angegeben werden, können die optionalen Argumente in beliebiger Reihenfolge angegeben werden. Das bedeutet, dass die folgenden Aufrufe gleichwertig sind:
Wire = makeWire(pointslist, closed=False, placement=None, face=None)
Wire = makeWire(pointslist, closed=False, face=None, placement=None)
Wire = makeWire(pointslist, placement=None, closed=False, face=None)
Wire = makeWire(pointslist, support=None, closed=False, placement=None, face=None)
  • Pythons Richtlinien betonen die Lesbarkeit von Code; insbesondere sollten Klammern unmittelbar auf den Funktionsnamen folgen, und ein Leerzeichen sollte einem Komma folgen.
p1 = Vector(0, 0, 0)
p2 = Vector(1, 1, 0)
p3 = Vector(2, 0, 0)
Wire = makeWire([p1, p2, p3], closed=True)
  • Wenn Code über mehrere Zeilen gebrochen werden muss, sollte dies mit einem Komma in Klammern oder Klammern erfolgen; die zweite Zeile sollte mit der vorherigen übereinstimmen.
a_list = [1, 2, 3,
          2, 4, 5]

Wire = makeWire(pointslist,
                False, None,
                None, None)
  • Funktionen können ein Objekt zurückgeben, das als Basis für eine andere Zeichenfunktion verwendet werden kann.
Wire = makeWire(pointslist, closed=True, face=True)
Window = makeWindow(Wire, name="Big window")

Imports

Python functions are stored in files called modules. Before using any function in that module, the module must be included in the document with the import instruction.

This creates prefixed functions, that is, module.function(). This system prevents name clashes with functions that are named the same but that come from different modules. For example, the two functions Arch.makeWindow() and myModule.makeWindow() may coexist without problem.

Full examples should include the necessary imports and the prefixed functions.

import FreeCAD, Draft

p1 = FreeCAD.Vector(0, 0, 0)
p2 = FreeCAD.Vector(1, 1, 0)
p3 = FreeCAD.Vector(2, 0, 0)
Wire = Draft.makeWire([p1, p2, p3], closed=True)
import FreeCAD, Draft, Arch

p1 = FreeCAD.Vector(0, 0, 0)
p2 = FreeCAD.Vector(1, 0, 0)
p3 = FreeCAD.Vector(1, 1, 0)
p4 = FreeCAD.Vector(0, 2, 0)
pointslist = [p1, p2, p3, p4]

Wire = Draft.makeWire(pointslist, closed=True, face=True)
Structure = Arch.makeStructure(Wire, name="Big pillar")