Borrar filtros
Borrar filtros

Printing coordinate lines by XYZ array in a loop

2 visualizaciones (últimos 30 días)
Deborah
Deborah el 10 de Nov. de 2023
Editada: Walter Roberson el 11 de Nov. de 2023
Hello, I am trying to convert a .csv file to G code for XYZ Positions.
Here is my code so far but I am not sure how to pass an array through the loop to get output changes as I change the .csv.
PosInput = readtable ('PositionData.csv');
PosArray = table2array(PosInput);
PosArray = PosArray';
XPos = PosArray(1,:)';
YPos = PosArray(2,:)';
ZPos = PosArray(3,:)';
for i = 1:XPos
fprintf('G0 X%d\n',i);
end
------------------------------------------------------
For example, the XPos array defined in the .csv file is [400,350]' .
I want to print 'G0 X400
G0 X350'

Respuesta aceptada

Sulaymon Eshkabilov
Sulaymon Eshkabilov el 11 de Nov. de 2023
D = readmatrix('Data2G.csv');
D1 = D';
Xpos =D1(:,1:2);
Ypos =D1(:,3:4);
Zpos =D1(:,5:6);
for ii = 1:numel(Xpos(:,1))
fprintf('G0 X %d\n',Xpos(ii,:)');
end
G0 X 100 G0 X 300 G0 X 110 G0 X 315 G0 X 120 G0 X 330 G0 X 130 G0 X 345 G0 X 140 G0 X 360 G0 X 150 G0 X 375 G0 X 160 G0 X 390 G0 X 170 G0 X 405 G0 X 180 G0 X 420 G0 X 190 G0 X 435 G0 X 200 G0 X 450 G0 X 210 G0 X 465 G0 X 220 G0 X 480 G0 X 230 G0 X 495 G0 X 240 G0 X 510 G0 X 250 G0 X 525 G0 X 260 G0 X 540 G0 X 270 G0 X 555 G0 X 280 G0 X 570 G0 X 290 G0 X 585 G0 X 300 G0 X 600 G0 X 310 G0 X 615 G0 X 320 G0 X 630 G0 X 330 G0 X 645 G0 X 340 G0 X 660 G0 X 350 G0 X 675 G0 X 360 G0 X 690 G0 X 370 G0 X 705 G0 X 380 G0 X 720 G0 X 390 G0 X 735 G0 X 400 G0 X 750
% It can be also displayed:
for ii = 1:numel(Xpos(:,1))
fprintf('Position # %d \n',ii)
fprintf('G0 X %d\n', Xpos(ii,:)');
end
Position # 1
G0 X 100 G0 X 300
Position # 2
G0 X 110 G0 X 315
Position # 3
G0 X 120 G0 X 330
Position # 4
G0 X 130 G0 X 345
Position # 5
G0 X 140 G0 X 360
Position # 6
G0 X 150 G0 X 375
Position # 7
G0 X 160 G0 X 390
Position # 8
G0 X 170 G0 X 405
Position # 9
G0 X 180 G0 X 420
Position # 10
G0 X 190 G0 X 435
Position # 11
G0 X 200 G0 X 450
Position # 12
G0 X 210 G0 X 465
Position # 13
G0 X 220 G0 X 480
Position # 14
G0 X 230 G0 X 495
Position # 15
G0 X 240 G0 X 510
Position # 16
G0 X 250 G0 X 525
Position # 17
G0 X 260 G0 X 540
Position # 18
G0 X 270 G0 X 555
Position # 19
G0 X 280 G0 X 570
Position # 20
G0 X 290 G0 X 585
Position # 21
G0 X 300 G0 X 600
Position # 22
G0 X 310 G0 X 615
Position # 23
G0 X 320 G0 X 630
Position # 24
G0 X 330 G0 X 645
Position # 25
G0 X 340 G0 X 660
Position # 26
G0 X 350 G0 X 675
Position # 27
G0 X 360 G0 X 690
Position # 28
G0 X 370 G0 X 705
Position # 29
G0 X 380 G0 X 720
Position # 30
G0 X 390 G0 X 735
Position # 31
G0 X 400 G0 X 750

Más respuestas (1)

Sulaymon Eshkabilov
Sulaymon Eshkabilov el 11 de Nov. de 2023
Most welcome. To add Y and/or Z is quite simple:
D = readmatrix('Data2G.csv');
D1 = D';
Xpos =D1(:,1:2);
Ypos =D1(:,3:4);
Zpos =D1(:,5:6);
for ii = 1:numel(Xpos(:,1))
fprintf('G0 X %d \n', Xpos(ii,:)');
fprintf('G0 Y %d \n', Ypos(ii,:)');
fprintf('G0 Z %d \n', Zpos(ii,:)');
fprintf(' \n')
end
G0 X 100 G0 X 300
G0 Y 50 G0 Y 20
G0 Z 200 G0 Z 50
G0 X 110 G0 X 315
G0 Y 75 G0 Y 50
G0 Z 225 G0 Z 65
G0 X 120 G0 X 330
G0 Y 100 G0 Y 80
G0 Z 250 G0 Z 80
G0 X 130 G0 X 345
G0 Y 125 G0 Y 110
G0 Z 275 G0 Z 95
G0 X 140 G0 X 360
G0 Y 150 G0 Y 140
G0 Z 300 G0 Z 110
G0 X 150 G0 X 375
G0 Y 175 G0 Y 170
G0 Z 325 G0 Z 125
G0 X 160 G0 X 390
G0 Y 200 G0 Y 200
G0 Z 350 G0 Z 140
G0 X 170 G0 X 405
G0 Y 225 G0 Y 230
G0 Z 375 G0 Z 155
G0 X 180 G0 X 420
G0 Y 250 G0 Y 260
G0 Z 400 G0 Z 170
G0 X 190 G0 X 435
G0 Y 275 G0 Y 290
G0 Z 425 G0 Z 185
G0 X 200 G0 X 450
G0 Y 300 G0 Y 320
G0 Z 450 G0 Z 200
G0 X 210 G0 X 465
G0 Y 325 G0 Y 350
G0 Z 475 G0 Z 215
G0 X 220 G0 X 480
G0 Y 350 G0 Y 380
G0 Z 500 G0 Z 230
G0 X 230 G0 X 495
G0 Y 375 G0 Y 410
G0 Z 525 G0 Z 245
G0 X 240 G0 X 510
G0 Y 400 G0 Y 440
G0 Z 550 G0 Z 260
G0 X 250 G0 X 525
G0 Y 425 G0 Y 470
G0 Z 575 G0 Z 275
G0 X 260 G0 X 540
G0 Y 450 G0 Y 500
G0 Z 600 G0 Z 290
G0 X 270 G0 X 555
G0 Y 475 G0 Y 530
G0 Z 625 G0 Z 305
G0 X 280 G0 X 570
G0 Y 500 G0 Y 560
G0 Z 650 G0 Z 320
G0 X 290 G0 X 585
G0 Y 525 G0 Y 590
G0 Z 675 G0 Z 335
G0 X 300 G0 X 600
G0 Y 550 G0 Y 620
G0 Z 700 G0 Z 350
G0 X 310 G0 X 615
G0 Y 575 G0 Y 650
G0 Z 725 G0 Z 365
G0 X 320 G0 X 630
G0 Y 600 G0 Y 680
G0 Z 750 G0 Z 380
G0 X 330 G0 X 645
G0 Y 625 G0 Y 710
G0 Z 775 G0 Z 395
G0 X 340 G0 X 660
G0 Y 650 G0 Y 740
G0 Z 800 G0 Z 410
G0 X 350 G0 X 675
G0 Y 675 G0 Y 770
G0 Z 825 G0 Z 425
G0 X 360 G0 X 690
G0 Y 700 G0 Y 800
G0 Z 850 G0 Z 440
G0 X 370 G0 X 705
G0 Y 725 G0 Y 830
G0 Z 875 G0 Z 455
G0 X 380 G0 X 720
G0 Y 750 G0 Y 860
G0 Z 900 G0 Z 470
G0 X 390 G0 X 735
G0 Y 775 G0 Y 890
G0 Z 925 G0 Z 485
G0 X 400 G0 X 750
G0 Y 800 G0 Y 920
G0 Z 950 G0 Z 500
% It can be also displayed:
for ii = 1:numel(Xpos(:,1))
fprintf('Position # %d \n',ii)
fprintf('G0 X %d \n', Xpos(ii,:)');
fprintf('G0 Y %d \n', Ypos(ii,:)');
fprintf('G0 Z %d \n', Zpos(ii,:)');
end
Position # 1
G0 X 100 G0 X 300
G0 Y 50 G0 Y 20
G0 Z 200 G0 Z 50
Position # 2
G0 X 110 G0 X 315
G0 Y 75 G0 Y 50
G0 Z 225 G0 Z 65
Position # 3
G0 X 120 G0 X 330
G0 Y 100 G0 Y 80
G0 Z 250 G0 Z 80
Position # 4
G0 X 130 G0 X 345
G0 Y 125 G0 Y 110
G0 Z 275 G0 Z 95
Position # 5
G0 X 140 G0 X 360
G0 Y 150 G0 Y 140
G0 Z 300 G0 Z 110
Position # 6
G0 X 150 G0 X 375
G0 Y 175 G0 Y 170
G0 Z 325 G0 Z 125
Position # 7
G0 X 160 G0 X 390
G0 Y 200 G0 Y 200
G0 Z 350 G0 Z 140
Position # 8
G0 X 170 G0 X 405
G0 Y 225 G0 Y 230
G0 Z 375 G0 Z 155
Position # 9
G0 X 180 G0 X 420
G0 Y 250 G0 Y 260
G0 Z 400 G0 Z 170
Position # 10
G0 X 190 G0 X 435
G0 Y 275 G0 Y 290
G0 Z 425 G0 Z 185
Position # 11
G0 X 200 G0 X 450
G0 Y 300 G0 Y 320
G0 Z 450 G0 Z 200
Position # 12
G0 X 210 G0 X 465
G0 Y 325 G0 Y 350
G0 Z 475 G0 Z 215
Position # 13
G0 X 220 G0 X 480
G0 Y 350 G0 Y 380
G0 Z 500 G0 Z 230
Position # 14
G0 X 230 G0 X 495
G0 Y 375 G0 Y 410
G0 Z 525 G0 Z 245
Position # 15
G0 X 240 G0 X 510
G0 Y 400 G0 Y 440
G0 Z 550 G0 Z 260
Position # 16
G0 X 250 G0 X 525
G0 Y 425 G0 Y 470
G0 Z 575 G0 Z 275
Position # 17
G0 X 260 G0 X 540
G0 Y 450 G0 Y 500
G0 Z 600 G0 Z 290
Position # 18
G0 X 270 G0 X 555
G0 Y 475 G0 Y 530
G0 Z 625 G0 Z 305
Position # 19
G0 X 280 G0 X 570
G0 Y 500 G0 Y 560
G0 Z 650 G0 Z 320
Position # 20
G0 X 290 G0 X 585
G0 Y 525 G0 Y 590
G0 Z 675 G0 Z 335
Position # 21
G0 X 300 G0 X 600
G0 Y 550 G0 Y 620
G0 Z 700 G0 Z 350
Position # 22
G0 X 310 G0 X 615
G0 Y 575 G0 Y 650
G0 Z 725 G0 Z 365
Position # 23
G0 X 320 G0 X 630
G0 Y 600 G0 Y 680
G0 Z 750 G0 Z 380
Position # 24
G0 X 330 G0 X 645
G0 Y 625 G0 Y 710
G0 Z 775 G0 Z 395
Position # 25
G0 X 340 G0 X 660
G0 Y 650 G0 Y 740
G0 Z 800 G0 Z 410
Position # 26
G0 X 350 G0 X 675
G0 Y 675 G0 Y 770
G0 Z 825 G0 Z 425
Position # 27
G0 X 360 G0 X 690
G0 Y 700 G0 Y 800
G0 Z 850 G0 Z 440
Position # 28
G0 X 370 G0 X 705
G0 Y 725 G0 Y 830
G0 Z 875 G0 Z 455
Position # 29
G0 X 380 G0 X 720
G0 Y 750 G0 Y 860
G0 Z 900 G0 Z 470
Position # 30
G0 X 390 G0 X 735
G0 Y 775 G0 Y 890
G0 Z 925 G0 Z 485
Position # 31
G0 X 400 G0 X 750
G0 Y 800 G0 Y 920
G0 Z 950 G0 Z 500

Categorías

Más información sobre MATLAB en Help Center y File Exchange.

Etiquetas

Productos


Versión

R2015b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by