Topological data scripting: Difference between revisions
Line 108: | Line 108: | ||
Now extrude the wire in a direction and make a actual 3D shape: |
Now extrude the wire in a direction and make a actual 3D shape: |
||
<code python> |
<code python> |
||
P = Part. |
P = Part.S1.toPrism(Base.Vector(0,0,10)) |
||
</code> |
</code> |
||
Revision as of 16:30, 7 July 2008
Introduction
First to use the Part module functionality you have to load the Part module into the intereter:
import Part
Class Diagram
This is an UML overview about the most important classes of the Part module:
Geometry
The Geomtric objects are the Building block of all topological objects:
- Geom Base class of the geometric objects
- Line A straight line in 3D, defined by starting point and and point
- Circle Circle or circle segment defined by a center point and start and end point
- ...... And soon some more ;-)
Topology
The following topological data types are available:
- COMPOUND A group of any type of topological object.
- COMPSOLID A composite solid is a set of solids connected by their faces. It expands the notions of WIRE and SHELL to solids.
- SOLID A part of space limited by shells. It is three dimensional.
- SHELL A set of faces connected by their edges. A shell can be open or closed.
- FACE In 2D it is part of a plane; in 3D it is part of a surface. Its geometry is constrained (trimmed) by contours. It is two dimensional.
- WIRE A set of edges connected by their vertices. It can be an open or closed contour depending on whether the edges are linked or not.
- EDGE A topological element corresponding to a restrained curve. An edge is generally limited by vertices. It has one dimension.
- VERTEX A topological element corresponding to a point. It has zero dimension.
- SHAPE A generic term covering all of the above.
Creating Basic types
You can directly create basic topological objects through the module:
b = Part.createBox(0,0,0,100,100,100)
Part.show(b)
Exploring shapes
You can explore the topological data structure:
b = Part.createBox(0,0,0,100,100,100)
b.Wires
w = b.Wires[0]
w
w.Wires
w.Vertexes
Part.show(w)
w.Edges
e = w.Edges[0]
e.Vertexes
v = e.Vertexes[0]
v.Point
Creating Topology
We will now create a topology by constructing it out of simpler geometry. As a case study we use a Part as seen in the picture which consist of four Vertexes, two circles and two lines.
Creating Geometry
First we have to create the distinct geometric parts of this Wire. And we have to take care that the Vertexes of the Geometric Parts are at the same position. Otherwise we can later on not connecting the geometric parts to a topology!
So we create first the points:
from FreeCAD import Base
V1 = Base.Vector(0,10,0)
V2 = Base.Vector(30,10,0)
V3 = Base.Vector(30,-10,0)
V4 = Base.Vector(0,-10,0)
Arc
To create a circle we make a helper point and create the circle
through three points:
VC1 = Base.Vector(-10,0,0)
C1 = Part.Arc(V1,VC1,V4)
- and the second one
VC2 = Base.Vector(40,0,0)
C2 = Part.Arc(V2,VC2,V3)
Line
The Line can be created very simple out of the Points:
L1 = Part.Line(V1,V2)
- and the second one
L2 = Part.Line(V4,V3)
Put all together
The last step is to put the geometric base elements together
and bake a topological shape:
S1 = Part.Shape([C1,C2,L1,L2])
Make a prism
Now extrude the wire in a direction and make a actual 3D shape:
P = Part.S1.toPrism(Base.Vector(0,0,10))