File indexing completed on 2024-05-19 15:23:14
0001 <!DOCTYPE html> 0002 <html><head> 0003 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> 0004 <title>highlight.scad</title> 0005 <meta name="generator" content="KF5::SyntaxHighlighting - Definition (OpenSCAD) - Theme (Breeze Light)"/> 0006 </head><body style="background-color:#ffffff;color:#1f1c1b"><pre> 0007 <span style="color:#898887;">/*Basic test file</span> 0008 <span style="color:#898887;">Written by Julian Stirling, 2018</span> 0009 <span style="color:#898887;">License: MIT*/</span> 0010 0011 <span style="color:#898887;">// This is a comment</span> 0012 x<span style="color:#ca60ca;">=</span><span style="color:#b08000;">5</span><span style="color:#ca60ca;">;</span> 0013 y<span style="color:#ca60ca;">=</span><span style="color:#b08000;">6</span><span style="color:#ca60ca;">;</span> 0014 z<span style="color:#ca60ca;">=</span><span style="color:#b08000;">5</span><span style="color:#ca60ca;">;</span> 0015 r<span style="color:#ca60ca;">=</span><span style="color:#b08000;">2</span><span style="color:#ca60ca;">;</span> 0016 <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> 0017 <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> 0018 <span style="color:#ca60ca;">}</span> 0019 0020 <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> 0021 <span style="color:#ca60ca;">{</span> 0022 <span style="color:#0057ae;">$fn</span>=<span style="color:#b08000;">28</span><span style="color:#ca60ca;">;</span> 0023 <span style="color:#644a9b;">difference</span><span style="color:#ca60ca;">()</span> 0024 <span style="color:#ca60ca;">{</span> 0025 <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> 0026 <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> 0027 <span style="color:#ca60ca;">}</span> 0028 <span style="color:#ca60ca;">}</span> 0029 0030 <span style="color:#898887;">// some examples adapted from https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/General</span> 0031 <span style="font-weight:bold;">cube</span><span style="color:#ca60ca;">(</span><span style="color:#b08000;">5</span><span style="color:#ca60ca;">);</span> 0032 x <span style="color:#ca60ca;">=</span> <span style="color:#b08000;">4</span> <span style="color:#ca60ca;">+</span> y<span style="color:#ca60ca;">;</span> 0033 <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> 0034 <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> 0035 <span style="font-weight:bold;">circle</span><span style="color:#ca60ca;">(</span><span style="color:#b08000;">5</span><span style="color:#ca60ca;">);</span> 0036 <span style="font-weight:bold;">square</span><span style="color:#ca60ca;">(</span><span style="color:#b08000;">4</span><span style="color:#ca60ca;">);</span> 0037 <span style="color:#ca60ca;">}</span> 0038 <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> 0039 <span style="font-weight:bold;">circle</span><span style="color:#ca60ca;">(</span><span style="color:#b08000;">5</span><span style="color:#ca60ca;">);</span> 0040 <span style="font-weight:bold;">square</span><span style="color:#ca60ca;">(</span><span style="color:#b08000;">4</span><span style="color:#ca60ca;">);</span> 0041 <span style="color:#ca60ca;">}</span> 0042 <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> 0043 <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> 0044 <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> 0045 <span style="font-weight:bold;">cylinder</span><span style="color:#ca60ca;">(</span><span style="color:#b08000;">10</span><span style="color:#ca60ca;">);</span> 0046 <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> 0047 <span style="color:#ca60ca;">}</span> 0048 <span style="color:#ca60ca;">}</span> 0049 0050 aNumber <span style="color:#ca60ca;">=</span> <span style="color:#b08000;">42</span><span style="color:#ca60ca;">;</span> 0051 aBoolean <span style="color:#ca60ca;">=</span> <span style="font-weight:bold;">true</span><span style="color:#ca60ca;">;</span> 0052 anotherBoolean <span style="color:#ca60ca;">=</span> <span style="font-weight:bold;">false</span><span style="color:#ca60ca;">;</span> 0053 aString <span style="color:#ca60ca;">=</span> <span style="color:#bf0303;">"foo"</span><span style="color:#ca60ca;">;</span> 0054 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> 0055 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> 0056 aUndef <span style="color:#ca60ca;">=</span> <span style="font-weight:bold;">undef</span><span style="color:#ca60ca;">;</span> 0057 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> 0058 <span style="color:#0095ff;font-weight:bold;">echo</span><span style="color:#ca60ca;">(</span>moreNumbers<span style="color:#ca60ca;">)</span> 0059 <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> 0060 0061 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> 0062 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> 0063 0064 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> 0065 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> 0066 0067 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> 0068 0069 <span style="color:#898887;">// Example which defines a 2D rotation matrix</span> 0070 mr <span style="color:#ca60ca;">=</span> <span style="color:#ca60ca;">[</span> 0071 <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> 0072 <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> 0073 <span style="color:#ca60ca;">];</span> 0074 0075 <span style="color:#898887;">// modifiers</span> 0076 <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> 0077 <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> 0078 <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> 0079 <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> 0080 0081 <span style="color:#898887;">// if example taken from https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Other_Language_Features#Rounding_examples</span> 0082 <span style="font-weight:bold;">if</span><span style="color:#ca60ca;">(</span>a<span style="color:#ca60ca;">==</span>b<span style="color:#ca60ca;">){</span> 0083 <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> 0084 <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> 0085 <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> 0086 <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> 0087 <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> 0088 <span style="color:#ca60ca;">}</span><span style="font-weight:bold;">else</span><span style="color:#ca60ca;">{</span> 0089 <span style="color:#0095ff;font-weight:bold;">echo</span> <span style="color:#ca60ca;">(</span><span style="color:#bf0303;">"???"</span><span style="color:#ca60ca;">);</span> 0090 <span style="color:#ca60ca;">}</span> 0091 0092 <span style="color:#898887;">// assert example taken from https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Other_Language_Features#assert</span> 0093 <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> 0094 <span style="color:#898887;">// Count has to be a positive integer greater 0</span> 0095 <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> 0096 <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> 0097 <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> 0098 <span style="color:#ca60ca;">}</span> 0099 <span style="color:#ca60ca;">}</span> 0100 row<span style="color:#ca60ca;">(</span><span style="color:#b08000;">0</span><span style="color:#ca60ca;">);</span> 0101 </pre></body></html>