<td>
[[Image:06b_ellipsoid_tn_new.png|thumb|left|550px|An ellipsoid with a nonzero end angle.]]
</td>
</tr>
</table>
Â
== Fractal Tree Tool ==
Â
ICON: [[File:fractal_tool_tn.png]]
Â
MENU: '''Object → Special → Fractal Tree'''
Â
TO DRAW A FRACTAL TREE:
Â
# Activate the '''Fractal Tree Tool'''.
# Left-click to establish the location of the fractal tree. A default horizontal fractal tree appears in the project workspace.
# The fractal dialog opens up on the lower right corner of the screen. You have two options: fractal tree with linear or cylindrical branches. You can also set the number of fractal levels.
# Make sure to click the <b>OK</b> button of the dialog to complete the fractal construction.
Â
NOTES, SPECIAL CASES OR EXCEPTIONS: The parameter '''Gen. Factor''' determines how many new next-level branches are generated at the end of each branch. '''Separation Angle''' sets the angle between each pair of branches at each node. The '''Prune Factor''' determines what percentage of branches are removed randomly at each node. With a default zero prune factor, all the branches are kept. The parameter '''Thickness''' represents the diameter of the main branch in the case of a cylinder key object. The parameter '''Thickness Factor''' determines the tapering of each cylindrical branch from its start point to the end point. A zero thickness factor means no branch tapering.
Â
You can change the coordinates of the LCS of a fractal tree or its rotation angle. From the fractal dialog, you can also access the properties of the key object by clicking the {{key|Edit Primitive...}} button of this dialog.
Â
{{Note|Fractal tree operations are usually very time consuming especially when the key object type is a cylinder. Please be patient while [[EM.Cube]] is running fractal tree creation or edit operations.}}
Â
Â
PYTHON COMMAND: fractal_tree(label,x0,y0,z0,key_type,key_size,n_level,sep_angle,n_gen,prune_factor,thickness,thick_factor)
Â
Â
FRACTAL TREE PARAMETERS
{| class="wikitable"
|-
! scope="col"| Parameter Name
! scope="col"| Value Type
! scope="col"| Units
! scope="col"| Default Value
! scope="col"| Notes
|-
! scope="row" | LCS_X
| real numeric
| project units
| -
| X-coordinates of base
|-
! scope="row" | LCS_Y
| real numeric
| project units
| -
| Y-coordinates of base
|-
! scope="row" | LCS_Z
| real numeric
| project units
| -
| Z-coordinates of base
|-
! scope="row" | rot_X
| real numeric
| degrees
| -
| local rotation about X-axis
|-
! scope="row" | rot_Y
| real numeric
| degrees
| -
| local rotation about Y-axis
|-
! scope="row" | rot_Z
| real numeric
| degrees
| -
| local rotation about Z-axis
|-
! scope="row" | key_object_type
| Line or Cylinder
| -
| Line
| -
|-
! scope="row" | level_count
| integer numeric
| -
| 3
| number of fractal levels
|-
! scope="row" | separation_angle
| real numeric
| degrees
| 30
| angle between two adjacent branches
|-
! scope="row" | generation_factor
| integer numeric
| -
| 3
| Number of new branches generated at each node
|-
! scope="row" | prune_factor
| real numeric
| -
| 0
| A number between 0 and 1 representing the percentage of branches randomly deleted
|-
! scope="row" | thickness
| real numeric
| project units
| 1
| diameter of branches
|-
! scope="row" | thickness_factor
| real numeric
| -
| 0.2
| A number between 0 and 1 representing the percentage of tapering of each cylindrical branch upward
|}
Â
<table>
<tr>
<td>
[[Image:CAD MAN20.png|thumb|left|480px|The fractal tree dialog.]]
</td>
</tr>
</table>
<table>
<tr>
<td>
[[Image:CAD MAN21.png|thumb|left|550px|The geometry of a fractal tree with a line key object.]]
</td>
</tr>
</table>
<table>
<tr>
<td>
[[Image:CAD MAN22.png|thumb|left|550px|The geometry of a fractal tree with a cylinder key object.]]
</td>
</tr>
</table>
Â
== Helix Tool ==
Â
ICON: [[File:helix_tool_tn.png]]
Â
MENU: '''Object → Curve → Helix'''
Â
TO DRAW A HELIX:
Â
# Activate the '''Helix Tool'''.
# Left-click to establish the origin of the inner-radius.
# Drag away from the origin to expand the inner radius, (toward it to contract the inner radius).
# Left-click a second time to set the inner radius and to establish the anchor point from which you will set the height of the helix.
# Drag your cursor "up" and away from the second anchor point to increase the height of the helix.
# Left-click a third time to complete the helix.
Â
NOTES, SPECIAL CASES OR EXCEPTIONS: You can define a helix curve with different values for '''Inner Radius''' and '''Outer Radius''', which make the curve expanding or shrinking. The '''Height''' parameter establishes the elevation of the end point of the helix with respect to start point.
Â
Â
PYTHON COMMAND: helix(label,x0,y0,z0,radius_inner,radius_outer,height,nturns,helix_dir)
Â
Â
HELIX PARAMETERS
{| class="wikitable"
|-
! scope="col"| Parameter Name
! scope="col"| Value Type
! scope="col"| Units
! scope="col"| Default Value
! scope="col"| Notes
|-
! scope="row" | LCS_X
| real numeric
| project units
| -
| X-coordinates of base
|-
! scope="row" | LCS_Y
| real numeric
| project units
| -
| Y-coordinates of base
|-
! scope="row" | LCS_Z
| real numeric
| project units
| -
| Z-coordinates of base
|-
! scope="row" | rot_X
| real numeric
| degrees
| -
| local rotation about X-axis
|-
! scope="row" | rot_Y
| real numeric
| degrees
| -
| local rotation about Y-axis
|-
! scope="row" | rot_Z
| real numeric
| degrees
| -
| local rotation about Z-axis
|-
! scope="row" | inner_radius
| real numeric
| project units
| same as outer radius
| -
|-
! scope="row" | outer_radius
| real numeric
| project units
| -
| -
|-
! scope="row" | height
| real numeric
| project units
| -
| -
|-
! scope="row" | turns
| integer numeric
| project units
| 2
| number of spiral turns
|-
! scope="row" | ccw
| Boolean
| -
| TRUE
| if TRUE, creates counterclockwise right-handedness
|}
Â
<table>
<tr>
<td>
[[Image:cad_curve7.png|thumb|left|480px|The property dialog of the helix curve object.]]
</td>
</tr>
</table>
<table>
<tr>
<td>
[[Image:resize_helix_new.png|thumb|left|550px|The geometry of the helix curve object.]]
</td>
</tr>
</table>
<table>
<tr>
<td>
[[Image:26_helix_tn_new.png|thumb|left|550px|The local coordinate system (LCS) of the helix curve object.]]
</td>
</tr>
</table>
Â
== Hyperbola Tool ==
Â
ICON: [[File:hyperbola_tool_tn.png]]
Â
MENU: '''Object → Curve → Hyperbola'''
Â
TO DRAW A HYPERBOLA:
Â
# Activate the '''Hyperbola Tool'''.
# Left-click to define the X-radius origin. Construction guides will appear to aid in the drawing process.
# Drag the mouse away from the origin to establish the desired X-radius. Left-click a second time.
# To establish the Y-radius and the hyperbola's leg length, drag the mouse to the desired location and left-click to complete the Hyperbola.
Â
NOTES, SPECIAL CASES OR EXCEPTIONS: Checking the box labeled '''Neg. Branch''' creates the opposite branch of the hyperbola curve. Checking the box labeled '''Create Half''' bisects the hyperbola and removes its bottom half. You can revolve the resulting curve to create a hyperboloid.
Â
Â
PYTHON COMMAND: hyperbola(label,x0,y0,z0,diam_x,diam_y,axial_length,half_only)
Â
Â
HYPERBOLA PARAMETERS
{| class="wikitable"
|-
! scope="col"| Parameter Name
! scope="col"| Value Type
! scope="col"| Units
! scope="col"| Default Value
! scope="col"| Notes
|-
! scope="row" | LCS_X
| real numeric
| project units
| -
| X-coordinates of base
|-
! scope="row" | LCS_Y
| real numeric
| project units
| -
| Y-coordinates of base
|-
! scope="row" | LCS_Z
| real numeric
| project units
| -
| Z-coordinates of base
|-
! scope="row" | rot_X
| real numeric
| degrees
| -
| local rotation about X-axis
|-
! scope="row" | rot_Y
| real numeric
| degrees
| -
| local rotation about Y-axis
|-
! scope="row" | rot_Z
| real numeric
| degrees
| -
| local rotation about Z-axis
|-
! scope="row" | diameter_X
| real numeric
| project units
| -
| diameter along X-axis
|-
! scope="row" | diameter_Y
| real numeric
| project units
| -
| diameter along Y-axis
|-
! scope="row" | axial_length
| real numeric
| project units
| -
| -
|-
! scope="row" | create_half
| Boolean
| -
| FALSE
| if TRUE, draws one half of one branch only
|-
! scope="row" | negative_branch
| -
| FALSE
| if TRUE, draws the negative branch only
|}
Â
<table>
<tr>
<td>
[[Image:cad_curve5.png|thumb|left|480px|The property dialog of the hyperbola curve object.]]
</td>
</tr>
</table>
<table>
<tr>
<td>
[[Image:24a_hyperbola_tn_new.png|thumb|left|550px|The geometry of the hyperbola curve object.]]
</td>
</tr>
</table>
<table>
<tr>
<td>
[[Image:24b_hyperbola_tn_new.png|thumb|left|550px|Drawing a half-hyperbola or the negative branch of the hyperbola.]]
</td>
</tr>
</table>
Â
== Line Tool ==
Â
ICON: [[File:line_tool_tn.png]]
Â
MENU: '''Object → Curve → Line'''
Â
TO DRAW A LINE:
Â
# Activate the '''Line Tool'''.
# left click anywhere on the workplane to begin drawing the line.
# left-click a second time to complete the line.
Â
NOTES, SPECIAL CASES OR EXCEPTIONS: When the check box '''Lock Center''' is checked, changing the line's length expands or shrinks it equally from both ends. To create a line perpendicular to the current work plane, hold down the {{key|Alt}} key while dragging the mouse to establish the line's end point.
Â
Â
PYTHON COMMAND: line(label,x0,y0,z0,len[,dir])
Â
Â
LINE PARAMETERS
{| class="wikitable"
|-
! scope="col"| Parameter Name
! scope="col"| Value Type
! scope="col"| Units
! scope="col"| Default Value
! scope="col"| Notes
|-
! scope="row" | LCS_X
| real numeric
| project units
| -
| X-coordinates of base
|-
! scope="row" | LCS_Y
| real numeric
| project units
| -
| Y-coordinates of base
|-
! scope="row" | LCS_Z
| real numeric
| project units
| -
| Z-coordinates of base
|-
! scope="row" | rot_X
| real numeric
| degrees
| -
| local rotation about X-axis
|-
! scope="row" | rot_Y
| real numeric
| degrees
| -
| local rotation about Y-axis
|-
! scope="row" | rot_Z
| real numeric
| degrees
| -
| local rotation about Z-axis
|-
! scope="row" | length
| real numeric
| project units
| -
| -
|-
! scope="row" | fix_center
| Boolean
| -
| FALSE
| fixes midpoint coordinates
|}
Â
<table>
<tr>
<td>
[[Image:cad_curve1.png|thumb|left|480px|The property dialog of the line object.]]
</td>
</tr>
</table>
<table>
<tr>
<td>
[[Image:vert_line_new.png|thumb|left|550px|Drawing a vertical line object: Left click anywhere on the workplane to begin drawing the line; while still in âDraw Modeâ, press and hold down the {{key | Alt}} button of the keyboard.]]
</td>
</tr>
<tr>
<td>
[[Image:18_Line_tn_new.png|thumb|left|550px|Drawing a horizontal line object.]]
</td>
</tr>
<td>
[[Image:Cad surf12 new.png|thumb|left|550px|The default 2D sinusoidal surface created by the surface generator.]]
</td>
</tr>
</table>
Â
== Line Tool ==
Â
ICON: [[File:line_tool_tn.png]]
Â
MENU: '''Object → Curve → Line'''
Â
TO DRAW A LINE:
Â
# Activate the '''Line Tool'''.
# left click anywhere on the workplane to begin drawing the line.
# left-click a second time to complete the line.
Â
NOTES, SPECIAL CASES OR EXCEPTIONS: When the check box '''Lock Center''' is checked, changing the line's length expands or shrinks it equally from both ends. To create a line perpendicular to the current work plane, hold down the {{key|Alt}} key while dragging the mouse to establish the line's end point.
Â
Â
PYTHON COMMAND: line(label,x0,y0,z0,len[,dir])
Â
Â
LINE PARAMETERS
{| class="wikitable"
|-
! scope="col"| Parameter Name
! scope="col"| Value Type
! scope="col"| Units
! scope="col"| Default Value
! scope="col"| Notes
|-
! scope="row" | LCS_X
| real numeric
| project units
| -
| X-coordinates of base
|-
! scope="row" | LCS_Y
| real numeric
| project units
| -
| Y-coordinates of base
|-
! scope="row" | LCS_Z
| real numeric
| project units
| -
| Z-coordinates of base
|-
! scope="row" | rot_X
| real numeric
| degrees
| -
| local rotation about X-axis
|-
! scope="row" | rot_Y
| real numeric
| degrees
| -
| local rotation about Y-axis
|-
! scope="row" | rot_Z
| real numeric
| degrees
| -
| local rotation about Z-axis
|-
! scope="row" | length
| real numeric
| project units
| -
| -
|-
! scope="row" | fix_center
| Boolean
| -
| FALSE
| fixes midpoint coordinates
|}
Â
<table>
<tr>
<td>
[[Image:cad_curve1.png|thumb|left|480px|The property dialog of the line object.]]
</td>
</tr>
</table>
<table>
<tr>
<td>
[[Image:vert_line_new.png|thumb|left|550px|Drawing a vertical line object: Left click anywhere on the workplane to begin drawing the line; while still in âDraw Modeâ, press and hold down the {{key | Alt}} button of the keyboard.]]
</td>
</tr>
<tr>
<td>
[[Image:18_Line_tn_new.png|thumb|left|550px|Drawing a horizontal line object.]]
</td>
</tr>
<td>
[[Image:23_parabola_tn_new.png|thumb|left|550px|Drawing a half-parabola.]]
</td>
</tr>
</table>
Â
== Hyperbola Tool ==
Â
ICON: [[File:hyperbola_tool_tn.png]]
Â
MENU: '''Object → Curve → Hyperbola'''
Â
TO DRAW A HYPERBOLA:
Â
# Activate the '''Hyperbola Tool'''.
# Left-click to define the X-radius origin. Construction guides will appear to aid in the drawing process.
# Drag the mouse away from the origin to establish the desired X-radius. Left-click a second time.
# To establish the Y-radius and the hyperbola's leg length, drag the mouse to the desired location and left-click to complete the Hyperbola.
Â
NOTES, SPECIAL CASES OR EXCEPTIONS: Checking the box labeled '''Neg. Branch''' creates the opposite branch of the hyperbola curve. Checking the box labeled '''Create Half''' bisects the hyperbola and removes its bottom half. You can revolve the resulting curve to create a hyperboloid.
Â
Â
PYTHON COMMAND: hyperbola(label,x0,y0,z0,diam_x,diam_y,axial_length,half_only)
Â
Â
HYPERBOLA PARAMETERS
{| class="wikitable"
|-
! scope="col"| Parameter Name
! scope="col"| Value Type
! scope="col"| Units
! scope="col"| Default Value
! scope="col"| Notes
|-
! scope="row" | LCS_X
| real numeric
| project units
| -
| X-coordinates of base
|-
! scope="row" | LCS_Y
| real numeric
| project units
| -
| Y-coordinates of base
|-
! scope="row" | LCS_Z
| real numeric
| project units
| -
| Z-coordinates of base
|-
! scope="row" | rot_X
| real numeric
| degrees
| -
| local rotation about X-axis
|-
! scope="row" | rot_Y
| real numeric
| degrees
| -
| local rotation about Y-axis
|-
! scope="row" | rot_Z
| real numeric
| degrees
| -
| local rotation about Z-axis
|-
! scope="row" | diameter_X
| real numeric
| project units
| -
| diameter along X-axis
|-
! scope="row" | diameter_Y
| real numeric
| project units
| -
| diameter along Y-axis
|-
! scope="row" | axial_length
| real numeric
| project units
| -
| -
|-
! scope="row" | create_half
| Boolean
| -
| FALSE
| if TRUE, draws one half of one branch only
|-
! scope="row" | negative_branch
| -
| FALSE
| if TRUE, draws the negative branch only
|}
Â
<table>
<tr>
<td>
[[Image:cad_curve5.png|thumb|left|480px|The property dialog of the hyperbola curve object.]]
</td>
</tr>
</table>
<table>
<tr>
<td>
[[Image:24a_hyperbola_tn_new.png|thumb|left|550px|The geometry of the hyperbola curve object.]]
</td>
</tr>
</table>
<table>
<tr>
<td>
[[Image:24b_hyperbola_tn_new.png|thumb|left|550px|Drawing a half-hyperbola or the negative branch of the hyperbola.]]
</td>
</tr>
<td>
[[Image:resize_sprial_new.png|thumb|left|550px|The geometry of the spiral curve object.]]
</td>
</tr>
</table>
Â
== Helix Tool ==
Â
ICON: [[File:helix_tool_tn.png]]
Â
MENU: '''Object → Curve → Helix'''
Â
TO DRAW A HELIX:
Â
# Activate the '''Helix Tool'''.
# Left-click to establish the origin of the inner-radius.
# Drag away from the origin to expand the inner radius, (toward it to contract the inner radius).
# Left-click a second time to set the inner radius and to establish the anchor point from which you will set the height of the helix.
# Drag your cursor "up" and away from the second anchor point to increase the height of the helix.
# Left-click a third time to complete the helix.
Â
NOTES, SPECIAL CASES OR EXCEPTIONS: You can define a helix curve with different values for '''Inner Radius''' and '''Outer Radius''', which make the curve expanding or shrinking. The '''Height''' parameter establishes the elevation of the end point of the helix with respect to start point.
Â
Â
PYTHON COMMAND: helix(label,x0,y0,z0,radius_inner,radius_outer,height,nturns,helix_dir)
Â
Â
HELIX PARAMETERS
{| class="wikitable"
|-
! scope="col"| Parameter Name
! scope="col"| Value Type
! scope="col"| Units
! scope="col"| Default Value
! scope="col"| Notes
|-
! scope="row" | LCS_X
| real numeric
| project units
| -
| X-coordinates of base
|-
! scope="row" | LCS_Y
| real numeric
| project units
| -
| Y-coordinates of base
|-
! scope="row" | LCS_Z
| real numeric
| project units
| -
| Z-coordinates of base
|-
! scope="row" | rot_X
| real numeric
| degrees
| -
| local rotation about X-axis
|-
! scope="row" | rot_Y
| real numeric
| degrees
| -
| local rotation about Y-axis
|-
! scope="row" | rot_Z
| real numeric
| degrees
| -
| local rotation about Z-axis
|-
! scope="row" | inner_radius
| real numeric
| project units
| same as outer radius
| -
|-
! scope="row" | outer_radius
| real numeric
| project units
| -
| -
|-
! scope="row" | height
| real numeric
| project units
| -
| -
|-
! scope="row" | turns
| integer numeric
| project units
| 2
| number of spiral turns
|-
! scope="row" | ccw
| Boolean
| -
| TRUE
| if TRUE, creates counterclockwise right-handedness
|}
Â
<table>
<tr>
<td>
[[Image:cad_curve7.png|thumb|left|480px|The property dialog of the helix curve object.]]
</td>
</tr>
</table>
<table>
<tr>
<td>
[[Image:resize_helix_new.png|thumb|left|550px|The geometry of the helix curve object.]]
</td>
</tr>
</table>
<table>
<tr>
<td>
[[Image:26_helix_tn_new.png|thumb|left|550px|The local coordinate system (LCS) of the helix curve object.]]
</td>
</tr>
[[File:point_new.png]]
Â
== Fractal Tree Tool ==
Â
ICON: [[File:fractal_tool_tn.png]]
Â
MENU: '''Object → Special → Fractal Tree'''
Â
TO DRAW A FRACTAL TREE:
Â
# Activate the '''Fractal Tree Tool'''.
# Left-click to establish the location of the fractal tree. A default horizontal fractal tree appears in the project workspace.
# The fractal dialog opens up on the lower right corner of the screen. You have two options: fractal tree with linear or cylindrical branches. You can also set the number of fractal levels.
# Make sure to click the <b>OK</b> button of the dialog to complete the fractal construction.
Â
NOTES, SPECIAL CASES OR EXCEPTIONS: The parameter '''Gen. Factor''' determines how many new next-level branches are generated at the end of each branch. '''Separation Angle''' sets the angle between each pair of branches at each node. The '''Prune Factor''' determines what percentage of branches are removed randomly at each node. With a default zero prune factor, all the branches are kept. The parameter '''Thickness''' represents the diameter of the main branch in the case of a cylinder key object. The parameter '''Thickness Factor''' determines the tapering of each cylindrical branch from its start point to the end point. A zero thickness factor means no branch tapering.
Â
You can change the coordinates of the LCS of a fractal tree or its rotation angle. From the fractal dialog, you can also access the properties of the key object by clicking the {{key|Edit Primitive...}} button of this dialog.
Â
{{Note|Fractal tree operations are usually very time consuming especially when the key object type is a cylinder. Please be patient while [[EM.Cube]] is running fractal tree creation or edit operations.}}
Â
Â
PYTHON COMMAND: fractal_tree(label,x0,y0,z0,key_type,key_size,n_level,sep_angle,n_gen,prune_factor,thickness,thick_factor)
Â
Â
FRACTAL TREE PARAMETERS
{| class="wikitable"
|-
! scope="col"| Parameter Name
! scope="col"| Value Type
! scope="col"| Units
! scope="col"| Default Value
! scope="col"| Notes
|-
! scope="row" | LCS_X
| real numeric
| project units
| -
| X-coordinates of base
|-
! scope="row" | LCS_Y
| real numeric
| project units
| -
| Y-coordinates of base
|-
! scope="row" | LCS_Z
| real numeric
| project units
| -
| Z-coordinates of base
|-
! scope="row" | rot_X
| real numeric
| degrees
| -
| local rotation about X-axis
|-
! scope="row" | rot_Y
| real numeric
| degrees
| -
| local rotation about Y-axis
|-
! scope="row" | rot_Z
| real numeric
| degrees
| -
| local rotation about Z-axis
|-
! scope="row" | key_object_type
| Line or Cylinder
| -
| Line
| -
|-
! scope="row" | level_count
| integer numeric
| -
| 3
| number of fractal levels
|-
! scope="row" | separation_angle
| real numeric
| degrees
| 30
| angle between two adjacent branches
|-
! scope="row" | generation_factor
| integer numeric
| -
| 3
| Number of new branches generated at each node
|-
! scope="row" | prune_factor
| real numeric
| -
| 0
| A number between 0 and 1 representing the percentage of branches randomly deleted
|-
! scope="row" | thickness
| real numeric
| project units
| 1
| diameter of branches
|-
! scope="row" | thickness_factor
| real numeric
| -
| 0.2
| A number between 0 and 1 representing the percentage of tapering of each cylindrical branch upward
|}
Â
<table>
<tr>
<td>
[[Image:CAD MAN20.png|thumb|left|480px|The fractal tree dialog.]]
</td>
</tr>
</table>
<table>
<tr>
<td>
[[Image:CAD MAN21.png|thumb|left|550px|The geometry of a fractal tree with a line key object.]]
</td>
</tr>
</table>
<table>
<tr>
<td>
[[Image:CAD MAN22.png|thumb|left|550px|The geometry of a fractal tree with a cylinder key object.]]
</td>
</tr>
</table>
<br />