Printing coordinate lines by XYZ array in a loop

2 次查看(过去 30 天)
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'

采纳的回答

Sulaymon Eshkabilov
Sulaymon Eshkabilov 2023-11-11
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

更多回答(1 个)

Sulaymon Eshkabilov
Sulaymon Eshkabilov 2023-11-11
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

类别

Help CenterFile Exchange 中查找有关 MATLAB 的更多信息

产品


版本

R2015b

Community Treasure Hunt

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

Start Hunting!

Translated by