FreeCADDocu:Sandbox: Difference between revisions

From FreeCAD Documentation
(Removed Start and Web WB.)
 
(20 intermediate revisions by 6 users not shown)
Line 1: Line 1:
== Test ==
== Test ==
{{Navbox
| name = FreeCADDocu:Sandbox{{subst:void|Don't change anything on this line. It will change itself when you save.}}
| title = Navbox
| listclass = hlist
| state = {{{state|}}}

| group1 = Arch
| list1 = tool, tool2

| group2 = Draft
| list2 = tool3, tool4
}}

This is some line, and then {{incode|some inline code}}
This is some line, and then {{incode|some inline code}}

This is some line, and then {{inline-code| 1=wfDebug( $text, $dest = 'all' );}}


This is some line, and then {{code|inline=y|font-family: 'Times New Roman', serif;}}
This is some line, and then {{code|inline=y|font-family: 'Times New Roman', serif;}}
Line 21: Line 6:
[[Draft Line]] and [[Draft_Line]]
[[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%;" |
|'''Installation:'''
[[Image:NoIconFound.png|32px|Official icon not found]] {{{Name}}}
||[[Install on Unix|Unix]], [[Install on Windows|Windows]], [[Install on Mac|Mac]]; '''[[Getting started]]'''
|-
! 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]]'''
|--
|-
|-
|'''Basics:'''
|style="font-weight:bold;" | Basics:
||[[About FreeCAD]], [[Workbenches]], [[Preferences Editor|Preferences]], [[Document structure]], [[Interface Customization]], [[Property|Properties]], [[Mouse Model]]
||[[About FreeCAD]], [[Workbenches]], [[Preferences Editor|Preferences]], [[Document structure]], [[Interface Customization]], [[Property|Properties]], [[Mouse_navigation|Mouse navigation]]
|-
|-
|'''Core workbenches:'''
||[[Draft Module|Draft]], [[Part Module|Part]], [[PartDesign Workbench|PartDesign]], [[Sketcher Workbench|Sketcher]], [[TechDraw Workbench|TechDraw]]
|-
|-
|'''Expert workbenches:'''
|style="font-weight:bold;" | Core workbenches:
||[[Arch Workbench|Arch]], [[FEM Workbench|FEM]], [[Image Module|Image]], [[Inspection Workbench|Inspection]], [[Mesh Module|Mesh]], [[OpenSCAD Workbench|OpenSCAD]], [[Path Workbench|Path]], [[Points Module|Points]], [[Raytracing Module|Raytracing]], [[Reverse Engineering Workbench|Reverse Engineering]], [[Robot Workbench|Robot]], [[Ship Workbench|Ship]]
||[[Draft Workbench|Draft]], [[Part Workbench|Part]], [[PartDesign Workbench|PartDesign]], [[Sketcher Workbench|Sketcher]], [[TechDraw Workbench|TechDraw]]
|-
|-
|'''Auxiliary workbenches:'''
|style="font-weight:bold;" | Expert workbenches:
||[[Plot Workbench|Plot]], [[Spreadsheet Workbench|Spreadsheet]], [[Start Workbench|Start]], [[Debugging|Test Framework]], [[Web Workbench|Web]]
||[[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]]
|-
|-
|'''Deprecated workbenches:'''
|style="font-weight:bold;" | Auxiliary workbenches:
||[[Complete Workbench|Complete]], [[Drawing Module|Drawing]]
||[[Plot Workbench|Plot]], [[Spreadsheet Workbench|Spreadsheet]], [[Debugging|Test Framework]]
|}
|}

=== HowTo test ===
Experimental HowTo page: [[Sandbox:HowTo]]

[[#top|top]]


== Test code ==
== Test code ==
Line 80: Line 82:
== Test syntaxhighlight ==
== Test syntaxhighlight ==


'''syntaxhighlight'''
'''syntaxhighlight lang="python"'''
<syntaxhighlight>
<syntaxhighlight lang="python">
import math
import math
from pivy import coin
from pivy import coin
Line 159: Line 161:


'''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

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

Official icon not found {{{Name}}}

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

top

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()