3D Gcode Viewer (Old)
Visualize your GCode in 3D by simulating your GCode run or seeing where your run is at in 3D while your CNC operation is in action.
by chilipeppr
HTML
<script src="http://www.chilipeppr.com/js/require.js"></script>
<link rel="stylesheet" href="http://netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css">
<div id="com-chilipeppr-widget-3dviewer" class="panel panel-default">
<div class="panel-heading">Viewer
<div class="btn-group pull-right">
<button type="button" class="btn btn-xs btn-default com-chilipeppr-widget-3d-menu-viewextents" data-container="body" data-toggle="popover" data-placement="auto" data-content="View extents of GCode object" data-trigger="hover" data-delay="800"> <span class="glyphicon glyphicon-eye-open"></span>
</button>
<button type="button" class="btn btn-xs btn-default com-chilipeppr-widget-3d-menu-samplerun" data-container="body" data-toggle="popover" data-placement="auto" data-content="Play a sample run of the GCode" data-trigger="hover" data-delay="800"> <span class="glyphicon glyphicon-play"></span>
</button>
<button type="button" class="btn btn-xs btn-default com-chilipeppr-widget-3d-menu-samplerunspeed" data-container="body" data-toggle="popover" data-placement="auto" data-content="Speed up from x1 to x1000" data-trigger="hover" data-delay="800">x1</button>
<button type="button" class="btn btn-xs btn-default com-chilipeppr-widget-3d-menu-samplerunpause" data-container="body" data-toggle="popover" data-placement="auto" data-content="Pause the sample run of the GCode" data-trigger="hover" data-delay="800"> <span class="glyphicon glyphicon-pause"></span>
</button>
<button type="button" class="btn btn-xs btn-default com-chilipeppr-widget-3d-menu-samplerunstop" data-container="body" data-toggle="popover" data-placement="auto" data-content="Stop the sample run of the GCode" data-trigger="hover" data-delay="800"> <span class="glyphicon glyphicon-stop"></span>
</button>
<button type="button" class="btn btn-xs btn-default dropdown-toggle"...
CSS
#com-chilipeppr-widget-3dviewer .panel-heading {
/* z-index:100; */
}
#com-chilipeppr-widget-3dviewer-body {
/* height: 350px; */
padding:0;
margin:0;
position: relative;
border:0px solid red;
background-color: blue;
}
#com-chilipeppr-widget-3dviewer-renderArea {
position: fixed;
left: 0;
right: 0;
bottom: 0;
top: 0;
background-color: #000000;
z-index:-1;
}
button.com-chilipeppr-widget-3d-menu-samplerun, button.com-chilipeppr-widget-3d-menu-samplerunstop {
/* color: blue; */
}
#com-chilipeppr-widget-3dviewer .disabled .glyphicon {
color: #dddddd;
}
#com-chilipeppr-widget-3dviewer #warningArea {
position: absolute;
top:0;
left:0;
padding: 10px;
font-size: 9px;
color: white;
}
#com-chilipeppr-widget-3dviewer-infoArea {
position: absolute;
bottom:0;
left:0;
padding: 10px;
font-size: 9px;
color: #333333;
/* background-color: black; */
}
#com-chilipeppr-widget-3dviewer-infoArea .info {
position: absolute;
bottom:0;
left:0;
color: blue;
background-color:red;
}
#com-chilipeppr-widget-3dviewer-renderArea .data-details {
position: absolute;
bottom:0;
left:10;
/* background-color: transparent; */
color: #333333;
padding: 10px;
font-size: 9px;
}
JavaScript
requirejs.config({
paths: {
Three: 'http://threejs.org/build/three.min',
ThreeDetector: 'http://threejs.org/examples/js/Detector',
ThreeStats: 'http://threejs.org/examples/js/libs/stats.min',
ThreeTrackballControls: '//threejs.org/examples/js/controls/TrackballControls',
ThreeOrbitControls: '//threejs.org/examples/js/controls/OrbitControls',
ThreeHelvetiker: 'https://mrdoob.github.com/three.js/examples/fonts/helvetiker_regular.typeface',
ThreeTypeface: 'https://superi.googlecode.com/svn-history/r1953/trunk/MBrand/MBrand/Scripts/typeface-0.15',
//ThreeTween: 'https://raw.githubusercontent.com/sole/tween.js/master/build/tween.min',
ThreeTween: 'http://www.chilipeppr.com/js/three/tween.min',
ThreeSparks: 'https://raw.githubusercontent.com/zz85/sparks.js/master/Sparks',
ThreeParticle: 'https://raw.githubusercontent.com/squarefeet/ShaderParticleEngine/master/build/ShaderParticles.min'
},
shim: {
ThreeTrackballControls: ['Three'],
ThreeTween: ['Three'],
ThreeSparks: ['Three'],
ThreeParticle: ['Three']
}
});
cprequire_test(['inline:com-chilipeppr-widget-3dviewer'], function (threed) {
console.log("Running 3dviewer");
threed.init();
console.log("3d viewer initted");
} /*end_test*/ );
cpdefine('inline:com-chilipeppr-widget-3dviewer', ['chilipeppr_ready', 'Three', 'ThreeDetector', 'ThreeTrackballControls', 'ThreeTween'], function () {
return {
id: 'com-chilipeppr-widget-3dviewer',
url: "http://fiddle.jshell.net/jlauer/8rvxQ/show/light/",
fiddleurl: "http://jsfiddle.net/jlauer/8rvxQ/",
name: "Widget / 3D GCode Viewer",
desc: "Visualize your GCode in 3D by simulating your GCode run or seeing where your run is at in 3D while your CNC operation is in action.",
publish: ['/ws/onconnect', '/ws/ondisconnect', '/ws/sys', '/ws/recv'],
subscribe: ['/dragdrop'],
...