12 lines
778 B
C++
12 lines
778 B
C++
#pragma once
|
|
#include "FluidSim/Machine.hpp"
|
|
#include <stdexcept>
|
|
namespace fluidsim::port::bench {
|
|
inline void set_rpm(MachineDocument& design,float rpm){
|
|
const auto shaft=machine_primary_shaft(design);if(!shaft)throw std::invalid_argument("Benchmark needs a primary shaft");
|
|
const auto position=design.find(shaft)->position;design.find(shaft)->shaft.initial_speed=rpm*2*pi/60;
|
|
for(auto& part:design.parts)if(part.kind==MachinePartKind::DriveMotor&&machine_shaft_for(design,part.id)==shaft){part.drive={rpm*2*pi/60,0,true,true};return;}
|
|
auto& drive=design.add(MachinePartKind::DriveMotor,machine_math::add(position,{-.3f,0,0}));const auto id=drive.id;drive.name="Benchmark speed drive";drive.drive.target_speed=rpm*2*pi/60;design.connect({shaft,0},{id,0});
|
|
}
|
|
}
|