console.log('indepenedent script');
// standard variables
var tube_kg_per_m = 4.4;
var tube_width = 0.05;
var gravity = 0.0981;
var board_width = 0.25;
var board_kn_per_area = 0.25;
class SuperTube extends Tube {
constructor(name, length, qty, orinentationm, superThickness) {
super(name, length, qty, orinentation);
this.superThickness = superThickness;
}
getKg() {
return 0;
}
hello() {
console.log('hello');
}
}
let x = new SuperTube('x', 12, 13, 'z', 122);
console.log(x.getKg(), x.hello());
class Tube {
constructor(name, length, qty, orinentation) {
this.name = name;
this.qty = qty;
this.length = length;
this.orinentation = orinentation;
}
getKg() {
return this.qty * this.length * this.getTubeKgPerM();
}
getArea() {
return this.qty * this.length * this.getTubeWidth();
}
getKn() {
return this.qty * this.length * this.getTubeKgPerM() * this.getGravity();
}
getGravity() {
return 0.0981;
}
getTubeWidth() {
return 0.05;
}
getTubeKgPerM() {
return 4.4;
}
}
// function return independent properties
function independent(inner_boards, outer_boards, lift_height, baywidth, transom_spacing){
var output = {};
// independent variables
var transom_qty = Math.ceil(baywidth/transom_spacing);
var inner_width = ((inner_boards*0.5)+outer_boards)*board_width;
var outer_width = inner_boards*board_width*0.5;
var brace_length = Math.sqrt(Math.pow(inner_boards*board_width,2)+Math.pow(lift_height,2));
// inner component parameters
var inner_components = [
{'name': 'standard', 'length': lift_height, 'qty': 1, 'orientation': 'z'},
{'name': 'ledger', 'length': baywidth, 'qty': 1, 'orientation': 'x'},
{'name': 'transom', 'length': inner_width, 'qty': transom_qty, 'orientation': 'y'},
{'name': 'brace', 'length': brace_length*0.6, 'qty': 1, 'orientation': 'z'},
];
output.inner_components = [];
for (let component of inner_components) {
let tube = new Tube(
component.name,
component.length,
component.qty,
component.orientation
);
output.inner_components.push(tube);
console.log(tube.getArea());
}
output.inner_kg = 0;
output.inner_kn = 0;
output.inner_tube_area_y = 0;
output.inner_tube_area_x = 0;
for (let tube of output.inner_components) {
output.inner_kg += tube.getKg();
output.inner_kn += tube.getKn();
if(tube.orientation == 'z' || tube.orientation == 'y'){
output.inner_tube_area_y += tube.getArea();
};
if(tube.orientation == 'z' || tube.orientation == 'x'){
output.inner_tube_area_x += tube.getArea();
};
}
return output;
}
console.log(independent(4,2,2,1.8,0.8));