Raytracing API example/de: Difference between revisions

From FreeCAD Documentation
(Created page with "Strahlverfolgungs API Beispiel")
 
(Updating to match new version of source page)
 
(10 intermediate revisions by 2 users not shown)
Line 1: Line 1:
<languages/>
<languages/>
== Introduction ==
==Einleitung==


The {{incode|Raytracing}} and {{incode|RaytracingGui}} modules provide several methods to write scene contents as povray or luxrender data.
Die {{incode|Raytracing}} und {{incode|RaytracingGui}} Module bieten mehrere Methoden, um Szeneinhalte als Povray- oder Luxrender Daten zu schreiben.


The most useful commands are {{incode|Raytracing.getPartAsPovray()}} and {{incode|Raytracing.getPartAsLux()}} to render a FreeCAD Part object into a povray or luxrender definition, and {{incode|RaytracingGui.povViewCamera()}} and {{incode|RaytracinGui.luxViewCamera()}} to get the current point of view of the 3D view window into povray or luxrender format.
Die nützlichsten Befehle sind {{incode|Raytracing.getPartAsPovray()}} und {{incode|Raytracing.getPartAsLux()}}, um ein FreeCAD Part Objekt in eine Povray oder Luxrender Definition und {{incode|RaytracingGui zu rendern.povViewCamera()}} und {{incode|RaytracinGui.luxViewCamera()}}, um den aktuellen Blickwinkel des 3D Ansichtsfensters in das Povray- oder Luxrender Format zu bringen.


== Outputting render files ==
== Ausgabe von Renderdateien ==


Here is how to write a povray file from python, assuming your document contains a "Box" object:
Hier ist, wie man eine povray-Datei aus Python schreibt, vorausgesetzt, das Dokument enthält ein "Box"-Objekt:


{{Code|code=
{{Code|code=
Line 20: Line 20:
}}
}}


Und das Gleiche für Luxrender:
And the same for luxrender:


{{Code|code=
{{Code|code=
Line 32: Line 32:
}}
}}


== Erzeugen eines benutzerdefinierten Renderobjekts ==
== Creating a custom render object ==
Neben den standardmäßigen Povray- und Luxrender Ansichtsobjekten, die eine Ansicht eines vorhandenen Part Objekts bieten und die jeweils in Povray- und Luxrender Projekte eingefügt werden können, existiert ein drittes Objekt, genannt RaySegment, das entweder in Povray- oder Luxrender Projekte eingefügt werden kann. Dieses RaySegment Objekt ist nicht mit einem der FreeCAD Objekte verknüpft und kann benutzerdefinierten Povray- oder Luxrender Code enthalten, den Sie möglicherweise in Ihr Raytracing Projekt einfügen möchten. Du kannst es auch verwenden, um z.B. deine FreeCAD Objekte auf eine bestimmte Weise auszugeben, wenn du mit dem Standardweg nicht zufrieden bist. Du kannst es so von der Python Konsole aus erstellen und verwenden:
Apart from standard povray and luxrender view objects that provide a view of an existing Part object, and that can be inserted in povray and luxrender projects respectively, a third object exist, called RaySegment, that can be inserted either in povray or luxrender projects. That RaySegment object is not linked to any of the FreeCAD objects, and can contain custom povray or luxrender code, that you might wish to insert into your raytracing project. You can also use it, for example, to output your FreeCAD objects a certain way, if you are not happy with the standard way. You can create and use it like this from the python console:


{{Code|code=
{{Code|code=
Line 42: Line 42:
}}
}}


{{Powerdocnavi{{#translation:}}}}
{{Raytracing Tools navi}}
[[Category:Developer Documentation{{#translation:}}]]
{{Userdocnavi}}
[[Category:API]]
[[Category:Python Code{{#translation:}}]]
{{Raytracing Tools navi{{#translation:}}}}
{{clear}}

Latest revision as of 21:09, 22 August 2020

Einleitung

Die Raytracing und RaytracingGui Module bieten mehrere Methoden, um Szeneinhalte als Povray- oder Luxrender Daten zu schreiben.

Die nützlichsten Befehle sind Raytracing.getPartAsPovray() und Raytracing.getPartAsLux(), um ein FreeCAD Part Objekt in eine Povray oder Luxrender Definition und RaytracingGui zu rendern.povViewCamera() und RaytracinGui.luxViewCamera(), um den aktuellen Blickwinkel des 3D Ansichtsfensters in das Povray- oder Luxrender Format zu bringen.

Ausgabe von Renderdateien

Hier ist, wie man eine povray-Datei aus Python schreibt, vorausgesetzt, das Dokument enthält ein "Box"-Objekt:

import Raytracing,RaytracingGui
OutFile = open('C:/Documents and Settings/jriegel/Desktop/test.pov','w')
OutFile.write(open(App.getResourceDir()+'Mod/Raytracing/Templates/ProjectStd.pov').read())
OutFile.write(RaytracingGui.povViewCamera())
OutFile.write(Raytracing.getPartAsPovray('Box',App.activeDocument().Box.Shape,0.800000,0.800000,0.800000))
OutFile.close()
del OutFile

Und das Gleiche für Luxrender:

import Raytracing,RaytracingGui
OutFile = open('C:/Documents and Settings/jriegel/Desktop/test.lxs','w')
OutFile.write(open(App.getResourceDir()+'Mod/Raytracing/Templates/LuxClassic.lxs').read())
OutFile.write(RaytracingGui.luxViewCamera())
OutFile.write(Raytracing.getPartAsLux('Box',App.activeDocument().Box.Shape,0.800000,0.800000,0.800000))
OutFile.close()
del OutFile

Erzeugen eines benutzerdefinierten Renderobjekts

Neben den standardmäßigen Povray- und Luxrender Ansichtsobjekten, die eine Ansicht eines vorhandenen Part Objekts bieten und die jeweils in Povray- und Luxrender Projekte eingefügt werden können, existiert ein drittes Objekt, genannt RaySegment, das entweder in Povray- oder Luxrender Projekte eingefügt werden kann. Dieses RaySegment Objekt ist nicht mit einem der FreeCAD Objekte verknüpft und kann benutzerdefinierten Povray- oder Luxrender Code enthalten, den Sie möglicherweise in Ihr Raytracing Projekt einfügen möchten. Du kannst es auch verwenden, um z.B. deine FreeCAD Objekte auf eine bestimmte Weise auszugeben, wenn du mit dem Standardweg nicht zufrieden bist. Du kannst es so von der Python Konsole aus erstellen und verwenden:

myRaytracingProject = FreeCAD.ActiveDocument.PovProject
myCustomRenderObject = FreeCAD.ActiveDocument.addObject("Raytracing::RaySegment","myRenderObject")
myRaytracingProject.addObject(myCustomRenderObject)
myCustomRenderObject.Result = "// Hello from python!"