Mercurial Hosting > harelet
comparison harelet.c @ 12:35e6a7b53e3c
Automated Vimcurial commmit
author | VilyaemKenyaz |
---|---|
date | Tue, 12 Sep 2023 08:18:53 -0400 |
parents | 1d4df12de9e3 |
children | 8fe2392f2fcc |
comparison
equal
deleted
inserted
replaced
11:1d4df12de9e3 | 12:35e6a7b53e3c |
---|---|
86 * Description - This function compiles instructions for CNC machines. | 86 * Description - This function compiles instructions for CNC machines. |
87 * Author - William King | 87 * Author - William King |
88 * Date - Sep 08 2023 | 88 * Date - Sep 08 2023 |
89 * *******************************************/ | 89 * *******************************************/ |
90 void Compile(){ | 90 void Compile(){ |
91 | 91 |
92 char * filename; | 92 char filename[32]; |
93 char * file; | 93 char file[8192]; |
94 char buffer[sizeof(int)*8+1]; | 94 char buffer[32]; |
95 int choice; | 95 unsigned int choice; |
96 | |
96 clrscr(); | 97 clrscr(); |
97 puts("Select your format\n1. RAW GCODE"); | 98 puts("Select your format\n1. RAW GCODE"); |
98 scanf("%d",&choice); | 99 scanf("%d",&choice); |
99 | 100 |
100 | 101 |
101 puts("Enter the filename"); | 102 puts("Enter the filename"); |
102 scanf("%s",filename); | 103 scanf("%s",filename); |
103 | 104 printf("Compiling %s,,,\n",filename); |
104 if(choice == 1){ | 105 if(choice == 1){ |
105 //Set the miller | 106 //Set the miller |
106 strcat(file,UNITS); | 107 strcat(file,UNITS); |
107 strcat(file,"G0 X0 Y0 Z0"); | 108 strcat(file,"G0 X0 Y0 Z0"); |
108 //Meat of instructions | 109 //Meat of instructions |
109 for(int i = 0;i != numpoints;i++){ | 110 for(int i = 0;i != numpoints;i++){ |
110 //Compose | 111 //Compose |
111 char * instruction; | 112 char instruction[32]; |
112 strcat(instruction,"G0 X"); | 113 strcat(instruction,"G0 X"); |
113 strcat(instruction,buffer); | 114 strcat(instruction,buffer); |
114 //Convert X to string | 115 //Convert X to string |
115 sprintf(buffer,"%d",&points[i].X); | 116 sprintf(buffer,"%d",&points[i].X); |
116 strcat(instruction," Y"); | 117 strcat(instruction," Y"); |
117 //Convert Y to string | 118 //Convert Y to string |
118 sprintf(buffer,"%d",&points[i].Y); | 119 sprintf(buffer,"%d",&points[i].Y); |
119 strcat(instruction,buffer); | 120 strcat(instruction,buffer); |
120 //Convert Z to string | 121 if(points[i].down = 1){ |
121 sprintf(buffer,"%d",5); | 122 strcat(instruction," Z 5"); |
122 strcat(instruction," Z"); | 123 } |
124 else{ | |
125 strcat(instruction," Z 0"); | |
126 } | |
123 strcat(instruction,buffer); | 127 strcat(instruction,buffer); |
124 //Write to string | 128 //Write to string |
125 strcat(file,instruction); | 129 strcat(file,instruction); |
126 } | 130 } |
127 //Finish | 131 //Finish |
128 strcat(file,"G0, X0, Y0, Z0"); | 132 strcat(file,"G0, X0, Y0, Z0"); |
129 WriteFile(filename,file); | 133 WriteFile(filename,file); |
130 } | 134 } |
135 else{ | |
136 | |
137 puts("Invalid compile format"); | |
138 | |
139 | |
140 } | |
131 | 141 |
132 puts("Finished Compiling GCODE"); | 142 puts("Finished Compiling GCODE"); |
133 | 143 |
134 | 144 |
135 } | 145 } |
136 | 146 |
137 | 147 |
138 /********************************************* | 148 /********************************************* |
139 * Description - Main function | 149 * Description - Main function |
142 * *******************************************/ | 152 * *******************************************/ |
143 void main(int argc, char* argv[]){ | 153 void main(int argc, char* argv[]){ |
144 clrscr(); | 154 clrscr(); |
145 while(1){ | 155 while(1){ |
146 Render(); | 156 Render(); |
147 //New CONIO controls | |
148 switch(getchar()){ | 157 switch(getchar()){ |
149 case 'h': | 158 case 'h': |
150 X -= step; | 159 X -= step; |
151 break; | 160 break; |
152 case 'j': | 161 case 'j': |
153 Y += step; | 162 Y += step; |
154 break; | 163 break; |
155 case 'k': | 164 case 'k': |
156 Y -= step; | 165 Y -= step; |
157 break; | 166 break; |
158 case 'l': | 167 case 'l': |
159 X += step; | 168 X += step; |
160 break; | 169 break; |
161 | 170 |
162 case 's': | 171 case 's': |
163 puts("New stepsize"); | 172 puts("New stepsize"); |
164 scanf("%d",&step); | 173 scanf("%d",&step); |
165 | 174 |
166 break; | 175 break; |
167 | 176 |
168 case 'a': | 177 case 'a': |
169 points[numpoints].X = X; | 178 points[numpoints].X = X; |
170 points[numpoints].Y = Y; | 179 points[numpoints].Y = Y; |
171 points[numpoints].down = down; | 180 points[numpoints].down = down; |
172 numpoints++; | 181 numpoints++; |
173 break; | 182 break; |
174 case 'd': | 183 case 'd': |
175 if(down == 1){ | 184 if(down == 1){ |
176 down = 0; | 185 down = 0; |
177 } | 186 } |
178 else{ | 187 else{ |
179 down = 1; | 188 down = 1; |
180 } | 189 } |
181 break; | 190 break; |
182 | 191 |
183 case 'c': | 192 case 'c': |
184 Compile(); | 193 Compile(); |
185 break; | 194 break; |
186 | 195 |
187 default: | 196 default: |
188 putchar('\a'); | 197 putchar('\a'); |
189 break; | 198 break; |
190 } | 199 } |
191 } | 200 } |
192 | 201 |
193 exit(0); | 202 exit(0); |
194 } | 203 } |