-
Amira Abdel-Rahman authoredAmira Abdel-Rahman authored
draw.js 4.29 KiB
// Amira Abdel-Rahman
// (c) Massachusetts Institute of Technology 2020
var gridSize=10;
rhino3dm().then(async m => {
console.log('Loaded rhino3dm.');
_rhino3dm = m; // global
var voxelSize=json.voxelSize;
var material=json.materials[0][1];
setup=JSON.parse(JSON.stringify(setupEmpty));
if(!json.rhino){
var latticeSizeX=json.latticeSizeX;
var latticeSizeY=json.latticeSizeY;
var latticeSizeZ=json.latticeSizeZ;
gridSize=json.gridSize;
// console.log(material.area)
const position=new THREE.Vector3(0,0,0);
setup.hierarchical=json.hierarchical;
setup.voxelSize=voxelSize;
if(setup.hierarchical){
createLattice(setup,voxelSize,latticeSizeX,latticeSizeY,latticeSizeZ,createHierarchalVoxel,material);
}else{
createLattice(setup,voxelSize,latticeSizeX,latticeSizeY,latticeSizeZ,createVoxel,material);
}
}else{
var latticeSizeX=json.latticeSizeX;
var latticeSizeY=json.latticeSizeY;
var latticeSizeZ=json.latticeSizeZ;
setup.hierarchical=json.hierarchical;
setup.voxelSize=voxelSize;
createGeometryFromRhino(setup,json.rhinoFileName,json.layerIndex,voxelSize,latticeSizeX,latticeSizeY,latticeSizeZ,material);
}
var materials=[];
var supports=[];
var loads=[];
var fixedDisplacements=[];
setup.materials=json.materials;
setup.supports=json.supports;
setup.loads=json.loads;
setup.fixedDisplacements=json.fixedDisplacements;
var materials1=json.materials;
var supports1=json.supports;
var loads1=json.loads;
var fixedDisplacements1=json.fixedDisplacements;
for (var i=1;i<materials1.length;i++ ){
var material1=materials1[i];
var boundingMaterial=new _rhino3dm.BoundingBox(
[
material1[0].min.x,
material1[0].min.y,
material1[0].min.z
],
[
material1[0].max.x,
material1[0].max.y,
material1[0].max.z
]);
materials.push([ boundingMaterial,material1[1]]);
}
for (var i=0;i<supports1.length;i++ ){
var support1=supports1[i];
var boundingSupport=new _rhino3dm.BoundingBox(
[
support1[0].min.x,
support1[0].min.y,
support1[0].min.z
],
[
support1[0].max.x,
support1[0].max.y,
support1[0].max.z
]);
supports.push([ boundingSupport,support1[1]]);
}
for (var i=0;i<loads1.length;i++ ){
var load1=loads1[i];
var boundingLoad=new _rhino3dm.BoundingBox(
[
load1[0].min.x,
load1[0].min.y,
load1[0].min.z
],
[
load1[0].max.x,
load1[0].max.y,
load1[0].max.z
]);
loads.push([ boundingLoad,load1[1]]);
}
for (var i=0;i<fixedDisplacements1.length;i++ ){
var fixedDisplacement1=fixedDisplacements1[i];
var boundingFixedDisplacement=new _rhino3dm.BoundingBox(
[
fixedDisplacement1[0].min.x,
fixedDisplacement1[0].min.y,
fixedDisplacement1[0].min.z
],
[
fixedDisplacement1[0].max.x,
fixedDisplacement1[0].max.y,
fixedDisplacement1[0].max.z
]);
fixedDisplacements.push([ boundingFixedDisplacement,fixedDisplacement1[1]]);
}
changeMaterialFromBox(setup,materials);
restrainFromBox(setup,supports);
loadFromBox(setup,loads);
displacementFromBox(setup,fixedDisplacements);
// setup.viz.colorMaps=[YlGnBu,coolwarm, winter ,jet];
setup.viz.minStress=10e6;
setup.viz.maxStress=-10e6;
setup.viz.exaggeration=1.0;
setup.animation.exaggeration=1.0;
setup.viz.colorMaps=[];
setup.numTimeSteps=json.numTimeSteps;
setup.maxNumFiles=json.maxNumFiles;
setup.poisson=json.poisson;
setup.scale=json.scale;
setup.linear=json.linear;
setup.globalDamping=json.globalDamping;
setup.thermal=json.thermal;
saveJSON();
console.log("Success!")
});