Merge lp:~jil26/fabathome-model1/FabInterpreter2 into lp:~jil26/fabathome-model1/FabInterpreter

Proposed by Jeffrey Lipton
Status: Needs review
Proposed branch: lp:~jil26/fabathome-model1/FabInterpreter2
Merge into: lp:~jil26/fabathome-model1/FabInterpreter
Diff against target: 2862 lines (+1391/-1252)
4 files modified
software/projects/FabInterpreter v0/FabAtHomePrinter.cpp (+39/-6)
software/projects/FabInterpreter v0/FabAtHomePrinter.h (+9/-0)
software/projects/FabInterpreter v0/Form1.cpp (+60/-5)
software/projects/FabInterpreter v0/Form1.h (+1283/-1241)
To merge this branch: bzr merge lp:~jil26/fabathome-model1/FabInterpreter2
Reviewer Review Type Date Requested Status
CTI_Brazil (community) Approve
Review via email: mp+23631@code.launchpad.net
To post a comment you must log in.
Revision history for this message
CTI_Brazil (ctibrazil) wrote :

Merge fix some important issues and i approve!

review: Approve

Unmerged revisions

10. By Jeffrey Lipton

Fixed crashes related to loading config files.
Added reloading of previous config files

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'software/projects/FabInterpreter v0/FabAtHomePrinter.cpp'
2--- software/projects/FabInterpreter v0/FabAtHomePrinter.cpp 2010-03-17 08:58:21 +0000
3+++ software/projects/FabInterpreter v0/FabAtHomePrinter.cpp 2010-04-18 18:41:19 +0000
4@@ -172,7 +172,9 @@
5 {
6 return "Axis "+name+" references motor "+motorName+" which has not been loaded.";
7 }
8- if(name.compare("Y") == 0 || name.compare("Z") == 0)
9+
10+ //THIS IS WHERE YOU REVERSE THE AXIS
11+ if(name.compare("Y") == 0 /*|| name.compare("Z") == 0 */) //CHANGE MADE in v0.1 z should now be pos for down neg for up
12 {
13 motor->second.setReversed(true);
14 }
15@@ -388,7 +390,7 @@
16 //Move the platform down.
17 pausePathPoints.clear();
18 pausePathPoints.push_back(start);
19- pausePathPoints.push_back(Point(start.x, start.y, start.z - PLATFORM_DELTA));
20+ pausePathPoints.push_back(Point(start.x, start.y, start.z + PLATFORM_DELTA));
21 executePath(Path(NULL,pausePathPoints),NULL,false);
22 paused = true;
23 printing = false;
24@@ -397,7 +399,7 @@
25 paused = false;
26 //Move the platform up.
27 pausePathPoints.clear();
28- pausePathPoints.push_back(Point(start.x, start.y, start.z - PLATFORM_DELTA));
29+ pausePathPoints.push_back(Point(start.x, start.y, start.z + PLATFORM_DELTA));
30 pausePathPoints.push_back(start);
31 executePath(Path(NULL,pausePathPoints),NULL,false);
32 }
33@@ -407,8 +409,8 @@
34 vector<Point> setupPathPoints(4);
35 setupPathPoints.clear();
36 setupPathPoints.push_back(start);
37- setupPathPoints.push_back(Point(start.x, start.y, start.z - clearance));
38- setupPathPoints.push_back(Point(end.x, end.y, start.z - clearance));
39+ setupPathPoints.push_back(Point(start.x, start.y, start.z + clearance));
40+ setupPathPoints.push_back(Point(end.x, end.y, start.z + clearance));
41 setupPathPoints.push_back(end);
42 executePath(Path(NULL,setupPathPoints),NULL,false);
43 }
44@@ -519,7 +521,7 @@
45 fabricationThread->ReportProgress(i);
46 //Execution has stopped. Move the platform down.
47 Point start(axes["X"].motor->getPosition(), axes["Y"].motor->getPosition(), axes["Z"].motor->getPosition()); //The current position.
48- Point end(start.x, start.y, start.z - PLATFORM_DELTA);
49+ Point end(start.x, start.y, start.z + PLATFORM_DELTA);
50 executeSetupPath(start,end,0);
51 printing = false;
52 }
53@@ -680,6 +682,37 @@
54 }
55 }
56 }
57+
58+////////////////////////////////////////////////////////////////////////////////////////////////////////////////
59+void FabAtHomePrinter::savePreviousConfigName(string name) {
60+
61+ ofstream myfile;
62+ myfile.open ("PreviousConfigFilePath.txt");
63+ myfile << "\\\\Previous File Config Path.\n";
64+
65+ myfile <<name;
66+ myfile.close();
67+}
68+////////////////////////////////////////////////////////////////////////////////////////////////////////////////
69+string FabAtHomePrinter::loadPreviousConfigName() {
70+ ifstream myfile;
71+ myfile.open("PreviousConfigFilePath.txt");
72+ if (myfile.is_open())
73+ {
74+ string header;
75+
76+ string path;
77+
78+ std::getline(myfile,header);
79+ std::getline(myfile,path);
80+
81+ return(path);
82+ }
83+
84+ return("ERROR");
85+}
86+
87+
88 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////
89 bool FabAtHomePrinter::cleanUp()
90 {
91
92=== modified file 'software/projects/FabInterpreter v0/FabAtHomePrinter.h'
93--- software/projects/FabInterpreter v0/FabAtHomePrinter.h 2010-03-17 08:58:21 +0000
94+++ software/projects/FabInterpreter v0/FabAtHomePrinter.h 2010-04-18 18:41:19 +0000
95@@ -98,6 +98,14 @@
96 //Returns: "" iff successful or an error message.
97 string loadFabFile(string filePath);
98
99+ //save config filePath
100+ static void savePreviousConfigName(string name);
101+
102+ //load config filePath
103+ static string loadPreviousConfigName();
104+
105+
106+
107 //Initialize the printer.
108 //Returns: "" if successful or an error message if failed.
109 string initialize(const string& configFilePath);
110@@ -106,6 +114,7 @@
111 //Requires: !isPrinting() || isPaused() and the bay and material calibration have been loaded.
112 void equipBay(const string& bayName, const string& materialCalibrationName);
113
114+
115 //Execute all paths which are currently loaded.
116 //A call to this function returns when the print has finished.
117 //If fabricationThread != NULL, messages will periodically be stored in displayText
118
119=== modified file 'software/projects/FabInterpreter v0/FabInterpreter.suo'
120Binary files software/projects/FabInterpreter v0/FabInterpreter.suo 2010-03-17 19:51:28 +0000 and software/projects/FabInterpreter v0/FabInterpreter.suo 2010-04-18 18:41:19 +0000 differ
121=== modified file 'software/projects/FabInterpreter v0/Form1.cpp'
122--- software/projects/FabInterpreter v0/Form1.cpp 2010-03-17 08:58:21 +0000
123+++ software/projects/FabInterpreter v0/Form1.cpp 2010-04-18 18:41:19 +0000
124@@ -1,15 +1,70 @@
125 #include "stdafx.h"
126 #include "Form1.h"
127
128+#include <map>
129+#include <utility>
130+
131+static map<string, string, LessThanString> commandMap; //A map from the commands to their paramters
132+
133 [STAThread]
134
135 int APIENTRY _tWinMain(HINSTANCE hInstance,
136- HINSTANCE hPrevInstance,
137- LPTSTR lpCmdLine,
138- int nCmdShow)
139+ HINSTANCE hPrevInstance,
140+ LPTSTR lpCmdLine,
141+ int nCmdShow)
142 {
143- System::Threading::Thread::CurrentThread->ApartmentState = System::Threading::ApartmentState::STA;
144- Util::runTestCases(); //Test helper functions for bugs.
145+ System::Threading::Thread::CurrentThread->ApartmentState = System::Threading::ApartmentState::STA;
146+ Util::runTestCases(); //Test helper functions for bugs.
147+
148+ //store the commands into a string
149+ string commands = lpCmdLine;
150+
151+ //parse the string into a map of parmaters
152+ //--config "C:\thisisthefilepath"
153+ //--fabfile "C:\thisisthefilepath"
154+
155+ //outputs commands to file (debugging retuine)
156+
157+
158+ std::stringstream os(commands); //a standard stringstream which parses 's'
159+ std::string temp; //a temporary string
160+ //std::cout <<"s is: " <<s <<std::endl;
161+
162+
163+ string counter = "command#";
164+ while (os >> temp) { //the stringstream makes temp a token
165+ string commandName = temp;
166+ if (os >> temp) {
167+ string commandParam = temp;
168+ commandMap[commandName] = commandParam;
169+ }
170+ //std::cout <<temp <<std::endl; //and deletes that token from itself
171+ counter = counter + "#";
172+ }
173+
174+ ofstream myfile;
175+ myfile.open ("commands.txt");
176+ myfile << "Commands with paramters.\n";
177+
178+ for( map<string,string,LessThanString>::iterator i = commandMap.begin(); i != commandMap.end(); ++i)
179+ {
180+ myfile << (*i).first << ": " << (*i).second << endl;
181+ }
182+ myfile.close();
183+
184+ //opens Form1 (main interface)
185 Application::Run(new Form1());
186+
187+
188 return 0;
189 }
190+
191+class LessThanString
192+{
193+public:
194+ //Returns: true iff a comes before b lexicographically.
195+ bool operator()(const string& a, const string& b) const
196+ {
197+ return (a.compare(b) < 0);
198+ }
199+};
200
201=== modified file 'software/projects/FabInterpreter v0/Form1.h'
202--- software/projects/FabInterpreter v0/Form1.h 2010-03-17 09:07:33 +0000
203+++ software/projects/FabInterpreter v0/Form1.h 2010-04-18 18:41:19 +0000
204@@ -3,6 +3,10 @@
205
206
207 #include "FabAtHomePrinter.h"
208+
209+#include <iostream>
210+#include <fstream>
211+
212 using namespace System;
213 using namespace System::ComponentModel;
214 using namespace System::Collections;
215@@ -47,9 +51,12 @@
216 {
217
218 public:
219- Form1(void)
220+ Form1()
221 {
222 InitializeComponent();
223+
224+ //execute any command line commands
225+ //Form1::loadConfigHelper(commandMap.find("--config"));
226 }
227
228 protected:
229@@ -90,28 +97,6 @@
230 public:
231
232
233-
234-
235-
236-
237-
238-
239-
240-
241-
242-
243-
244-
245-
246-
247-
248-
249-
250-
251-
252-
253-
254-
255 private: System::ComponentModel::BackgroundWorker* FabricationThread;
256 private: System::Windows::Forms::TextBox* bayVelocity1;
257
258@@ -159,25 +144,12 @@
259 private: System::Windows::Forms::TextBox* bayCommandedPosition0;
260
261
262-
263-
264-
265-
266-
267-
268-
269 private: System::Windows::Forms::Label* bayLabel0;
270 private: System::Windows::Forms::Label* bayLabel1;
271 private: System::Windows::Forms::VScrollBar* bayScroll1;
272
273
274
275-
276-
277-
278-
279-
280-
281 private: System::Windows::Forms::VScrollBar* bayScroll0;
282
283
284@@ -228,6 +200,8 @@
285 private: System::Windows::Forms::Label* bayLabel2;
286 private: System::Windows::Forms::Panel* fs;
287 private: System::Windows::Forms::OpenFileDialog* openFileDialog1;
288+private: System::Windows::Forms::Button* LoadPreviousConfig;
289+
290
291
292
293@@ -266,909 +240,924 @@
294 /// Required method for Designer support - do not modify
295 /// the contents of this method with the code editor.
296 /// </summary>
297- void InitializeComponent(void)
298+ void InitializeComponent()
299 {
300- this->components = (new System::ComponentModel::Container());
301- this->InitButton = (new System::Windows::Forms::Button());
302- this->MoveButton = (new System::Windows::Forms::Button());
303- this->ExitButton = (new System::Windows::Forms::Button());
304- this->XLabel = (new System::Windows::Forms::Label());
305- this->YLabel = (new System::Windows::Forms::Label());
306- this->ZLabel = (new System::Windows::Forms::Label());
307- this->XDisplay = (new System::Windows::Forms::TextBox());
308- this->YDisplay = (new System::Windows::Forms::TextBox());
309- this->ZDisplay = (new System::Windows::Forms::TextBox());
310- this->ExecuteButton = (new System::Windows::Forms::Button());
311- this->ResetPosButton = (new System::Windows::Forms::Button());
312- this->LoadFileButton = (new System::Windows::Forms::Button());
313- this->ExecutePathLabel = (new System::Windows::Forms::TextBox());
314- this->bayVelocity0 = (new System::Windows::Forms::TextBox());
315- this->label4 = (new System::Windows::Forms::Label());
316- this->bayVelocity1 = (new System::Windows::Forms::TextBox());
317- this->bayScroll1 = (new System::Windows::Forms::VScrollBar());
318- this->bayScroll0 = (new System::Windows::Forms::VScrollBar());
319- this->bayLabel1 = (new System::Windows::Forms::Label());
320- this->bayLabel0 = (new System::Windows::Forms::Label());
321- this->bayCommandedPosition1 = (new System::Windows::Forms::TextBox());
322- this->bayCommandedPosition0 = (new System::Windows::Forms::TextBox());
323- this->FabricationThread = (new System::ComponentModel::BackgroundWorker());
324- this->ForceStopButton = (new System::Windows::Forms::Button());
325- this->panel1 = (new System::Windows::Forms::Panel());
326- this->PathProgressBar = (new System::Windows::Forms::ProgressBar());
327- this->CancelFabButton = (new System::Windows::Forms::Button());
328- this->PauseFabButton = (new System::Windows::Forms::Button());
329- this->RedoPathButton = (new System::Windows::Forms::Button());
330- this->Timer = (new System::Windows::Forms::Timer(this->components));
331- this->panel2 = (new System::Windows::Forms::Panel());
332- this->bayMaterialCalibration2 = (new System::Windows::Forms::ComboBox());
333- this->bayAcceleration2 = (new System::Windows::Forms::TextBox());
334- this->bayVelocity2 = (new System::Windows::Forms::TextBox());
335- this->bayMotorPosition2 = (new System::Windows::Forms::TextBox());
336- this->bayPositionIncrement2 = (new System::Windows::Forms::TextBox());
337- this->bayScroll2 = (new System::Windows::Forms::VScrollBar());
338- this->bayCommandedPosition2 = (new System::Windows::Forms::TextBox());
339- this->bayLabel2 = (new System::Windows::Forms::Label());
340- this->label5 = (new System::Windows::Forms::Label());
341- this->bayMaterialCalibration1 = (new System::Windows::Forms::ComboBox());
342- this->bayMaterialCalibration0 = (new System::Windows::Forms::ComboBox());
343- this->XAccelerationField = (new System::Windows::Forms::TextBox());
344- this->YAccelerationField = (new System::Windows::Forms::TextBox());
345- this->ZAccelerationField = (new System::Windows::Forms::TextBox());
346- this->bayAcceleration1 = (new System::Windows::Forms::TextBox());
347- this->bayAcceleration0 = (new System::Windows::Forms::TextBox());
348- this->label1 = (new System::Windows::Forms::Label());
349- this->XVelocityField = (new System::Windows::Forms::TextBox());
350- this->YVelocityField = (new System::Windows::Forms::TextBox());
351- this->ZVelocityField = (new System::Windows::Forms::TextBox());
352- this->bayMotorPosition1 = (new System::Windows::Forms::TextBox());
353- this->bayMotorPosition0 = (new System::Windows::Forms::TextBox());
354- this->bayPositionIncrement1 = (new System::Windows::Forms::TextBox());
355- this->bayPositionIncrement0 = (new System::Windows::Forms::TextBox());
356- this->zScroll = (new System::Windows::Forms::VScrollBar());
357- this->yScroll = (new System::Windows::Forms::VScrollBar());
358- this->xScroll = (new System::Windows::Forms::VScrollBar());
359- this->CommandedLabel = (new System::Windows::Forms::Label());
360- this->RealTimeLabel = (new System::Windows::Forms::Label());
361- this->ZIncrementField = (new System::Windows::Forms::TextBox());
362- this->YIncrementField = (new System::Windows::Forms::TextBox());
363- this->XIncrementField = (new System::Windows::Forms::TextBox());
364- this->label2 = (new System::Windows::Forms::Label());
365- this->IncrementLabel = (new System::Windows::Forms::Label());
366- this->ZCommandedField = (new System::Windows::Forms::TextBox());
367- this->YCommandedField = (new System::Windows::Forms::TextBox());
368- this->XCommandedField = (new System::Windows::Forms::TextBox());
369- this->PosDisplayThread = (new System::ComponentModel::BackgroundWorker());
370- this->panel3 = (new System::Windows::Forms::Panel());
371- this->panel4 = (new System::Windows::Forms::Panel());
372- this->fs = (new System::Windows::Forms::Panel());
373- this->openFileDialog1 = (new System::Windows::Forms::OpenFileDialog());
374- this->panel1->SuspendLayout();
375- this->panel2->SuspendLayout();
376- this->panel3->SuspendLayout();
377- this->panel4->SuspendLayout();
378- this->fs->SuspendLayout();
379- this->SuspendLayout();
380- //
381- // InitButton
382- //
383- this->InitButton->Font = (new System::Drawing::Font(S"Microsoft Sans Serif", 14.25F, System::Drawing::FontStyle::Bold, System::Drawing::GraphicsUnit::Point,
384- (System::Byte)0));
385- this->InitButton->Location = System::Drawing::Point(0, 0);
386- this->InitButton->Name = S"InitButton";
387- this->InitButton->Size = System::Drawing::Size(115, 50);
388- this->InitButton->TabIndex = 0;
389- this->InitButton->Text = S"Initialize";
390- this->InitButton->Click += new System::EventHandler(this, &Form1::InitButton_Click);
391- //
392- // MoveButton
393- //
394- this->MoveButton->Enabled = false;
395- this->MoveButton->Font = (new System::Drawing::Font(S"Microsoft Sans Serif", 14.25F, System::Drawing::FontStyle::Bold, System::Drawing::GraphicsUnit::Point,
396- (System::Byte)0));
397- this->MoveButton->Location = System::Drawing::Point(307, 184);
398- this->MoveButton->Name = S"MoveButton";
399- this->MoveButton->Size = System::Drawing::Size(201, 48);
400- this->MoveButton->TabIndex = 3;
401- this->MoveButton->Text = S"Move To Position ";
402- this->MoveButton->Click += new System::EventHandler(this, &Form1::MoveButton_Click);
403- //
404- // ExitButton
405- //
406- this->ExitButton->Font = (new System::Drawing::Font(S"Microsoft Sans Serif", 14.25F, System::Drawing::FontStyle::Bold, System::Drawing::GraphicsUnit::Point,
407- (System::Byte)0));
408- this->ExitButton->Location = System::Drawing::Point(0, 69);
409- this->ExitButton->Name = S"ExitButton";
410- this->ExitButton->Size = System::Drawing::Size(164, 70);
411- this->ExitButton->TabIndex = 5;
412- this->ExitButton->Text = S"Exit";
413- this->ExitButton->Click += new System::EventHandler(this, &Form1::ExitButton_Click);
414- //
415- // XLabel
416- //
417- this->XLabel->Location = System::Drawing::Point(8, 31);
418- this->XLabel->Name = S"XLabel";
419- this->XLabel->Size = System::Drawing::Size(63, 16);
420- this->XLabel->TabIndex = 7;
421- this->XLabel->Text = S"Not Loaded";
422- this->XLabel->TextAlign = System::Drawing::ContentAlignment::MiddleRight;
423- //
424- // YLabel
425- //
426- this->YLabel->Location = System::Drawing::Point(8, 57);
427- this->YLabel->Name = S"YLabel";
428- this->YLabel->Size = System::Drawing::Size(63, 16);
429- this->YLabel->TabIndex = 8;
430- this->YLabel->Text = S"Not Loaded";
431- this->YLabel->TextAlign = System::Drawing::ContentAlignment::MiddleRight;
432- //
433- // ZLabel
434- //
435- this->ZLabel->Location = System::Drawing::Point(8, 82);
436- this->ZLabel->Name = S"ZLabel";
437- this->ZLabel->Size = System::Drawing::Size(63, 16);
438- this->ZLabel->TabIndex = 11;
439- this->ZLabel->Text = S"Not Loaded";
440- this->ZLabel->TextAlign = System::Drawing::ContentAlignment::MiddleRight;
441- //
442- // XDisplay
443- //
444- this->XDisplay->Enabled = false;
445- this->XDisplay->Location = System::Drawing::Point(429, 30);
446- this->XDisplay->Name = S"XDisplay";
447- this->XDisplay->ReadOnly = true;
448- this->XDisplay->Size = System::Drawing::Size(100, 20);
449- this->XDisplay->TabIndex = 13;
450- this->XDisplay->Text = S"0.000000";
451- this->XDisplay->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
452- //
453- // YDisplay
454- //
455- this->YDisplay->Enabled = false;
456- this->YDisplay->Location = System::Drawing::Point(429, 56);
457- this->YDisplay->Name = S"YDisplay";
458- this->YDisplay->ReadOnly = true;
459- this->YDisplay->Size = System::Drawing::Size(100, 20);
460- this->YDisplay->TabIndex = 14;
461- this->YDisplay->Text = S"0.000000";
462- this->YDisplay->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
463- //
464- // ZDisplay
465- //
466- this->ZDisplay->Enabled = false;
467- this->ZDisplay->Location = System::Drawing::Point(429, 83);
468- this->ZDisplay->Name = S"ZDisplay";
469- this->ZDisplay->ReadOnly = true;
470- this->ZDisplay->Size = System::Drawing::Size(100, 20);
471- this->ZDisplay->TabIndex = 17;
472- this->ZDisplay->Text = S"0.000000";
473- this->ZDisplay->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
474- //
475- // ExecuteButton
476- //
477- this->ExecuteButton->Enabled = false;
478- this->ExecuteButton->Font = (new System::Drawing::Font(S"Microsoft Sans Serif", 14.25F, System::Drawing::FontStyle::Bold, System::Drawing::GraphicsUnit::Point,
479- (System::Byte)0));
480- this->ExecuteButton->Location = System::Drawing::Point(123, 0);
481- this->ExecuteButton->Name = S"ExecuteButton";
482- this->ExecuteButton->Size = System::Drawing::Size(117, 40);
483- this->ExecuteButton->TabIndex = 19;
484- this->ExecuteButton->Text = S"Execute";
485- this->ExecuteButton->Click += new System::EventHandler(this, &Form1::ExecuteButton_Click);
486- //
487- // ResetPosButton
488- //
489- this->ResetPosButton->Enabled = false;
490- this->ResetPosButton->Font = (new System::Drawing::Font(S"Microsoft Sans Serif", 14.25F, System::Drawing::FontStyle::Bold, System::Drawing::GraphicsUnit::Point,
491- (System::Byte)0));
492- this->ResetPosButton->Location = System::Drawing::Point(514, 184);
493- this->ResetPosButton->Name = S"ResetPosButton";
494- this->ResetPosButton->Size = System::Drawing::Size(168, 48);
495- this->ResetPosButton->TabIndex = 20;
496- this->ResetPosButton->Text = S"Reset Position";
497- this->ResetPosButton->Click += new System::EventHandler(this, &Form1::ResetPosButton_Click);
498- //
499- // LoadFileButton
500- //
501- this->LoadFileButton->Enabled = false;
502- this->LoadFileButton->Font = (new System::Drawing::Font(S"Microsoft Sans Serif", 14.25F, System::Drawing::FontStyle::Bold, System::Drawing::GraphicsUnit::Point,
503- (System::Byte)0));
504- this->LoadFileButton->Location = System::Drawing::Point(0, 0);
505- this->LoadFileButton->Name = S"LoadFileButton";
506- this->LoadFileButton->Size = System::Drawing::Size(117, 41);
507- this->LoadFileButton->TabIndex = 21;
508- this->LoadFileButton->Text = S"Load";
509- this->LoadFileButton->Click += new System::EventHandler(this, &Form1::LoadFileButton_Click);
510- //
511- // ExecutePathLabel
512- //
513- this->ExecutePathLabel->Location = System::Drawing::Point(247, 10);
514- this->ExecutePathLabel->Name = S"ExecutePathLabel";
515- this->ExecutePathLabel->ReadOnly = true;
516- this->ExecutePathLabel->Size = System::Drawing::Size(458, 20);
517- this->ExecutePathLabel->TabIndex = 24;
518- //
519- // bayVelocity0
520- //
521- this->bayVelocity0->Enabled = false;
522- this->bayVelocity0->Location = System::Drawing::Point(77, 106);
523- this->bayVelocity0->Name = S"bayVelocity0";
524- this->bayVelocity0->Size = System::Drawing::Size(100, 20);
525- this->bayVelocity0->TabIndex = 28;
526- this->bayVelocity0->Text = S"1.000000";
527- this->bayVelocity0->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
528- //
529- // label4
530- //
531- this->label4->AutoSize = true;
532- this->label4->Location = System::Drawing::Point(74, 12);
533- this->label4->Name = S"label4";
534- this->label4->Size = System::Drawing::Size(79, 13);
535- this->label4->TabIndex = 47;
536- this->label4->Text = S"Velocity (mm/s)";
537- //
538- // bayVelocity1
539- //
540- this->bayVelocity1->Enabled = false;
541- this->bayVelocity1->Location = System::Drawing::Point(77, 132);
542- this->bayVelocity1->Name = S"bayVelocity1";
543- this->bayVelocity1->Size = System::Drawing::Size(100, 20);
544- this->bayVelocity1->TabIndex = 32;
545- this->bayVelocity1->Text = S"1.000000";
546- this->bayVelocity1->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
547- //
548- // bayScroll1
549- //
550- this->bayScroll1->AccessibleRole = System::Windows::Forms::AccessibleRole::ScrollBar;
551- this->bayScroll1->Enabled = false;
552- this->bayScroll1->LargeChange = 1;
553- this->bayScroll1->Location = System::Drawing::Point(663, 132);
554- this->bayScroll1->Maximum = 100000000;
555- this->bayScroll1->Minimum = -100000000;
556- this->bayScroll1->Name = S"bayScroll1";
557- this->bayScroll1->Size = System::Drawing::Size(19, 20);
558- this->bayScroll1->TabIndex = 46;
559- this->bayScroll1->Scroll += new System::Windows::Forms::ScrollEventHandler(this, &Form1::Tool2Scroll_Scroll);
560- //
561- // bayScroll0
562- //
563- this->bayScroll0->AccessibleRole = System::Windows::Forms::AccessibleRole::ScrollBar;
564- this->bayScroll0->Enabled = false;
565- this->bayScroll0->LargeChange = 1;
566- this->bayScroll0->Location = System::Drawing::Point(663, 106);
567- this->bayScroll0->Maximum = 100000000;
568- this->bayScroll0->Minimum = -100000000;
569- this->bayScroll0->Name = S"bayScroll0";
570- this->bayScroll0->Size = System::Drawing::Size(19, 20);
571- this->bayScroll0->TabIndex = 45;
572- this->bayScroll0->Scroll += new System::Windows::Forms::ScrollEventHandler(this, &Form1::Tool1Scroll_Scroll);
573- //
574- // bayLabel1
575- //
576- this->bayLabel1->Anchor = System::Windows::Forms::AnchorStyles::Right;
577- this->bayLabel1->Location = System::Drawing::Point(8, 133);
578- this->bayLabel1->Name = S"bayLabel1";
579- this->bayLabel1->Size = System::Drawing::Size(63, 16);
580- this->bayLabel1->TabIndex = 36;
581- this->bayLabel1->Text = S"Not Loaded";
582- this->bayLabel1->TextAlign = System::Drawing::ContentAlignment::MiddleRight;
583- //
584- // bayLabel0
585- //
586- this->bayLabel0->Anchor = System::Windows::Forms::AnchorStyles::Right;
587- this->bayLabel0->Location = System::Drawing::Point(8, 107);
588- this->bayLabel0->Name = S"bayLabel0";
589- this->bayLabel0->Size = System::Drawing::Size(63, 16);
590- this->bayLabel0->TabIndex = 35;
591- this->bayLabel0->Text = S"Not Loaded";
592- this->bayLabel0->TextAlign = System::Drawing::ContentAlignment::MiddleRight;
593- //
594- // bayCommandedPosition1
595- //
596- this->bayCommandedPosition1->Enabled = false;
597- this->bayCommandedPosition1->Location = System::Drawing::Point(535, 132);
598- this->bayCommandedPosition1->Name = S"bayCommandedPosition1";
599- this->bayCommandedPosition1->Size = System::Drawing::Size(128, 20);
600- this->bayCommandedPosition1->TabIndex = 34;
601- this->bayCommandedPosition1->Text = S"0.000000";
602- this->bayCommandedPosition1->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
603- //
604- // bayCommandedPosition0
605- //
606- this->bayCommandedPosition0->Enabled = false;
607- this->bayCommandedPosition0->Location = System::Drawing::Point(535, 106);
608- this->bayCommandedPosition0->Name = S"bayCommandedPosition0";
609- this->bayCommandedPosition0->Size = System::Drawing::Size(128, 20);
610- this->bayCommandedPosition0->TabIndex = 33;
611- this->bayCommandedPosition0->Text = S"0.000000";
612- this->bayCommandedPosition0->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
613- //
614- // FabricationThread
615- //
616- this->FabricationThread->WorkerReportsProgress = true;
617- this->FabricationThread->DoWork += new System::ComponentModel::DoWorkEventHandler(this, &Form1::FabricationThread_DoWork);
618- this->FabricationThread->RunWorkerCompleted += new System::ComponentModel::RunWorkerCompletedEventHandler(this, &Form1::FabricationThread_WorkerCompleted);
619- this->FabricationThread->ProgressChanged += new System::ComponentModel::ProgressChangedEventHandler(this, &Form1::FabricationThread_ProgressChanged);
620- //
621- // ForceStopButton
622- //
623- this->ForceStopButton->Enabled = false;
624- this->ForceStopButton->Font = (new System::Drawing::Font(S"Microsoft Sans Serif", 14.25F, System::Drawing::FontStyle::Bold, System::Drawing::GraphicsUnit::Point,
625- (System::Byte)0));
626- this->ForceStopButton->Location = System::Drawing::Point(473, 3);
627- this->ForceStopButton->Name = S"ForceStopButton";
628- this->ForceStopButton->Size = System::Drawing::Size(231, 46);
629- this->ForceStopButton->TabIndex = 34;
630- this->ForceStopButton->Text = S"Force Stop";
631- this->ForceStopButton->UseVisualStyleBackColor = true;
632- this->ForceStopButton->Click += new System::EventHandler(this, &Form1::ForceStopButton_Click);
633- //
634- // panel1
635- //
636- this->panel1->Controls->Add(this->PathProgressBar);
637- this->panel1->Controls->Add(this->CancelFabButton);
638- this->panel1->Controls->Add(this->PauseFabButton);
639- this->panel1->Controls->Add(this->ForceStopButton);
640- this->panel1->Location = System::Drawing::Point(9, 364);
641- this->panel1->Name = S"panel1";
642- this->panel1->Size = System::Drawing::Size(717, 92);
643- this->panel1->TabIndex = 37;
644- //
645- // PathProgressBar
646- //
647- this->PathProgressBar->Location = System::Drawing::Point(5, 55);
648- this->PathProgressBar->Maximum = 1000;
649- this->PathProgressBar->Name = S"PathProgressBar";
650- this->PathProgressBar->Size = System::Drawing::Size(697, 23);
651- this->PathProgressBar->Style = System::Windows::Forms::ProgressBarStyle::Continuous;
652- this->PathProgressBar->TabIndex = 39;
653- //
654- // CancelFabButton
655- //
656- this->CancelFabButton->Enabled = false;
657- this->CancelFabButton->Font = (new System::Drawing::Font(S"Microsoft Sans Serif", 14.25F, System::Drawing::FontStyle::Bold, System::Drawing::GraphicsUnit::Point,
658- (System::Byte)0));
659- this->CancelFabButton->Location = System::Drawing::Point(246, 3);
660- this->CancelFabButton->Name = S"CancelFabButton";
661- this->CancelFabButton->Size = System::Drawing::Size(219, 46);
662- this->CancelFabButton->TabIndex = 39;
663- this->CancelFabButton->Text = S"Cancel";
664- this->CancelFabButton->UseVisualStyleBackColor = true;
665- this->CancelFabButton->Click += new System::EventHandler(this, &Form1::CancelFabButton_Click);
666- //
667- // PauseFabButton
668- //
669- this->PauseFabButton->Enabled = false;
670- this->PauseFabButton->Font = (new System::Drawing::Font(S"Microsoft Sans Serif", 14.25F, System::Drawing::FontStyle::Bold, System::Drawing::GraphicsUnit::Point,
671- (System::Byte)0));
672- this->PauseFabButton->Location = System::Drawing::Point(5, 3);
673- this->PauseFabButton->Name = S"PauseFabButton";
674- this->PauseFabButton->Size = System::Drawing::Size(235, 46);
675- this->PauseFabButton->TabIndex = 38;
676- this->PauseFabButton->Text = S"Pause";
677- this->PauseFabButton->UseVisualStyleBackColor = true;
678- this->PauseFabButton->Click += new System::EventHandler(this, &Form1::PauseFabButton_Click);
679- //
680- // RedoPathButton
681- //
682- this->RedoPathButton->Enabled = false;
683- this->RedoPathButton->Font = (new System::Drawing::Font(S"Microsoft Sans Serif", 14.25F, System::Drawing::FontStyle::Bold, System::Drawing::GraphicsUnit::Point,
684- (System::Byte)0));
685- this->RedoPathButton->Location = System::Drawing::Point(0, 0);
686- this->RedoPathButton->Name = S"RedoPathButton";
687- this->RedoPathButton->Size = System::Drawing::Size(164, 63);
688- this->RedoPathButton->TabIndex = 38;
689- this->RedoPathButton->Text = S"Redo Path";
690- this->RedoPathButton->UseVisualStyleBackColor = true;
691- this->RedoPathButton->Click += new System::EventHandler(this, &Form1::RedoPathButton_Click);
692- //
693- // Timer
694- //
695- this->Timer->Tick += new System::EventHandler(this, &Form1::Timer_Tick);
696- //
697- // panel2
698- //
699- this->panel2->Controls->Add(this->bayMaterialCalibration2);
700- this->panel2->Controls->Add(this->bayAcceleration2);
701- this->panel2->Controls->Add(this->bayVelocity2);
702- this->panel2->Controls->Add(this->bayMotorPosition2);
703- this->panel2->Controls->Add(this->bayPositionIncrement2);
704- this->panel2->Controls->Add(this->ResetPosButton);
705- this->panel2->Controls->Add(this->MoveButton);
706- this->panel2->Controls->Add(this->bayScroll2);
707- this->panel2->Controls->Add(this->bayCommandedPosition2);
708- this->panel2->Controls->Add(this->bayLabel2);
709- this->panel2->Controls->Add(this->label5);
710- this->panel2->Controls->Add(this->bayMaterialCalibration1);
711- this->panel2->Controls->Add(this->bayMaterialCalibration0);
712- this->panel2->Controls->Add(this->XAccelerationField);
713- this->panel2->Controls->Add(this->YAccelerationField);
714- this->panel2->Controls->Add(this->ZAccelerationField);
715- this->panel2->Controls->Add(this->bayAcceleration1);
716- this->panel2->Controls->Add(this->bayAcceleration0);
717- this->panel2->Controls->Add(this->label1);
718- this->panel2->Controls->Add(this->XVelocityField);
719- this->panel2->Controls->Add(this->YVelocityField);
720- this->panel2->Controls->Add(this->ZVelocityField);
721- this->panel2->Controls->Add(this->bayVelocity1);
722- this->panel2->Controls->Add(this->label4);
723- this->panel2->Controls->Add(this->bayVelocity0);
724- this->panel2->Controls->Add(this->bayMotorPosition1);
725- this->panel2->Controls->Add(this->bayMotorPosition0);
726- this->panel2->Controls->Add(this->bayPositionIncrement1);
727- this->panel2->Controls->Add(this->bayPositionIncrement0);
728- this->panel2->Controls->Add(this->bayScroll1);
729- this->panel2->Controls->Add(this->zScroll);
730- this->panel2->Controls->Add(this->bayScroll0);
731- this->panel2->Controls->Add(this->yScroll);
732- this->panel2->Controls->Add(this->bayCommandedPosition1);
733- this->panel2->Controls->Add(this->xScroll);
734- this->panel2->Controls->Add(this->bayCommandedPosition0);
735- this->panel2->Controls->Add(this->bayLabel1);
736- this->panel2->Controls->Add(this->CommandedLabel);
737- this->panel2->Controls->Add(this->bayLabel0);
738- this->panel2->Controls->Add(this->RealTimeLabel);
739- this->panel2->Controls->Add(this->ZIncrementField);
740- this->panel2->Controls->Add(this->YIncrementField);
741- this->panel2->Controls->Add(this->XIncrementField);
742- this->panel2->Controls->Add(this->label2);
743- this->panel2->Controls->Add(this->IncrementLabel);
744- this->panel2->Controls->Add(this->ZCommandedField);
745- this->panel2->Controls->Add(this->YCommandedField);
746- this->panel2->Controls->Add(this->XCommandedField);
747- this->panel2->Controls->Add(this->XLabel);
748- this->panel2->Controls->Add(this->YLabel);
749- this->panel2->Controls->Add(this->ZLabel);
750- this->panel2->Controls->Add(this->XDisplay);
751- this->panel2->Controls->Add(this->YDisplay);
752- this->panel2->Controls->Add(this->ZDisplay);
753- this->panel2->Location = System::Drawing::Point(9, 63);
754- this->panel2->Name = S"panel2";
755- this->panel2->Size = System::Drawing::Size(887, 248);
756- this->panel2->TabIndex = 42;
757- //
758- // bayMaterialCalibration2
759- //
760- this->bayMaterialCalibration2->DropDownStyle = System::Windows::Forms::ComboBoxStyle::DropDownList;
761- this->bayMaterialCalibration2->Enabled = false;
762- this->bayMaterialCalibration2->FormattingEnabled = true;
763- this->bayMaterialCalibration2->Location = System::Drawing::Point(700, 158);
764- this->bayMaterialCalibration2->Name = S"bayMaterialCalibration2";
765- this->bayMaterialCalibration2->Size = System::Drawing::Size(182, 21);
766- this->bayMaterialCalibration2->TabIndex = 68;
767- this->bayMaterialCalibration2->SelectedIndexChanged += new System::EventHandler(this, &Form1::bayMaterialCalibration2_SelectedIndexChanged);
768- //
769- // bayAcceleration2
770- //
771- this->bayAcceleration2->Enabled = false;
772- this->bayAcceleration2->Location = System::Drawing::Point(183, 158);
773- this->bayAcceleration2->Name = S"bayAcceleration2";
774- this->bayAcceleration2->Size = System::Drawing::Size(108, 20);
775- this->bayAcceleration2->TabIndex = 67;
776- this->bayAcceleration2->Text = S"100.000000";
777- this->bayAcceleration2->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
778- //
779- // bayVelocity2
780- //
781- this->bayVelocity2->Enabled = false;
782- this->bayVelocity2->Location = System::Drawing::Point(77, 158);
783- this->bayVelocity2->Name = S"bayVelocity2";
784- this->bayVelocity2->Size = System::Drawing::Size(100, 20);
785- this->bayVelocity2->TabIndex = 61;
786- this->bayVelocity2->Text = S"1.000000";
787- this->bayVelocity2->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
788- //
789- // bayMotorPosition2
790- //
791- this->bayMotorPosition2->Enabled = false;
792- this->bayMotorPosition2->Location = System::Drawing::Point(429, 158);
793- this->bayMotorPosition2->Name = S"bayMotorPosition2";
794- this->bayMotorPosition2->ReadOnly = true;
795- this->bayMotorPosition2->Size = System::Drawing::Size(100, 20);
796- this->bayMotorPosition2->TabIndex = 65;
797- this->bayMotorPosition2->Text = S"0.000000";
798- this->bayMotorPosition2->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
799- //
800- // bayPositionIncrement2
801- //
802- this->bayPositionIncrement2->Enabled = false;
803- this->bayPositionIncrement2->Location = System::Drawing::Point(307, 158);
804- this->bayPositionIncrement2->Name = S"bayPositionIncrement2";
805- this->bayPositionIncrement2->Size = System::Drawing::Size(116, 20);
806- this->bayPositionIncrement2->TabIndex = 66;
807- this->bayPositionIncrement2->Text = S"0.100000";
808- this->bayPositionIncrement2->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
809- //
810- // bayScroll2
811- //
812- this->bayScroll2->AccessibleRole = System::Windows::Forms::AccessibleRole::ScrollBar;
813- this->bayScroll2->Enabled = false;
814- this->bayScroll2->LargeChange = 1;
815- this->bayScroll2->Location = System::Drawing::Point(663, 158);
816- this->bayScroll2->Maximum = 100000000;
817- this->bayScroll2->Minimum = -100000000;
818- this->bayScroll2->Name = S"bayScroll2";
819- this->bayScroll2->Size = System::Drawing::Size(19, 20);
820- this->bayScroll2->TabIndex = 64;
821- this->bayScroll2->Scroll += new System::Windows::Forms::ScrollEventHandler(this, &Form1::bayScroll2_Scroll);
822- //
823- // bayCommandedPosition2
824- //
825- this->bayCommandedPosition2->Enabled = false;
826- this->bayCommandedPosition2->Location = System::Drawing::Point(535, 158);
827- this->bayCommandedPosition2->Name = S"bayCommandedPosition2";
828- this->bayCommandedPosition2->Size = System::Drawing::Size(128, 20);
829- this->bayCommandedPosition2->TabIndex = 62;
830- this->bayCommandedPosition2->Text = S"0.000000";
831- this->bayCommandedPosition2->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
832- //
833- // bayLabel2
834- //
835- this->bayLabel2->Anchor = System::Windows::Forms::AnchorStyles::Right;
836- this->bayLabel2->Location = System::Drawing::Point(8, 159);
837- this->bayLabel2->Name = S"bayLabel2";
838- this->bayLabel2->Size = System::Drawing::Size(63, 16);
839- this->bayLabel2->TabIndex = 63;
840- this->bayLabel2->Text = S"Not Loaded";
841- this->bayLabel2->TextAlign = System::Drawing::ContentAlignment::MiddleRight;
842- //
843- // label5
844- //
845- this->label5->AutoSize = true;
846- this->label5->Location = System::Drawing::Point(697, 12);
847- this->label5->Name = S"label5";
848- this->label5->Size = System::Drawing::Size(96, 13);
849- this->label5->TabIndex = 60;
850- this->label5->Text = S"Material Calibration";
851- //
852- // bayMaterialCalibration1
853- //
854- this->bayMaterialCalibration1->DropDownStyle = System::Windows::Forms::ComboBoxStyle::DropDownList;
855- this->bayMaterialCalibration1->Enabled = false;
856- this->bayMaterialCalibration1->FormattingEnabled = true;
857- this->bayMaterialCalibration1->Location = System::Drawing::Point(700, 132);
858- this->bayMaterialCalibration1->Name = S"bayMaterialCalibration1";
859- this->bayMaterialCalibration1->Size = System::Drawing::Size(182, 21);
860- this->bayMaterialCalibration1->TabIndex = 59;
861- this->bayMaterialCalibration1->SelectedIndexChanged += new System::EventHandler(this, &Form1::bayMaterialCalibration1_SelectedIndexChanged);
862- //
863- // bayMaterialCalibration0
864- //
865- this->bayMaterialCalibration0->DropDownStyle = System::Windows::Forms::ComboBoxStyle::DropDownList;
866- this->bayMaterialCalibration0->Enabled = false;
867- this->bayMaterialCalibration0->FormattingEnabled = true;
868- this->bayMaterialCalibration0->Location = System::Drawing::Point(700, 105);
869- this->bayMaterialCalibration0->Name = S"bayMaterialCalibration0";
870- this->bayMaterialCalibration0->Size = System::Drawing::Size(182, 21);
871- this->bayMaterialCalibration0->TabIndex = 58;
872- this->bayMaterialCalibration0->SelectedIndexChanged += new System::EventHandler(this, &Form1::bayMaterialCalibration0_SelectedIndexChanged);
873- //
874- // XAccelerationField
875- //
876- this->XAccelerationField->Enabled = false;
877- this->XAccelerationField->Location = System::Drawing::Point(183, 30);
878- this->XAccelerationField->Name = S"XAccelerationField";
879- this->XAccelerationField->Size = System::Drawing::Size(108, 20);
880- this->XAccelerationField->TabIndex = 57;
881- this->XAccelerationField->Text = S"100.000000";
882- this->XAccelerationField->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
883- //
884- // YAccelerationField
885- //
886- this->YAccelerationField->Enabled = false;
887- this->YAccelerationField->Location = System::Drawing::Point(183, 56);
888- this->YAccelerationField->Name = S"YAccelerationField";
889- this->YAccelerationField->Size = System::Drawing::Size(108, 20);
890- this->YAccelerationField->TabIndex = 56;
891- this->YAccelerationField->Text = S"100.000000";
892- this->YAccelerationField->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
893- //
894- // ZAccelerationField
895- //
896- this->ZAccelerationField->Enabled = false;
897- this->ZAccelerationField->Location = System::Drawing::Point(183, 81);
898- this->ZAccelerationField->Name = S"ZAccelerationField";
899- this->ZAccelerationField->Size = System::Drawing::Size(108, 20);
900- this->ZAccelerationField->TabIndex = 55;
901- this->ZAccelerationField->Text = S"100.000000";
902- this->ZAccelerationField->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
903- //
904- // bayAcceleration1
905- //
906- this->bayAcceleration1->Enabled = false;
907- this->bayAcceleration1->Location = System::Drawing::Point(183, 132);
908- this->bayAcceleration1->Name = S"bayAcceleration1";
909- this->bayAcceleration1->Size = System::Drawing::Size(108, 20);
910- this->bayAcceleration1->TabIndex = 54;
911- this->bayAcceleration1->Text = S"100.000000";
912- this->bayAcceleration1->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
913- //
914- // bayAcceleration0
915- //
916- this->bayAcceleration0->Enabled = false;
917- this->bayAcceleration0->Location = System::Drawing::Point(183, 106);
918- this->bayAcceleration0->Name = S"bayAcceleration0";
919- this->bayAcceleration0->Size = System::Drawing::Size(108, 20);
920- this->bayAcceleration0->TabIndex = 53;
921- this->bayAcceleration0->Text = S"100.000000";
922- this->bayAcceleration0->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
923- //
924- // label1
925- //
926- this->label1->AutoSize = true;
927- this->label1->Location = System::Drawing::Point(180, 12);
928- this->label1->Name = S"label1";
929- this->label1->Size = System::Drawing::Size(111, 13);
930- this->label1->TabIndex = 52;
931- this->label1->Text = S"Acceleration (mm/s/s)";
932- //
933- // XVelocityField
934- //
935- this->XVelocityField->Enabled = false;
936- this->XVelocityField->Location = System::Drawing::Point(77, 30);
937- this->XVelocityField->Name = S"XVelocityField";
938- this->XVelocityField->Size = System::Drawing::Size(100, 20);
939- this->XVelocityField->TabIndex = 51;
940- this->XVelocityField->Text = S"100.000000";
941- this->XVelocityField->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
942- //
943- // YVelocityField
944- //
945- this->YVelocityField->Enabled = false;
946- this->YVelocityField->Location = System::Drawing::Point(77, 56);
947- this->YVelocityField->Name = S"YVelocityField";
948- this->YVelocityField->Size = System::Drawing::Size(100, 20);
949- this->YVelocityField->TabIndex = 50;
950- this->YVelocityField->Text = S"100.000000";
951- this->YVelocityField->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
952- //
953- // ZVelocityField
954- //
955- this->ZVelocityField->Enabled = false;
956- this->ZVelocityField->Location = System::Drawing::Point(77, 81);
957- this->ZVelocityField->Name = S"ZVelocityField";
958- this->ZVelocityField->Size = System::Drawing::Size(100, 20);
959- this->ZVelocityField->TabIndex = 49;
960- this->ZVelocityField->Text = S"100.000000";
961- this->ZVelocityField->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
962- //
963- // bayMotorPosition1
964- //
965- this->bayMotorPosition1->Enabled = false;
966- this->bayMotorPosition1->Location = System::Drawing::Point(429, 132);
967- this->bayMotorPosition1->Name = S"bayMotorPosition1";
968- this->bayMotorPosition1->ReadOnly = true;
969- this->bayMotorPosition1->Size = System::Drawing::Size(100, 20);
970- this->bayMotorPosition1->TabIndex = 47;
971- this->bayMotorPosition1->Text = S"0.000000";
972- this->bayMotorPosition1->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
973- //
974- // bayMotorPosition0
975- //
976- this->bayMotorPosition0->Enabled = false;
977- this->bayMotorPosition0->Location = System::Drawing::Point(429, 106);
978- this->bayMotorPosition0->Name = S"bayMotorPosition0";
979- this->bayMotorPosition0->ReadOnly = true;
980- this->bayMotorPosition0->Size = System::Drawing::Size(100, 20);
981- this->bayMotorPosition0->TabIndex = 46;
982- this->bayMotorPosition0->Text = S"0.000000";
983- this->bayMotorPosition0->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
984- //
985- // bayPositionIncrement1
986- //
987- this->bayPositionIncrement1->Enabled = false;
988- this->bayPositionIncrement1->Location = System::Drawing::Point(307, 132);
989- this->bayPositionIncrement1->Name = S"bayPositionIncrement1";
990- this->bayPositionIncrement1->Size = System::Drawing::Size(116, 20);
991- this->bayPositionIncrement1->TabIndex = 48;
992- this->bayPositionIncrement1->Text = S"0.100000";
993- this->bayPositionIncrement1->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
994- //
995- // bayPositionIncrement0
996- //
997- this->bayPositionIncrement0->Enabled = false;
998- this->bayPositionIncrement0->Location = System::Drawing::Point(307, 106);
999- this->bayPositionIncrement0->Name = S"bayPositionIncrement0";
1000- this->bayPositionIncrement0->Size = System::Drawing::Size(116, 20);
1001- this->bayPositionIncrement0->TabIndex = 47;
1002- this->bayPositionIncrement0->Text = S"0.100000";
1003- this->bayPositionIncrement0->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
1004- //
1005- // zScroll
1006- //
1007- this->zScroll->AccessibleRole = System::Windows::Forms::AccessibleRole::ScrollBar;
1008- this->zScroll->Enabled = false;
1009- this->zScroll->LargeChange = 1;
1010- this->zScroll->Location = System::Drawing::Point(663, 81);
1011- this->zScroll->Maximum = 100000000;
1012- this->zScroll->Minimum = -100000000;
1013- this->zScroll->Name = S"zScroll";
1014- this->zScroll->Size = System::Drawing::Size(19, 20);
1015- this->zScroll->TabIndex = 46;
1016- this->zScroll->Scroll += new System::Windows::Forms::ScrollEventHandler(this, &Form1::ZScroll_Scroll);
1017- //
1018- // yScroll
1019- //
1020- this->yScroll->AccessibleRole = System::Windows::Forms::AccessibleRole::ScrollBar;
1021- this->yScroll->Enabled = false;
1022- this->yScroll->LargeChange = 1;
1023- this->yScroll->Location = System::Drawing::Point(663, 56);
1024- this->yScroll->Maximum = 100000000;
1025- this->yScroll->Minimum = -100000000;
1026- this->yScroll->Name = S"yScroll";
1027- this->yScroll->Size = System::Drawing::Size(19, 20);
1028- this->yScroll->TabIndex = 45;
1029- this->yScroll->Scroll += new System::Windows::Forms::ScrollEventHandler(this, &Form1::YScroll_Scroll);
1030- //
1031- // xScroll
1032- //
1033- this->xScroll->AccessibleRole = System::Windows::Forms::AccessibleRole::ScrollBar;
1034- this->xScroll->Enabled = false;
1035- this->xScroll->LargeChange = 1;
1036- this->xScroll->Location = System::Drawing::Point(663, 30);
1037- this->xScroll->Maximum = 100000000;
1038- this->xScroll->Minimum = -100000000;
1039- this->xScroll->Name = S"xScroll";
1040- this->xScroll->Size = System::Drawing::Size(19, 20);
1041- this->xScroll->TabIndex = 44;
1042- this->xScroll->Scroll += new System::Windows::Forms::ScrollEventHandler(this, &Form1::XScroll_Scroll);
1043- //
1044- // CommandedLabel
1045- //
1046- this->CommandedLabel->AutoSize = true;
1047- this->CommandedLabel->Location = System::Drawing::Point(532, 12);
1048- this->CommandedLabel->Name = S"CommandedLabel";
1049- this->CommandedLabel->Size = System::Drawing::Size(131, 13);
1050- this->CommandedLabel->TabIndex = 36;
1051- this->CommandedLabel->Text = S"Commanded Position (mm)";
1052- //
1053- // RealTimeLabel
1054- //
1055- this->RealTimeLabel->AutoSize = true;
1056- this->RealTimeLabel->Location = System::Drawing::Point(426, 12);
1057- this->RealTimeLabel->Name = S"RealTimeLabel";
1058- this->RealTimeLabel->Size = System::Drawing::Size(99, 13);
1059- this->RealTimeLabel->TabIndex = 35;
1060- this->RealTimeLabel->Text = S"Motor Position (mm)";
1061- //
1062- // ZIncrementField
1063- //
1064- this->ZIncrementField->Enabled = false;
1065- this->ZIncrementField->Location = System::Drawing::Point(307, 83);
1066- this->ZIncrementField->Name = S"ZIncrementField";
1067- this->ZIncrementField->Size = System::Drawing::Size(116, 20);
1068- this->ZIncrementField->TabIndex = 34;
1069- this->ZIncrementField->Text = S"0.500000";
1070- this->ZIncrementField->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
1071- //
1072- // YIncrementField
1073- //
1074- this->YIncrementField->Enabled = false;
1075- this->YIncrementField->Location = System::Drawing::Point(307, 56);
1076- this->YIncrementField->Name = S"YIncrementField";
1077- this->YIncrementField->Size = System::Drawing::Size(116, 20);
1078- this->YIncrementField->TabIndex = 33;
1079- this->YIncrementField->Text = S"1.500000";
1080- this->YIncrementField->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
1081- //
1082- // XIncrementField
1083- //
1084- this->XIncrementField->Enabled = false;
1085- this->XIncrementField->Location = System::Drawing::Point(308, 30);
1086- this->XIncrementField->Name = S"XIncrementField";
1087- this->XIncrementField->Size = System::Drawing::Size(115, 20);
1088- this->XIncrementField->TabIndex = 32;
1089- this->XIncrementField->Text = S"1.500000";
1090- this->XIncrementField->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
1091- //
1092- // label2
1093- //
1094- this->label2->AutoSize = true;
1095- this->label2->Enabled = false;
1096- this->label2->Location = System::Drawing::Point(456, 18);
1097- this->label2->Name = S"label2";
1098- this->label2->Size = System::Drawing::Size(0, 13);
1099- this->label2->TabIndex = 31;
1100- //
1101- // IncrementLabel
1102- //
1103- this->IncrementLabel->AutoSize = true;
1104- this->IncrementLabel->Location = System::Drawing::Point(304, 12);
1105- this->IncrementLabel->Name = S"IncrementLabel";
1106- this->IncrementLabel->Size = System::Drawing::Size(119, 13);
1107- this->IncrementLabel->TabIndex = 30;
1108- this->IncrementLabel->Text = S"Position Increment (mm)";
1109- //
1110- // ZCommandedField
1111- //
1112- this->ZCommandedField->Enabled = false;
1113- this->ZCommandedField->Location = System::Drawing::Point(535, 81);
1114- this->ZCommandedField->Name = S"ZCommandedField";
1115- this->ZCommandedField->Size = System::Drawing::Size(128, 20);
1116- this->ZCommandedField->TabIndex = 29;
1117- this->ZCommandedField->Text = S"0.000000";
1118- this->ZCommandedField->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
1119- //
1120- // YCommandedField
1121- //
1122- this->YCommandedField->Enabled = false;
1123- this->YCommandedField->Location = System::Drawing::Point(535, 56);
1124- this->YCommandedField->Name = S"YCommandedField";
1125- this->YCommandedField->Size = System::Drawing::Size(128, 20);
1126- this->YCommandedField->TabIndex = 28;
1127- this->YCommandedField->Text = S"0.000000";
1128- this->YCommandedField->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
1129- //
1130- // XCommandedField
1131- //
1132- this->XCommandedField->Enabled = false;
1133- this->XCommandedField->Location = System::Drawing::Point(535, 30);
1134- this->XCommandedField->Name = S"XCommandedField";
1135- this->XCommandedField->Size = System::Drawing::Size(128, 20);
1136- this->XCommandedField->TabIndex = 27;
1137- this->XCommandedField->Text = S"0.000000";
1138- this->XCommandedField->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
1139- //
1140- // PosDisplayThread
1141- //
1142- this->PosDisplayThread->WorkerReportsProgress = true;
1143- this->PosDisplayThread->DoWork += new System::ComponentModel::DoWorkEventHandler(this, &Form1::PosDisplayThread_DoWork);
1144- this->PosDisplayThread->ProgressChanged += new System::ComponentModel::ProgressChangedEventHandler(this, &Form1::PosDisplayThread_ProgressChanged);
1145- //
1146- // panel3
1147- //
1148- this->panel3->Controls->Add(this->InitButton);
1149- this->panel3->Location = System::Drawing::Point(9, 7);
1150- this->panel3->Name = S"panel3";
1151- this->panel3->Size = System::Drawing::Size(887, 50);
1152- this->panel3->TabIndex = 43;
1153- //
1154- // panel4
1155- //
1156- this->panel4->Controls->Add(this->ExecutePathLabel);
1157- this->panel4->Controls->Add(this->LoadFileButton);
1158- this->panel4->Controls->Add(this->ExecuteButton);
1159- this->panel4->Location = System::Drawing::Point(9, 317);
1160- this->panel4->Name = S"panel4";
1161- this->panel4->Size = System::Drawing::Size(717, 41);
1162- this->panel4->TabIndex = 44;
1163- //
1164- // fs
1165- //
1166- this->fs->Controls->Add(this->ExitButton);
1167- this->fs->Controls->Add(this->RedoPathButton);
1168- this->fs->Location = System::Drawing::Point(732, 317);
1169- this->fs->Name = S"fs";
1170- this->fs->Size = System::Drawing::Size(164, 139);
1171- this->fs->TabIndex = 45;
1172- //
1173- // openFileDialog1
1174- //
1175- this->openFileDialog1->FileName = S"openFileDialog1";
1176- this->openFileDialog1->InitialDirectory = S"C:\\Documents and Settings\\FabAdmin\\Desktop\\SVN- FAB@Home.org\\software\\projects\\printers\\fabathome-model2\\Fab@Home Interpreter\\Printers";
1177- //
1178- // Form1
1179- //
1180- this->AutoScaleBaseSize = System::Drawing::Size(5, 13);
1181- this->ClientSize = System::Drawing::Size(904, 465);
1182- this->Controls->Add(this->fs);
1183- this->Controls->Add(this->panel4);
1184- this->Controls->Add(this->panel3);
1185- this->Controls->Add(this->panel2);
1186- this->Controls->Add(this->panel1);
1187- this->Name = S"Form1";
1188- this->StartPosition = System::Windows::Forms::FormStartPosition::CenterScreen;
1189- this->Text = S"Fab@Home Interpreter";
1190- this->Closing += new System::ComponentModel::CancelEventHandler(this, &Form1::Form1_Closing);
1191- this->panel1->ResumeLayout(false);
1192- this->panel2->ResumeLayout(false);
1193- this->panel2->PerformLayout();
1194- this->panel3->ResumeLayout(false);
1195- this->panel4->ResumeLayout(false);
1196- this->panel4->PerformLayout();
1197- this->fs->ResumeLayout(false);
1198- this->ResumeLayout(false);
1199+ this->components = (new System::ComponentModel::Container());
1200+ this->InitButton = (new System::Windows::Forms::Button());
1201+ this->MoveButton = (new System::Windows::Forms::Button());
1202+ this->ExitButton = (new System::Windows::Forms::Button());
1203+ this->XLabel = (new System::Windows::Forms::Label());
1204+ this->YLabel = (new System::Windows::Forms::Label());
1205+ this->ZLabel = (new System::Windows::Forms::Label());
1206+ this->XDisplay = (new System::Windows::Forms::TextBox());
1207+ this->YDisplay = (new System::Windows::Forms::TextBox());
1208+ this->ZDisplay = (new System::Windows::Forms::TextBox());
1209+ this->ExecuteButton = (new System::Windows::Forms::Button());
1210+ this->ResetPosButton = (new System::Windows::Forms::Button());
1211+ this->LoadFileButton = (new System::Windows::Forms::Button());
1212+ this->ExecutePathLabel = (new System::Windows::Forms::TextBox());
1213+ this->bayVelocity0 = (new System::Windows::Forms::TextBox());
1214+ this->label4 = (new System::Windows::Forms::Label());
1215+ this->bayVelocity1 = (new System::Windows::Forms::TextBox());
1216+ this->bayScroll1 = (new System::Windows::Forms::VScrollBar());
1217+ this->bayScroll0 = (new System::Windows::Forms::VScrollBar());
1218+ this->bayLabel1 = (new System::Windows::Forms::Label());
1219+ this->bayLabel0 = (new System::Windows::Forms::Label());
1220+ this->bayCommandedPosition1 = (new System::Windows::Forms::TextBox());
1221+ this->bayCommandedPosition0 = (new System::Windows::Forms::TextBox());
1222+ this->FabricationThread = (new System::ComponentModel::BackgroundWorker());
1223+ this->ForceStopButton = (new System::Windows::Forms::Button());
1224+ this->panel1 = (new System::Windows::Forms::Panel());
1225+ this->PathProgressBar = (new System::Windows::Forms::ProgressBar());
1226+ this->CancelFabButton = (new System::Windows::Forms::Button());
1227+ this->PauseFabButton = (new System::Windows::Forms::Button());
1228+ this->RedoPathButton = (new System::Windows::Forms::Button());
1229+ this->Timer = (new System::Windows::Forms::Timer(this->components));
1230+ this->panel2 = (new System::Windows::Forms::Panel());
1231+ this->bayMaterialCalibration2 = (new System::Windows::Forms::ComboBox());
1232+ this->bayAcceleration2 = (new System::Windows::Forms::TextBox());
1233+ this->bayVelocity2 = (new System::Windows::Forms::TextBox());
1234+ this->bayMotorPosition2 = (new System::Windows::Forms::TextBox());
1235+ this->bayPositionIncrement2 = (new System::Windows::Forms::TextBox());
1236+ this->bayScroll2 = (new System::Windows::Forms::VScrollBar());
1237+ this->bayCommandedPosition2 = (new System::Windows::Forms::TextBox());
1238+ this->bayLabel2 = (new System::Windows::Forms::Label());
1239+ this->label5 = (new System::Windows::Forms::Label());
1240+ this->bayMaterialCalibration1 = (new System::Windows::Forms::ComboBox());
1241+ this->bayMaterialCalibration0 = (new System::Windows::Forms::ComboBox());
1242+ this->XAccelerationField = (new System::Windows::Forms::TextBox());
1243+ this->YAccelerationField = (new System::Windows::Forms::TextBox());
1244+ this->ZAccelerationField = (new System::Windows::Forms::TextBox());
1245+ this->bayAcceleration1 = (new System::Windows::Forms::TextBox());
1246+ this->bayAcceleration0 = (new System::Windows::Forms::TextBox());
1247+ this->label1 = (new System::Windows::Forms::Label());
1248+ this->XVelocityField = (new System::Windows::Forms::TextBox());
1249+ this->YVelocityField = (new System::Windows::Forms::TextBox());
1250+ this->ZVelocityField = (new System::Windows::Forms::TextBox());
1251+ this->bayMotorPosition1 = (new System::Windows::Forms::TextBox());
1252+ this->bayMotorPosition0 = (new System::Windows::Forms::TextBox());
1253+ this->bayPositionIncrement1 = (new System::Windows::Forms::TextBox());
1254+ this->bayPositionIncrement0 = (new System::Windows::Forms::TextBox());
1255+ this->zScroll = (new System::Windows::Forms::VScrollBar());
1256+ this->yScroll = (new System::Windows::Forms::VScrollBar());
1257+ this->xScroll = (new System::Windows::Forms::VScrollBar());
1258+ this->CommandedLabel = (new System::Windows::Forms::Label());
1259+ this->RealTimeLabel = (new System::Windows::Forms::Label());
1260+ this->ZIncrementField = (new System::Windows::Forms::TextBox());
1261+ this->YIncrementField = (new System::Windows::Forms::TextBox());
1262+ this->XIncrementField = (new System::Windows::Forms::TextBox());
1263+ this->label2 = (new System::Windows::Forms::Label());
1264+ this->IncrementLabel = (new System::Windows::Forms::Label());
1265+ this->ZCommandedField = (new System::Windows::Forms::TextBox());
1266+ this->YCommandedField = (new System::Windows::Forms::TextBox());
1267+ this->XCommandedField = (new System::Windows::Forms::TextBox());
1268+ this->PosDisplayThread = (new System::ComponentModel::BackgroundWorker());
1269+ this->panel3 = (new System::Windows::Forms::Panel());
1270+ this->LoadPreviousConfig = (new System::Windows::Forms::Button());
1271+ this->panel4 = (new System::Windows::Forms::Panel());
1272+ this->fs = (new System::Windows::Forms::Panel());
1273+ this->openFileDialog1 = (new System::Windows::Forms::OpenFileDialog());
1274+ this->panel1->SuspendLayout();
1275+ this->panel2->SuspendLayout();
1276+ this->panel3->SuspendLayout();
1277+ this->panel4->SuspendLayout();
1278+ this->fs->SuspendLayout();
1279+ this->SuspendLayout();
1280+ //
1281+ // InitButton
1282+ //
1283+ this->InitButton->Font = (new System::Drawing::Font(S"Microsoft Sans Serif", 14.25F, System::Drawing::FontStyle::Bold, System::Drawing::GraphicsUnit::Point,
1284+ (System::Byte)0));
1285+ this->InitButton->Location = System::Drawing::Point(229, 1);
1286+ this->InitButton->Name = S"InitButton";
1287+ this->InitButton->Size = System::Drawing::Size(218, 50);
1288+ this->InitButton->TabIndex = 0;
1289+ this->InitButton->Text = S"Load New Config";
1290+ this->InitButton->Click += new System::EventHandler(this, &Form1::InitButton_Click);
1291+ //
1292+ // MoveButton
1293+ //
1294+ this->MoveButton->Enabled = false;
1295+ this->MoveButton->Font = (new System::Drawing::Font(S"Microsoft Sans Serif", 14.25F, System::Drawing::FontStyle::Bold, System::Drawing::GraphicsUnit::Point,
1296+ (System::Byte)0));
1297+ this->MoveButton->Location = System::Drawing::Point(307, 184);
1298+ this->MoveButton->Name = S"MoveButton";
1299+ this->MoveButton->Size = System::Drawing::Size(201, 48);
1300+ this->MoveButton->TabIndex = 3;
1301+ this->MoveButton->Text = S"Move To Position ";
1302+ this->MoveButton->Click += new System::EventHandler(this, &Form1::MoveButton_Click);
1303+ //
1304+ // ExitButton
1305+ //
1306+ this->ExitButton->Font = (new System::Drawing::Font(S"Microsoft Sans Serif", 14.25F, System::Drawing::FontStyle::Bold, System::Drawing::GraphicsUnit::Point,
1307+ (System::Byte)0));
1308+ this->ExitButton->Location = System::Drawing::Point(0, 69);
1309+ this->ExitButton->Name = S"ExitButton";
1310+ this->ExitButton->Size = System::Drawing::Size(164, 70);
1311+ this->ExitButton->TabIndex = 5;
1312+ this->ExitButton->Text = S"Exit";
1313+ this->ExitButton->Click += new System::EventHandler(this, &Form1::ExitButton_Click);
1314+ //
1315+ // XLabel
1316+ //
1317+ this->XLabel->Location = System::Drawing::Point(8, 31);
1318+ this->XLabel->Name = S"XLabel";
1319+ this->XLabel->Size = System::Drawing::Size(63, 16);
1320+ this->XLabel->TabIndex = 7;
1321+ this->XLabel->Text = S"Not Loaded";
1322+ this->XLabel->TextAlign = System::Drawing::ContentAlignment::MiddleRight;
1323+ //
1324+ // YLabel
1325+ //
1326+ this->YLabel->Location = System::Drawing::Point(8, 57);
1327+ this->YLabel->Name = S"YLabel";
1328+ this->YLabel->Size = System::Drawing::Size(63, 16);
1329+ this->YLabel->TabIndex = 8;
1330+ this->YLabel->Text = S"Not Loaded";
1331+ this->YLabel->TextAlign = System::Drawing::ContentAlignment::MiddleRight;
1332+ //
1333+ // ZLabel
1334+ //
1335+ this->ZLabel->Location = System::Drawing::Point(8, 82);
1336+ this->ZLabel->Name = S"ZLabel";
1337+ this->ZLabel->Size = System::Drawing::Size(63, 16);
1338+ this->ZLabel->TabIndex = 11;
1339+ this->ZLabel->Text = S"Not Loaded";
1340+ this->ZLabel->TextAlign = System::Drawing::ContentAlignment::MiddleRight;
1341+ //
1342+ // XDisplay
1343+ //
1344+ this->XDisplay->Enabled = false;
1345+ this->XDisplay->Location = System::Drawing::Point(429, 30);
1346+ this->XDisplay->Name = S"XDisplay";
1347+ this->XDisplay->ReadOnly = true;
1348+ this->XDisplay->Size = System::Drawing::Size(100, 20);
1349+ this->XDisplay->TabIndex = 13;
1350+ this->XDisplay->Text = S"0.000000";
1351+ this->XDisplay->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
1352+ //
1353+ // YDisplay
1354+ //
1355+ this->YDisplay->Enabled = false;
1356+ this->YDisplay->Location = System::Drawing::Point(429, 56);
1357+ this->YDisplay->Name = S"YDisplay";
1358+ this->YDisplay->ReadOnly = true;
1359+ this->YDisplay->Size = System::Drawing::Size(100, 20);
1360+ this->YDisplay->TabIndex = 14;
1361+ this->YDisplay->Text = S"0.000000";
1362+ this->YDisplay->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
1363+ //
1364+ // ZDisplay
1365+ //
1366+ this->ZDisplay->Enabled = false;
1367+ this->ZDisplay->Location = System::Drawing::Point(429, 83);
1368+ this->ZDisplay->Name = S"ZDisplay";
1369+ this->ZDisplay->ReadOnly = true;
1370+ this->ZDisplay->Size = System::Drawing::Size(100, 20);
1371+ this->ZDisplay->TabIndex = 17;
1372+ this->ZDisplay->Text = S"0.000000";
1373+ this->ZDisplay->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
1374+ //
1375+ // ExecuteButton
1376+ //
1377+ this->ExecuteButton->Enabled = false;
1378+ this->ExecuteButton->Font = (new System::Drawing::Font(S"Microsoft Sans Serif", 14.25F, System::Drawing::FontStyle::Bold, System::Drawing::GraphicsUnit::Point,
1379+ (System::Byte)0));
1380+ this->ExecuteButton->Location = System::Drawing::Point(123, 0);
1381+ this->ExecuteButton->Name = S"ExecuteButton";
1382+ this->ExecuteButton->Size = System::Drawing::Size(117, 40);
1383+ this->ExecuteButton->TabIndex = 19;
1384+ this->ExecuteButton->Text = S"Execute";
1385+ this->ExecuteButton->Click += new System::EventHandler(this, &Form1::ExecuteButton_Click);
1386+ //
1387+ // ResetPosButton
1388+ //
1389+ this->ResetPosButton->Enabled = false;
1390+ this->ResetPosButton->Font = (new System::Drawing::Font(S"Microsoft Sans Serif", 14.25F, System::Drawing::FontStyle::Bold, System::Drawing::GraphicsUnit::Point,
1391+ (System::Byte)0));
1392+ this->ResetPosButton->Location = System::Drawing::Point(514, 184);
1393+ this->ResetPosButton->Name = S"ResetPosButton";
1394+ this->ResetPosButton->Size = System::Drawing::Size(168, 48);
1395+ this->ResetPosButton->TabIndex = 20;
1396+ this->ResetPosButton->Text = S"Reset Position";
1397+ this->ResetPosButton->Click += new System::EventHandler(this, &Form1::ResetPosButton_Click);
1398+ //
1399+ // LoadFileButton
1400+ //
1401+ this->LoadFileButton->Enabled = false;
1402+ this->LoadFileButton->Font = (new System::Drawing::Font(S"Microsoft Sans Serif", 14.25F, System::Drawing::FontStyle::Bold, System::Drawing::GraphicsUnit::Point,
1403+ (System::Byte)0));
1404+ this->LoadFileButton->Location = System::Drawing::Point(0, 0);
1405+ this->LoadFileButton->Name = S"LoadFileButton";
1406+ this->LoadFileButton->Size = System::Drawing::Size(117, 41);
1407+ this->LoadFileButton->TabIndex = 21;
1408+ this->LoadFileButton->Text = S"Load";
1409+ this->LoadFileButton->Click += new System::EventHandler(this, &Form1::LoadFileButton_Click);
1410+ //
1411+ // ExecutePathLabel
1412+ //
1413+ this->ExecutePathLabel->Location = System::Drawing::Point(247, 10);
1414+ this->ExecutePathLabel->Name = S"ExecutePathLabel";
1415+ this->ExecutePathLabel->ReadOnly = true;
1416+ this->ExecutePathLabel->Size = System::Drawing::Size(458, 20);
1417+ this->ExecutePathLabel->TabIndex = 24;
1418+ //
1419+ // bayVelocity0
1420+ //
1421+ this->bayVelocity0->Enabled = false;
1422+ this->bayVelocity0->Location = System::Drawing::Point(77, 106);
1423+ this->bayVelocity0->Name = S"bayVelocity0";
1424+ this->bayVelocity0->Size = System::Drawing::Size(100, 20);
1425+ this->bayVelocity0->TabIndex = 28;
1426+ this->bayVelocity0->Text = S"1.000000";
1427+ this->bayVelocity0->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
1428+ //
1429+ // label4
1430+ //
1431+ this->label4->AutoSize = true;
1432+ this->label4->Location = System::Drawing::Point(74, 12);
1433+ this->label4->Name = S"label4";
1434+ this->label4->Size = System::Drawing::Size(79, 13);
1435+ this->label4->TabIndex = 47;
1436+ this->label4->Text = S"Velocity (mm/s)";
1437+ //
1438+ // bayVelocity1
1439+ //
1440+ this->bayVelocity1->Enabled = false;
1441+ this->bayVelocity1->Location = System::Drawing::Point(77, 132);
1442+ this->bayVelocity1->Name = S"bayVelocity1";
1443+ this->bayVelocity1->Size = System::Drawing::Size(100, 20);
1444+ this->bayVelocity1->TabIndex = 32;
1445+ this->bayVelocity1->Text = S"1.000000";
1446+ this->bayVelocity1->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
1447+ //
1448+ // bayScroll1
1449+ //
1450+ this->bayScroll1->AccessibleRole = System::Windows::Forms::AccessibleRole::ScrollBar;
1451+ this->bayScroll1->Enabled = false;
1452+ this->bayScroll1->LargeChange = 1;
1453+ this->bayScroll1->Location = System::Drawing::Point(663, 132);
1454+ this->bayScroll1->Maximum = 100000000;
1455+ this->bayScroll1->Minimum = -100000000;
1456+ this->bayScroll1->Name = S"bayScroll1";
1457+ this->bayScroll1->Size = System::Drawing::Size(19, 20);
1458+ this->bayScroll1->TabIndex = 46;
1459+ this->bayScroll1->Scroll += new System::Windows::Forms::ScrollEventHandler(this, &Form1::Tool2Scroll_Scroll);
1460+ //
1461+ // bayScroll0
1462+ //
1463+ this->bayScroll0->AccessibleRole = System::Windows::Forms::AccessibleRole::ScrollBar;
1464+ this->bayScroll0->Enabled = false;
1465+ this->bayScroll0->LargeChange = 1;
1466+ this->bayScroll0->Location = System::Drawing::Point(663, 106);
1467+ this->bayScroll0->Maximum = 100000000;
1468+ this->bayScroll0->Minimum = -100000000;
1469+ this->bayScroll0->Name = S"bayScroll0";
1470+ this->bayScroll0->Size = System::Drawing::Size(19, 20);
1471+ this->bayScroll0->TabIndex = 45;
1472+ this->bayScroll0->Scroll += new System::Windows::Forms::ScrollEventHandler(this, &Form1::Tool1Scroll_Scroll);
1473+ //
1474+ // bayLabel1
1475+ //
1476+ this->bayLabel1->Anchor = System::Windows::Forms::AnchorStyles::Right;
1477+ this->bayLabel1->Location = System::Drawing::Point(8, 133);
1478+ this->bayLabel1->Name = S"bayLabel1";
1479+ this->bayLabel1->Size = System::Drawing::Size(63, 16);
1480+ this->bayLabel1->TabIndex = 36;
1481+ this->bayLabel1->Text = S"Not Loaded";
1482+ this->bayLabel1->TextAlign = System::Drawing::ContentAlignment::MiddleRight;
1483+ //
1484+ // bayLabel0
1485+ //
1486+ this->bayLabel0->Anchor = System::Windows::Forms::AnchorStyles::Right;
1487+ this->bayLabel0->Location = System::Drawing::Point(8, 107);
1488+ this->bayLabel0->Name = S"bayLabel0";
1489+ this->bayLabel0->Size = System::Drawing::Size(63, 16);
1490+ this->bayLabel0->TabIndex = 35;
1491+ this->bayLabel0->Text = S"Not Loaded";
1492+ this->bayLabel0->TextAlign = System::Drawing::ContentAlignment::MiddleRight;
1493+ //
1494+ // bayCommandedPosition1
1495+ //
1496+ this->bayCommandedPosition1->Enabled = false;
1497+ this->bayCommandedPosition1->Location = System::Drawing::Point(535, 132);
1498+ this->bayCommandedPosition1->Name = S"bayCommandedPosition1";
1499+ this->bayCommandedPosition1->Size = System::Drawing::Size(128, 20);
1500+ this->bayCommandedPosition1->TabIndex = 34;
1501+ this->bayCommandedPosition1->Text = S"0.000000";
1502+ this->bayCommandedPosition1->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
1503+ //
1504+ // bayCommandedPosition0
1505+ //
1506+ this->bayCommandedPosition0->Enabled = false;
1507+ this->bayCommandedPosition0->Location = System::Drawing::Point(535, 106);
1508+ this->bayCommandedPosition0->Name = S"bayCommandedPosition0";
1509+ this->bayCommandedPosition0->Size = System::Drawing::Size(128, 20);
1510+ this->bayCommandedPosition0->TabIndex = 33;
1511+ this->bayCommandedPosition0->Text = S"0.000000";
1512+ this->bayCommandedPosition0->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
1513+ //
1514+ // FabricationThread
1515+ //
1516+ this->FabricationThread->WorkerReportsProgress = true;
1517+ this->FabricationThread->DoWork += new System::ComponentModel::DoWorkEventHandler(this, &Form1::FabricationThread_DoWork);
1518+ this->FabricationThread->RunWorkerCompleted += new System::ComponentModel::RunWorkerCompletedEventHandler(this, &Form1::FabricationThread_WorkerCompleted);
1519+ this->FabricationThread->ProgressChanged += new System::ComponentModel::ProgressChangedEventHandler(this, &Form1::FabricationThread_ProgressChanged);
1520+ //
1521+ // ForceStopButton
1522+ //
1523+ this->ForceStopButton->Enabled = false;
1524+ this->ForceStopButton->Font = (new System::Drawing::Font(S"Microsoft Sans Serif", 14.25F, System::Drawing::FontStyle::Bold, System::Drawing::GraphicsUnit::Point,
1525+ (System::Byte)0));
1526+ this->ForceStopButton->Location = System::Drawing::Point(473, 3);
1527+ this->ForceStopButton->Name = S"ForceStopButton";
1528+ this->ForceStopButton->Size = System::Drawing::Size(231, 46);
1529+ this->ForceStopButton->TabIndex = 34;
1530+ this->ForceStopButton->Text = S"Force Stop";
1531+ this->ForceStopButton->UseVisualStyleBackColor = true;
1532+ this->ForceStopButton->Click += new System::EventHandler(this, &Form1::ForceStopButton_Click);
1533+ //
1534+ // panel1
1535+ //
1536+ this->panel1->Controls->Add(this->PathProgressBar);
1537+ this->panel1->Controls->Add(this->CancelFabButton);
1538+ this->panel1->Controls->Add(this->PauseFabButton);
1539+ this->panel1->Controls->Add(this->ForceStopButton);
1540+ this->panel1->Location = System::Drawing::Point(9, 364);
1541+ this->panel1->Name = S"panel1";
1542+ this->panel1->Size = System::Drawing::Size(717, 92);
1543+ this->panel1->TabIndex = 37;
1544+ //
1545+ // PathProgressBar
1546+ //
1547+ this->PathProgressBar->Location = System::Drawing::Point(5, 55);
1548+ this->PathProgressBar->Maximum = 1000;
1549+ this->PathProgressBar->Name = S"PathProgressBar";
1550+ this->PathProgressBar->Size = System::Drawing::Size(697, 23);
1551+ this->PathProgressBar->Style = System::Windows::Forms::ProgressBarStyle::Continuous;
1552+ this->PathProgressBar->TabIndex = 39;
1553+ //
1554+ // CancelFabButton
1555+ //
1556+ this->CancelFabButton->Enabled = false;
1557+ this->CancelFabButton->Font = (new System::Drawing::Font(S"Microsoft Sans Serif", 14.25F, System::Drawing::FontStyle::Bold, System::Drawing::GraphicsUnit::Point,
1558+ (System::Byte)0));
1559+ this->CancelFabButton->Location = System::Drawing::Point(246, 3);
1560+ this->CancelFabButton->Name = S"CancelFabButton";
1561+ this->CancelFabButton->Size = System::Drawing::Size(219, 46);
1562+ this->CancelFabButton->TabIndex = 39;
1563+ this->CancelFabButton->Text = S"Cancel";
1564+ this->CancelFabButton->UseVisualStyleBackColor = true;
1565+ this->CancelFabButton->Click += new System::EventHandler(this, &Form1::CancelFabButton_Click);
1566+ //
1567+ // PauseFabButton
1568+ //
1569+ this->PauseFabButton->Enabled = false;
1570+ this->PauseFabButton->Font = (new System::Drawing::Font(S"Microsoft Sans Serif", 14.25F, System::Drawing::FontStyle::Bold, System::Drawing::GraphicsUnit::Point,
1571+ (System::Byte)0));
1572+ this->PauseFabButton->Location = System::Drawing::Point(5, 3);
1573+ this->PauseFabButton->Name = S"PauseFabButton";
1574+ this->PauseFabButton->Size = System::Drawing::Size(235, 46);
1575+ this->PauseFabButton->TabIndex = 38;
1576+ this->PauseFabButton->Text = S"Pause";
1577+ this->PauseFabButton->UseVisualStyleBackColor = true;
1578+ this->PauseFabButton->Click += new System::EventHandler(this, &Form1::PauseFabButton_Click);
1579+ //
1580+ // RedoPathButton
1581+ //
1582+ this->RedoPathButton->Enabled = false;
1583+ this->RedoPathButton->Font = (new System::Drawing::Font(S"Microsoft Sans Serif", 14.25F, System::Drawing::FontStyle::Bold, System::Drawing::GraphicsUnit::Point,
1584+ (System::Byte)0));
1585+ this->RedoPathButton->Location = System::Drawing::Point(0, 0);
1586+ this->RedoPathButton->Name = S"RedoPathButton";
1587+ this->RedoPathButton->Size = System::Drawing::Size(164, 63);
1588+ this->RedoPathButton->TabIndex = 38;
1589+ this->RedoPathButton->Text = S"Redo Path";
1590+ this->RedoPathButton->UseVisualStyleBackColor = true;
1591+ this->RedoPathButton->Click += new System::EventHandler(this, &Form1::RedoPathButton_Click);
1592+ //
1593+ // Timer
1594+ //
1595+ this->Timer->Tick += new System::EventHandler(this, &Form1::Timer_Tick);
1596+ //
1597+ // panel2
1598+ //
1599+ this->panel2->Controls->Add(this->bayMaterialCalibration2);
1600+ this->panel2->Controls->Add(this->bayAcceleration2);
1601+ this->panel2->Controls->Add(this->bayVelocity2);
1602+ this->panel2->Controls->Add(this->bayMotorPosition2);
1603+ this->panel2->Controls->Add(this->bayPositionIncrement2);
1604+ this->panel2->Controls->Add(this->ResetPosButton);
1605+ this->panel2->Controls->Add(this->MoveButton);
1606+ this->panel2->Controls->Add(this->bayScroll2);
1607+ this->panel2->Controls->Add(this->bayCommandedPosition2);
1608+ this->panel2->Controls->Add(this->bayLabel2);
1609+ this->panel2->Controls->Add(this->label5);
1610+ this->panel2->Controls->Add(this->bayMaterialCalibration1);
1611+ this->panel2->Controls->Add(this->bayMaterialCalibration0);
1612+ this->panel2->Controls->Add(this->XAccelerationField);
1613+ this->panel2->Controls->Add(this->YAccelerationField);
1614+ this->panel2->Controls->Add(this->ZAccelerationField);
1615+ this->panel2->Controls->Add(this->bayAcceleration1);
1616+ this->panel2->Controls->Add(this->bayAcceleration0);
1617+ this->panel2->Controls->Add(this->label1);
1618+ this->panel2->Controls->Add(this->XVelocityField);
1619+ this->panel2->Controls->Add(this->YVelocityField);
1620+ this->panel2->Controls->Add(this->ZVelocityField);
1621+ this->panel2->Controls->Add(this->bayVelocity1);
1622+ this->panel2->Controls->Add(this->label4);
1623+ this->panel2->Controls->Add(this->bayVelocity0);
1624+ this->panel2->Controls->Add(this->bayMotorPosition1);
1625+ this->panel2->Controls->Add(this->bayMotorPosition0);
1626+ this->panel2->Controls->Add(this->bayPositionIncrement1);
1627+ this->panel2->Controls->Add(this->bayPositionIncrement0);
1628+ this->panel2->Controls->Add(this->bayScroll1);
1629+ this->panel2->Controls->Add(this->zScroll);
1630+ this->panel2->Controls->Add(this->bayScroll0);
1631+ this->panel2->Controls->Add(this->yScroll);
1632+ this->panel2->Controls->Add(this->bayCommandedPosition1);
1633+ this->panel2->Controls->Add(this->xScroll);
1634+ this->panel2->Controls->Add(this->bayCommandedPosition0);
1635+ this->panel2->Controls->Add(this->bayLabel1);
1636+ this->panel2->Controls->Add(this->CommandedLabel);
1637+ this->panel2->Controls->Add(this->bayLabel0);
1638+ this->panel2->Controls->Add(this->RealTimeLabel);
1639+ this->panel2->Controls->Add(this->ZIncrementField);
1640+ this->panel2->Controls->Add(this->YIncrementField);
1641+ this->panel2->Controls->Add(this->XIncrementField);
1642+ this->panel2->Controls->Add(this->label2);
1643+ this->panel2->Controls->Add(this->IncrementLabel);
1644+ this->panel2->Controls->Add(this->ZCommandedField);
1645+ this->panel2->Controls->Add(this->YCommandedField);
1646+ this->panel2->Controls->Add(this->XCommandedField);
1647+ this->panel2->Controls->Add(this->XLabel);
1648+ this->panel2->Controls->Add(this->YLabel);
1649+ this->panel2->Controls->Add(this->ZLabel);
1650+ this->panel2->Controls->Add(this->XDisplay);
1651+ this->panel2->Controls->Add(this->YDisplay);
1652+ this->panel2->Controls->Add(this->ZDisplay);
1653+ this->panel2->Location = System::Drawing::Point(9, 63);
1654+ this->panel2->Name = S"panel2";
1655+ this->panel2->Size = System::Drawing::Size(887, 248);
1656+ this->panel2->TabIndex = 42;
1657+ //
1658+ // bayMaterialCalibration2
1659+ //
1660+ this->bayMaterialCalibration2->DropDownStyle = System::Windows::Forms::ComboBoxStyle::DropDownList;
1661+ this->bayMaterialCalibration2->Enabled = false;
1662+ this->bayMaterialCalibration2->FormattingEnabled = true;
1663+ this->bayMaterialCalibration2->Location = System::Drawing::Point(700, 158);
1664+ this->bayMaterialCalibration2->Name = S"bayMaterialCalibration2";
1665+ this->bayMaterialCalibration2->Size = System::Drawing::Size(182, 21);
1666+ this->bayMaterialCalibration2->TabIndex = 68;
1667+ this->bayMaterialCalibration2->SelectedIndexChanged += new System::EventHandler(this, &Form1::bayMaterialCalibration2_SelectedIndexChanged);
1668+ //
1669+ // bayAcceleration2
1670+ //
1671+ this->bayAcceleration2->Enabled = false;
1672+ this->bayAcceleration2->Location = System::Drawing::Point(183, 158);
1673+ this->bayAcceleration2->Name = S"bayAcceleration2";
1674+ this->bayAcceleration2->Size = System::Drawing::Size(108, 20);
1675+ this->bayAcceleration2->TabIndex = 67;
1676+ this->bayAcceleration2->Text = S"100.000000";
1677+ this->bayAcceleration2->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
1678+ //
1679+ // bayVelocity2
1680+ //
1681+ this->bayVelocity2->Enabled = false;
1682+ this->bayVelocity2->Location = System::Drawing::Point(77, 158);
1683+ this->bayVelocity2->Name = S"bayVelocity2";
1684+ this->bayVelocity2->Size = System::Drawing::Size(100, 20);
1685+ this->bayVelocity2->TabIndex = 61;
1686+ this->bayVelocity2->Text = S"1.000000";
1687+ this->bayVelocity2->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
1688+ //
1689+ // bayMotorPosition2
1690+ //
1691+ this->bayMotorPosition2->Enabled = false;
1692+ this->bayMotorPosition2->Location = System::Drawing::Point(429, 158);
1693+ this->bayMotorPosition2->Name = S"bayMotorPosition2";
1694+ this->bayMotorPosition2->ReadOnly = true;
1695+ this->bayMotorPosition2->Size = System::Drawing::Size(100, 20);
1696+ this->bayMotorPosition2->TabIndex = 65;
1697+ this->bayMotorPosition2->Text = S"0.000000";
1698+ this->bayMotorPosition2->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
1699+ //
1700+ // bayPositionIncrement2
1701+ //
1702+ this->bayPositionIncrement2->Enabled = false;
1703+ this->bayPositionIncrement2->Location = System::Drawing::Point(307, 158);
1704+ this->bayPositionIncrement2->Name = S"bayPositionIncrement2";
1705+ this->bayPositionIncrement2->Size = System::Drawing::Size(116, 20);
1706+ this->bayPositionIncrement2->TabIndex = 66;
1707+ this->bayPositionIncrement2->Text = S"0.100000";
1708+ this->bayPositionIncrement2->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
1709+ //
1710+ // bayScroll2
1711+ //
1712+ this->bayScroll2->AccessibleRole = System::Windows::Forms::AccessibleRole::ScrollBar;
1713+ this->bayScroll2->Enabled = false;
1714+ this->bayScroll2->LargeChange = 1;
1715+ this->bayScroll2->Location = System::Drawing::Point(663, 158);
1716+ this->bayScroll2->Maximum = 100000000;
1717+ this->bayScroll2->Minimum = -100000000;
1718+ this->bayScroll2->Name = S"bayScroll2";
1719+ this->bayScroll2->Size = System::Drawing::Size(19, 20);
1720+ this->bayScroll2->TabIndex = 64;
1721+ this->bayScroll2->Scroll += new System::Windows::Forms::ScrollEventHandler(this, &Form1::bayScroll2_Scroll);
1722+ //
1723+ // bayCommandedPosition2
1724+ //
1725+ this->bayCommandedPosition2->Enabled = false;
1726+ this->bayCommandedPosition2->Location = System::Drawing::Point(535, 158);
1727+ this->bayCommandedPosition2->Name = S"bayCommandedPosition2";
1728+ this->bayCommandedPosition2->Size = System::Drawing::Size(128, 20);
1729+ this->bayCommandedPosition2->TabIndex = 62;
1730+ this->bayCommandedPosition2->Text = S"0.000000";
1731+ this->bayCommandedPosition2->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
1732+ //
1733+ // bayLabel2
1734+ //
1735+ this->bayLabel2->Anchor = System::Windows::Forms::AnchorStyles::Right;
1736+ this->bayLabel2->Location = System::Drawing::Point(8, 159);
1737+ this->bayLabel2->Name = S"bayLabel2";
1738+ this->bayLabel2->Size = System::Drawing::Size(63, 16);
1739+ this->bayLabel2->TabIndex = 63;
1740+ this->bayLabel2->Text = S"Not Loaded";
1741+ this->bayLabel2->TextAlign = System::Drawing::ContentAlignment::MiddleRight;
1742+ //
1743+ // label5
1744+ //
1745+ this->label5->AutoSize = true;
1746+ this->label5->Location = System::Drawing::Point(697, 12);
1747+ this->label5->Name = S"label5";
1748+ this->label5->Size = System::Drawing::Size(96, 13);
1749+ this->label5->TabIndex = 60;
1750+ this->label5->Text = S"Material Calibration";
1751+ //
1752+ // bayMaterialCalibration1
1753+ //
1754+ this->bayMaterialCalibration1->DropDownStyle = System::Windows::Forms::ComboBoxStyle::DropDownList;
1755+ this->bayMaterialCalibration1->Enabled = false;
1756+ this->bayMaterialCalibration1->FormattingEnabled = true;
1757+ this->bayMaterialCalibration1->Location = System::Drawing::Point(700, 132);
1758+ this->bayMaterialCalibration1->Name = S"bayMaterialCalibration1";
1759+ this->bayMaterialCalibration1->Size = System::Drawing::Size(182, 21);
1760+ this->bayMaterialCalibration1->TabIndex = 59;
1761+ this->bayMaterialCalibration1->SelectedIndexChanged += new System::EventHandler(this, &Form1::bayMaterialCalibration1_SelectedIndexChanged);
1762+ //
1763+ // bayMaterialCalibration0
1764+ //
1765+ this->bayMaterialCalibration0->DropDownStyle = System::Windows::Forms::ComboBoxStyle::DropDownList;
1766+ this->bayMaterialCalibration0->Enabled = false;
1767+ this->bayMaterialCalibration0->FormattingEnabled = true;
1768+ this->bayMaterialCalibration0->Location = System::Drawing::Point(700, 105);
1769+ this->bayMaterialCalibration0->Name = S"bayMaterialCalibration0";
1770+ this->bayMaterialCalibration0->Size = System::Drawing::Size(182, 21);
1771+ this->bayMaterialCalibration0->TabIndex = 58;
1772+ this->bayMaterialCalibration0->SelectedIndexChanged += new System::EventHandler(this, &Form1::bayMaterialCalibration0_SelectedIndexChanged);
1773+ //
1774+ // XAccelerationField
1775+ //
1776+ this->XAccelerationField->Enabled = false;
1777+ this->XAccelerationField->Location = System::Drawing::Point(183, 30);
1778+ this->XAccelerationField->Name = S"XAccelerationField";
1779+ this->XAccelerationField->Size = System::Drawing::Size(108, 20);
1780+ this->XAccelerationField->TabIndex = 57;
1781+ this->XAccelerationField->Text = S"100.000000";
1782+ this->XAccelerationField->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
1783+ //
1784+ // YAccelerationField
1785+ //
1786+ this->YAccelerationField->Enabled = false;
1787+ this->YAccelerationField->Location = System::Drawing::Point(183, 56);
1788+ this->YAccelerationField->Name = S"YAccelerationField";
1789+ this->YAccelerationField->Size = System::Drawing::Size(108, 20);
1790+ this->YAccelerationField->TabIndex = 56;
1791+ this->YAccelerationField->Text = S"100.000000";
1792+ this->YAccelerationField->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
1793+ //
1794+ // ZAccelerationField
1795+ //
1796+ this->ZAccelerationField->Enabled = false;
1797+ this->ZAccelerationField->Location = System::Drawing::Point(183, 81);
1798+ this->ZAccelerationField->Name = S"ZAccelerationField";
1799+ this->ZAccelerationField->Size = System::Drawing::Size(108, 20);
1800+ this->ZAccelerationField->TabIndex = 55;
1801+ this->ZAccelerationField->Text = S"100.000000";
1802+ this->ZAccelerationField->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
1803+ //
1804+ // bayAcceleration1
1805+ //
1806+ this->bayAcceleration1->Enabled = false;
1807+ this->bayAcceleration1->Location = System::Drawing::Point(183, 132);
1808+ this->bayAcceleration1->Name = S"bayAcceleration1";
1809+ this->bayAcceleration1->Size = System::Drawing::Size(108, 20);
1810+ this->bayAcceleration1->TabIndex = 54;
1811+ this->bayAcceleration1->Text = S"100.000000";
1812+ this->bayAcceleration1->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
1813+ //
1814+ // bayAcceleration0
1815+ //
1816+ this->bayAcceleration0->Enabled = false;
1817+ this->bayAcceleration0->Location = System::Drawing::Point(183, 106);
1818+ this->bayAcceleration0->Name = S"bayAcceleration0";
1819+ this->bayAcceleration0->Size = System::Drawing::Size(108, 20);
1820+ this->bayAcceleration0->TabIndex = 53;
1821+ this->bayAcceleration0->Text = S"100.000000";
1822+ this->bayAcceleration0->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
1823+ //
1824+ // label1
1825+ //
1826+ this->label1->AutoSize = true;
1827+ this->label1->Location = System::Drawing::Point(180, 12);
1828+ this->label1->Name = S"label1";
1829+ this->label1->Size = System::Drawing::Size(111, 13);
1830+ this->label1->TabIndex = 52;
1831+ this->label1->Text = S"Acceleration (mm/s/s)";
1832+ //
1833+ // XVelocityField
1834+ //
1835+ this->XVelocityField->Enabled = false;
1836+ this->XVelocityField->Location = System::Drawing::Point(77, 30);
1837+ this->XVelocityField->Name = S"XVelocityField";
1838+ this->XVelocityField->Size = System::Drawing::Size(100, 20);
1839+ this->XVelocityField->TabIndex = 51;
1840+ this->XVelocityField->Text = S"100.000000";
1841+ this->XVelocityField->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
1842+ //
1843+ // YVelocityField
1844+ //
1845+ this->YVelocityField->Enabled = false;
1846+ this->YVelocityField->Location = System::Drawing::Point(77, 56);
1847+ this->YVelocityField->Name = S"YVelocityField";
1848+ this->YVelocityField->Size = System::Drawing::Size(100, 20);
1849+ this->YVelocityField->TabIndex = 50;
1850+ this->YVelocityField->Text = S"100.000000";
1851+ this->YVelocityField->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
1852+ //
1853+ // ZVelocityField
1854+ //
1855+ this->ZVelocityField->Enabled = false;
1856+ this->ZVelocityField->Location = System::Drawing::Point(77, 81);
1857+ this->ZVelocityField->Name = S"ZVelocityField";
1858+ this->ZVelocityField->Size = System::Drawing::Size(100, 20);
1859+ this->ZVelocityField->TabIndex = 49;
1860+ this->ZVelocityField->Text = S"100.000000";
1861+ this->ZVelocityField->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
1862+ //
1863+ // bayMotorPosition1
1864+ //
1865+ this->bayMotorPosition1->Enabled = false;
1866+ this->bayMotorPosition1->Location = System::Drawing::Point(429, 132);
1867+ this->bayMotorPosition1->Name = S"bayMotorPosition1";
1868+ this->bayMotorPosition1->ReadOnly = true;
1869+ this->bayMotorPosition1->Size = System::Drawing::Size(100, 20);
1870+ this->bayMotorPosition1->TabIndex = 47;
1871+ this->bayMotorPosition1->Text = S"0.000000";
1872+ this->bayMotorPosition1->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
1873+ //
1874+ // bayMotorPosition0
1875+ //
1876+ this->bayMotorPosition0->Enabled = false;
1877+ this->bayMotorPosition0->Location = System::Drawing::Point(429, 106);
1878+ this->bayMotorPosition0->Name = S"bayMotorPosition0";
1879+ this->bayMotorPosition0->ReadOnly = true;
1880+ this->bayMotorPosition0->Size = System::Drawing::Size(100, 20);
1881+ this->bayMotorPosition0->TabIndex = 46;
1882+ this->bayMotorPosition0->Text = S"0.000000";
1883+ this->bayMotorPosition0->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
1884+ //
1885+ // bayPositionIncrement1
1886+ //
1887+ this->bayPositionIncrement1->Enabled = false;
1888+ this->bayPositionIncrement1->Location = System::Drawing::Point(307, 132);
1889+ this->bayPositionIncrement1->Name = S"bayPositionIncrement1";
1890+ this->bayPositionIncrement1->Size = System::Drawing::Size(116, 20);
1891+ this->bayPositionIncrement1->TabIndex = 48;
1892+ this->bayPositionIncrement1->Text = S"0.100000";
1893+ this->bayPositionIncrement1->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
1894+ //
1895+ // bayPositionIncrement0
1896+ //
1897+ this->bayPositionIncrement0->Enabled = false;
1898+ this->bayPositionIncrement0->Location = System::Drawing::Point(307, 106);
1899+ this->bayPositionIncrement0->Name = S"bayPositionIncrement0";
1900+ this->bayPositionIncrement0->Size = System::Drawing::Size(116, 20);
1901+ this->bayPositionIncrement0->TabIndex = 47;
1902+ this->bayPositionIncrement0->Text = S"0.100000";
1903+ this->bayPositionIncrement0->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
1904+ //
1905+ // zScroll
1906+ //
1907+ this->zScroll->AccessibleRole = System::Windows::Forms::AccessibleRole::ScrollBar;
1908+ this->zScroll->Enabled = false;
1909+ this->zScroll->LargeChange = 1;
1910+ this->zScroll->Location = System::Drawing::Point(663, 81);
1911+ this->zScroll->Maximum = 100000000;
1912+ this->zScroll->Minimum = -100000000;
1913+ this->zScroll->Name = S"zScroll";
1914+ this->zScroll->Size = System::Drawing::Size(19, 20);
1915+ this->zScroll->TabIndex = 46;
1916+ this->zScroll->Scroll += new System::Windows::Forms::ScrollEventHandler(this, &Form1::ZScroll_Scroll);
1917+ //
1918+ // yScroll
1919+ //
1920+ this->yScroll->AccessibleRole = System::Windows::Forms::AccessibleRole::ScrollBar;
1921+ this->yScroll->Enabled = false;
1922+ this->yScroll->LargeChange = 1;
1923+ this->yScroll->Location = System::Drawing::Point(663, 56);
1924+ this->yScroll->Maximum = 100000000;
1925+ this->yScroll->Minimum = -100000000;
1926+ this->yScroll->Name = S"yScroll";
1927+ this->yScroll->Size = System::Drawing::Size(19, 20);
1928+ this->yScroll->TabIndex = 45;
1929+ this->yScroll->Scroll += new System::Windows::Forms::ScrollEventHandler(this, &Form1::YScroll_Scroll);
1930+ //
1931+ // xScroll
1932+ //
1933+ this->xScroll->AccessibleRole = System::Windows::Forms::AccessibleRole::ScrollBar;
1934+ this->xScroll->Enabled = false;
1935+ this->xScroll->LargeChange = 1;
1936+ this->xScroll->Location = System::Drawing::Point(663, 30);
1937+ this->xScroll->Maximum = 100000000;
1938+ this->xScroll->Minimum = -100000000;
1939+ this->xScroll->Name = S"xScroll";
1940+ this->xScroll->Size = System::Drawing::Size(19, 20);
1941+ this->xScroll->TabIndex = 44;
1942+ this->xScroll->Scroll += new System::Windows::Forms::ScrollEventHandler(this, &Form1::XScroll_Scroll);
1943+ //
1944+ // CommandedLabel
1945+ //
1946+ this->CommandedLabel->AutoSize = true;
1947+ this->CommandedLabel->Location = System::Drawing::Point(532, 12);
1948+ this->CommandedLabel->Name = S"CommandedLabel";
1949+ this->CommandedLabel->Size = System::Drawing::Size(131, 13);
1950+ this->CommandedLabel->TabIndex = 36;
1951+ this->CommandedLabel->Text = S"Commanded Position (mm)";
1952+ //
1953+ // RealTimeLabel
1954+ //
1955+ this->RealTimeLabel->AutoSize = true;
1956+ this->RealTimeLabel->Location = System::Drawing::Point(426, 12);
1957+ this->RealTimeLabel->Name = S"RealTimeLabel";
1958+ this->RealTimeLabel->Size = System::Drawing::Size(99, 13);
1959+ this->RealTimeLabel->TabIndex = 35;
1960+ this->RealTimeLabel->Text = S"Motor Position (mm)";
1961+ //
1962+ // ZIncrementField
1963+ //
1964+ this->ZIncrementField->Enabled = false;
1965+ this->ZIncrementField->Location = System::Drawing::Point(307, 83);
1966+ this->ZIncrementField->Name = S"ZIncrementField";
1967+ this->ZIncrementField->Size = System::Drawing::Size(116, 20);
1968+ this->ZIncrementField->TabIndex = 34;
1969+ this->ZIncrementField->Text = S"0.500000";
1970+ this->ZIncrementField->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
1971+ //
1972+ // YIncrementField
1973+ //
1974+ this->YIncrementField->Enabled = false;
1975+ this->YIncrementField->Location = System::Drawing::Point(307, 56);
1976+ this->YIncrementField->Name = S"YIncrementField";
1977+ this->YIncrementField->Size = System::Drawing::Size(116, 20);
1978+ this->YIncrementField->TabIndex = 33;
1979+ this->YIncrementField->Text = S"1.500000";
1980+ this->YIncrementField->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
1981+ //
1982+ // XIncrementField
1983+ //
1984+ this->XIncrementField->Enabled = false;
1985+ this->XIncrementField->Location = System::Drawing::Point(308, 30);
1986+ this->XIncrementField->Name = S"XIncrementField";
1987+ this->XIncrementField->Size = System::Drawing::Size(115, 20);
1988+ this->XIncrementField->TabIndex = 32;
1989+ this->XIncrementField->Text = S"1.500000";
1990+ this->XIncrementField->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
1991+ //
1992+ // label2
1993+ //
1994+ this->label2->AutoSize = true;
1995+ this->label2->Enabled = false;
1996+ this->label2->Location = System::Drawing::Point(456, 18);
1997+ this->label2->Name = S"label2";
1998+ this->label2->Size = System::Drawing::Size(0, 13);
1999+ this->label2->TabIndex = 31;
2000+ //
2001+ // IncrementLabel
2002+ //
2003+ this->IncrementLabel->AutoSize = true;
2004+ this->IncrementLabel->Location = System::Drawing::Point(304, 12);
2005+ this->IncrementLabel->Name = S"IncrementLabel";
2006+ this->IncrementLabel->Size = System::Drawing::Size(119, 13);
2007+ this->IncrementLabel->TabIndex = 30;
2008+ this->IncrementLabel->Text = S"Position Increment (mm)";
2009+ //
2010+ // ZCommandedField
2011+ //
2012+ this->ZCommandedField->Enabled = false;
2013+ this->ZCommandedField->Location = System::Drawing::Point(535, 81);
2014+ this->ZCommandedField->Name = S"ZCommandedField";
2015+ this->ZCommandedField->Size = System::Drawing::Size(128, 20);
2016+ this->ZCommandedField->TabIndex = 29;
2017+ this->ZCommandedField->Text = S"0.000000";
2018+ this->ZCommandedField->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
2019+ //
2020+ // YCommandedField
2021+ //
2022+ this->YCommandedField->Enabled = false;
2023+ this->YCommandedField->Location = System::Drawing::Point(535, 56);
2024+ this->YCommandedField->Name = S"YCommandedField";
2025+ this->YCommandedField->Size = System::Drawing::Size(128, 20);
2026+ this->YCommandedField->TabIndex = 28;
2027+ this->YCommandedField->Text = S"0.000000";
2028+ this->YCommandedField->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
2029+ //
2030+ // XCommandedField
2031+ //
2032+ this->XCommandedField->Enabled = false;
2033+ this->XCommandedField->Location = System::Drawing::Point(535, 30);
2034+ this->XCommandedField->Name = S"XCommandedField";
2035+ this->XCommandedField->Size = System::Drawing::Size(128, 20);
2036+ this->XCommandedField->TabIndex = 27;
2037+ this->XCommandedField->Text = S"0.000000";
2038+ this->XCommandedField->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
2039+ //
2040+ // PosDisplayThread
2041+ //
2042+ this->PosDisplayThread->WorkerReportsProgress = true;
2043+ this->PosDisplayThread->DoWork += new System::ComponentModel::DoWorkEventHandler(this, &Form1::PosDisplayThread_DoWork);
2044+ this->PosDisplayThread->ProgressChanged += new System::ComponentModel::ProgressChangedEventHandler(this, &Form1::PosDisplayThread_ProgressChanged);
2045+ //
2046+ // panel3
2047+ //
2048+ this->panel3->Controls->Add(this->LoadPreviousConfig);
2049+ this->panel3->Controls->Add(this->InitButton);
2050+ this->panel3->Location = System::Drawing::Point(9, 7);
2051+ this->panel3->Name = S"panel3";
2052+ this->panel3->Size = System::Drawing::Size(887, 50);
2053+ this->panel3->TabIndex = 43;
2054+ //
2055+ // LoadPreviousConfig
2056+ //
2057+ this->LoadPreviousConfig->Font = (new System::Drawing::Font(S"Microsoft Sans Serif", 14.25F, System::Drawing::FontStyle::Bold, System::Drawing::GraphicsUnit::Point,
2058+ (System::Byte)0));
2059+ this->LoadPreviousConfig->Location = System::Drawing::Point(0, 3);
2060+ this->LoadPreviousConfig->Name = S"LoadPreviousConfig";
2061+ this->LoadPreviousConfig->Size = System::Drawing::Size(223, 47);
2062+ this->LoadPreviousConfig->TabIndex = 1;
2063+ this->LoadPreviousConfig->Text = S"Load Previous Config";
2064+ this->LoadPreviousConfig->UseVisualStyleBackColor = true;
2065+ this->LoadPreviousConfig->Click += new System::EventHandler(this, &Form1::loadPreviousConfig);
2066+ //
2067+ // panel4
2068+ //
2069+ this->panel4->Controls->Add(this->ExecutePathLabel);
2070+ this->panel4->Controls->Add(this->LoadFileButton);
2071+ this->panel4->Controls->Add(this->ExecuteButton);
2072+ this->panel4->Location = System::Drawing::Point(9, 317);
2073+ this->panel4->Name = S"panel4";
2074+ this->panel4->Size = System::Drawing::Size(717, 41);
2075+ this->panel4->TabIndex = 44;
2076+ //
2077+ // fs
2078+ //
2079+ this->fs->Controls->Add(this->ExitButton);
2080+ this->fs->Controls->Add(this->RedoPathButton);
2081+ this->fs->Location = System::Drawing::Point(732, 317);
2082+ this->fs->Name = S"fs";
2083+ this->fs->Size = System::Drawing::Size(164, 139);
2084+ this->fs->TabIndex = 45;
2085+ //
2086+ // openFileDialog1
2087+ //
2088+ this->openFileDialog1->FileName = S"openFileDialog1";
2089+ this->openFileDialog1->InitialDirectory = S"C:\\Documents and Settings\\FabAdmin\\Desktop\\SVN- FAB@Home.org\\software\\projects\\pr"
2090+ S"inters\\fabathome-model2\\Fab@Home Interpreter\\Printers";
2091+ //
2092+ // Form1
2093+ //
2094+ this->AutoScaleBaseSize = System::Drawing::Size(5, 13);
2095+ this->ClientSize = System::Drawing::Size(905, 465);
2096+ this->Controls->Add(this->fs);
2097+ this->Controls->Add(this->panel4);
2098+ this->Controls->Add(this->panel3);
2099+ this->Controls->Add(this->panel2);
2100+ this->Controls->Add(this->panel1);
2101+ this->Name = S"Form1";
2102+ this->StartPosition = System::Windows::Forms::FormStartPosition::CenterScreen;
2103+ this->Text = S"Fab@Home Interpreter";
2104+ this->Closing += new System::ComponentModel::CancelEventHandler(this, &Form1::Form1_Closing);
2105+ this->panel1->ResumeLayout(false);
2106+ this->panel2->ResumeLayout(false);
2107+ this->panel2->PerformLayout();
2108+ this->panel3->ResumeLayout(false);
2109+ this->panel4->ResumeLayout(false);
2110+ this->panel4->PerformLayout();
2111+ this->fs->ResumeLayout(false);
2112+ this->ResumeLayout(false);
2113
2114- }
2115+ }
2116
2117
2118
2119@@ -1219,203 +1208,214 @@
2120 }
2121 //////////////////////////////////////////////////////////////////////////////////
2122 //***************************Main List Action Functions******************************
2123+
2124+
2125+private: System::Void loadConfigHelper(string filePath) {
2126+
2127+
2128+ string result = printer.initialize(filePath);
2129+ if(result.compare("") == 0)
2130+ {
2131+
2132+ correctModule = true;
2133+
2134+ //Show labels.
2135+
2136+ XLabel->Text = new String("X");
2137+ YLabel->Text = new String("Y");
2138+ ZLabel->Text = new String("Z");
2139+ int numLoadedBays = printer.numLoadedBays();
2140+ if(numLoadedBays >= 1)
2141+ {
2142+ bayLabel0->Text = new String("Bay 0");
2143+ }
2144+ if(numLoadedBays >= 2)
2145+ {
2146+ bayLabel1->Text = new String("Bay 1");
2147+ }
2148+ if(numLoadedBays >= 3)
2149+ {
2150+ bayLabel2->Text = new String("Bay 2");
2151+ }
2152+
2153+
2154+ FabAtHomePrinter::savePreviousConfigName(filePath);
2155+
2156+
2157+ //Modify buttons.
2158+ //InitButton->Enabled = false;
2159+ LoadFileButton->Focus();
2160+
2161+ //Start live position display
2162+ enablePositionDisplay();
2163+ }
2164+ else
2165+ {
2166+ Util::messageBox(result);
2167+ }
2168+
2169+
2170+ }
2171 private: void InitButton_Click(System::Object * sender, System::EventArgs * e)
2172 {
2173-
2174- if(openFileDialog1->ShowDialog() == System::Windows::Forms::DialogResult::OK)
2175- {
2176- string filePath = (char*)(void*)Marshal::StringToHGlobalAnsi(openFileDialog1->FileName);
2177- string result = printer.initialize(filePath);
2178- if(result.compare("") == 0)
2179- {
2180-
2181- correctModule = true;
2182-
2183- //Show labels.
2184-
2185- XLabel->Text = new String("X");
2186- YLabel->Text = new String("Y");
2187- ZLabel->Text = new String("Z");
2188- int numLoadedBays = printer.numLoadedBays();
2189- if(numLoadedBays >= 1)
2190- {
2191- bayLabel0->Text = new String("Bay 0");
2192- }
2193- if(numLoadedBays >= 2)
2194- {
2195- bayLabel1->Text = new String("Bay 1");
2196- }
2197- if(numLoadedBays >= 3)
2198- {
2199- bayLabel2->Text = new String("Bay 2");
2200- }
2201-
2202-
2203-
2204- //Modify buttons.
2205- //InitButton->Enabled = false;
2206- LoadFileButton->Focus();
2207-
2208- enablePositionDisplay(); //Start live position display
2209- }
2210- else
2211- {
2212- Util::messageBox(result);
2213- }
2214- }
2215+ if(openFileDialog1->ShowDialog() == System::Windows::Forms::DialogResult::OK)
2216+ {
2217+ loadConfigHelper((char*)(void*)Marshal::StringToHGlobalAnsi(openFileDialog1->FileName));
2218+ }
2219+
2220 }
2221 ////////////////////////////////////////////////////////////////////////////////////
2222 private: void toggleAxes(bool enabled)
2223- {
2224- XVelocityField->Enabled = enabled;
2225- XAccelerationField->Enabled = enabled;
2226- XIncrementField->Enabled = enabled;
2227- XDisplay->Enabled = enabled;
2228- XCommandedField->Enabled = enabled;
2229- xScroll->Enabled = enabled;
2230- YVelocityField->Enabled = enabled;
2231- YAccelerationField->Enabled = enabled;
2232- YIncrementField->Enabled = enabled;
2233- YDisplay->Enabled = enabled;
2234- YCommandedField->Enabled = enabled;
2235- yScroll->Enabled = enabled;
2236- ZVelocityField->Enabled = enabled;
2237- ZAccelerationField->Enabled = enabled;
2238- ZIncrementField->Enabled = enabled;
2239- ZDisplay->Enabled = enabled;
2240- ZCommandedField->Enabled = enabled;
2241- zScroll->Enabled = enabled;
2242- }
2243- ////////////////////////////////////////////////////////////////////////////////////
2244+ {
2245+ XVelocityField->Enabled = enabled;
2246+ XAccelerationField->Enabled = enabled;
2247+ XIncrementField->Enabled = enabled;
2248+ XDisplay->Enabled = enabled;
2249+ XCommandedField->Enabled = enabled;
2250+ xScroll->Enabled = enabled;
2251+ YVelocityField->Enabled = enabled;
2252+ YAccelerationField->Enabled = enabled;
2253+ YIncrementField->Enabled = enabled;
2254+ YDisplay->Enabled = enabled;
2255+ YCommandedField->Enabled = enabled;
2256+ yScroll->Enabled = enabled;
2257+ ZVelocityField->Enabled = enabled;
2258+ ZAccelerationField->Enabled = enabled;
2259+ ZIncrementField->Enabled = enabled;
2260+ ZDisplay->Enabled = enabled;
2261+ ZCommandedField->Enabled = enabled;
2262+ zScroll->Enabled = enabled;
2263+ }
2264+ ////////////////////////////////////////////////////////////////////////////////////
2265 private: void toggleBays(bool enabled)
2266- {
2267- int numLoadedBays = printer.numLoadedBays();
2268- if(numLoadedBays >= 1)
2269- {
2270- bayVelocity0->Enabled = enabled;
2271- bayAcceleration0->Enabled = enabled;
2272- bayPositionIncrement0->Enabled = enabled;
2273- bayMotorPosition0->Enabled = enabled;
2274- bayCommandedPosition0->Enabled = enabled;
2275- bayMaterialCalibration0->Enabled = enabled;
2276- bayScroll0->Enabled = enabled;
2277- }
2278- if(numLoadedBays >= 2)
2279- {
2280- bayVelocity1->Enabled = enabled;
2281- bayAcceleration1->Enabled = enabled;
2282- bayPositionIncrement1->Enabled = enabled;
2283- bayMotorPosition1->Enabled = enabled;
2284- bayCommandedPosition1->Enabled = enabled;
2285- bayMaterialCalibration1->Enabled = enabled;
2286- bayScroll1->Enabled = enabled;
2287- }
2288- if(numLoadedBays >= 3)
2289- {
2290- bayVelocity2->Enabled = enabled;
2291- bayAcceleration2->Enabled = enabled;
2292- bayPositionIncrement2->Enabled = enabled;
2293- bayMotorPosition2->Enabled = enabled;
2294- bayCommandedPosition2->Enabled = enabled;
2295- bayMaterialCalibration2->Enabled = enabled;
2296- bayScroll2->Enabled = enabled;
2297- }
2298- }
2299+ {
2300+ int numLoadedBays = printer.numLoadedBays();
2301+ if(numLoadedBays >= 1)
2302+ {
2303+ bayVelocity0->Enabled = enabled;
2304+ bayAcceleration0->Enabled = enabled;
2305+ bayPositionIncrement0->Enabled = enabled;
2306+ bayMotorPosition0->Enabled = enabled;
2307+ bayCommandedPosition0->Enabled = enabled;
2308+ bayMaterialCalibration0->Enabled = enabled;
2309+ bayScroll0->Enabled = enabled;
2310+ }
2311+ if(numLoadedBays >= 2)
2312+ {
2313+ bayVelocity1->Enabled = enabled;
2314+ bayAcceleration1->Enabled = enabled;
2315+ bayPositionIncrement1->Enabled = enabled;
2316+ bayMotorPosition1->Enabled = enabled;
2317+ bayCommandedPosition1->Enabled = enabled;
2318+ bayMaterialCalibration1->Enabled = enabled;
2319+ bayScroll1->Enabled = enabled;
2320+ }
2321+ if(numLoadedBays >= 3)
2322+ {
2323+ bayVelocity2->Enabled = enabled;
2324+ bayAcceleration2->Enabled = enabled;
2325+ bayPositionIncrement2->Enabled = enabled;
2326+ bayMotorPosition2->Enabled = enabled;
2327+ bayCommandedPosition2->Enabled = enabled;
2328+ bayMaterialCalibration2->Enabled = enabled;
2329+ bayScroll2->Enabled = enabled;
2330+ }
2331+ }
2332 ////////////////////////////////////////////////////////////////////////////////////
2333 private: void MoveButton_Click(System::Object * sender, System::EventArgs * e)
2334 {
2335- printer.axes["X"].motor->moveAbsolute(textBoxValue(XCommandedField), textBoxValue(XVelocityField), textBoxValue(XAccelerationField));
2336- printer.axes["Y"].motor->moveAbsolute(textBoxValue(YCommandedField), textBoxValue(YVelocityField), textBoxValue(YAccelerationField));
2337- printer.axes["Z"].motor->moveAbsolute(textBoxValue(ZCommandedField), textBoxValue(ZVelocityField), textBoxValue(ZAccelerationField));
2338- int numLoadedBays = printer.numLoadedBays();
2339- if(numLoadedBays >= 1)
2340- {
2341- printer.tool.bays["Bay 0"].motor->moveAbsolute(textBoxValue(bayCommandedPosition0), textBoxValue(bayVelocity0), textBoxValue(bayAcceleration0));
2342- }
2343- if(numLoadedBays >= 2)
2344- {
2345- printer.tool.bays["Bay 1"].motor->moveAbsolute(textBoxValue(bayCommandedPosition1), textBoxValue(bayVelocity1), textBoxValue(bayAcceleration1));
2346-
2347- }
2348- if(numLoadedBays >= 3)
2349- {
2350- printer.tool.bays["Bay 2"].motor->moveAbsolute(textBoxValue(bayCommandedPosition2), textBoxValue(bayVelocity2), textBoxValue(bayAcceleration2));
2351- }
2352- }
2353+ printer.axes["X"].motor->moveAbsolute(textBoxValue(XCommandedField), textBoxValue(XVelocityField), textBoxValue(XAccelerationField));
2354+ printer.axes["Y"].motor->moveAbsolute(textBoxValue(YCommandedField), textBoxValue(YVelocityField), textBoxValue(YAccelerationField));
2355+ printer.axes["Z"].motor->moveAbsolute(textBoxValue(ZCommandedField), textBoxValue(ZVelocityField), textBoxValue(ZAccelerationField));
2356+ int numLoadedBays = printer.numLoadedBays();
2357+ if(numLoadedBays >= 1)
2358+ {
2359+ printer.tool.bays["Bay 0"].motor->moveAbsolute(textBoxValue(bayCommandedPosition0), textBoxValue(bayVelocity0), textBoxValue(bayAcceleration0));
2360+ }
2361+ if(numLoadedBays >= 2)
2362+ {
2363+ printer.tool.bays["Bay 1"].motor->moveAbsolute(textBoxValue(bayCommandedPosition1), textBoxValue(bayVelocity1), textBoxValue(bayAcceleration1));
2364+
2365+ }
2366+ if(numLoadedBays >= 3)
2367+ {
2368+ printer.tool.bays["Bay 2"].motor->moveAbsolute(textBoxValue(bayCommandedPosition2), textBoxValue(bayVelocity2), textBoxValue(bayAcceleration2));
2369+ }
2370+ }
2371 ////////////////////////////////////////////////////////////////////////////////////
2372 private: void ResetPosButton_Click(System::Object* sender, System::EventArgs* e)
2373 {
2374- //Reset position of all motors.
2375- printer.axes["X"].motor->resetPosition();
2376- printer.axes["Y"].motor->resetPosition();
2377+ //Reset position of all motors.
2378+ printer.axes["X"].motor->resetPosition();
2379+ printer.axes["Y"].motor->resetPosition();
2380 printer.axes["Z"].motor->resetPosition();
2381- XCommandedField->set_Text("0.000000");
2382+ XCommandedField->set_Text("0.000000");
2383 YCommandedField->set_Text("0.000000");
2384 ZCommandedField->set_Text("0.000000");
2385- int numLoadedBays = printer.numLoadedBays();
2386- if(numLoadedBays >= 1)
2387- {
2388- printer.tool.bays["Bay 0"].motor->resetPosition();
2389- bayCommandedPosition0->set_Text("0.000000");
2390- }
2391- if(numLoadedBays >= 2)
2392- {
2393- printer.tool.bays["Bay 1"].motor->resetPosition();
2394- bayCommandedPosition1->set_Text("0.000000");
2395- }
2396- if(numLoadedBays >= 3)
2397- {
2398- printer.tool.bays["Bay 2"].motor->resetPosition();
2399- bayCommandedPosition2->set_Text("0.000000");
2400- }
2401+ int numLoadedBays = printer.numLoadedBays();
2402+ if(numLoadedBays >= 1)
2403+ {
2404+ printer.tool.bays["Bay 0"].motor->resetPosition();
2405+ bayCommandedPosition0->set_Text("0.000000");
2406+ }
2407+ if(numLoadedBays >= 2)
2408+ {
2409+ printer.tool.bays["Bay 1"].motor->resetPosition();
2410+ bayCommandedPosition1->set_Text("0.000000");
2411+ }
2412+ if(numLoadedBays >= 3)
2413+ {
2414+ printer.tool.bays["Bay 2"].motor->resetPosition();
2415+ bayCommandedPosition2->set_Text("0.000000");
2416+ }
2417 }
2418 ////////////////////////////////////////////////////////////////////////////////////
2419 private: void LoadFileButton_Click(System::Object * sender, System::EventArgs * e)
2420 {
2421- if(openFileDialog1->ShowDialog() == System::Windows::Forms::DialogResult::OK)
2422- {
2423- string filePath = (char*)(void*)Marshal::StringToHGlobalAnsi(openFileDialog1->FileName);
2424- string result = printer.loadFabFile(filePath);
2425- if(result.compare("") == 0)
2426- {
2427- //Update display.
2428- string info = Util::toString<int>(printer.numLoadedPaths())+" paths loaded from file "+filePath;
2429-
2430- maxProgress = printer.numLoadedPaths(); //sets the max progress to the number of paths
2431- ExecutePathLabel->set_Text(info.c_str());
2432-
2433- //Show the loaded material calibrations.
2434- vector<string> result;
2435- printer.loadedMaterialCalibrations(result);
2436- bayMaterialCalibration0->Items->Clear();
2437- bayMaterialCalibration1->Items->Clear();
2438- bayMaterialCalibration0->Items->Add(new System::String(""));
2439- bayMaterialCalibration1->Items->Add(new System::String(""));
2440- for(vector<string>::iterator i = result.begin(); i != result.end(); ++i)
2441- {
2442- int numLoadedBays = printer.numLoadedBays();
2443- if(numLoadedBays >= 1)
2444- {
2445- bayMaterialCalibration0->Items->Add(new System::String(i->c_str()));
2446- }
2447- if(numLoadedBays >= 2)
2448- {
2449- bayMaterialCalibration1->Items->Add(new System::String(i->c_str()));
2450- }
2451- if(numLoadedBays >= 3)
2452- {
2453- bayMaterialCalibration2->Items->Add(new System::String(i->c_str()));
2454- }
2455- }
2456-
2457- ExecuteButton->Enabled = true;
2458- ExecuteButton->Focus();
2459- }
2460- else
2461- {
2462- Util::messageBox(result);
2463- }
2464- }
2465+ if(openFileDialog1->ShowDialog() == System::Windows::Forms::DialogResult::OK)
2466+ {
2467+ string filePath = (char*)(void*)Marshal::StringToHGlobalAnsi(openFileDialog1->FileName);
2468+ string result = printer.loadFabFile(filePath);
2469+ if(result.compare("") == 0)
2470+ {
2471+ //Update display.
2472+ string info = Util::toString<int>(printer.numLoadedPaths())+" paths loaded from file "+filePath;
2473+
2474+ maxProgress = printer.numLoadedPaths(); //sets the max progress to the number of paths
2475+ ExecutePathLabel->set_Text(info.c_str());
2476+
2477+ //Show the loaded material calibrations.
2478+ vector<string> result;
2479+ printer.loadedMaterialCalibrations(result);
2480+ bayMaterialCalibration0->Items->Clear();
2481+ bayMaterialCalibration1->Items->Clear();
2482+ bayMaterialCalibration0->Items->Add(new System::String(""));
2483+ bayMaterialCalibration1->Items->Add(new System::String(""));
2484+ for(vector<string>::iterator i = result.begin(); i != result.end(); ++i)
2485+ {
2486+ int numLoadedBays = printer.numLoadedBays();
2487+ if(numLoadedBays >= 1)
2488+ {
2489+ bayMaterialCalibration0->Items->Add(new System::String(i->c_str()));
2490+ }
2491+ if(numLoadedBays >= 2)
2492+ {
2493+ bayMaterialCalibration1->Items->Add(new System::String(i->c_str()));
2494+ }
2495+ if(numLoadedBays >= 3)
2496+ {
2497+ bayMaterialCalibration2->Items->Add(new System::String(i->c_str()));
2498+ }
2499+ }
2500+
2501+ ExecuteButton->Enabled = true;
2502+ ExecuteButton->Focus();
2503+ }
2504+ else
2505+ {
2506+ Util::messageBox(result);
2507+ }
2508+ }
2509 }
2510 ////////////////////////////////////////////////////////////////////////////////////
2511 private: void ExecuteButton_Click(System::Object* sender, System::EventArgs* e) {
2512@@ -1435,15 +1435,15 @@
2513 private: void incrementCommanded(System::Windows::Forms::TextBox* incrementField, System::Windows::Forms::ScrollEventArgs* e, System::Windows::Forms::TextBox* commandedField)
2514 {
2515 string incrementString = (char*)(void*)Marshal::StringToHGlobalAnsi(incrementField->get_Text());
2516- double delta = (e->get_OldValue() - e->get_NewValue()) * Util::toType<double>(incrementString);
2517+ double delta = (e->get_OldValue() - e->get_NewValue()) * Util::toType<double>(incrementString);
2518
2519 string commandedString = (char*)(void*)Marshal::StringToHGlobalAnsi(commandedField->get_Text());
2520- double commanded = Util::toType<double>(commandedString);
2521+ double commanded = Util::toType<double>(commandedString);
2522
2523 double newCommanded = commanded + delta;
2524
2525- string newCommandedString = Util::toString<double>(newCommanded);
2526- commandedField->set_Text(newCommandedString.c_str());
2527+ string newCommandedString = Util::toString<double>(newCommanded);
2528+ commandedField->set_Text(newCommandedString.c_str());
2529 commandedField->Update();
2530 }
2531 //////////////////////////////////////////////////////////////////////////////////////////////
2532@@ -1474,9 +1474,9 @@
2533 }
2534 ///////////////////////////////////////////////////////////////////////////////////////////////////
2535 private: System::Void bayScroll2_Scroll(System::Object* sender, System::Windows::Forms::ScrollEventArgs* e) {
2536- incrementCommanded(bayPositionIncrement2, e, bayCommandedPosition2);
2537- printer.tool.bays["Bay 2"].motor->moveAbsolute(textBoxValue(bayCommandedPosition2), textBoxValue(bayVelocity2), textBoxValue(bayAcceleration2));
2538- }
2539+ incrementCommanded(bayPositionIncrement2, e, bayCommandedPosition2);
2540+ printer.tool.bays["Bay 2"].motor->moveAbsolute(textBoxValue(bayCommandedPosition2), textBoxValue(bayVelocity2), textBoxValue(bayAcceleration2));
2541+ }
2542 ///////////////////////////////////////////////////////////////////////////////////////////////////
2543 //**************************************Stop/Cancel/Pause Buttons***************************************
2544 private: void ForceStopButton_Click(System::Object* sender, System::EventArgs* e) {
2545@@ -1484,19 +1484,19 @@
2546 printer.axes["X"].motor->stop();
2547 printer.axes["Y"].motor->stop();
2548 printer.axes["Z"].motor->stop();
2549- int numLoadedBays = printer.numLoadedBays();
2550- if(numLoadedBays >= 1)
2551- {
2552- printer.tool.bays["Bay 0"].motor->stop();
2553- }
2554- if(numLoadedBays >= 2)
2555- {
2556- printer.tool.bays["Bay 1"].motor->stop();
2557- }
2558- if(numLoadedBays >= 3)
2559- {
2560- printer.tool.bays["Bay 2"].motor->stop();
2561- }
2562+ int numLoadedBays = printer.numLoadedBays();
2563+ if(numLoadedBays >= 1)
2564+ {
2565+ printer.tool.bays["Bay 0"].motor->stop();
2566+ }
2567+ if(numLoadedBays >= 2)
2568+ {
2569+ printer.tool.bays["Bay 1"].motor->stop();
2570+ }
2571+ if(numLoadedBays >= 3)
2572+ {
2573+ printer.tool.bays["Bay 2"].motor->stop();
2574+ }
2575 }
2576 ///////////////////////////////////////////////////////////////////////////////////////////////////
2577 private: void RedoPathButton_Click(System::Object* sender, System::EventArgs* e) {
2578@@ -1533,66 +1533,66 @@
2579 }
2580 ///////////////////////////////////////////////////////////////////////////////////////////////////////
2581 private: void PosDisplayThread_ProgressChanged(System::Object* sender, System::ComponentModel::ProgressChangedEventArgs* e) {
2582- static string prevState;
2583- string state = printer.state();
2584+ static string prevState;
2585+ string state = printer.state();
2586
2587- if(state.compare("PAUSED") == 0)
2588- {
2589- updatePosDisplay();
2590- if(prevState.compare("PRINTING") == 0)
2591- {
2592- XCommandedField->set_Text(XDisplay->get_Text());
2593- YCommandedField->set_Text(YDisplay->get_Text());
2594- ZCommandedField->set_Text(ZDisplay->get_Text());
2595- bayCommandedPosition0->set_Text(bayMotorPosition0->get_Text());
2596- bayCommandedPosition1->set_Text(bayMotorPosition1->get_Text());
2597- }
2598- toggleBays(true);
2599- toggleAxes(false);
2600- ResetPosButton->Enabled = false;
2601- MoveButton->Enabled = false;
2602- LoadFileButton->Enabled = false;
2603- ExecuteButton->Enabled = false;
2604- this->PauseFabButton->Enabled=true;
2605- this->CancelFabButton->Enabled=true;
2606- this->ForceStopButton->Enabled=true;
2607- this->RedoPathButton->Enabled=true;
2608- }
2609- else if(state.compare("PRINTING") == 0)
2610- {
2611- toggleBays(false);
2612- toggleAxes(false);
2613- ResetPosButton->Enabled = false;
2614- MoveButton->Enabled = false;
2615- LoadFileButton->Enabled = false;
2616- ExecuteButton->Enabled = false;
2617- this->PauseFabButton->Enabled=true;
2618- this->CancelFabButton->Enabled=true;
2619- this->ForceStopButton->Enabled=true;
2620- this->RedoPathButton->Enabled=true;
2621- }
2622- else if(state.compare("IDLE") == 0)
2623- {
2624- updatePosDisplay();
2625- if(prevState.compare("PRINTING") == 0)
2626- {
2627- XCommandedField->set_Text(XDisplay->get_Text());
2628- YCommandedField->set_Text(YDisplay->get_Text());
2629- ZCommandedField->set_Text(ZDisplay->get_Text());
2630- bayCommandedPosition0->set_Text(bayMotorPosition0->get_Text());
2631- bayCommandedPosition1->set_Text(bayMotorPosition1->get_Text());
2632- }
2633- toggleBays(true);
2634- toggleAxes(true);
2635- ResetPosButton->Enabled = true;
2636- MoveButton->Enabled = true;
2637- LoadFileButton->Enabled = true;
2638- this->PauseFabButton->Enabled=false;
2639- this->CancelFabButton->Enabled=false;
2640- this->ForceStopButton->Enabled=false;
2641- this->RedoPathButton->Enabled=false;
2642- }
2643- prevState = state;
2644+ if(state.compare("PAUSED") == 0)
2645+ {
2646+ updatePosDisplay();
2647+ if(prevState.compare("PRINTING") == 0)
2648+ {
2649+ XCommandedField->set_Text(XDisplay->get_Text());
2650+ YCommandedField->set_Text(YDisplay->get_Text());
2651+ ZCommandedField->set_Text(ZDisplay->get_Text());
2652+ bayCommandedPosition0->set_Text(bayMotorPosition0->get_Text());
2653+ bayCommandedPosition1->set_Text(bayMotorPosition1->get_Text());
2654+ }
2655+ toggleBays(true);
2656+ toggleAxes(false);
2657+ ResetPosButton->Enabled = false;
2658+ MoveButton->Enabled = false;
2659+ LoadFileButton->Enabled = false;
2660+ ExecuteButton->Enabled = false;
2661+ this->PauseFabButton->Enabled=true;
2662+ this->CancelFabButton->Enabled=true;
2663+ this->ForceStopButton->Enabled=true;
2664+ this->RedoPathButton->Enabled=true;
2665+ }
2666+ else if(state.compare("PRINTING") == 0)
2667+ {
2668+ toggleBays(false);
2669+ toggleAxes(false);
2670+ ResetPosButton->Enabled = false;
2671+ MoveButton->Enabled = false;
2672+ LoadFileButton->Enabled = false;
2673+ ExecuteButton->Enabled = false;
2674+ this->PauseFabButton->Enabled=true;
2675+ this->CancelFabButton->Enabled=true;
2676+ this->ForceStopButton->Enabled=true;
2677+ this->RedoPathButton->Enabled=true;
2678+ }
2679+ else if(state.compare("IDLE") == 0)
2680+ {
2681+ updatePosDisplay();
2682+ if(prevState.compare("PRINTING") == 0)
2683+ {
2684+ XCommandedField->set_Text(XDisplay->get_Text());
2685+ YCommandedField->set_Text(YDisplay->get_Text());
2686+ ZCommandedField->set_Text(ZDisplay->get_Text());
2687+ bayCommandedPosition0->set_Text(bayMotorPosition0->get_Text());
2688+ bayCommandedPosition1->set_Text(bayMotorPosition1->get_Text());
2689+ }
2690+ toggleBays(true);
2691+ toggleAxes(true);
2692+ ResetPosButton->Enabled = true;
2693+ MoveButton->Enabled = true;
2694+ LoadFileButton->Enabled = true;
2695+ this->PauseFabButton->Enabled=false;
2696+ this->CancelFabButton->Enabled=false;
2697+ this->ForceStopButton->Enabled=false;
2698+ this->RedoPathButton->Enabled=false;
2699+ }
2700+ prevState = state;
2701 }
2702 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////
2703 //*************************************Execution Threads************************************
2704@@ -1616,69 +1616,111 @@
2705 }
2706 /////////////////////////////////////////////////////////////////////////////////////////////////////
2707 private: void Timer_Tick(System::Object* sender, System::EventArgs* e) {
2708-
2709+
2710 }
2711
2712 //************************************I/O Helper Functions********************************
2713 private: void updatePosDisplay() {
2714- string temp;
2715- //Display the position data in text fields
2716- temp = Util::toString<double>(printer.axes["X"].motor->getPosition());
2717- XDisplay->set_Text(temp.c_str());
2718+ string temp;
2719+ //Display the position data in text fields
2720+ temp = Util::toString<double>(printer.axes["X"].motor->getPosition());
2721+ XDisplay->set_Text(temp.c_str());
2722 XDisplay->Update();
2723 temp = Util::toString<double>(printer.axes["Y"].motor->getPosition());
2724- YDisplay->set_Text(temp.c_str());
2725+ YDisplay->set_Text(temp.c_str());
2726 YDisplay->Update();
2727 temp = Util::toString<double>(printer.axes["Z"].motor->getPosition());
2728- ZDisplay->set_Text(temp.c_str());
2729+ ZDisplay->set_Text(temp.c_str());
2730 ZDisplay->Update();
2731-
2732- int numLoadedBays = printer.numLoadedBays();
2733- if(numLoadedBays >= 1)
2734- {
2735- temp = Util::toString<double>(printer.tool.bays["Bay 0"].motor->getPosition());
2736- bayMotorPosition0->set_Text(temp.c_str());
2737- bayMotorPosition0->Update();
2738- }
2739- if(numLoadedBays >= 2)
2740- {
2741- temp = Util::toString<double>(printer.tool.bays["Bay 1"].motor->getPosition());
2742- bayMotorPosition1->set_Text(temp.c_str());
2743- bayMotorPosition1->Update();
2744- }
2745- if(numLoadedBays >= 3)
2746- {
2747- temp = Util::toString<double>(printer.tool.bays["Bay 2"].motor->getPosition());
2748- bayMotorPosition2->set_Text(temp.c_str());
2749- bayMotorPosition2->Update();
2750- }
2751-
2752+
2753+ int numLoadedBays = printer.numLoadedBays();
2754+ if(numLoadedBays >= 1)
2755+ {
2756+ temp = Util::toString<double>(printer.tool.bays["Bay 0"].motor->getPosition());
2757+ bayMotorPosition0->set_Text(temp.c_str());
2758+ bayMotorPosition0->Update();
2759+ }
2760+ if(numLoadedBays >= 2)
2761+ {
2762+ temp = Util::toString<double>(printer.tool.bays["Bay 1"].motor->getPosition());
2763+ bayMotorPosition1->set_Text(temp.c_str());
2764+ bayMotorPosition1->Update();
2765+ }
2766+ if(numLoadedBays >= 3)
2767+ {
2768+ temp = Util::toString<double>(printer.tool.bays["Bay 2"].motor->getPosition());
2769+ bayMotorPosition2->set_Text(temp.c_str());
2770+ bayMotorPosition2->Update();
2771+ }
2772+
2773 }
2774 ///////////////////////////////////////////////////////////////////////////////////////////////
2775 private: System::Void bayMaterialCalibration0_SelectedIndexChanged(System::Object* sender, System::EventArgs* e)
2776- {
2777- string bayName = (char*)(void*)Marshal::StringToHGlobalAnsi(bayLabel0->Text);
2778- string materialCalibrationName = (char*)(void*)Marshal::StringToHGlobalAnsi(bayMaterialCalibration0->Text);
2779- printer.equipBay(bayName, materialCalibrationName);
2780- }
2781- ///////////////////////////////////////////////////////////////////////////////////////////////
2782+ {
2783+ string bayName = (char*)(void*)Marshal::StringToHGlobalAnsi(bayLabel0->Text);
2784+ string materialCalibrationName = (char*)(void*)Marshal::StringToHGlobalAnsi(bayMaterialCalibration0->Text);
2785+ printer.equipBay(bayName, materialCalibrationName);
2786+ }
2787+ ///////////////////////////////////////////////////////////////////////////////////////////////
2788 private: System::Void bayMaterialCalibration1_SelectedIndexChanged(System::Object* sender, System::EventArgs* e)
2789- {
2790- string bayName = (char*)(void*)Marshal::StringToHGlobalAnsi(bayLabel1->Text);
2791- string materialCalibrationName = (char*)(void*)Marshal::StringToHGlobalAnsi(bayMaterialCalibration1->Text);
2792- printer.equipBay(bayName, materialCalibrationName);
2793- }
2794- ///////////////////////////////////////////////////////////////////////////////////////////////
2795+ {
2796+ string bayName = (char*)(void*)Marshal::StringToHGlobalAnsi(bayLabel1->Text);
2797+ string materialCalibrationName = (char*)(void*)Marshal::StringToHGlobalAnsi(bayMaterialCalibration1->Text);
2798+ printer.equipBay(bayName, materialCalibrationName);
2799+ }
2800+ ///////////////////////////////////////////////////////////////////////////////////////////////
2801 private: System::Void bayMaterialCalibration2_SelectedIndexChanged(System::Object* sender, System::EventArgs* e) {
2802- string bayName = (char*)(void*)Marshal::StringToHGlobalAnsi(bayLabel2->Text);
2803- string materialCalibrationName = (char*)(void*)Marshal::StringToHGlobalAnsi(bayMaterialCalibration2->Text);
2804- printer.equipBay(bayName, materialCalibrationName);
2805- }
2806- ///////////////////////////////////////////////////////////////////////////////////////////////
2807+ string bayName = (char*)(void*)Marshal::StringToHGlobalAnsi(bayLabel2->Text);
2808+ string materialCalibrationName = (char*)(void*)Marshal::StringToHGlobalAnsi(bayMaterialCalibration2->Text);
2809+ printer.equipBay(bayName, materialCalibrationName);
2810+ }
2811+ ///////////////////////////////////////////////////////////////////////////////////////////////
2812+
2813+private: System::Void button1_Click(System::Object* sender, System::EventArgs* e) {
2814+ }
2815+
2816+
2817+private: System::Void loadPreviousConfig(System::Object* sender, System::EventArgs* e) {
2818+
2819+ string filePath = FabAtHomePrinter::loadPreviousConfigName();
2820+ string result = printer.initialize(filePath);
2821+ if(result.compare("") == 0)
2822+ {
2823+ correctModule = true;
2824+
2825+ //Show labels.
2826+
2827+ XLabel->Text = new String("X");
2828+ YLabel->Text = new String("Y");
2829+ ZLabel->Text = new String("Z");
2830+ int numLoadedBays = printer.numLoadedBays();
2831+ if(numLoadedBays >= 1)
2832+ {
2833+ bayLabel0->Text = new String("Bay 0");
2834+ }
2835+ if(numLoadedBays >= 2)
2836+ {
2837+ bayLabel1->Text = new String("Bay 1");
2838+ }
2839+ if(numLoadedBays >= 3)
2840+ {
2841+ bayLabel2->Text = new String("Bay 2");
2842+ }
2843+
2844+
2845+
2846+ //Modify buttons.
2847+ LoadFileButton->Focus();
2848+
2849+ enablePositionDisplay(); //Start live position display
2850+ }
2851+ else
2852+ {
2853+ Util::messageBox(result);
2854+ }
2855+ }
2856
2857 };
2858
2859 #endif //ndef FORM1_H
2860
2861-
2862-

Subscribers

People subscribed via source and target branches

to all changes: