102 lines
17 KiB
HTML
102 lines
17 KiB
HTML
<!DOCTYPE html>
|
|
<html><head>
|
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
|
|
<title>highlight.scad</title>
|
|
<meta name="generator" content="KF5::SyntaxHighlighting - Definition (OpenSCAD) - Theme (Breeze Dark)"/>
|
|
</head><body style="background-color:#232629;color:#cfcfc2"><pre>
|
|
<span style="color:#7a7c7d">/*Basic test file</span>
|
|
<span style="color:#7a7c7d">Written by Julian Stirling, 2018</span>
|
|
<span style="color:#7a7c7d">License: MIT*/</span>
|
|
|
|
<span style="color:#7a7c7d">// This is a comment</span>
|
|
x<span style="color:#3f8058">=</span><span style="color:#f67400">5</span><span style="color:#3f8058">;</span>
|
|
y<span style="color:#3f8058">=</span><span style="color:#f67400">6</span><span style="color:#3f8058">;</span>
|
|
z<span style="color:#3f8058">=</span><span style="color:#f67400">5</span><span style="color:#3f8058">;</span>
|
|
r<span style="color:#3f8058">=</span><span style="color:#f67400">2</span><span style="color:#3f8058">;</span>
|
|
<span style="font-weight:bold">for</span> <span style="color:#3f8058">(</span>n <span style="color:#3f8058">=</span> <span style="color:#3f8058">[-</span><span style="color:#f67400">1.5</span><span style="color:#3f8058">:</span><span style="color:#f67400">1</span><span style="color:#3f8058">:</span><span style="color:#f67400">1.5</span><span style="color:#3f8058">]){</span>
|
|
<span style="color:#8e44ad">translate</span><span style="color:#3f8058">([</span>n<span style="color:#3f8058">*</span>x<span style="color:#3f8058">,</span><span style="color:#f67400">0</span><span style="color:#3f8058">,</span><span style="color:#f67400">0</span><span style="color:#3f8058">]){</span>cubehole<span style="color:#3f8058">([</span>x<span style="color:#3f8058">,</span>y<span style="color:#3f8058">,</span>z<span style="color:#3f8058">],</span>r<span style="color:#3f8058">);}</span>
|
|
<span style="color:#3f8058">}</span>
|
|
|
|
<span style="font-weight:bold">module</span> cubehole<span style="color:#3f8058">(</span>size<span style="color:#3f8058">,</span>holerad<span style="color:#3f8058">)</span>
|
|
<span style="color:#3f8058">{</span>
|
|
<span style="color:#2980b9">$fn</span>=<span style="color:#f67400">28</span><span style="color:#3f8058">;</span>
|
|
<span style="color:#8e44ad">difference</span><span style="color:#3f8058">()</span>
|
|
<span style="color:#3f8058">{</span>
|
|
<span style="font-weight:bold">cube</span><span style="color:#3f8058">(</span>size<span style="color:#3f8058">,</span>center<span style="color:#3f8058">=</span><span style="font-weight:bold">true</span><span style="color:#3f8058">);</span>
|
|
<span style="font-weight:bold">cylinder</span><span style="color:#3f8058">(</span>size<span style="color:#3f8058">[</span><span style="color:#f67400">2</span><span style="color:#3f8058">]+</span><span style="color:#f67400">1</span><span style="color:#3f8058">,</span>r<span style="color:#3f8058">=</span>holerad<span style="color:#3f8058">,</span>center<span style="color:#3f8058">=</span><span style="font-weight:bold">true</span><span style="color:#3f8058">);</span>
|
|
<span style="color:#3f8058">}</span>
|
|
<span style="color:#3f8058">}</span>
|
|
|
|
<span style="color:#7a7c7d">// some examples adapted from https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/General</span>
|
|
<span style="font-weight:bold">cube</span><span style="color:#3f8058">(</span><span style="color:#f67400">5</span><span style="color:#3f8058">);</span>
|
|
x <span style="color:#3f8058">=</span> <span style="color:#f67400">4</span> <span style="color:#3f8058">+</span> y<span style="color:#3f8058">;</span>
|
|
<span style="color:#8e44ad">rotate</span><span style="color:#3f8058">(</span><span style="color:#f67400">40</span><span style="color:#3f8058">)</span> <span style="font-weight:bold">square</span><span style="color:#3f8058">(</span><span style="color:#f67400">5</span><span style="color:#3f8058">,</span><span style="color:#f67400">10</span><span style="color:#3f8058">);</span>
|
|
<span style="color:#8e44ad">translate</span><span style="color:#3f8058">([</span><span style="color:#f67400">10</span><span style="color:#3f8058">,</span> <span style="color:#f67400">5</span><span style="color:#3f8058">])</span> <span style="color:#3f8058">{</span>
|
|
<span style="font-weight:bold">circle</span><span style="color:#3f8058">(</span><span style="color:#f67400">5</span><span style="color:#3f8058">);</span>
|
|
<span style="font-weight:bold">square</span><span style="color:#3f8058">(</span><span style="color:#f67400">4</span><span style="color:#3f8058">);</span>
|
|
<span style="color:#3f8058">}</span>
|
|
<span style="color:#8e44ad">rotate</span><span style="color:#3f8058">(</span><span style="color:#f67400">60</span><span style="color:#3f8058">)</span> <span style="color:#8e44ad">color</span><span style="color:#3f8058">(</span><span style="color:#f44f4f">"red"</span><span style="color:#3f8058">)</span> <span style="color:#3f8058">{</span>
|
|
<span style="font-weight:bold">circle</span><span style="color:#3f8058">(</span><span style="color:#f67400">5</span><span style="color:#3f8058">);</span>
|
|
<span style="font-weight:bold">square</span><span style="color:#3f8058">(</span><span style="color:#f67400">4</span><span style="color:#3f8058">);</span>
|
|
<span style="color:#3f8058">}</span>
|
|
<span style="color:#8e44ad">color</span><span style="color:#3f8058">(</span><span style="color:#f44f4f">"blue"</span><span style="color:#3f8058">)</span> <span style="color:#3f8058">{</span>
|
|
<span style="color:#8e44ad">translate</span><span style="color:#3f8058">([</span><span style="color:#f67400">5</span><span style="color:#3f8058">,</span> <span style="color:#f67400">3</span><span style="color:#3f8058">,</span> <span style="color:#f67400">0</span><span style="color:#3f8058">])</span> <span style="font-weight:bold">sphere</span><span style="color:#3f8058">(</span><span style="color:#f67400">5</span><span style="color:#3f8058">);</span>
|
|
<span style="color:#8e44ad">rotate</span><span style="color:#3f8058">([</span><span style="color:#f67400">45</span><span style="color:#3f8058">,</span> <span style="color:#f67400">0</span><span style="color:#3f8058">,</span> <span style="color:#f67400">45</span><span style="color:#3f8058">])</span> <span style="color:#3f8058">{</span>
|
|
<span style="font-weight:bold">cylinder</span><span style="color:#3f8058">(</span><span style="color:#f67400">10</span><span style="color:#3f8058">);</span>
|
|
<span style="font-weight:bold">cube</span><span style="color:#3f8058">([</span><span style="color:#f67400">5</span><span style="color:#3f8058">,</span> <span style="color:#f67400">6</span><span style="color:#3f8058">,</span> <span style="color:#f67400">7</span><span style="color:#3f8058">]);</span>
|
|
<span style="color:#3f8058">}</span>
|
|
<span style="color:#3f8058">}</span>
|
|
|
|
aNumber <span style="color:#3f8058">=</span> <span style="color:#f67400">42</span><span style="color:#3f8058">;</span>
|
|
aBoolean <span style="color:#3f8058">=</span> <span style="font-weight:bold">true</span><span style="color:#3f8058">;</span>
|
|
anotherBoolean <span style="color:#3f8058">=</span> <span style="font-weight:bold">false</span><span style="color:#3f8058">;</span>
|
|
aString <span style="color:#3f8058">=</span> <span style="color:#f44f4f">"foo"</span><span style="color:#3f8058">;</span>
|
|
aRange <span style="color:#3f8058">=</span> <span style="color:#3f8058">[</span><span style="color:#f67400">0</span><span style="color:#3f8058">:</span> <span style="color:#f67400">1</span><span style="color:#3f8058">:</span> <span style="color:#f67400">10</span><span style="color:#3f8058">];</span>
|
|
aVector <span style="color:#3f8058">=</span> <span style="color:#3f8058">[</span><span style="color:#f67400">1</span><span style="color:#3f8058">,</span> <span style="color:#f67400">2</span><span style="color:#3f8058">,</span> <span style="color:#f67400">3</span><span style="color:#3f8058">];</span>
|
|
aUndef <span style="color:#3f8058">=</span> <span style="font-weight:bold">undef</span><span style="color:#3f8058">;</span>
|
|
moreNumbers <span style="color:#3f8058">=</span> <span style="color:#3f8058">[-</span><span style="color:#f67400">1</span><span style="color:#3f8058">,</span> <span style="color:#f67400">42</span><span style="color:#3f8058">,</span> <span style="color:#f67400">0.5</span><span style="color:#3f8058">,</span> <span style="color:#f67400">2.99792458e+8</span><span style="color:#3f8058">,</span> <span style="color:#f67400">1.337e3</span><span style="color:#3f8058">,</span> <span style="color:#f67400">314</span>e<span style="color:#3f8058">-</span><span style="color:#f67400">2</span><span style="color:#3f8058">];</span>
|
|
<span style="color:#0099ff;font-weight:bold">echo</span><span style="color:#3f8058">(</span>moreNumbers<span style="color:#3f8058">)</span>
|
|
<span style="color:#0099ff;font-weight:bold">echo</span><span style="color:#3f8058">(</span><span style="color:#f44f4f">"The quick brown fox \tjumps \"over\" the lazy dog.\rThe quick brown fox.\nThe \\lazy\\ dog. \x21 \u03a9 \U01F98A \U01f43e"</span><span style="color:#3f8058">);</span>
|
|
|
|
vector1 <span style="color:#3f8058">=</span> <span style="color:#3f8058">[</span><span style="color:#f67400">1</span><span style="color:#3f8058">,</span><span style="color:#f67400">2</span><span style="color:#3f8058">,</span><span style="color:#f67400">3</span><span style="color:#3f8058">];</span> vector2 <span style="color:#3f8058">=</span> <span style="color:#3f8058">[</span><span style="color:#f67400">4</span><span style="color:#3f8058">];</span> vector3 <span style="color:#3f8058">=</span> <span style="color:#3f8058">[</span><span style="color:#f67400">5</span><span style="color:#3f8058">,</span><span style="color:#f67400">6</span><span style="color:#3f8058">];</span>
|
|
new_vector <span style="color:#3f8058">=</span> <span style="color:#0099ff;font-weight:bold">concat</span><span style="color:#3f8058">(</span>vector1<span style="color:#3f8058">,</span> vector2<span style="color:#3f8058">,</span> vector3<span style="color:#3f8058">);</span> <span style="color:#7a7c7d">// [1,2,3,4,5,6]</span>
|
|
|
|
string_vector <span style="color:#3f8058">=</span> <span style="color:#0099ff;font-weight:bold">concat</span><span style="color:#3f8058">(</span><span style="color:#f44f4f">"abc"</span><span style="color:#3f8058">,</span><span style="color:#f44f4f">"def"</span><span style="color:#3f8058">);</span> <span style="color:#7a7c7d">// ["abc", "def"]</span>
|
|
one_string <span style="color:#3f8058">=</span> <span style="color:#0099ff;font-weight:bold">str</span><span style="color:#3f8058">(</span>string_vector<span style="color:#3f8058">[</span><span style="color:#f67400">0</span><span style="color:#3f8058">],</span>string_vector<span style="color:#3f8058">[</span><span style="color:#f67400">1</span><span style="color:#3f8058">]);</span> <span style="color:#7a7c7d">// "abcdef"</span>
|
|
|
|
a <span style="color:#3f8058">=</span> <span style="color:#3f8058">[</span><span style="color:#f67400">1</span><span style="color:#3f8058">,</span><span style="color:#f67400">2</span><span style="color:#3f8058">,</span><span style="color:#f67400">3</span><span style="color:#3f8058">];</span> <span style="color:#0099ff;font-weight:bold">echo</span><span style="color:#3f8058">(</span><span style="color:#7f8c8d">len</span><span style="color:#3f8058">(</span>a<span style="color:#3f8058">));</span> <span style="color:#7a7c7d">// 3</span>
|
|
|
|
<span style="color:#7a7c7d">// Example which defines a 2D rotation matrix</span>
|
|
mr <span style="color:#3f8058">=</span> <span style="color:#3f8058">[</span>
|
|
<span style="color:#3f8058">[</span><span style="color:#7f8c8d">cos</span><span style="color:#3f8058">(</span>angle<span style="color:#3f8058">),</span> <span style="color:#3f8058">-</span><span style="color:#7f8c8d">sin</span><span style="color:#3f8058">(</span>angle<span style="color:#3f8058">)],</span>
|
|
<span style="color:#3f8058">[</span><span style="color:#7f8c8d">sin</span><span style="color:#3f8058">(</span>angle<span style="color:#3f8058">),</span> <span style="color:#7f8c8d">cos</span><span style="color:#3f8058">(</span>angle<span style="color:#3f8058">)]</span>
|
|
<span style="color:#3f8058">];</span>
|
|
|
|
<span style="color:#7a7c7d">// modifiers</span>
|
|
<span style="color:#3f8058">%</span> <span style="font-weight:bold">cube</span><span style="color:#3f8058">([</span><span style="color:#f67400">10</span><span style="color:#3f8058">,</span> <span style="color:#f67400">10</span><span style="color:#3f8058">,</span> <span style="color:#f67400">10</span><span style="color:#3f8058">]);</span> <span style="color:#7a7c7d">// background</span>
|
|
<span style="color:#3f8058">#</span> <span style="font-weight:bold">cube</span><span style="color:#3f8058">([</span><span style="color:#f67400">10</span><span style="color:#3f8058">,</span> <span style="color:#f67400">10</span><span style="color:#3f8058">,</span> <span style="color:#f67400">10</span><span style="color:#3f8058">]);</span> <span style="color:#7a7c7d">// debug</span>
|
|
<span style="color:#3f8058">!</span> <span style="font-weight:bold">cube</span><span style="color:#3f8058">([</span><span style="color:#f67400">10</span><span style="color:#3f8058">,</span> <span style="color:#f67400">10</span><span style="color:#3f8058">,</span> <span style="color:#f67400">10</span><span style="color:#3f8058">]);</span> <span style="color:#7a7c7d">// root</span>
|
|
<span style="color:#3f8058">*</span> <span style="font-weight:bold">cube</span><span style="color:#3f8058">([</span><span style="color:#f67400">10</span><span style="color:#3f8058">,</span> <span style="color:#f67400">10</span><span style="color:#3f8058">,</span> <span style="color:#f67400">10</span><span style="color:#3f8058">]);</span> <span style="color:#7a7c7d">// disable</span>
|
|
|
|
<span style="color:#7a7c7d">// if example taken from https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Other_Language_Features#Rounding_examples</span>
|
|
<span style="font-weight:bold">if</span><span style="color:#3f8058">(</span>a<span style="color:#3f8058">==</span>b<span style="color:#3f8058">){</span>
|
|
<span style="color:#0099ff;font-weight:bold">echo</span> <span style="color:#3f8058">(</span><span style="color:#f44f4f">"a==b"</span><span style="color:#3f8058">);</span>
|
|
<span style="color:#3f8058">}</span><span style="font-weight:bold">else</span> <span style="font-weight:bold">if</span><span style="color:#3f8058">(</span>a<span style="color:#3f8058">></span>b<span style="color:#3f8058">){</span>
|
|
<span style="color:#0099ff;font-weight:bold">echo</span> <span style="color:#3f8058">(</span><span style="color:#f44f4f">"a>b"</span><span style="color:#3f8058">);</span>
|
|
<span style="color:#3f8058">}</span><span style="font-weight:bold">else</span> <span style="font-weight:bold">if</span><span style="color:#3f8058">(</span>a<span style="color:#3f8058"><</span>b<span style="color:#3f8058">){</span>
|
|
<span style="color:#0099ff;font-weight:bold">echo</span> <span style="color:#3f8058">(</span><span style="color:#f44f4f">"a<b"</span><span style="color:#3f8058">);</span>
|
|
<span style="color:#3f8058">}</span><span style="font-weight:bold">else</span><span style="color:#3f8058">{</span>
|
|
<span style="color:#0099ff;font-weight:bold">echo</span> <span style="color:#3f8058">(</span><span style="color:#f44f4f">"???"</span><span style="color:#3f8058">);</span>
|
|
<span style="color:#3f8058">}</span>
|
|
|
|
<span style="color:#7a7c7d">// assert example taken from https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Other_Language_Features#assert</span>
|
|
<span style="font-weight:bold">module</span> row<span style="color:#3f8058">(</span>cnt <span style="color:#3f8058">=</span> <span style="color:#f67400">3</span><span style="color:#3f8058">){</span>
|
|
<span style="color:#7a7c7d">// Count has to be a positive integer greater 0</span>
|
|
<span style="color:#0099ff;font-weight:bold">assert</span><span style="color:#3f8058">(</span>cnt <span style="color:#3f8058">></span> <span style="color:#f67400">0</span><span style="color:#3f8058">);</span>
|
|
<span style="font-weight:bold">for</span> <span style="color:#3f8058">(</span>i <span style="color:#3f8058">=</span> <span style="color:#3f8058">[</span><span style="color:#f67400">1</span> <span style="color:#3f8058">:</span> cnt<span style="color:#3f8058">])</span> <span style="color:#3f8058">{</span>
|
|
<span style="color:#8e44ad">translate</span><span style="color:#3f8058">([</span>i <span style="color:#3f8058">*</span> <span style="color:#f67400">2</span><span style="color:#3f8058">,</span> <span style="color:#f67400">0</span><span style="color:#3f8058">,</span> <span style="color:#f67400">0</span><span style="color:#3f8058">])</span> <span style="font-weight:bold">sphere</span><span style="color:#3f8058">();</span>
|
|
<span style="color:#3f8058">}</span>
|
|
<span style="color:#3f8058">}</span>
|
|
row<span style="color:#3f8058">(</span><span style="color:#f67400">0</span><span style="color:#3f8058">);</span>
|
|
</pre></body></html>
|