Bulk conveyor belt

Bulk Conveyor Belt is the animation shape for a bulk conveyor defined logically with Fluid Library block BulkConveyorBulkConveyor block defines the logical parameters of the bulk conveyor (its length, speed, maximum input rate at the specified speed, color of batches flowing through the conveyor, etc.). 

Bulk conveyor belt in the graphical editor

Bulk conveyor belt is displayed both in 2D and 3D animation (to see the bulk conveyor belt in 3D, add 3D window in your model).


Bulk conveyor belt at model runtime, in 3D animation

The bulk conveyor belt has start point and end point, and therefore has direction. The bulk matter will always flow from the conveyor's start point to its end point. 

Demo model: BulkConveyor

 To draw a bulk conveyor belt

  1. Double-click the  Bulk Conveyor Belt element in the Space Markup section of the  Fluid Library palette. The icon of the element should turn into . It means that the drawing mode is activated and now you can draw a conveyor in the graphical editor point by point.
  2. Click in the graphical editor to draw the first point of the conveyor. Please mind that the bulk matter will always flow from the conveyor's start point to its end point, so put the first point at the bulk matter source.
  3. Draw the belt shape according to the bulk conveyor's topology. Conveyor belt shape may have any number of segments, linear and/or curved. 
  4. To add a linear segment, put the conveyor's next turning point with a single mouse click. 
  5. To draw a curved segment, press the left mouse button at the next conveyor's turning point, do not release the button and move the mouse until you get the segment of the required shape.
  6. Finally put the final point of the bulk conveyor belt with the double-click at the bulk matter receiver point.
  7. Having finished drawing the bulk conveyor belt, customize its appearance. In the Properties view, set the bulk conveyor belt's Color and Width (in pixels).
  8. Set this conveyor belt as the animation shape for the BulkConveyor flowchart block. Open the Animation section of the BulkConveyor properties, and select the name of this conveyor belt in the Bulk conveyor belt control.
You can modify the drawn bulk conveyor belt: add new points, remove existing turning points. Pipe points can be added or removed by double-clicking anywhere on the bulk conveyor belt. If you double-click the end point of the first or last segment, this segment will be deleted. 

Properties

General

Name - The name of the bulk conveyor belt. The name is used to refer to the bulk conveyor belt from the BulkConveyor block properties.

Ignore - If selected, the bulk conveyor belt is excluded from the model.

Visible on upper level - If selected, the bulk conveyor belt is also visible on the upper level where this agent lives.

Lock - If selected, the conveyor shape is locked. Locked shapes do not react to mouse clicks - it is impossible to select them in the graphical editor until you unlock them. 

Visible - Here you specify whether the shape is visible on animation at model runtime, or not. Using the control, choose yes or no.

Color - Here you can set the conveyor color.

Width - Here you can set the conveyor width, in pixels.

Draw stands - If selected, the stands of bulk conveyor belt will be drawn in 3D mode. Stands are drawn to the bulk conveyor belt from the ground level or from Z level.

... from Z level - [Visible and applies only if the Draw stands property is selected] Defines the Z level from which the stands will be drawn, where 0 is the ground level.

Position and size

X - X-coordinate of the bulk conveyor belt's start point.

Y - Y-coordinate of the bulk conveyor belt's start point.

Z - [Enabled if the shape is visible in 3D (advanced property Show in is set to 2D and 3D or 3D only)] Z-coordinate of the bulk conveyor belt's start point. 

Points

The table located in the Points properties section enables users to view and adjust coordinates of the bulk conveyor belt turning points. It is the place where you can adjust the Z coordinates for some bulk conveyor belt points.

Here you define relative coordinates, not the absolute ones. The first point always has coordinates (0, 0, 0) that can not be changed.
Other rows of the table define relative coordinates of the successive points. Coordinates of each point are actually offsets of the corresponding point from the start point along X, Y (and optionally Z) axes correspondingly.

Advanced

Show in - Here you can choose whether you want the bulk conveyor belt to be shown both in 2D and 3D animation, or in 2D only, or in 3D only.

Show name - If selected, the bulk conveyor belt's name is displayed on the graphical diagram.

Bulk conveyor belt direction

The bulk conveyor belt has direction. The bulk matter will always flow from the conveyor's start point to its end point. So it is important when you draw a bulk conveyor belt, where you put the conveyor's start point. However, you can always change the conveyor direction (see below).

 To know the direction of the bulk conveyor belt

  1. Select the bulk conveyor belt in the graphical editor with a mouse click.
  2. The start point will be highlighted with blue, and the conveyor's direction will be indicated with arrows.

 To change the direction of the bulk conveyor belt

  1. Right-click the bulk conveyor belt in the graphical editor and choose Change Direction from the context menu. You will see that the arrows changed their directions. 

Modifying the drawn bulk conveyor belt

To continue drawing an existing bulk conveyor belt by adding more segments

  1. Right-click the bulk conveyor belt in the graphical editor and select Append Line from the context menu.
  2. You can append a line to any end point of the conveyor. Click one of two conveyor's end points where you want to append more segments.
  3. Now you can continue drawing the conveyor: add linear segments with single mouse clicks, or curved segments by pressing the left mouse button and moving the mouse with the button being pressed until you get the segment of the required curving radius. 
  4. Finish drawing by putting the end point with the double-click.

To add a turning point

  1. Double-click the conveyor's segment where you want to add a new turning point.
  2. You will see the new point created. Now you can move the point by dragging and finally create the conveyor of the required form.

To remove a turning point

  1. In the graphical editor, double-click the bulk conveyor belt's turning point. The point will disappear. If you double-click the end point of the conveyor, the last segment on this edge will be deleted as well.

To change a curved segment into linear

  1. Click a bulk conveyor belt in the graphical editor to select it.
  2. Press Ctrl button on your keyboard and hold it pressed. At the same time drag an end point of the curved segment.
  3. Release the buttons when the segment has the required shape.

To change a linear segment into curved

  1. Right-click the bulk conveyor belt and select Edit Using Guiding Lines from the context menu. The guiding lines will appear for editing points. 
  2. Drag an editing line point around without releasing the left mouse button until you get the segment of the required form.
  3. Finally, right-click the bulk conveyor belt and deselect Edit Using Guiding Lines from the context menu to switch off this editing mode and hide guiding lines.

You may want to split a bulk conveyor belt into several bulk conveyor belts.

To split one bulk conveyor belt into two conveyors

  1. Right-click the bulk conveyor belt in the graphical editor and select the option Split into Two Shapes from the context menu. 
  2. You will see that the bulk conveyor belt's turning points are highlighted. Click the point where you want to split the bulk conveyor belt. The bulk conveyor belt will be split into two separate bulk conveyor belts. 

Functions

You can dynamically modify shape properties at model runtime using the following API.
Dimensions

Function

Description

double getLineWidth()

Returns the width of the bulk conveyor belt (in pixels).

double length()

Returns the length of the bulk conveyor belt (in pixels).

double length(LengthUnits units)

Returns the length of the bulk conveyor belt in the specified length measurement units.

Parameter: 
units - a constant defining the length units.

void setLineWidth(double width)

Sets the width of the bulk conveyor belt.

Parameter: width - the new width of the bulk conveyor (in pixels).


Stands

Function

Description

double getStandsLevel()

Returns the base Z-level where the bulk conveyor stands will be drawn from.

void setStandsLevel(double standsLevel)

Sets the base Z-level to draw conveyor stands from. If the conveyor has sloped areas, it will be drawn with stands of different height - starting from the same base level.

Parameter:
standsLevel - the base Z-level.

boolean isDrawStands()

Returns true, if the bulk conveyor is drawn with stands. Otherwise, returns false.

void setDrawStands(boolean drawStands)

Enables drawing the bulk conveyor with stands in 3D mode.

Parameter:
drawStands - drawing of the stands. If drawStands is true, the stands of the bulk conveyor will be drawn. If drawStands is false, the stands will not be drawn.


Points

Function

Description

Point getStartPoint()

Returns the Point object with coordinates of the bulk conveyor's starting point.

Point getStartPoint(Point out)

Returns the Point object with coordinates of the bulk conveyor's starting point.

Parameter:
out - output object to write to, may be null.

Point getEndPoint()

Returns the Point object with coordinates of the bulk conveyor's ending point.

Point getEndPoint(Point out)

Returns the Point object with coordinates of the bulk conveyor's ending point.

Parameter:
out - output object to write to, may be null.

Position getStartPosition()

Returns the Position object with coordinates and orientation of the bulk conveyor's starting point.

Position getStartPosition(Position out)

Returns the Position object with coordinates and orientation of the bulk conveyor's starting point.

Parameter:
out - output object to write to, may be null.

Position getEndPosition()

Returns the Position object with coordinates and orientation of the bulk conveyor's ending point.

Position getEndPosition(Position out)

Returns the Position object with coordinates and orientation of the bulk conveyor's ending point.

Parameter:
out - output object to write to, may be null.

Point getPointAtOffset(double offset, Point out)

Returns the Point object with coordinates and orientation of the point that is located at the given offset distance (in pixels) from the bulk conveyor's starting point.

Parameters:
offset - offset, non-negative value, should be less or equal to the full length.
out - output object to write to, may be null.

Point getPointAtOffset(double offset,
LengthUnits units, Point out)

Returns the Point object with coordinates and orientation of the point that is located at the given offset distance from the bulk conveyor's starting point.

Parameters:
offset - offset, non-negative value, should be less or equal to the full length.
units - one of the chosen length units.
out - output object to write to, may be null.

Position getPositionAtOffset(double offset,
Position out)

Returns the Position object with coordinates and orientation of the point that is located at the given offset distance (in pixels) from the bulk conveyor's starting point.

Parameters:
offset - offset, non-negative value, should be less or equal to the full length.
out - output object to write to, may be null.

Position getPositionAtOffset(double offset,
LengthUnits units, Position out)

Returns the Position object with coordinates and orientation of the point that is located at the given offset distance from the bulk conveyor's starting point.

Parameters:
offset - offset, non-negative value, should be less or equal to the full length.
units - one of the chosen length units.
out - output object to write to, may be null.

boolean contains(double px, double py)

Returns true if the bulk conveyor contains the point with the given coordinates.

Parameters:
px - the X-coordinate of the point.
py - the Y-coordinate of the point.

boolean contains(double px, double py,
double distance)

Returns true if the bulk conveyor contains the point with the given coordinates using the given distance tolerance; returns false otherwise.

Parameters:
px - the X-coordinate of the point.
py - the Y-coordinate of the point.
distance - distance tolerance to determine whether the given point lies within the markup element line proximity.

boolean containsSq(double px, double py,
double squareDistance)

Returns true if the bulk conveyor contains the point with the given coordinates using the given square distance tolerance; returns false otherwise.

Parameters:
px - the X-coordinate of the point.
py - the Y-coordinate of the point.
squareDistance - the square of distance tolerance to determine whether the given point lies within the markup element line proximity.


Segments

Function

Description

int getSegmentCount()

Returns the number of the bulk conveyor's segments.

MarkupSegment getSegment(int index)

Returns the segment by the provided index.

Parameter:
index
- the segment index, starting from zero up until the number of segments -1.


Appearance

Function

Description

Color getColor()

Returns the color of the markup element, or null if markup element has no color or has textured (in this case use getTexture() to get the shape's texture).

void setColor(Color color)

Sets the color of the bulk conveyor shape.

Parameter:
color - the new color. If null is passed, the bulk conveyor shape is not drawn.

void setColor(Paint color)

Sets the color of the bulk conveyor shape.

Parameter:
color - the new color. If null is passed, the bulk conveyor shape is not drawn.

Texture getTexture()

Returns the texture of the bulk conveyor element if it has texture.


Visibility

Function

Description

boolean isVisible()

Returns true is the bulk conveyor shape is visible; returns false otherwise.

void setVisible(boolean v)

Sets the visibility of the bulk conveyor shape.

Parameter:
v - visibility. If v is true, the shape is set to be visible; if v is false, the shape is set to be invisible.


Removal

Function

Description

void remove()

Removes the bulk conveyor belt from the presentation. If this element is not a part of presentation, the function does nothing.
Note that removal from the presentation does not necessarily mean removing from the model logic, since logical networks and routes may have been created before the removal and survive it.



Related topics

 Fluid Library

 BulkConveyor