Skip to content

Instantly share code, notes, and snippets.

@jlewin
jlewin / parseSCAD.js
Last active December 19, 2015 12:39
Attempting to build up a simple but usable language definition from wiki output at: http://en.wikibooks.org/wiki/OpenSCAD_User_Manual/The_OpenSCAD_Language
var ran = 0,
loops = 0,
helpDoc = { toc: $('#toc ul:first').html(), terms: [] };
$('.mw-headline').each(function () {
var stash = $('<div>'),
$this = $(this),
context = $this.parent().next(),
l = 0,
helpTerm = { id: $this.text().trim() };
@jlewin
jlewin / node-get-keywords.js
Last active December 19, 2015 13:39
A node script to collect and process OpenSCAD keywords for improved Ace editor highlighting
var https = require('https');
var result = [],
output = [],
padding = ' ',
trailingSemicolon = /;$/,
quotes = /"/g,
actionUrl = 'https://raw.github.com/openscad/openscad/master/src/highlighter.cc'
// Fire the http[s] request
@jlewin
jlewin / prusaBOM.js
Last active December 23, 2015 07:59
Helper script to extract JSON BOM data from http://reprap.org/wiki/Prusa_Mendel_(iteration_2)
var bom = {
parts: importTable($('table')[3]),
vitamins: importTable($('table')[5], 'Fasteners'),
wades: {
parts: importTable($('table')[4]),
vitamins: importTable($('table')[6], 'Fasteners')
}
};
function importTable(tbl, memberName) {
@jlewin
jlewin / threejs.htm
Last active December 23, 2015 10:19
Get bounding box for STL
<script src="../build/three.min.js"></script>
<script src="js/loaders/STLLoader.js"></script>
<script>
var loader = new THREE.STLLoader();
loader.addEventListener('load', function (event) {
var geometry = event.content;
if (geometry.boundingBox === null) {
geometry.computeBoundingBox();
}
@jlewin
jlewin / after.js
Last active December 23, 2015 15:39
Random refactoring of some threejs code
materialGroups = groupedMaterials.map(function (group) {
return group.map(function (name) { return namedMaterials[name]; });
});
@jlewin
jlewin / alternateContrast.patch
Created September 26, 2013 19:09
Some alternate contrast colors for the dark theme grid
diff --git editor/js/Sidebar.Renderer.js editor/js/Sidebar.Renderer.js
index f48dd9a..e56d632 100644
--- editor/js/Sidebar.Renderer.js
+++ editor/js/Sidebar.Renderer.js
@@ -43,13 +43,16 @@ Sidebar.Renderer = function ( editor ) {
var themeRow = new UI.Panel();
var originalColor;
- var theme = new UI.Select().setOptions( [ 'Light', 'Dark' ] ).setWidth( '150px ').setColor( '#444' ).setFontSize( '12px ');
+ var theme = new UI.Select().setOptions( [ 'Light', 'Dark', 'DarkA', 'DarkB', 'DarkC' ] ).setWidth( '150px ').setColor( '#444' ).setFontSize( '12px ');
@jlewin
jlewin / openUrlWindows.js
Created September 29, 2013 01:06
Popup madness: Iterate an array of urls and open a window for each. Useful for opening a bunch of link references without having to open a tab for each and copy, paste, execute.
'urlA;urlB;urlC'.split(';').forEach(function(url){ window.open(url) })
@jlewin
jlewin / themeDefinitions.patch
Created September 29, 2013 06:04
An alternate approach to specifying three.js editor themes
diff --git editor/index.html editor/index.html
index ea980e1..bb3d1f1 100644
--- editor/index.html
+++ editor/index.html
@@ -75,9 +75,28 @@
window.URL = window.URL || window.webkitURL;
window.BlobBuilder = window.BlobBuilder || window.WebKitBlobBuilder || window.MozBlobBuilder;
+ var themes = [{
+ name: 'Light',
@jlewin
jlewin / overOperator.js
Created September 30, 2013 22:26
Over operator for linear interpolation of color values given a source, destination and alpha
// Over Operator
// color = As * Cs + (1 - As) * Cd
function over( sourceColor, destColor, alpha ) {
return alpha * sourceColor + ( 1 - alpha ) * destColor;
}
@jlewin
jlewin / conciseObj.js
Created October 3, 2013 00:15
Reduce an .obj file to its key components for structure evaluation
var inputPath = @"c:\temp\example.obj";
var outputPath = @"c:\temp\results.txt";
var reader = new System.IO.StreamReader(inputPath);
var output = System.IO.File.CreateText(outputPath);
var v = 0;
var vn = 0;
var f = 0;
string line;