Draft BezCurve/cs: Difference between revisions
(Created page with "Kreslení Bezierových křivek") |
(Updating to match new version of source page) |
||
(31 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
<languages/> |
|||
{{GuiCommand|Name=Draft_BezCurve|Workbenches=[[Draft Module|Draft]]|MenuLocation=Draft -> BezCurve|Shortcut=B Z}} |
|||
{{Docnav |
|||
==Description== |
|||
|[[Draft_Facebinder|Facebinder]] |
|||
|[[Draft CubicBezCurve|CubicBezCurve]] |
|||
|[[Draft_Module|Draft]] |
|||
|IconL=Draft_Facebinder.svg |
|||
|IconC=Workbench_Draft.svg |
|||
|IconR=Draft_CubicBezCurve.svg |
|||
}} |
|||
<div class="mw-translate-fuzzy"> |
|||
{{GuiCommand/cs|Name=Draft BezCurve|Workbenches=[[Draft Module|Draft]], [[Arch Module|Arch]]|MenuLocation=Draft -> BezCurve|Shortcut=B Z}} |
|||
</div> |
|||
==Popis== |
|||
The BezCurve tool creates a [http://en.wikipedia.org/wiki/Bezier_curve Bezier Curve] (or a piecewise Bezier Curve) from several points in the current [[Draft Workingplane|work plane]]. It takes the [[Draft Linestyle|linewidth and color]] previously set on the Tasks tab. |
|||
<div class="mw-translate-fuzzy"> |
|||
Nástroj Bezierova křivka vytváří [http://en.wikipedia.org/wiki/Bezier_curve Bezierovu křivku] (nebo Bezierovu křivku po částech) z několika bodů v aktuální [[Draft SelectPlane/cs|pracovní rovině]]. Přebírá [[Draft Linestyle/cs|tloušťku čáry a barvu]] předem nastavenou v záložce Nástroje. |
|||
</div> |
|||
The BezCurve tool curve uses {{Emphasis|control points}} to define the direction of the curve; on the other hand the [[Draft BSpline|Draft BSpline]] tool specifies the exact points through which the curve will go. To create exact circular or elliptical curves, use [[Draft Arc|Draft Arc]] and [[Draft Ellipse|Draft Ellipse]]. |
|||
[[Image:Draft_BezCurve_Example.png|400px]] |
[[Image:Draft_BezCurve_Example.png|400px]] |
||
{{Caption|Bezier curve defined by multiple control points}} |
|||
==How to use== |
|||
<div class="mw-translate-fuzzy"> |
|||
# Press the {{KEY|[[Image:Draft_BezCurve.png|16px]] [[Draft BezCurve]]}} button, or press {{KEY|B}} then {{KEY|Z}} keys. |
|||
[[Image:Draft_BezCurve_Example.png|400px]] |
|||
# Click a first point on the 3D view, or type a [[Draft_Coordinates|coordinate]] |
|||
</div> |
|||
# Click additional point on the 3D view, or type a [[Draft_Coordinates|coordinate]] |
|||
# Press {{KEY|F}} or {{KEY|C}}, or double-click the last point, or click on the first point to finish and close the spline. |
|||
==Options== |
|||
# Invoke the Draft BezCurve command several ways: |
|||
* Press {{KEY|F}} or the {{KEY|[[Image:Draft FinishLine.png|12px]] '''[[Draft_FinishLine|Finish]]'''}} button to finish the spline, leaving it open |
|||
#* Press the {{Button|[[Image:Draft_BezCurve.svg|16px]] [[Draft BezCurve|Draft BezCurve]]}} button in Draft toolbar |
|||
* Press {{KEY|C}} or the {{KEY|[[Image:Draft CloseLine.png|12px]] '''[[Draft_CloseLine|Close]]'''}} button or click on the first point to finish the spline, but making it closed by adding a last segment between the last point and the first one. |
|||
* Press |
#* Press the {{KEY|B}} then {{KEY|Z}} keyboard keys |
||
#* Use the {{MenuCommand|Draft → Bezier tools → BezCurve}} entry in the Draft menu |
|||
* To enter coordinates manually, simply enter the numbers, then press {{KEY|ENTER}} between each X, Y and Z component. |
|||
# Click a first point on the [[3D view]], or type a [[Draft_Coordinates|coordinate]] and press the {{Button|[[Image:Draft_AddPoint.svg|16px]] [[Draft_AddPoint|add point]]}} button. |
|||
* Press {{KEY|R}} or click the checkbox to check/uncheck the {{KEY|'''Relative'''}} button. If relative mode is on, the coordinates of the next point are relative to the last one. If not, they are absolute, taken from the (0,0,0) origin point. |
|||
# Click additional points on the [[3D view]], or type a [[Draft_Coordinates|coordinate]] and press the {{Button|[[Image:Draft_AddPoint.svg|16px]] [[Draft_AddPoint|add point]]}} button. |
|||
* Press {{KEY|T}} or click the checkbox to check/uncheck the {{KEY|'''Continue'''}} button. If continue mode is on, the BezCurve tool will restart after you finish or close it, allowing you to draw another one without pressing the BezCurve button again. |
|||
# Press {{KEY|Esc}} or the {{Button|Close}} button, or double-click the last point to complete the edition. |
|||
* Press {{KEY|SHIFT}} while drawing to [[Draft_Constrain|constrain]] your next point horizontally or vertically in relation to the last one. |
|||
* Press {{KEY|W}} or press the {{KEY|[[Image:Draft Wipe.png|12px]] '''Wipe'''}} button to remove the existing segments and start the spline from the last point. |
|||
* Press {{KEY|CTRL}}+{{KEY|Z}} or press the {{KEY|[[Image:Draft UndoLine.png|12px]] '''[[Draft_UndoLine|Undo]]'''}} button to undo the last point. |
|||
* Press {{KEY|ESC}} or the {{KEY|'''Cancel'''}} button to abort the current BezCurve command. |
|||
The object is created as a single Bezier curve of degree {{incode|number_of_points - 1}}. It can be transformed to a piecewise wire made of curves of a specified degree by changing its properties. |
|||
==Properties== |
|||
The curve can be edited by double clicking on the element in the tree view, or by pressing the {{Button|[[Image:Draft Edit.svg|16px]] [[Draft Edit|Draft Edit]]}} button. Then you can move the points to a new position, or click {{Button|[[Image:Draft_AddPoint.svg|16px]] [[Draft_AddPoint|add point]]}} or {{Button|[[Image:Draft_DelPoint.svg|16px]] [[Draft_DelPoint|remove point]]}} and then click on the curve to add or remove points. You can also change the constraint type of each point. |
|||
* {{PropertyData|Closed}}: Specifies if the Bezier Curve is closed or not |
|||
* {{PropertyData|Degree}}: Specifies the degree of the Bezier Curve (or segments) |
|||
=== Node constraints === |
|||
==Scripting== |
|||
The segment endpoints can be constrained such that adjacent control points are tangent or symmetric to the segments at the endpoint. |
|||
First, start editing the curve, then pick one of the tools and then pick a point. Click again on the tool to deactivate it, so you can move the point. |
|||
* {{Button|[[Image:Draft_BezSharpNode.svg|32px]] sharp}} remove constraints on the points so the curve can have sharp corners. |
|||
* {{Button|[[Image:Draft_BezTanNode.svg|32px]] tangent}} force adjacent control points to be tangent. |
|||
* {{Button|[[Image:Draft_BezSymNode.svg|32px]] symmetric}} force adjacent control points to be tangent and equidistant. |
|||
<div class="mw-translate-fuzzy"> |
|||
The BezCurve tool can by used in [[macros]] and from the python console by using the following function: |
|||
==Omezení== |
|||
* Tento nástroj je dostupný až od verze FreeCADu 0.14 |
|||
* Vlastnost Body se zatím nezaobrazuje v seznamu vlastností. |
|||
* OpenCascade nepodporuje Bezierovy křivky se stupněm < 25. V praxi by to neměl být problém. |
|||
</div> |
|||
<div class="mw-translate-fuzzy"> |
|||
==Použití== |
|||
# Stiskněte tlačítko {{KEY|[[Image:Draft_BezCurve.png|16px]] [[Draft BezCurve|Bezierova křivka]]}} nebo klávesy {{KEY|B}} potom {{KEY|Z}} |
|||
# Klikněte na první bod ve 3D pohledu nebo zadejte jeho [[Draft_Coordinates|souřadnice]] |
|||
# Klikněte na další bod ve 3D pohledu nebo zadejte jeho [[Draft_Coordinates|souřadnice]] |
|||
# Stiskněte klávesu {{KEY|F}} nebo {{KEY|C}} nebo dvojklikněte na poslední bod pro ukončení nebo na počáteční bod pro uzavření křivky. |
|||
==Volby== |
|||
</div> |
|||
<div class="mw-translate-fuzzy"> |
|||
* Stiskněte tlačítko {{KEY|F}} nebo {{KEY|[[Image:Draft FinishLine.png|12px]] '''[[Draft_FinishLine|Dokončit]]'''}} pro ukončení křivky bez uzavření |
|||
* Stiskněte tlačítko {{KEY|C}} nebo {{KEY|[[Image:Draft CloseLine.png|12px]] '''[[Draft_CloseLine|Uzavřít]]'''}} nebo klikněte na první bod pro dokončení křivky s tím, že bude uzavřena a eventuálně bude přdán poslední segment do počátečního bodu. |
|||
* Stiskněte tlačítko {{KEY|X}}, {{KEY|Y}} nebo {{KEY|Z}} po vybrání bodu a pak bude další výběr proveden v dané ose. |
|||
* Pro ruční zadání souřadnic jednoduše vložte číslo a stiskněte {{KEY|ENTER}} mezi každou z komponent X, Y a Z. |
|||
* Stiskněte tlačítko {{KEY|R}} nebo zaklikněte/odklikněte políčko {{KEY|'''Relativně'''}}. Je-li zapnut relativní mód souřadnice následujícího bodu bodou relativní k předchozímu bodu, jinak budou absolutní k počátku (0,0,0). |
|||
* Stiskněte tlačítko {{KEY|T}} nebo zaklikněte/odklikněte políčko {{KEY|'''Pokračovat'''}}. Je-li zapnut pokračovací mód, bude nástroj Bezierova křivka po ukončení nebo uzavření křivky restartován a můžete hned kreslit další bez klikání na tlačítko pro Bezierovu křivku. |
|||
* Stiskněte při kreslení tlačítko {{KEY|CTRL}} chcete-li [[Draft_Snap|přichytit]] Váš bod k nejbližšímu uchopovacímu místu, nezávisle na tom jak je daleko. |
|||
* Stiskněte při kreslení tlačítko {{KEY|SHIFT}} pro nastavení [[Draft_Constrain|vazby]] dalšího bodu svisle nebo vodorovně v relaci k poslednímu bodu. |
|||
* Stiskněte klávesu {{KEY|W}} nebo tlačítko {{KEY|[[Image:Draft Wipe.png|12px]] '''Smazat'''}} pro smazání existujících segmentů a spuštění křivky od posledního bodu. |
|||
* Stiskněte klávesy {{KEY|CTRL}}+{{KEY|Z}} nebo tlačítko {{KEY|[[Image:Draft UndoLine.png|12px]] '''[[Draft_UndoLine|Undo]]'''}} pro vrácení k předchozímu bodu. |
|||
* Stiskněte klávesu {{KEY|ESC}} nebo tlačítko {{KEY|'''Zrušit'''}} k ukončení aktuálního příkazu pro Bezierovu křivku. |
|||
</div> |
|||
==Vlastnosti== |
|||
=== Data === |
|||
* {{PropertyData|Degree}}: specifies the degree of the Bezier curve or the individual segments. |
|||
* {{PropertyData|Closed}}: specifies if the curve is closed or not. If the curve is initially open, this value is {{FALSE}}; setting it to {{TRUE}} will draw a segment to close the curve. If the curve is initially closed, this value is {{TRUE}}; setting it to {{FALSE}} will remove the last segment, and make the curve open. |
|||
* {{PropertyData|Make Face}}: specifies if the curve makes a face or not. If it is {{TRUE}} a face is created, otherwise only the perimeter is considered part of the object. This property only works if {{PropertyData|Closed}} is {{TRUE}}. |
|||
:{{Emphasis|Note:}} do not set {{PropertyData|Make Face}} to {{TRUE}} if the curve intersects itself, as it won't create a proper face. |
|||
* {{PropertyData|Continuity}}: (read-only) when the curve is closed, indicates the continuity of the curve {{incode|[0]}}, or {{incode|[0,0]}}. Otherwise it's {{incode|[]}}. |
|||
=== View === |
|||
* {{PropertyView|Arrow Size}}: specifies the size of the symbol displayed at the end of the curve. |
|||
* {{PropertyView|Arrow Type}}: specifies the type of symbol displayed at the end of the curve, which can be dot, circle, arrow, and tick. |
|||
* {{PropertyView|End Arrow}}: specifies whether to show a symbol at the last point of the curve, so it can be used as an annotation line. |
|||
* {{PropertyView|Pattern}}: specifies a [[Draft Pattern|Draft Pattern]] with which to fill the face of the closed curve. This property only works if {{PropertyData|Make Face}} is {{TRUE}}, and if {{PropertyView|Display Mode}} is "Flat Lines". |
|||
* {{PropertyView|Pattern Size}}: specifies the size of the [[Draft Pattern|Draft Pattern]]. |
|||
<div class="mw-translate-fuzzy"> |
|||
==Skriptování== |
|||
</div> |
|||
<div class="mw-translate-fuzzy"> |
|||
Nástroj Bezierova křivka může být využit v [[macros|makrech]] a z konzoly Pythonu použitím následující funkce: |
|||
</div> |
|||
{{Code|code= |
{{Code|code= |
||
makeBezCurve(pointslist, |
BezCurve = makeBezCurve(pointslist, closed=False, placement=None, face=None, support=None, degree=None) |
||
BezCurve = makeBezCurve(Part.Wire, closed=False, placement=None, face=None, support=None, degree=None) |
|||
}} |
}} |
||
* Create a Bezier Curve object from the given list of vectors. Instead of a pointslist, you can also pass a Part Wire. |
|||
<div class="mw-translate-fuzzy"> |
|||
Example: |
|||
* Vytvoří objekt Bezierovy křivky podle zadaného seznamu vektorů. Místo seznamu bodů můžete také vložit díl Drát. |
|||
</div> |
|||
Example: |
|||
{{Code|code= |
{{Code|code= |
||
import FreeCAD, Draft |
|||
myFeature = Draft.makeBezCurve(Draft.makeBezCurve(points,False) |
|||
p1 = FreeCAD.Vector(0, 0, 0) |
|||
p2 = FreeCAD.Vector(1000, 1000, 0) |
|||
p3 = FreeCAD.Vector(2000, 0, 0) |
|||
p4 = FreeCAD.Vector(1500, -2000, 0) |
|||
BezCurve1 = Draft.makeBezCurve([p1, p2, p3, p4], closed=True) |
|||
BezCurve2 = Draft.makeBezCurve([p4, 1.3*p2, p1, 4.1*p3], closed=True) |
|||
BezCurve3 = Draft.makeBezCurve([1.7*p3, 1.5*p4, 2.1*p2, p1], closed=True) |
|||
}} |
}} |
||
==Limitations== |
|||
{{Docnav |
|||
* This tool is not yet generally available. It will be included in a future version. (post v0.13) |
|||
|[[Draft_Facebinder|Facebinder]] |
|||
* The Points Property does not yet appear in the properties list. |
|||
|[[Draft CubicBezCurve|CubicBezCurve]] |
|||
|[[Draft_Module|Draft]] |
|||
|IconL=Draft_Facebinder.svg |
|||
|IconC=Workbench_Draft.svg |
|||
|IconR=Draft_CubicBezCurve.svg |
|||
}} |
|||
{{Draft Tools navi{{#translation:}}}} |
|||
{{Userdocnavi{{#translation:}}}} |
|||
{{clear}} |
{{clear}} |
||
<languages/> |
Revision as of 17:50, 21 February 2020
Draft BezCurve |
Umístění Menu |
---|
Draft -> BezCurve |
Pracovní stoly |
Draft, Arch |
Výchozí zástupce |
B Z |
Představen ve verzi |
- |
Viz také |
Nikdo |
Popis
Nástroj Bezierova křivka vytváří Bezierovu křivku (nebo Bezierovu křivku po částech) z několika bodů v aktuální pracovní rovině. Přebírá tloušťku čáry a barvu předem nastavenou v záložce Nástroje.
The BezCurve tool curve uses control points to define the direction of the curve; on the other hand the Draft BSpline tool specifies the exact points through which the curve will go. To create exact circular or elliptical curves, use Draft Arc and Draft Ellipse.
Bezier curve defined by multiple control points
- Invoke the Draft BezCurve command several ways:
- Press the Draft BezCurve button in Draft toolbar
- Press the B then Z keyboard keys
- Use the Draft → Bezier tools → BezCurve entry in the Draft menu
- Click a first point on the 3D view, or type a coordinate and press the add point button.
- Click additional points on the 3D view, or type a coordinate and press the add point button.
- Press Esc or the Close button, or double-click the last point to complete the edition.
The object is created as a single Bezier curve of degree number_of_points - 1
. It can be transformed to a piecewise wire made of curves of a specified degree by changing its properties.
The curve can be edited by double clicking on the element in the tree view, or by pressing the Draft Edit button. Then you can move the points to a new position, or click add point or remove point and then click on the curve to add or remove points. You can also change the constraint type of each point.
Node constraints
The segment endpoints can be constrained such that adjacent control points are tangent or symmetric to the segments at the endpoint. First, start editing the curve, then pick one of the tools and then pick a point. Click again on the tool to deactivate it, so you can move the point.
- sharp remove constraints on the points so the curve can have sharp corners.
- tangent force adjacent control points to be tangent.
- symmetric force adjacent control points to be tangent and equidistant.
Omezení
- Tento nástroj je dostupný až od verze FreeCADu 0.14
- Vlastnost Body se zatím nezaobrazuje v seznamu vlastností.
- OpenCascade nepodporuje Bezierovy křivky se stupněm < 25. V praxi by to neměl být problém.
Použití
- Stiskněte tlačítko Bezierova křivka nebo klávesy B potom Z
- Klikněte na první bod ve 3D pohledu nebo zadejte jeho souřadnice
- Klikněte na další bod ve 3D pohledu nebo zadejte jeho souřadnice
- Stiskněte klávesu F nebo C nebo dvojklikněte na poslední bod pro ukončení nebo na počáteční bod pro uzavření křivky.
Volby
- Stiskněte tlačítko F nebo Dokončit pro ukončení křivky bez uzavření
- Stiskněte tlačítko C nebo Uzavřít nebo klikněte na první bod pro dokončení křivky s tím, že bude uzavřena a eventuálně bude přdán poslední segment do počátečního bodu.
- Stiskněte tlačítko X, Y nebo Z po vybrání bodu a pak bude další výběr proveden v dané ose.
- Pro ruční zadání souřadnic jednoduše vložte číslo a stiskněte ENTER mezi každou z komponent X, Y a Z.
- Stiskněte tlačítko R nebo zaklikněte/odklikněte políčko Relativně. Je-li zapnut relativní mód souřadnice následujícího bodu bodou relativní k předchozímu bodu, jinak budou absolutní k počátku (0,0,0).
- Stiskněte tlačítko T nebo zaklikněte/odklikněte políčko Pokračovat. Je-li zapnut pokračovací mód, bude nástroj Bezierova křivka po ukončení nebo uzavření křivky restartován a můžete hned kreslit další bez klikání na tlačítko pro Bezierovu křivku.
- Stiskněte při kreslení tlačítko CTRL chcete-li přichytit Váš bod k nejbližšímu uchopovacímu místu, nezávisle na tom jak je daleko.
- Stiskněte při kreslení tlačítko SHIFT pro nastavení vazby dalšího bodu svisle nebo vodorovně v relaci k poslednímu bodu.
- Stiskněte klávesu W nebo tlačítko Smazat pro smazání existujících segmentů a spuštění křivky od posledního bodu.
- Stiskněte klávesy CTRL+Z nebo tlačítko Undo pro vrácení k předchozímu bodu.
- Stiskněte klávesu ESC nebo tlačítko Zrušit k ukončení aktuálního příkazu pro Bezierovu křivku.
Vlastnosti
Data
- ÚdajeDegree: specifies the degree of the Bezier curve or the individual segments.
- ÚdajeClosed: specifies if the curve is closed or not. If the curve is initially open, this value is
false
; setting it totrue
will draw a segment to close the curve. If the curve is initially closed, this value istrue
; setting it tofalse
will remove the last segment, and make the curve open. - ÚdajeMake Face: specifies if the curve makes a face or not. If it is
true
a face is created, otherwise only the perimeter is considered part of the object. This property only works if ÚdajeClosed istrue
.
- Note: do not set ÚdajeMake Face to
true
if the curve intersects itself, as it won't create a proper face.
- ÚdajeContinuity: (read-only) when the curve is closed, indicates the continuity of the curve
[0]
, or[0,0]
. Otherwise it's[]
.
View
- PohledArrow Size: specifies the size of the symbol displayed at the end of the curve.
- PohledArrow Type: specifies the type of symbol displayed at the end of the curve, which can be dot, circle, arrow, and tick.
- PohledEnd Arrow: specifies whether to show a symbol at the last point of the curve, so it can be used as an annotation line.
- PohledPattern: specifies a Draft Pattern with which to fill the face of the closed curve. This property only works if ÚdajeMake Face is
true
, and if PohledDisplay Mode is "Flat Lines". - PohledPattern Size: specifies the size of the Draft Pattern.
Skriptování
Nástroj Bezierova křivka může být využit v makrech a z konzoly Pythonu použitím následující funkce:
BezCurve = makeBezCurve(pointslist, closed=False, placement=None, face=None, support=None, degree=None)
BezCurve = makeBezCurve(Part.Wire, closed=False, placement=None, face=None, support=None, degree=None)
- Vytvoří objekt Bezierovy křivky podle zadaného seznamu vektorů. Místo seznamu bodů můžete také vložit díl Drát.
Example:
import FreeCAD, Draft
p1 = FreeCAD.Vector(0, 0, 0)
p2 = FreeCAD.Vector(1000, 1000, 0)
p3 = FreeCAD.Vector(2000, 0, 0)
p4 = FreeCAD.Vector(1500, -2000, 0)
BezCurve1 = Draft.makeBezCurve([p1, p2, p3, p4], closed=True)
BezCurve2 = Draft.makeBezCurve([p4, 1.3*p2, p1, 4.1*p3], closed=True)
BezCurve3 = Draft.makeBezCurve([1.7*p3, 1.5*p4, 2.1*p2, p1], closed=True)
- Drafting: Line, Polyline, Fillet, Arc, Arc by 3 points, Circle, Ellipse, Rectangle, Polygon, B-spline, Cubic Bézier curve, Bézier curve, Point, Facebinder, ShapeString, Hatch
- Annotation: Text, Dimension, Label, Annotation styles, Annotation scale
- Modification: Move, Rotate, Scale, Mirror, Offset, Trimex, Stretch, Clone, Array, Polar array, Circular array, Path array, Path link array, Point array, Point link array, Edit, Subelement highlight, Join, Split, Upgrade, Downgrade, Wire to B-spline, Draft to sketch, Set slope, Flip dimension, Shape 2D view
- Draft Tray: Select plane, Set style, Toggle construction mode, AutoGroup
- Snapping: Snap lock, Snap endpoint, Snap midpoint, Snap center, Snap angle, Snap intersection, Snap perpendicular, Snap extension, Snap parallel, Snap special, Snap near, Snap ortho, Snap grid, Snap working plane, Snap dimensions, Toggle grid
- Miscellaneous: Apply current style, Layer, Manage layers, Add a new named group, Move to group, Select group, Add to construction group, Toggle normal/wireframe display, Create working plane proxy, Heal, Show snap toolbar
- Additional: Constraining, Pattern, Preferences, Import Export Preferences, DXF/DWG, SVG, OCA, DAT
- Context menu:
- Layer container: Merge layer duplicates, Add new layer
- Layer: Activate this layer, Select layer contents
- Text: Open hyperlinks
- Wire: Flatten
- Working plane proxy: Write camera position, Write objects state
- Getting started
- Installation: Download, Windows, Linux, Mac, Additional components, Docker, AppImage, Ubuntu Snap
- Basics: About FreeCAD, Interface, Mouse navigation, Selection methods, Object name, Preferences, Workbenches, Document structure, Properties, Help FreeCAD, Donate
- Help: Tutorials, Video tutorials
- Workbenches: Std Base, Arch, Assembly, CAM, Draft, FEM, Inspection, Mesh, OpenSCAD, Part, PartDesign, Points, Reverse Engineering, Robot, Sketcher, Spreadsheet, Start, Surface, TechDraw, Test Framework, Web
- Hubs: User hub, Power users hub, Developer hub