What determines print start location on the build plate? I'm working with an older MakerBot Replicator clone, actually a Flashforge Creator 1, with original Creator firmware.

I'm able to design objects, using Solidworks, and exporting the file as xxx.stl (ascii)
Then I use Slic3r to generate tool paths with output as xxx.gcode
finally, I use GPX UI to generate a xxx.x3g file.

I don't understand where on the build plate the print starts.  Is that controlled by the 3d printer's firmware values, or something else in the chain from .stl --&gt; .gcode --&gt; x3g ??     Right now my prints start in the corner nearest 0,0.0, instead of in the middle of the build plate.
How do I control where to place the 3d print on the build plate?
edit: Apologies for the delay.  As a result of the answers posted here, I did a whole bunch more testing.  The initial response from @mick, seems to indicate that what you see in the Slicer preview is what you'll see on the print bed. That makes sense, but that is definitely not what I'm seeing.  I definitely don't see anywhere anything that remotely looks like a check the box [] center.  Here's what I do see:
When I drop the object into Slic3r, it goes to middle of build plate.



Unfortunately here's what gets printed.
Attempt #1, off in space

Attempt #2, Right Hand Margin

Attempt #3, Near the front.

I tried moving the print head to center of build plate, thinking that might be a logical start point. No go.  Print start moves head to home (rear right corner of print bed) then after elements heat up to temp, it seems to select a random spot on the build plate to start.  I never touched the .x3g file between these attempts.  So I'm right back to where I started, per the title of this posting &quot;What determines print start location on the build plate?&quot;
So it turns out there are elements from each of the previous answers that make sense here, but its not a clear picture.  I've spent a whole lot of time trying to make sense of this. I also upgraded my firmware to Sailfish.  

For the MakerBot Replicator (or FastForge Creator) family of 3d printers, the origin of the build plate is NOT at any of the corners, its right in the center of the build plate. Reference here. 


  4.1 Home Offsets:
  By convention, the center of the build platform is assumed to be the point (0,0,0) in XYZ space. The X, Y, and Z home offsets tell the printer the location of the X, Y, and Z endstops in relation to the build platform’s center.


Looks like this:



And it would appear that most other 3D printers are not using this convention. Sigh.   From my testing, the main control of print location is within the G-Code generated by the slicer.  The tool I was using, Slic3r does give one a chance to correct that
adjustment.  You have to go to top menu Settings --&gt; Printer Settings --&gt; Size and Coordinates (Bed Shape) --&gt; Set to get a nice popup visual tool.  See below.

Unfortunately the default setting is accurate for the overall bed size, but is a fail for the origin location on the bed.  The default origin is set at 0,0, in the corner.  Ouch. Big ouch.  The origin needs to be located right in the center of the build plate (to be consistent with the firmware controlling the print for this family of printers).  It should look like this:



Note, when you tell the printer to go to 'home' it doesn't go to origin (0,0,0) it goes to the endstops.  

 G68 X0 Y0 F500 ; Perform Homing Routine


So as long as you understand the quirks of these printers things will work out.  You have to ensure offsets are set accurately in firmware config files. (Replicator / Sailfish) And you have to indicate the correct center location to the slicer program.  I will say the advice given here was of some help in understanding this. Many thanks.  I'm posting here in case others using the Replicator or FastForge Creator series of printers is having troubles centering their prints on the build plate.   

Additional info for anybody using a MakerBot Replicator or Flashforge Creator series printer with Slic3r. I wanted to add my custom G-code stuff. The default Slic3r stuff definitely did not work.  

Printer Settings --> Custom G-Code --> Start G-Code

M103 ; Turn all extruders off, Extruder Retraction
G21 ; set units to mm
G90 ; Use absolute coordinates
(**** begin homing ****)
G162 X Y F2500 ; home XY axes to maximum stops
G161 Z F1100 ; home Z axis to minimum stop
G92 Z-5 ; Set Position Z =-5mm
G1 Z0.0 ; move Z to "0"
G161 Z F100 ; home Z axis to minimum stop slowly
M132 X Y Z A B ; Recall stored home offsets for XYZAB axis
               ; Loads the axis offset of the current home position from the EEPROM and waits for the buffer to empty.
G90 ; Use absolute coordinates
G1 X0 Y0 Z50 F3300.0 ; move to waiting position near center of build plate


Printer Settings --> Custom G-Code --> End G-Code

M109 S0 T0 ; Cool down the build platform
M104 S0 T0 ; Cool down the Right Extruder
M104 S0 T1 ; Cool down the Left Extruder
M73 P100 ; End  build progress
G0 Z150 ; Send Z axis to bottom of machine
M18 ; Disable steppers
G162 X Y F2500 ; Home XY endstops
M18 ; Disable stepper motors
M70 P30 ; We &lt;3 Making Things! Yipee, you made it...
; display message above for 30 seconds
M72 P1 ; Play Ta-Da song


One other thing I do with Slic3r.  I print a single loop of print on the periphery of a phantom skirt.  I do this as a printer head clean extrude exercise.  

Print Settings --> Skirt and Brim --> Skirt --> Loops (minimum): 1, Distance from object: 6mm, Skirt height: 1   This works well.  I do this in lieu of the G-code startup used in ReplicatorG software (which went to the lower left hand corner, and did this odd 4mm extrude exercise, with odd timing...)  The skirt thing works just fine.