Add machine workshop, typed logic, mechanics and sensor-driven ECUs
This commit is contained in:
11
tools/MachineBench.hpp
Normal file
11
tools/MachineBench.hpp
Normal file
@@ -0,0 +1,11 @@
|
||||
#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});
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user