FreeCADDocu:Sandbox: Difference between revisions
(Added example script with <syntaxhighlight line> tag) |
(Removed Start and Web WB.) |
||
(38 intermediate revisions by 7 users not shown) | |||
Line 1: | Line 1: | ||
== Test == |
|||
This is some line, and then {{incode|some inline code}} |
|||
This is some line, and then {{code|inline=y|font-family: 'Times New Roman', serif;}} |
|||
[[Draft Line]] and [[Draft_Line]] |
|||
{| class="fcinfobox wikitable ct" width=100% height=100% style="float: right; width: 230px; margin-left: 1em" | |
|||
| class="ctTitle" style="font-weight: bold; font-size: 114%;" | |
|||
[[Image:NoIconFound.png|32px|Official icon not found]] {{{Name}}} |
|||
|- |
|||
! class="ctOdd"|Menu location |
|||
|- |
|||
| class="ctEven"|{{{MenuLocation}}} |
|||
|- |
|||
! class="ctOdd"|Workbenches |
|||
|- |
|||
| class="ctEven"|{{{Workbenches}}} |
|||
|} |
|||
{| class="wikitable" style="width: 100%;" |
|||
|style="width: 18%;" | '''Installation:''' |
|||
||[[Installing_on_Linux|Linux]], [[Installing_on_Windows|Windows]], [[Installing_on_Mac|Mac]]; '''[[Getting started]]''' |
|||
|-- |
|||
|- |
|||
|style="font-weight:bold;" | Basics: |
|||
||[[About FreeCAD]], [[Workbenches]], [[Preferences Editor|Preferences]], [[Document structure]], [[Interface Customization]], [[Property|Properties]], [[Mouse_navigation|Mouse navigation]] |
|||
|- |
|||
|- |
|||
|style="font-weight:bold;" | Core workbenches: |
|||
||[[Draft Workbench|Draft]], [[Part Workbench|Part]], [[PartDesign Workbench|PartDesign]], [[Sketcher Workbench|Sketcher]], [[TechDraw Workbench|TechDraw]] |
|||
|- |
|||
|style="font-weight:bold;" | Expert workbenches: |
|||
||[[Arch Workbench|Arch]], [[CAM Workbench|CAM]], [[FEM Workbench|FEM]], [[Inspection Workbench|Inspection]], [[Mesh Workbench|Mesh]], [[OpenSCAD Workbench|OpenSCAD]], [[Points_Workbench|Points]], [[Raytracing Workbench|Raytracing]], [[Reverse Engineering Workbench|Reverse Engineering]], [[Robot Workbench|Robot]], [[Ship Workbench|Ship]] |
|||
|- |
|||
|style="font-weight:bold;" | Auxiliary workbenches: |
|||
||[[Plot Workbench|Plot]], [[Spreadsheet Workbench|Spreadsheet]], [[Debugging|Test Framework]] |
|||
|} |
|||
=== HowTo test === |
|||
Experimental HowTo page: [[Sandbox:HowTo]] |
|||
[[#top|top]] |
|||
== Test code == |
|||
'''Code|code=''' |
'''Code|code=''' |
||
{{Code|code= |
{{Code|code= |
||
Line 9: | Line 55: | ||
}} |
}} |
||
== Test python == |
|||
'''Code|lang=python|code=''' |
'''Code|lang=python|code=''' |
||
Line 20: | Line 67: | ||
}} |
}} |
||
== Test pre == |
|||
'''pre''' |
'''pre''' |
||
Line 31: | Line 80: | ||
</pre> |
</pre> |
||
== Test syntaxhighlight == |
|||
'''syntaxhighlight''' |
'''syntaxhighlight lang="python"''' |
||
<syntaxhighlight> |
<syntaxhighlight lang="python"> |
||
import math |
import math |
||
from pivy import coin |
from pivy import coin |
||
Line 42: | Line 92: | ||
</syntaxhighlight> |
</syntaxhighlight> |
||
== Test source lang=python == |
|||
'''source lang=python''' |
'''source lang=python''' |
||
Line 54: | Line 105: | ||
</source> |
</source> |
||
== Test code == |
|||
'''Code|code=''' |
'''Code|code=''' |
||
Line 76: | Line 128: | ||
}} |
}} |
||
== Test code=bash == |
|||
'''Code|code=bash''' |
'''Code|code=bash''' |
||
Line 98: | Line 151: | ||
}} |
}} |
||
== Test SystemInput == |
|||
'''SystemInput''' template |
|||
{{SystemInput | sudo apt-get install build-essential devscripts debhelper autoconf automake libtool bison libx11-dev tcl8.4-dev tk8.4-dev libgl1-mesa-dev libglu1-mesa-dev java-gcj-compat-dev libxmu-dev}} |
|||
== Test syntaxhighlight == |
|||
'''syntaxhighlight line''' |
'''syntaxhighlight line''' |
||
<syntaxhighlight line> |
<syntaxhighlight lang="python" line> |
||
from __future__ import division # allows floating point division from integers |
from __future__ import division # allows floating point division from integers |
||
import FreeCAD, Part, math |
import FreeCAD, Part, math |
||
Line 161: | Line 222: | ||
makeRectellipseBlock() |
makeRectellipseBlock() |
||
</syntaxhighlight> |
</syntaxhighlight> |
||
[[Category:Sandbox]] |
Latest revision as of 09:11, 2 May 2024
Test
This is some line, and then some inline code
This is some line, and then
font-family: 'Times New Roman', serif;
Draft Line and Draft_Line
Menu location |
---|
{{{MenuLocation}}} |
Workbenches |
{{{Workbenches}}} |
Installation: | Linux, Windows, Mac; Getting started |
Basics: | About FreeCAD, Workbenches, Preferences, Document structure, Interface Customization, Properties, Mouse navigation |
Core workbenches: | Draft, Part, PartDesign, Sketcher, TechDraw |
Expert workbenches: | Arch, CAM, FEM, Inspection, Mesh, OpenSCAD, Points, Raytracing, Reverse Engineering, Robot, Ship |
Auxiliary workbenches: | Plot, Spreadsheet, Test Framework |
HowTo test
Experimental HowTo page: Sandbox:HowTo
Test code
Code|code=
import math
from pivy import coin
cam = Gui.ActiveDocument.ActiveView.getCameraNode()
rot.setValue(coin.SbVec3f(0,0,1),math.pi/2)
self.lineEdit_1 = QtGui.QLineEdit(self.centralWidget)
self.lineEdit_1.setGeometry(QtCore.QRect(320, 30, 151, 22))
Test python
Code|lang=python|code=
import math
from pivy import coin
cam = Gui.ActiveDocument.ActiveView.getCameraNode()
rot.setValue(coin.SbVec3f(0,0,1),math.pi/2)
self.lineEdit_1 = QtGui.QLineEdit(self.centralWidget)
self.lineEdit_1.setGeometry(QtCore.QRect(320, 30, 151, 22))
Test pre
pre
import math from pivy import coin cam = Gui.ActiveDocument.ActiveView.getCameraNode() rot.setValue(coin.SbVec3f(0,0,1),math.pi/2) self.lineEdit_1 = QtGui.QLineEdit(self.centralWidget) self.lineEdit_1.setGeometry(QtCore.QRect(320, 30, 151, 22))
Test syntaxhighlight
syntaxhighlight lang="python"
import math
from pivy import coin
cam = Gui.ActiveDocument.ActiveView.getCameraNode()
rot.setValue(coin.SbVec3f(0,0,1),math.pi/2)
self.lineEdit_1 = QtGui.QLineEdit(self.centralWidget)
self.lineEdit_1.setGeometry(QtCore.QRect(320, 30, 151, 22))
Test source lang=python
source lang=python
import math
from pivy import coin
cam = Gui.ActiveDocument.ActiveView.getCameraNode()
rot.setValue(coin.SbVec3f(0,0,1),math.pi/2)
self.lineEdit_1 = QtGui.QLineEdit(self.centralWidget)
self.lineEdit_1.setGeometry(QtCore.QRect(320, 30, 151, 22))
Test code
Code|code=
wget http://lyre.mit.edu/~powell/opencascade/opencascade_6.2.0.orig.tar.gz
wget http://lyre.mit.edu/~powell/opencascade/opencascade_6.2.0-7.dsc
wget http://lyre.mit.edu/~powell/opencascade/opencascade_6.2.0-7.diff.gz
dpkg-source -x opencascade_6.2.0-7.dsc
# Install OCC build-deps
sudo apt-get install build-essential devscripts debhelper autoconf automake libtool bison libx11-dev tcl8.4-dev tk8.4-dev libgl1-mesa-dev libglu1-mesa-dev java-gcj-compat-dev libxmu-dev
#Build Opencascade packages. This takes hours and requires
# at least 8 GB of free disk space
cd opencascade-6.2.0 ; debuild
# Install the resulting library debs
sudo dpkg -i libopencascade6.2-0_6.2.0-7_i386.deb
libopencascade6.2-dev_6.2.0-7_i386.deb
Test code=bash
Code|code=bash
wget http://lyre.mit.edu/~powell/opencascade/opencascade_6.2.0.orig.tar.gz
wget http://lyre.mit.edu/~powell/opencascade/opencascade_6.2.0-7.dsc
wget http://lyre.mit.edu/~powell/opencascade/opencascade_6.2.0-7.diff.gz
dpkg-source -x opencascade_6.2.0-7.dsc
# Install OCC build-deps
sudo apt-get install build-essential devscripts debhelper autoconf automake libtool bison libx11-dev tcl8.4-dev tk8.4-dev libgl1-mesa-dev libglu1-mesa-dev java-gcj-compat-dev libxmu-dev
#Build Opencascade packages. This takes hours and requires
# at least 8 GB of free disk space
cd opencascade-6.2.0 ; debuild
# Install the resulting library debs
sudo dpkg -i libopencascade6.2-0_6.2.0-7_i386.deb
libopencascade6.2-dev_6.2.0-7_i386.deb
Test SystemInput
SystemInput template
sudo apt-get install build-essential devscripts debhelper autoconf automake libtool bison libx11-dev tcl8.4-dev tk8.4-dev libgl1-mesa-dev libglu1-mesa-dev java-gcj-compat-dev libxmu-dev
Test syntaxhighlight
syntaxhighlight line
from __future__ import division # allows floating point division from integers
import FreeCAD, Part, math
from FreeCAD import Base
class RectEllipseShape:
def __init__(self, obj):
''' Add the properties: Radius, Eccentricity, Height, Segments (see Property View) '''
obj.addProperty("App::PropertyLength","a","Rectellipse","A - horizontal radius").a = 16.0
obj.addProperty("App::PropertyLength","b","Rectellipse","B - vertical radius").b = 9.0
obj.addProperty("App::PropertyFloat","n","Rectellipse","N ").n=0.2
obj.addProperty("App::PropertyBool","createFace","Rectellipse","Wheter to create a face or not").createFace=True
obj.Proxy = self
def onChanged(self, fp, prop):
if prop == "a" or prop == "b" or prop == "n" or prop == "segments" or prop == "height" or prop == "createFace":
#if one of these is changed
self.execute(fp)
def execute(self, fp):
r1=fp.a
r2=fp.b
s=fp.n
z=0.0
p=1.0
####w=2**0.5/2.0 #Ellipse
w=2**0.5/2.0/(1-s**p)
curve=Part.BSplineCurve()
curve.setPeriodic()
curve.increaseDegree(2) #quadratic
curve.insertKnots([i*1.0/(4) for i in (1,2,3)],[2]*(3)) #5Knots 8 Poles
curve.setPole(1,FreeCAD.Vector(0,-r2,z),1)
curve.setPole(2,FreeCAD.Vector(-r1,-r2,z),w)
curve.setPole(3,FreeCAD.Vector(-r1,0,z),1)
curve.setPole(4,FreeCAD.Vector(-r1,r2,z),w)
curve.setPole(5,FreeCAD.Vector(0,r2,z),1)
curve.setPole(6,FreeCAD.Vector(r1,r2,z),w)
curve.setPole(7,FreeCAD.Vector(r1,0,z),1)
curve.setPole(8,FreeCAD.Vector(r1,-r2,z),w)
if fp.createFace == True:
fp.Shape = Part.Face(Part.Wire(curve.toShape()))
else:
fp.Shape = curve.toShape()
def makeRectellipseBlock():
doc = FreeCAD.activeDocument()
if doc == None:
doc = FreeCAD.newDocument()
obj=doc.addObject("Part::FeaturePython","RectEllipseShape") #add object to document
obj.Label = "RectEllipsse"
RectEllipseShape(obj)
obj.ViewObject.Proxy=0
viewObject = Gui.ActiveDocument.getObject(obj.Name)
viewObject.ShapeColor = (0.00,0.33,1.00)
viewObject.DisplayMode = "Flat Lines"
obj.Shape.check()
if __name__ == "__main__":
#feature will be generated after macro execution
makeRectellipseBlock()