1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101
|
<!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 Light)"/>
</head><body style="background-color:#ffffff;color:#1f1c1b"><pre>
<span style="color:#898887">/*Basic test file</span>
<span style="color:#898887">Written by Julian Stirling, 2018</span>
<span style="color:#898887">License: MIT*/</span>
<span style="color:#898887">// This is a comment</span>
x<span style="color:#ca60ca">=</span><span style="color:#b08000">5</span><span style="color:#ca60ca">;</span>
y<span style="color:#ca60ca">=</span><span style="color:#b08000">6</span><span style="color:#ca60ca">;</span>
z<span style="color:#ca60ca">=</span><span style="color:#b08000">5</span><span style="color:#ca60ca">;</span>
r<span style="color:#ca60ca">=</span><span style="color:#b08000">2</span><span style="color:#ca60ca">;</span>
<span style="font-weight:bold">for</span> <span style="color:#ca60ca">(</span>n <span style="color:#ca60ca">=</span> <span style="color:#ca60ca">[-</span><span style="color:#b08000">1.5</span><span style="color:#ca60ca">:</span><span style="color:#b08000">1</span><span style="color:#ca60ca">:</span><span style="color:#b08000">1.5</span><span style="color:#ca60ca">]){</span>
<span style="color:#644a9b">translate</span><span style="color:#ca60ca">([</span>n<span style="color:#ca60ca">*</span>x<span style="color:#ca60ca">,</span><span style="color:#b08000">0</span><span style="color:#ca60ca">,</span><span style="color:#b08000">0</span><span style="color:#ca60ca">]){</span>cubehole<span style="color:#ca60ca">([</span>x<span style="color:#ca60ca">,</span>y<span style="color:#ca60ca">,</span>z<span style="color:#ca60ca">],</span>r<span style="color:#ca60ca">);}</span>
<span style="color:#ca60ca">}</span>
<span style="font-weight:bold">module</span> cubehole<span style="color:#ca60ca">(</span>size<span style="color:#ca60ca">,</span>holerad<span style="color:#ca60ca">)</span>
<span style="color:#ca60ca">{</span>
<span style="color:#0057ae">$fn</span>=<span style="color:#b08000">28</span><span style="color:#ca60ca">;</span>
<span style="color:#644a9b">difference</span><span style="color:#ca60ca">()</span>
<span style="color:#ca60ca">{</span>
<span style="font-weight:bold">cube</span><span style="color:#ca60ca">(</span>size<span style="color:#ca60ca">,</span>center<span style="color:#ca60ca">=</span><span style="font-weight:bold">true</span><span style="color:#ca60ca">);</span>
<span style="font-weight:bold">cylinder</span><span style="color:#ca60ca">(</span>size<span style="color:#ca60ca">[</span><span style="color:#b08000">2</span><span style="color:#ca60ca">]+</span><span style="color:#b08000">1</span><span style="color:#ca60ca">,</span>r<span style="color:#ca60ca">=</span>holerad<span style="color:#ca60ca">,</span>center<span style="color:#ca60ca">=</span><span style="font-weight:bold">true</span><span style="color:#ca60ca">);</span>
<span style="color:#ca60ca">}</span>
<span style="color:#ca60ca">}</span>
<span style="color:#898887">// some examples adapted from https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/General</span>
<span style="font-weight:bold">cube</span><span style="color:#ca60ca">(</span><span style="color:#b08000">5</span><span style="color:#ca60ca">);</span>
x <span style="color:#ca60ca">=</span> <span style="color:#b08000">4</span> <span style="color:#ca60ca">+</span> y<span style="color:#ca60ca">;</span>
<span style="color:#644a9b">rotate</span><span style="color:#ca60ca">(</span><span style="color:#b08000">40</span><span style="color:#ca60ca">)</span> <span style="font-weight:bold">square</span><span style="color:#ca60ca">(</span><span style="color:#b08000">5</span><span style="color:#ca60ca">,</span><span style="color:#b08000">10</span><span style="color:#ca60ca">);</span>
<span style="color:#644a9b">translate</span><span style="color:#ca60ca">([</span><span style="color:#b08000">10</span><span style="color:#ca60ca">,</span> <span style="color:#b08000">5</span><span style="color:#ca60ca">])</span> <span style="color:#ca60ca">{</span>
<span style="font-weight:bold">circle</span><span style="color:#ca60ca">(</span><span style="color:#b08000">5</span><span style="color:#ca60ca">);</span>
<span style="font-weight:bold">square</span><span style="color:#ca60ca">(</span><span style="color:#b08000">4</span><span style="color:#ca60ca">);</span>
<span style="color:#ca60ca">}</span>
<span style="color:#644a9b">rotate</span><span style="color:#ca60ca">(</span><span style="color:#b08000">60</span><span style="color:#ca60ca">)</span> <span style="color:#644a9b">color</span><span style="color:#ca60ca">(</span><span style="color:#bf0303">"red"</span><span style="color:#ca60ca">)</span> <span style="color:#ca60ca">{</span>
<span style="font-weight:bold">circle</span><span style="color:#ca60ca">(</span><span style="color:#b08000">5</span><span style="color:#ca60ca">);</span>
<span style="font-weight:bold">square</span><span style="color:#ca60ca">(</span><span style="color:#b08000">4</span><span style="color:#ca60ca">);</span>
<span style="color:#ca60ca">}</span>
<span style="color:#644a9b">color</span><span style="color:#ca60ca">(</span><span style="color:#bf0303">"blue"</span><span style="color:#ca60ca">)</span> <span style="color:#ca60ca">{</span>
<span style="color:#644a9b">translate</span><span style="color:#ca60ca">([</span><span style="color:#b08000">5</span><span style="color:#ca60ca">,</span> <span style="color:#b08000">3</span><span style="color:#ca60ca">,</span> <span style="color:#b08000">0</span><span style="color:#ca60ca">])</span> <span style="font-weight:bold">sphere</span><span style="color:#ca60ca">(</span><span style="color:#b08000">5</span><span style="color:#ca60ca">);</span>
<span style="color:#644a9b">rotate</span><span style="color:#ca60ca">([</span><span style="color:#b08000">45</span><span style="color:#ca60ca">,</span> <span style="color:#b08000">0</span><span style="color:#ca60ca">,</span> <span style="color:#b08000">45</span><span style="color:#ca60ca">])</span> <span style="color:#ca60ca">{</span>
<span style="font-weight:bold">cylinder</span><span style="color:#ca60ca">(</span><span style="color:#b08000">10</span><span style="color:#ca60ca">);</span>
<span style="font-weight:bold">cube</span><span style="color:#ca60ca">([</span><span style="color:#b08000">5</span><span style="color:#ca60ca">,</span> <span style="color:#b08000">6</span><span style="color:#ca60ca">,</span> <span style="color:#b08000">7</span><span style="color:#ca60ca">]);</span>
<span style="color:#ca60ca">}</span>
<span style="color:#ca60ca">}</span>
aNumber <span style="color:#ca60ca">=</span> <span style="color:#b08000">42</span><span style="color:#ca60ca">;</span>
aBoolean <span style="color:#ca60ca">=</span> <span style="font-weight:bold">true</span><span style="color:#ca60ca">;</span>
anotherBoolean <span style="color:#ca60ca">=</span> <span style="font-weight:bold">false</span><span style="color:#ca60ca">;</span>
aString <span style="color:#ca60ca">=</span> <span style="color:#bf0303">"foo"</span><span style="color:#ca60ca">;</span>
aRange <span style="color:#ca60ca">=</span> <span style="color:#ca60ca">[</span><span style="color:#b08000">0</span><span style="color:#ca60ca">:</span> <span style="color:#b08000">1</span><span style="color:#ca60ca">:</span> <span style="color:#b08000">10</span><span style="color:#ca60ca">];</span>
aVector <span style="color:#ca60ca">=</span> <span style="color:#ca60ca">[</span><span style="color:#b08000">1</span><span style="color:#ca60ca">,</span> <span style="color:#b08000">2</span><span style="color:#ca60ca">,</span> <span style="color:#b08000">3</span><span style="color:#ca60ca">];</span>
aUndef <span style="color:#ca60ca">=</span> <span style="font-weight:bold">undef</span><span style="color:#ca60ca">;</span>
moreNumbers <span style="color:#ca60ca">=</span> <span style="color:#ca60ca">[-</span><span style="color:#b08000">1</span><span style="color:#ca60ca">,</span> <span style="color:#b08000">42</span><span style="color:#ca60ca">,</span> <span style="color:#b08000">0.5</span><span style="color:#ca60ca">,</span> <span style="color:#b08000">2.99792458e+8</span><span style="color:#ca60ca">,</span> <span style="color:#b08000">1.337e3</span><span style="color:#ca60ca">,</span> <span style="color:#b08000">314</span>e<span style="color:#ca60ca">-</span><span style="color:#b08000">2</span><span style="color:#ca60ca">];</span>
<span style="color:#0095ff;font-weight:bold">echo</span><span style="color:#ca60ca">(</span>moreNumbers<span style="color:#ca60ca">)</span>
<span style="color:#0095ff;font-weight:bold">echo</span><span style="color:#ca60ca">(</span><span style="color:#bf0303">"The quick brown fox \tjumps \"over\" the lazy dog.\rThe quick brown fox.\nThe \\lazy\\ dog. \x21 \u03a9 \U01F98A \U01f43e"</span><span style="color:#ca60ca">);</span>
vector1 <span style="color:#ca60ca">=</span> <span style="color:#ca60ca">[</span><span style="color:#b08000">1</span><span style="color:#ca60ca">,</span><span style="color:#b08000">2</span><span style="color:#ca60ca">,</span><span style="color:#b08000">3</span><span style="color:#ca60ca">];</span> vector2 <span style="color:#ca60ca">=</span> <span style="color:#ca60ca">[</span><span style="color:#b08000">4</span><span style="color:#ca60ca">];</span> vector3 <span style="color:#ca60ca">=</span> <span style="color:#ca60ca">[</span><span style="color:#b08000">5</span><span style="color:#ca60ca">,</span><span style="color:#b08000">6</span><span style="color:#ca60ca">];</span>
new_vector <span style="color:#ca60ca">=</span> <span style="color:#0095ff;font-weight:bold">concat</span><span style="color:#ca60ca">(</span>vector1<span style="color:#ca60ca">,</span> vector2<span style="color:#ca60ca">,</span> vector3<span style="color:#ca60ca">);</span> <span style="color:#898887">// [1,2,3,4,5,6]</span>
string_vector <span style="color:#ca60ca">=</span> <span style="color:#0095ff;font-weight:bold">concat</span><span style="color:#ca60ca">(</span><span style="color:#bf0303">"abc"</span><span style="color:#ca60ca">,</span><span style="color:#bf0303">"def"</span><span style="color:#ca60ca">);</span> <span style="color:#898887">// ["abc", "def"]</span>
one_string <span style="color:#ca60ca">=</span> <span style="color:#0095ff;font-weight:bold">str</span><span style="color:#ca60ca">(</span>string_vector<span style="color:#ca60ca">[</span><span style="color:#b08000">0</span><span style="color:#ca60ca">],</span>string_vector<span style="color:#ca60ca">[</span><span style="color:#b08000">1</span><span style="color:#ca60ca">]);</span> <span style="color:#898887">// "abcdef"</span>
a <span style="color:#ca60ca">=</span> <span style="color:#ca60ca">[</span><span style="color:#b08000">1</span><span style="color:#ca60ca">,</span><span style="color:#b08000">2</span><span style="color:#ca60ca">,</span><span style="color:#b08000">3</span><span style="color:#ca60ca">];</span> <span style="color:#0095ff;font-weight:bold">echo</span><span style="color:#ca60ca">(</span><span style="color:#644a9b;font-weight:bold">len</span><span style="color:#ca60ca">(</span>a<span style="color:#ca60ca">));</span> <span style="color:#898887">// 3</span>
<span style="color:#898887">// Example which defines a 2D rotation matrix</span>
mr <span style="color:#ca60ca">=</span> <span style="color:#ca60ca">[</span>
<span style="color:#ca60ca">[</span><span style="color:#644a9b;font-weight:bold">cos</span><span style="color:#ca60ca">(</span>angle<span style="color:#ca60ca">),</span> <span style="color:#ca60ca">-</span><span style="color:#644a9b;font-weight:bold">sin</span><span style="color:#ca60ca">(</span>angle<span style="color:#ca60ca">)],</span>
<span style="color:#ca60ca">[</span><span style="color:#644a9b;font-weight:bold">sin</span><span style="color:#ca60ca">(</span>angle<span style="color:#ca60ca">),</span> <span style="color:#644a9b;font-weight:bold">cos</span><span style="color:#ca60ca">(</span>angle<span style="color:#ca60ca">)]</span>
<span style="color:#ca60ca">];</span>
<span style="color:#898887">// modifiers</span>
<span style="color:#ca60ca">%</span> <span style="font-weight:bold">cube</span><span style="color:#ca60ca">([</span><span style="color:#b08000">10</span><span style="color:#ca60ca">,</span> <span style="color:#b08000">10</span><span style="color:#ca60ca">,</span> <span style="color:#b08000">10</span><span style="color:#ca60ca">]);</span> <span style="color:#898887">// background</span>
<span style="color:#ca60ca">#</span> <span style="font-weight:bold">cube</span><span style="color:#ca60ca">([</span><span style="color:#b08000">10</span><span style="color:#ca60ca">,</span> <span style="color:#b08000">10</span><span style="color:#ca60ca">,</span> <span style="color:#b08000">10</span><span style="color:#ca60ca">]);</span> <span style="color:#898887">// debug</span>
<span style="color:#ca60ca">!</span> <span style="font-weight:bold">cube</span><span style="color:#ca60ca">([</span><span style="color:#b08000">10</span><span style="color:#ca60ca">,</span> <span style="color:#b08000">10</span><span style="color:#ca60ca">,</span> <span style="color:#b08000">10</span><span style="color:#ca60ca">]);</span> <span style="color:#898887">// root</span>
<span style="color:#ca60ca">*</span> <span style="font-weight:bold">cube</span><span style="color:#ca60ca">([</span><span style="color:#b08000">10</span><span style="color:#ca60ca">,</span> <span style="color:#b08000">10</span><span style="color:#ca60ca">,</span> <span style="color:#b08000">10</span><span style="color:#ca60ca">]);</span> <span style="color:#898887">// disable</span>
<span style="color:#898887">// 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:#ca60ca">(</span>a<span style="color:#ca60ca">==</span>b<span style="color:#ca60ca">){</span>
<span style="color:#0095ff;font-weight:bold">echo</span> <span style="color:#ca60ca">(</span><span style="color:#bf0303">"a==b"</span><span style="color:#ca60ca">);</span>
<span style="color:#ca60ca">}</span><span style="font-weight:bold">else</span> <span style="font-weight:bold">if</span><span style="color:#ca60ca">(</span>a<span style="color:#ca60ca">></span>b<span style="color:#ca60ca">){</span>
<span style="color:#0095ff;font-weight:bold">echo</span> <span style="color:#ca60ca">(</span><span style="color:#bf0303">"a>b"</span><span style="color:#ca60ca">);</span>
<span style="color:#ca60ca">}</span><span style="font-weight:bold">else</span> <span style="font-weight:bold">if</span><span style="color:#ca60ca">(</span>a<span style="color:#ca60ca"><</span>b<span style="color:#ca60ca">){</span>
<span style="color:#0095ff;font-weight:bold">echo</span> <span style="color:#ca60ca">(</span><span style="color:#bf0303">"a<b"</span><span style="color:#ca60ca">);</span>
<span style="color:#ca60ca">}</span><span style="font-weight:bold">else</span><span style="color:#ca60ca">{</span>
<span style="color:#0095ff;font-weight:bold">echo</span> <span style="color:#ca60ca">(</span><span style="color:#bf0303">"???"</span><span style="color:#ca60ca">);</span>
<span style="color:#ca60ca">}</span>
<span style="color:#898887">// 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:#ca60ca">(</span>cnt <span style="color:#ca60ca">=</span> <span style="color:#b08000">3</span><span style="color:#ca60ca">){</span>
<span style="color:#898887">// Count has to be a positive integer greater 0</span>
<span style="color:#0095ff;font-weight:bold">assert</span><span style="color:#ca60ca">(</span>cnt <span style="color:#ca60ca">></span> <span style="color:#b08000">0</span><span style="color:#ca60ca">);</span>
<span style="font-weight:bold">for</span> <span style="color:#ca60ca">(</span>i <span style="color:#ca60ca">=</span> <span style="color:#ca60ca">[</span><span style="color:#b08000">1</span> <span style="color:#ca60ca">:</span> cnt<span style="color:#ca60ca">])</span> <span style="color:#ca60ca">{</span>
<span style="color:#644a9b">translate</span><span style="color:#ca60ca">([</span>i <span style="color:#ca60ca">*</span> <span style="color:#b08000">2</span><span style="color:#ca60ca">,</span> <span style="color:#b08000">0</span><span style="color:#ca60ca">,</span> <span style="color:#b08000">0</span><span style="color:#ca60ca">])</span> <span style="font-weight:bold">sphere</span><span style="color:#ca60ca">();</span>
<span style="color:#ca60ca">}</span>
<span style="color:#ca60ca">}</span>
row<span style="color:#ca60ca">(</span><span style="color:#b08000">0</span><span style="color:#ca60ca">);</span>
</pre></body></html>
|