simultaneously loop

hello every one i have some question can arduino run function simultaneously. here my code

const int LED1 = 7; // gripper
const int LED2 = 12; // angular
const int LED3 = 11; // linear
byte directionPinA = 20; // Indexer set
byte stepPinA = 21; // indexer setting
int numberOfStepsA = 2000; // indexer setting
int numberOFcycle = 10;

byte directionPin = 9;
byte stepPin = 8;
int numberOfSteps = 8000;
//byte ledPin = 13;
int pulseWidthMicros = 20;  // microseconds
int microbetweenSteps = 400; // microseconds - or try 1000 for slower steps

int solA = 46;//grip
int solB = 47;//pusing
int quantity = 10;

byte directionPinCon = 30;
byte stepPinCon = 34;
int numberOfStepsCon = 15;
//byte ledPin = 7;
int pulseWidthMicrosCon = 1;  // microseconds
int microbetweenStepsCon = 100; // milliseconds - or try 1000 for slower steps


byte directionPinIdx = 40;
byte stepPinIdx = 39;
int numberOfStepsIdx = 20000;
//byte ledPin = 7;
int pulseWidthMicrosIdx = 20;  // microseconds
int microbetweenStepsIdx = 300;

void setup() {
  // put your setup code here, to run once:
  pinMode (LED1,OUTPUT);
  pinMode (LED2,OUTPUT);
  pinMode (LED3,OUTPUT);
  //digitalWrite(ledPin, LOW);
  pinMode(directionPin, OUTPUT);
  pinMode(stepPin, OUTPUT);

  pinMode(solA, OUTPUT);
  pinMode (solB, OUTPUT);

  
  pinMode(directionPinCon, OUTPUT);
  pinMode(stepPinCon, OUTPUT);
 
 pinMode(directionPinIdx,OUTPUT);
 pinMode(stepPinIdx,OUTPUT);
} 

void loop() {
  // put your main code here, to run repeatedly:
  indexer ();
 for(int p = 0; p < quantity; p++) {
 conveyor ();   
grip ();
robot ();

rotate ();
robot ();
grip_open ();
unrotate ();

//delay(3000);
 }
 
 /*digitalWrite(LED2,HIGH);
 delay(1300);
 digitalWrite(LED3,HIGH);
 delay(450);
 
 //digitalWrite(LED1,LOW);
 //delay(300);
 digitalWrite(LED3,LOW);
 delay(600);
 digitalWrite(LED2,LOW);
 delay(1500);
  */
}

void indexer () {
  digitalWrite(directionPinIdx, HIGH); 
  for(int a = 0; a < numberOfStepsIdx; a++) {
    digitalWrite(stepPinIdx, HIGH);
    delayMicroseconds(pulseWidthMicrosIdx); // this line is probably unnecessary
    digitalWrite(stepPinIdx, LOW);
    
    delayMicroseconds(microbetweenStepsIdx);
    
    
  }
  delay(1000);
}
void conveyor () {
  digitalWrite(directionPinCon, HIGH); 
  for(int b = 0; b < numberOfStepsCon; b++) {
    digitalWrite(stepPinCon, HIGH);
    delayMicroseconds(pulseWidthMicrosCon); // this line is probably unnecessary
    digitalWrite(stepPinCon, LOW);
    
    delay(microbetweenStepsCon);
    
    //digitalWrite(ledPin, !digitalRead(ledPin));
  }
  digitalWrite(directionPinCon,LOW);
  delay(1000);
}
void unrotate () {
  digitalWrite(solB,LOW);
  delay(1000);
}
void grip_open () {
  digitalWrite(solA,LOW);
  delay(1000);
}
void grip () {
  digitalWrite(solA,HIGH);
  delay(1000);
}
void rotate () {
  digitalWrite(solB,HIGH);
  delay(1000);
}


void robot () {
   digitalWrite(LED3,HIGH);
 delay(450);
 digitalWrite(LED1,HIGH);
 delay(800);
 digitalWrite(LED3,LOW);
 delay(850);
 digitalWrite(LED2,HIGH);
 delay(700);
 digitalWrite(LED3,HIGH);
 //delay(450);
 
 delay(500);
 digitalWrite(LED1,LOW);
 delay(1000);
 digitalWrite(LED3,LOW);
 delay(600);
 digitalWrite(LED2,LOW);
 delay(700);
}

can this function run simultaneously grip_open ();
unrotate (); the the command should i write to run it simultaneously.

No, each of those functions is blocking, using delay, and hogging up all the resources for just one thing to happen all the way until it is done. If you want to be able to take two of those actions at once then you're going to have to completely rethink your style. Instead of thinking of functions as things that get called once and go all the way through a process, think of functions that can take one step and return quickly and be called over and over to achieve the total process.

And maybe this helps as well to see the approach: Demonstration code for several things at the same time