fbcadcam logo 1

Fbcadcam User's Guide

Home
Download
Install notes
Programmer's Guide Forum
History Credits

The user interface has 7 sections:
1. Menu Bar
2. Drawing Tools
3. Layer Controls
4. Drawing Area
5. Properties and Setting
6. Helpful Instructions
7. Event Information

When FbCadCam first starts up, by default the Draw Line and Snap to End point tools are selected and Layer 1 (white) is set active and visible.
If you were to position the mouse pointer in the Drawing Area and randomly click around several times, you should be able to see white lines being drawn.

FbCadCam user interface

Drawing Tools
fbcadcam_draw_entities
draw lines: 2 left mouse clicks are used to draw a line. 1st click defines where the line starts and 2nd click defines where the line ends. Additional lines may be drawn and their end points are defined by subsequent left mouse clicks. Press the ESC key or right mouse click to stop drawing lines.
draw circles: A circle can be drawn by defining its radius or diameter. 2 left mouse clicks are used to draw a circle. The 1st click difines the center point of the circle and the 2nd click defines its radius. By holding the shift key down, the 1st and 2nd clicks define its diameter.
draw arcs: Arcs take 4 left mouse clicks to create. Similar to drawing a circle the 1st and 2nd clicks define the arc's radius and the 3rd and 4th clicks define the arc start and arc end. Arcs are drawn counter clockwise.
draw ellipses: An ellipse has a major and minor radius. It takes 3 left mouse clicks to draw an ellipse. 1st click defines the center point. 2nd and 3rd clicks define the major and minor radii. Note: The 1st and 2nd clicks also define the rotation of the ellipse.
draw elliptical arcs: Same as drwaing an ellipse but with 2 extra left mouse clicks to define the arc start and arc end.
draw splines: A series of smoothly connected eliptical arcs which can create shapes such as that of an egg. 4 left mouse clicks start the spline. 5th, 6th and subsequent left mouse clicks continue the spline. Right mouse click ends the spline. Egg example: click around the 3 points of an isosceles triangle 6 times.
fbcadcam_draw_shapes
Draw Equilateral Triangles: 2 left mouse clicks are used to create equilater triangles. They are drawn by defining the length of one of the sides. 1st left mouse click  defines the start point of  its  base (ie. the bottome left side of the triangle). Moving the mouse to the right  and  clicking the left mouse button a 2nd time sets the length of its base.
Draw Right Triangles: 3 left mouse clicks are used to create right triangles. Similar to drawing an equilater triangle, the 1st and 2nd left mouse clickes define the right triangles base. After which, positioning the mouse above and away from the base will adjust its height. The 3rd left mouse click sets the right triangles height
Draw Squares: 2 left mouse clicks are used to draw a square and is achieved using the same process as that of drawing an equilateral triangle.
Draw Rectangles: 3 left mouse clicks are used to draw rectangles and the process is the same as drawing a right triangle.
Draw Rhombus: 3 left mouse clicks are used to draw a rhombus and the process is the same as drawing a rectangle.
Draw Parallelograms: 4 left mouse clicks are used to draw parallelograms. Similar to drawing a rectangle the first 3 clicks do the same thing and the 4th click sets the skew.
Draw Pentagons: 2 mouse clicks are used to draw pentagos and the process is similar to drawing an equilateral trangle.
Draw Hexagons: 2 left mouse clicks. Same as drawing pentagons.
Draw Heptagons: 2 left mouse clicks. Same as drawing pentagons.
Draw Octagons: 2 left mouse clicks. Same as drawing pentagons.
fbcadcam_snap_tools
snap to end point: Connect to the end points of other lines, circle and ellipse centers, and arc / elliptical arc end points.
snap to mid point: Connect to the mid point of a line or arc / elliptical arc
snap to perpendicular: Connect to the perpendicular point. While drawing a line from point A to point B where point B in intended to be perpendicular to another line.
snap to tangent: while drawing a line, you can snap to the tangent of a circle, arc, ellipse or elliptical arc
snap to center: snaps to the center of arcs, ellipses, and circles
Snap to Intersection: Connect to the intersecton point of lines, circles, arc, ellipses, and elliptical arcs.
Snap to Nearest Point: Snap to the nearest point of lines, circles, arc, ellipses, and elliptical arcs.
Snap to arcs intercept: While drawing an arc, snaps to the calculated intersection of that arc and a line if the arc would in fact intercept that line.
fbcadcam_ortho_angle_from
Ortho Mode: Enable ortho mode to draw entities or move selected objects orthogonally. Ortho Mode can be used in combination with Use Angle, Perpendicular From and Tangent From in which case the angle of the ortho mode is not necessarily traight straight up and dow but rather rotated by x degrees.
Use Angle: To draw entities or move selected objects at a specific angle, enable Use Angle. If one of the five preset angles are not selected you will be prompted for an angle to use. You can copy and paste the angles of existing objects in the drawing or manually enter desired angles to use.
Set user angles: 5 user angles are available to set.
User Preset angles: With USE ANGLE enabled AND 1 of the 5 User Preset angles enabled, lines are drawn or objects are moved at the specified preset angle.
Perpendicular From: Enable Perpendicular From to draw entities or move selected objects perpendicular from the selected line or normal of an ellipse or elliptical arc.
Tangent From: Enable Tangent From to draw entities or move selected objects tangent from the selected circle, arc, ellipse or elliptical arc.
fbcadcam_move_copy_rotate_flip
Note: all of these function require objects to be selected first. Select objects can be a single entity and / or block or grouped entities and / or blocks.
move: 2 left mouse clicks move selected objecs from point to point
copy: coppies selected group from point to point
rotate: rotates selected group at pivot point to angle. 2 mouse clicks are used. 1st click defines the pivot point and 2nd click sets the rotation angle.
copy-rotate: rotates a copy of selected group from pivot point to angle
flip vertical: flips selected group vertically at point
flip horizontal: flips selected group horizontally at point
copy flip vertical: flips a copy of selected group vertically from point to point
copy flip horizontal: coppies and flips selected group horizontally from point to point
flip v & h: flips selected group vertically & horizontally at point
copy flip v & h: coppies and flips selected group vertically & horizontally from point to point
fbcadcam zoom pan view
zoom in: It is easier to zoom in and out using the mouse scroll wheel. Zoom buttons are provide none the less.
zoom out: The difference between using these buttons and the mouse scroll wheel to zoom in and out is the point of zoom. The point of zoom when using the mouse scroll wheel is that of the mouse pointer. The point of zoom when using these buttons is the center of the screen.
pan: With pan turned on click and hold the left mouse button and move the mouse will move or pan the drawing. This could also be simply explained by saying panning is like dragging or moving the whole drawing area. Turn pan off to stop panning as this function over rides other functions like drawing lines and so forth.
view extents: To see or view the entire drawing.
save view: When working with large (elaborate) drawings, it is helpful to be able to navigate on various specific parts of the drawing. Save view allows you to saveeach zoomed in area of that view.
previous view: Similar to playing or editing a video and jumping and / or moving to various parts of the video, you can navigate to the previously saved view.
next view: Moves the view to the next saved view.
first view: Moves to the first saved view.
last view: Moves to the last saved view.
delete view: Deletes or removes a saved view.
Dimension
Dimension: Dimension of distance between two points
X Dimension: Dimension of distance on the X axis
Y Dimension: Dimension of distance on the Y axis
Radius Dimension: Dimension of radius for circles and arcs.
Diameter Dimension: Dimension of diameter for circles.
Angle Dimension: Dimension of an angle using the inside of the angle to show the amount of degrees of arc.
Dimension Properties: Dimension Precision - Enter the decimal precision for the dimensions value. For example entering 2 will force 1.234 to 1.23. Arrow Size - Set the size of the dimension arrows. Leader Offset - Set the leader offset.
Chamfer - Fillet
Chamfer: Creates a chamfer, a 50/50 beveled cut out between two lines. The depth of the chamfer is the distance from the initial corner of the two lines to the chamfer's end points. You can use preset chamfer distances by enablining one of the 5 presets or manually enter the chamfer distance each time.
Fillet: Creates a fillet (arc) between selected lines. Similar to the chamfer function, The distance of the fillet is the distance from the initial corner to the end point of the arc. You can use preset distances by enablining one of the 5 presets or manually enter the fillet distance each time.
Best curve fit: Creates a curve best fit. Select two lines first then fillet.
Free hand: chamfer/fillet: With Chamfer or Fillet enabled, two lines are chamfered / fillet at a length determined by tracking the mouse cursor relative to the two line's common point.
Set user chamfer/fillet lengths: Five user chamfer/fillet lengths are available to set.
use c/f length(1-5): With Chamfer or Fillet enabled AND 1 of the 5 user chamfer/fillet lengths enabled, two lines are chamfered / fillet at specified length.
Scale
Scale Poperties: Set Scale X & Y Factors to be used when scaling up or down. Default is 2.
Scale UP: Sellected objects increase in scale according to the Scale X & Y Factors.
Scale DOWN: Sellected objects decrease in scale according to the Scale X & Y Factors.

Scale with grab handles: Scale by moving 1 of the 8 grab handles encompasing the selected objects
Block
Create Block: Selected entities are saved as a BLOCK. Enter a name for the new block and check Enable Base Point to define the block's base point immediately afterwards: default base point is set to the bottom left corner of the block's bounding box.
Insert Block: Enter the name of a block to insert
Explode Block: Selected block(s) are changed from a block (or group) to individual entities (or objects).
Edit block: Edit the selected block
Grid
Grid: Truns the grid visibly on or off
Snap to Grid: Snap to grid even if it is visibly off
Grid Properties: Set the grids X & Y Spacing and Offsets
G-Code
G-code: Generates g-code for a path defined by selecting end points of objects
Move to: Generates g-code for pen up Z=1, move to point x,y then pen down Z=0
Move Up: Generates g-code for pen up Z=1
Move Down: Generates g-code for pen down Z=0
Misc
Move Point: Moves the end point of a line
Join Points not working yet: Joins or sets the endpoints of two lines to the same point
Trim: Trims objects - Select objects first, turn trim on and then click object(s) to trim
Extend - code pending: Extends objects - Select objects first, turn extend on  and then click object(s) to extend
Parallel
Parallel single: Creates lines and arcs parallel to objects - which side the paralles are create on is determined by positioning the mouse relative to the initial point of selection. If a Preset parralel offset is not enabled, you will be prompted to enter an offset distance.
Parallel dual: Creates lines and arcs parallel to objects on both sides at the same time. If a Preset parralel offset is not enabled, you will be prompted to enter an offset distance.
Set Parallel offsets: Set up to 3 preset parallel offset distances.
use parallel offsets(1-3): With this button enabled and either parallel single or dual enabled, parallels are offset at this specified preset distance.
Extend exterior parallel corners: Lines are extended in exterior corners when building parallel paths of a group
Chamfer parallel corners: Chamfers (bevels) are created in the corners when building parallel paths of a selected group of lines.
Fillet parallel corners: Arcs re created in the corners when building parallel paths of a selected group of lines.
Text
TexT: Insert text. Enter text to insert into the drawing. A basic font with upper case A-Z and 0-9 and a PERIOD are available. Default text size is used if one of the 5 text size presets are not enabled.
Text Size Presets: Enter up to 5 preset sizes for the text.
use text size(1-5):


Properties and Setting
properties mouse snap
x and y coordinates are displayed for the mouse pointer and snapped points.
properties lines
Line Properties: In this picture you can see that there are 4 lines drawn and that the 2nd line is selected. The details for that line are listed in the line properties section. Notice the scroll bar to the right is about half way down and that it says Line #2 at the top. By clicking on the scroll bar, you can move through the list of lines and while you do so, you can see that the individual line in the drawing is selected. Likewise, you can select lines in the drawing and the list will automatically scroll to and display it values.
properties circles
Line and Circles attributes can be manually changed by entering new values and clicking the (update) button below the list. When you manually change and update the entity, you can see the changes in the drawing.
settings filters
Detection filter setting: These filters are used to make the application run faster by avoiding detction of the individual entities in each block.
Turn Use filters ON / OFF to enable / disable the filters below.
Filter out all blocks will apply to all blocks (text or otherwise)
Filter out text blocks will apply to just text blocks.




Menu Bar
fbcadcam tool bar
From left to right:
New: Starts a new drawing. All drawing info and settings are restored to default..
Open: Use the open dialog window to find and open existing DXF files.
Save and Save As: Use the save or save as dialog window to save your drawing in DXF format.
Delete, Cut, Copy, Paste: Applies to selected objects in the drawing. At the moment only Delete is working.
Undo, Redo: Not working yet.
Zoom in, Zoom out, Zoom extents, Zoom default: Adjusts the view to display more or less of the drawing area.
Macro: Opens the macro editor window.
Help: Directs you to this web site Online help page.

Using the Macro Editor and writing / running custom scripts.

FbCadCam Macro editor:
fbcadcam screen shot macro editor
This is a basic text editor with no formating. or syntax error checking.  I recommend using FbEdit or FbIde to prepare your large scripts. For short scripts this editor does the trick. If you are using an external editor, simply copy and paste your scripts into this editor and click RUN.

Buttons:
NEW - Start a new script.
OPEN -  Open script. (script_name.bas)
SAVE - Save script. (your_script_name.bas) Scripts are saved as text files and you can save them with or without a file extension name ie. bas or txt. Freebasic souce code files use the extension bas which is recommended but not necessary.
RUN - The script is not compiled and ran. It is interpreted and ran. No error detection is in place and depending on your script code, may cause fbcadcam to crash. As a practical test, I first see if my script code will compile with FBC (Freebasic Compiler) which can be downloaded from www.freebasic.net. FBC is not required to run scripts in FbCadCam Macro.

See the Programmers Guide for instructions on how to write scripts.
See the Forum for script examples.

The scripting language used is coined fbcadcam-macro. I created this scripting language with FreeBasic in mind. It was my intention that the syntax and usage be similar to FreeBasic's syntax.

FbCadCam Macro is a partial Freebasic interpreter supporting:

Variable types:
BOOLEAN, BYTE, UBYTE, SHORT, USHORT, LONG, ULONG, INTEGER, UINTEGER, LONGINT, ULONGINT, SINGLE, DOUBLE, STRING

Arrays:
Up to 9 (1D) arrays of each variable type
Up to 9 (2D) arrays of each variable type
Up to 9 (3D) arrays of each variable type

DECLARE SUB sub_name (variable_name AS variable_type)
DECLARE FUNCTION function_name (variable_name AS variable_type) AS variable_type

DIM variable_name AS variable_type
DIM AS variable_type variable_name
REDIM variable_array_name (1d to 3d)
REDIM PRESERVE variable_array_name (1d to 3d)

FOR variable_iterator_name =  variable_start_name_or_value TO variable_stop_name_or_value STEP variable_step_name_or_value
EXIT FOR
NEXT

DO
DO WHILE variable_name = TRUE / FALSE
EXIT DO
LOOP

SELECT CASE variable_name
CASE variable_name_or_value
CASE ELSE
END SELECT

IF variable_name = variable_name_or_value THEN
ELSE
ENDIF

SUB sub_name (variable_name AS variable_type)
EXIT SUB
END SUB

FUNCTION function_name (variable_name AS variable_type) AS variable_type
RETURN variable_name
END FUNCTION

PRINT variable_name_or_value (for debugging, prints to gtk text box bottom right corner of app)

LINE (x1,y1)-(x2,y2)
programatically create lines in the drawing
where x1,y1,x2,y2 are variable_name_or_value

CIRCLE (x,y), R, r, aS, aE, rot
programatically create circles, arcs, ellipses, elliptical arcs in the drawing
using variable_name_or_value for:
x1,y1 - circle center
R - radius (or major radius of an ellipse)
r - minor radius of an ellipse
aS - arc start (in degrees)
aE - arc end (in degrees)
rot - rotation of ellipse

TEXT x, y, s, c, t
inserts text into the drawing
x, y - coordinates of insertion point
s - text size (integers only ranging from 1 to 100 or so)
c - color (intergers only ranging from 1 to 15) color is really Layer
t - text string to insert (the current font only plots characters A-Z, numbers 0-9 and a period)

The commands below apply to SELECTED objects in the drawing:

MOVE (x1,y1)-(x2,y2)
where x1,y1,x2,y2 are variable_name_or_value
move selection from x1,y1 to x2,y2

COPY (x1,y1)-(x2,y2)
where x1,y1,x2,y2 are variable_name_or_value
copy selection from x1,y1 to x2,y2

ROTATE (x,y), angle
where x,y,angle are variable_name_or_value
rotate selection from x,y pivot point x degrees

COPY ROTATE (x,y), angle
where x,y,angle are variable_name_or_value
rotate a copy of selection from x,y pivot point n degrees

FLIP HORIZONTAL (x,y)
where x,y are variable_name_or_value
flip selection horizontally from point x,y

FLIP VERTICAL (x,y)
where x,y are variable_name_or_value
flip selection vertically from point x,y

FLIP BOTH (x,y)
where x,y are variable_name_or_value
flip selection both horizontally and vertically from point x,y

COPY FLIP HORIZONTAL (x,y)
where x,y are variable_name_or_value
flip a copy of selection horizontally from point x,y

COPY FLIP VERTICAL (x,y)
where x,y are variable_name_or_value
flip a copy of selection vertically from point x,y

COPY FLIP BOTH (x,y)
where x,y are variable_name_or_value
flip a copy of selection both horizontally and vertically from point x,y

FbCadCam-Macro supports the following Freebasic.net operators and functions:

Arithmetic_op_cmd_c=9
+
-
*
/
\
^
Mod
Shl
Shr

Bitwise_op_cmd_c=8
Not
And
Or
Eqv
Imp
Xor
AndAlso
OrElse

Math_dtc_op_cmd_c=31
CByte
CUByte
CShort
CUShort
CLng
CULng
CInt
CUInt
CLngInt
CULngInt
CSign
CUnsg
CSng
CDbl
Cbool
Abs
ACos
ASin
ATan2
Atn
Cos
Exp
Fix
Frac
Int
Log
Rnd
Sgn
Sin
Sqr
Tan

String functions
Chr
Str
Lcase
Ucase
String
Space
Right
Left
Mid
Trim
Ltrim
Rtrim
Instr
Instrrev
Len
Asc
Val
&
+