diff --git a/docs/docs/definitive-beginners/adding-clearances.mdx b/docs/docs/definitive-beginners/adding-clearances.mdx
index f0ffd0e..965c586 100644
--- a/docs/docs/definitive-beginners/adding-clearances.mdx
+++ b/docs/docs/definitive-beginners/adding-clearances.mdx
@@ -46,6 +46,7 @@ module pin() {
}
}
```
+**[Live Demo](https://cadhub.xyz/dev-ide/openScad#encoded_script_v2=eJx9Uk1rhDAQvfsrcughsm7XD3qSXAqFHnooZaGHIiXVcQ21cZto6VL87x2/stGVFSSZzHuT9yZzk0sWhbFzFD9V/cIz0Wh2FzsfXMO+EOmnBK1ZNBy8iqwuWIDpQsgDPIE8YBz5HVuO3L6U3PMjKObfhohNS+CKyxS6eKQ+8jJ/+K1Vk01VrIq7cGs4O2Q4X1XWlEB6yD3qeFZVLkqgLvlzCKkRqEteA32zTHi+5ydulydEfzdcYdp48Gb2EjdGWOu0i5uq7NTpHK8phURN7zCopus2xgurPNdQ08AdN9vQNUcDYibb92bCE4MhJBUKe0GtfC+2+9pxndzZNax9YgiX/RsyrTP8aw6v2wrc9Zp2L3EaLh9q7ni9l1Mb0hMKy0DRxZBsrCHxiAqYGUKMwnO0mebxLG3xvv3I4vIPjiMA/w==)**
We've done something new here, we've defined a variable with other variables and some arithmetic with `hingeHalfExtrudeLength=hingeLength/2-clearance/2;`.
This variable is then used both in `hingeBodyHalf` and `pin`.
@@ -56,12 +57,13 @@ Much better
-We still have more work to do on the pin though. We want to re-use the pin to "subtract" its shape from the other half of the hinge, basically we can use our current pint to make a hole.
+We still have more work to do on the pin though.
+We want to re-use the pin to "subtract" its shape from the other half of the hinge, basically we can use our current pint to make a hole.
Lets make a temporary new module called `pin2`. In this new module and we're going to introduce a new function `rotate` to re-orientate the pin
```cpp
module pin2() {
- translate([0,pivotRadius,hingeHalfExtrudeLength+tiny]){
+ translate([0,pivotRadius,hingeHalfExtrudeLength]){
// highlight-next-line
rotate([0,45,0]){
cylinder(h=hingeLength/2+clearance/2, r1=pinRadius, r2=pinRadius+pinTaper);
@@ -72,6 +74,7 @@ module pin2() {
hingeBodyHalf();
pin2();
```
+**[Live Demo](https://cadhub.xyz/dev-ide/openScad#encoded_script_v2=eJytU8FOhDAQvfcrevAAWVaguCfCxcTEgwdjNvFgiKlQlkYsa1uMG8O/O0DBwhIvSkLa6cybeW86vShEEpEYHflHrR9ozhuV7GL0QhXblzx7FUypJBoOHnmuyyQEd8nFgd0xcQA7Cjq0MNg+ldjTI5NJcEkgNqsYlVRkrLMN9JZWxc2nlk0+ZrEy+mQ7YXxAoLc6byqG+5Br4HEv64JXzHHxF8JYQ6CqqGbOkyXCC7wgdTs/xuq9oRLckwZvJi91YwhrUbuoVOenjqcpU3EBnJ7ZwNpZl2EK1kWhmHZC12y2xJ2OhogZ7cCbEU+nGIwzLqEXjuXvyXZfa9ZRnZ3D2qcT4Lx/g6dFw7+m8HdZobue0+4lTMP5Rc0Vr/dybEN2AmI5k85iSDbWkHhYhsk0hGCRH2szzuMaNfI3brLWBnO1sy/ufzmPVwTMF5MZI98fOtw/O9Kt3+efP8E=)**
diff --git a/docs/docs/definitive-beginners/adding-fillets.mdx b/docs/docs/definitive-beginners/adding-fillets.mdx
index 2414e1b..d3d9744 100644
--- a/docs/docs/definitive-beginners/adding-fillets.mdx
+++ b/docs/docs/definitive-beginners/adding-fillets.mdx
@@ -29,6 +29,7 @@ offset(1){
}
}
```
+**[Live Demo](https://cadhub.xyz/dev-ide/openScad#encoded_script_v2=eJxTScuzNTay5irILMsvCUpMySwttjW15kpKLE4NychMzs5LLS62NYYIhGemlGTYGgKlufLT0opTSzQMNau5FBRKihLzinMSS1I1og10kAzSMYgFyysoJGcWJeekaiDJaVoDJWqBuLiwNLEIqBNZHxI7FqwQyQYU8xE2wIyBu1MHxQuxUPtqAYDXUD0=)**
@@ -41,6 +42,7 @@ offset(-1)offset(1){
// ... hinge profile
}
```
+**[Live Demo](https://cadhub.xyz/dev-ide/openScad#encoded_script_v2=eJxTScuzNTay5irILMsvCUpMySwttjW15kpKLE4NychMzs5LLS62NYYIhGemlGTYGgKlufLT0opTSzR0DTWhLEPNai4FhZKixLzinMSSVI1oAx0kI3UMYsHyCgrJmUXJOakaSHKa1kCJWiAuLixNLALqRNaHxI4FK0SyAcV8hA0wY+Au1kHxTCzUvloAmONTcw==)**
@@ -51,3 +53,10 @@ It gets even better, we can double our negative value and apply a third offset t
In essence we over expand, then under expand before finally expanding back to the original dimensions, but we have gained fillets in the process, it's like kneading bread, the more you do it the better the bread . . . not really stick to 3 max.
+
+```cpp
+offset(1)offset(-2)offset(1){
+ // ... hinge profile
+}
+```
+**[Live Demo](https://cadhub.xyz/dev-ide/openScad#encoded_script_v2=eJxTScuzNTay5irILMsvCUpMySwttjW15kpKLE4NychMzs5LLS62NYYIhGemlGTYGgKlufLT0opTSzQMNaEMXSNNuFA1l4JCSVFiXnFOYkmqRrSBDpLZOgaxYHkFheTMouScVA0kOU1roEQtEBcXliYWAXUi60Nix4IVItmAYj7CBpgxcKfroPgqFmpfLQCaj1Z9)**
diff --git a/docs/docs/definitive-beginners/extruding-2d-shapes.mdx b/docs/docs/definitive-beginners/extruding-2d-shapes.mdx
index eada663..205df5e 100644
--- a/docs/docs/definitive-beginners/extruding-2d-shapes.mdx
+++ b/docs/docs/definitive-beginners/extruding-2d-shapes.mdx
@@ -29,6 +29,7 @@ linear_extrude(hingeLength){
}
}
```
+**[Live Demo](https://cadhub.xyz/dev-ide/openScad#encoded_script_v2=eJxVkM8KwjAMxu99ih48tDBhf/BU+gaeRPAgQ+qWbcXRadOJIHt355wju4Tw/ZJ8STaV01mq2N0+u3Awpe1R7xS7GoRjY4ubA0Sd/YSTLUOjkxGzxroa9uDqUchixVrrwPgLvILvSxAEyzfjvKsqhCASOSfbVC7Sl3MevHHYmgDiHEdkmSjO5wrOC+uLFgShUk1omCI+euPHftpN8nwuJk4rH+r0H7VcHa0ekhPfgQ0f/hxptA==)**
@@ -60,6 +61,7 @@ linear_extrude(hingeLength){
}
// highlight-end
```
+**[Live Demo](https://cadhub.xyz/dev-ide/openScad#encoded_script_v2=eJyNkE0KwjAQhfc5RRYuEqjYH1yF3sCVCC6kSGynNlhSTVIRpHc31lqmIOomTOabyXsvs1KnSSzIWV0bt5aFam26FOQgLWwqlZ80WJsmr8ZWFa5KI48rpY+wAn309yQUhNRKgzR7uDnTFsAQX8T8TihtytKCYxEfinnMx9aTU+qM1LaWDtguDJCdIMyGCUpzZfIaGKJc9KjrT3tppfH7eBvV2TCMlCY6WOn91Jg7mHxJhnQ70n3J/zl9xH+b+MuCF38AQqCVGw==)**
diff --git a/docs/docs/definitive-beginners/loops.mdx b/docs/docs/definitive-beginners/loops.mdx
index 4dc544e..3a0c06f 100644
--- a/docs/docs/definitive-beginners/loops.mdx
+++ b/docs/docs/definitive-beginners/loops.mdx
@@ -34,6 +34,7 @@ module plateHoles() {
// hingeHalfMale();
plateHoles();
```
+**[Live Demo](https://cadhub.xyz/dev-ide/openScad#encoded_script_v2=eJx9VF2r1DAQfe+vyINC63bvpl0vKCUvgnIfFEUuiMhyie10N9ibrmkrLrL/3Uk/cidtdaFsk8ycOed0Js9KLfZpFpzVr7r9LAvVNeI2C77LBu5PKv+hoWnEftj4oor2JBI8Pil9hPegj7jec5utx9weSt/LMxjBb1KMzSuQRuoc7HpMvZNV+fZ3a7piQiGIu3TrcnaY0Sp9wVzOEeyx7jSuj3d1BWPF5Ab38aDoKmA9zBvk+snUpaogjNifgLEWwZpKthB+I0JjHvNDZM8Za3520uCx0xl7FhyiDMOuwXVWqS4uVstYplIaeT/AoCxclzoWrMuygTZMovFlm0Zua4jwaPPYI35wMYzlyqBfITnvydrfdfyf1FEM8n5wCUv/hpNrMDxrCv8vK4nWMamX2DGhqVsU+jVmpqf0sU9ffD3fhnWDN7ZhJoMGWJs4FUDv2GRefkFBBZjQmTnrxA3pxNgFmUS4jt9QviQkJSHTRHixY6hn8Ky9rLR38ChdHxeqLMEA0gknEbM+HNCIoSJ5xX1ThdO03tQW6INcmx2cl5jY44x8MtkWowavsvP5zdnxfzhythzs3DdLYm5q8YvRBtl6Q/w0NhPh7WtOLwHSEEYsr5r4JDy8Fy/nVJ8vPlsW7HZzW/GKJFqy4C+o/cLo)**
@@ -61,6 +62,7 @@ module plateHoles() {
}
}
```
+**[Live Demo](https://cadhub.xyz/dev-ide/openScad#encoded_script_v2=eJx9VO+r0zAU/d6/IjwUWte9pZ2CWvJFUN4HRZEHIo8hsb3dgl0601Qcsv/93bRpTLrqYGzt/XXOybl5Uku2zYvoJH61+jOvRN+xF0X0nXdwfxDlDwldx7bjiy+i0geWYfgg5B7eg9zj85aaamlrh1bynp9AMXqbY27ZAFdclmCebekdb+q3v7Xqq6mL13GTr13NBiu0kGespRSbHdte4vP+rm3ATsxu8T0Gqr4BMrR5g1g/qbYWDcQJ+RMRorFZ13AN8YNHNKUp3SUmTkj3s+cKw45nGkiwSwpMu0SX2aS2OhsudkwjJOL+BiOzeJmqHdjWdQc6zhL7Z50n7tWYEcCmaQB853IIKYVCvWIvPoA1n4v9ndj5Pbz/O1dwrd8YuUTjd4nh/2llyXJPX0t0TKxajUS/pkQNkD4O5VenF8qwLPDKGGYSaGxrCqcBqB2ZxCvPSKgCFTsxZ05ceU5MXZLKmHP8ysfrpeReyrQRQa5NDQSe2ctQewdH7nxciboGBQgnnkjMfDh28wRl2Usaisocp2VTm0Yf+NLu4L6knjxOyL8im2G+wIvoQnxzdPQfipwMBrP3nQVWtyoWslRwBKnZA32dT4cO5aGNb1yMiI6UvULddHO+SYkL2EkeQ7f+ePS+09bBbeDv38R9/Yr690ngLsWu7630wIKez57Pttbxf3rlhSLabOZnhfeuJ1ARPQKVU9x1)**
The reason we're using `[0:2]` and not `[0:3]` is because `0` counts so the code still runs 3 times.
I've also introduced another function `echo`, this function can be used to display text to the console, we've added it as a temporary measure to help demonstrate that the code in the `for` loop is run multiple times.
@@ -89,6 +91,7 @@ module plateHoles() {
}
}
```
+**[Live Demo](https://cadhub.xyz/dev-ide/openScad#encoded_script_v2=eJx9VFGL1DAQfu+vyINCe9u9TbsnqCUvgnIPiiIHIscisZ3uBrvpmrbiIvvfnbRJLulWF8o2zcw33/dlJs9qybZ5EZ3Er7b/zCsxdOxFEX3nHTwcRPlDQtex7fThi6j6A8tw+yDkHt6D3ON6S3W2NLkjlHzgJ1CM3uYYWzbAFZcl6LVJvedN/fZ3r4bKoniIm3ztcjaY0Qt5xlxKEezYDhLX+/u2AVMxu8XvuFENDZAR5g1y/aTaWjQQJ+RPREiPYF3De4gfPaEpTeku0fuEdD8HrnDb6UwDC3ZJgWGX6DKr1FZnrcWUaYRE3t9gUhYvSzUF27ruoI+zxLys88R9miIC2jQNiO9cDCGlUOhX7O2PZPXvYv6tOh/De9+5hGv/pp1LND1LCv8vK0uWMX0vsWNi1fYo9GtK1Ejp45h+dXqhDcsGr3TDWIMmWJ1oC6B3xJpXnlFQBSp2Zs46ceV1YuqCVMZcx698vl5I7oXYiQhiTWhg8Ky9tLR3cOSujytR16AA6cRWxKwPJzTPUJa9pKGpzGlabmoN9IEvzQ7OS+rZ44x8MlkX8w1eZBfym7Oj/3DkpDnoue8MsbpVsZClgiPInj3S17k9dI+ym2c8S7911sF4pw7nJvNmy+pav6L+XRF0jmLXd1J6YAH8zd1sIp2251fnXESbzfwc8E71xBfRX/N90MI=)**
@@ -116,6 +119,7 @@ module plateHoles() {
}
}
```
+**[Live Demo](https://cadhub.xyz/dev-ide/openScad#encoded_script_v2=eJx9lG2L1DAQx9/3U+SFQnrb3qa7CmrJG0U5wUORA5FjkdhOd4PddE3bw0X2uzvpQy5pey6UbZN5+M8vM3lWKL7dpMFJPlTNV5HLtuYv0+CnqOHuILNfCuqab/uFbzJvDjzB7YNUe/gEao/fW2a81eDbhVJ34gSas+sN2mYlCC1UBuZ7cL0RZfH+T6PbfIziRFxvYuuzRo9GqjP6MobBjlWr8Ht/U5UwZEyuJ+vvzLvR7C7eVg/wUWUajoCbbjY6842TMA3QO29LIJ3pW6z+i64KWQINyd+AkAbl1aVogN476CIWsV1o9gmpf7dC47YlF3lQd5iDkEtwmWSq8rOhM6QppUISP6BnRZfhDQmroqihoUk4vMSb0C71Fp5sFnnCd9aGkExqPAHq7Hdize8y/I/VuTGc9511mPPrdy5B/yxV+P+yknA5pssSe5DqqsFCv0dEd5I+d+6z0/MxLANemRYcAfVhjeOYANmREV52xoJy0NTCnPT2yuntyBrphNsZWrl6HZONYzLOmGc7mHqAJ+1lSvsAR2H7OJdFARpQDh2LmPRhH80BypNXzIfKbU3LTW0C3Yql2cF5iRw8FuQjZJPMBbyoztc3VceeIHIyGszU14OwotJU8nv2ZuFKGI/fEW8nG0/VbaLYG/RIXj15ET0O3Vhw/Jq5l4jXUprPr7/owL1sVy8mo2qLfj5rgDRYr6cHhNe3QyUN/gHJXvnH)**
@@ -145,6 +149,7 @@ module plateHoles() {
}
}
```
+**[Live Demo](https://cadhub.xyz/dev-ide/openScad#encoded_script_v2=eJx9VG1r2zAQ/jz/Cn3YQE7sWnY62Gb0ZaOjg5WNUSilhOHZ50TMkTPZLgsl/32n2FYlx13ARC93zz333J1el5KvktTbi8e6/ZEVomv429T7lTVwuxX5bwlNw1f9wZ0o2i2P8Xor5Aa+gtzgfsW0txx8T1DyNtuD4uwiQdu8gkxlMge9H1yvs6q8+tuqrhhRLMQoCY1PhB6tkAf0ZQzBdnUncb+5risYIsYXk/NPeq0524dXxQa+lWUDLb90b27qR/gicwU7QDdqEQmTxTyEH3mv6FnIMPZTD6GLrgJygvmIon1XdSkqoD558ghpMaumylqgD5biAQvY2tf3hDR/ukzhtRE8cGqxxhiEHL3jJFJdHLSoQ5hKSBTwJ/QS03nNh4D1KSUa+8MiTHxz1Fs4tFngEF8bG0JyobBw1Lo/kdW/4/A/ZmdjWOu1cTjXr785ev03l+H/04r9eUxbS2xdquoWE70PiDpRGio+rZ4rw7zAS925o0A9rHYcA6B2ZBQvP2BCBShqxJyMxNIaicAYqZib0VvafC2TxDIZR9OxHUwdgSftpVP7DLvM9HEhyhIUIB06JjHpwx7NEpTH75grKjc5zTe1BrrJ5mYH5yWw5DFCPousg9kCz7Jz+U3ZsRcU2WsOeuqbgVhZKyr4A/sw8ySM5bfIm8nGqtpNFDqDHojFi6/U89CNCYfvmf2IOC2l+PmrGWy5E21xORlVk/SbswZIvSiaFghffUuV1PsH4gQNIw==)**
@@ -166,6 +171,7 @@ module plateHoles() {
}
}
```
+**[Live Demo](https://cadhub.xyz/dev-ide/openScad#encoded_script_v2=eJx9VVFr2zAQfp5/hR42kBO7lp0Otnl62ejoYGWjFMooYWi2nIg5ciY7ZWHkv+9ky6rkuAuE2Lq777777k55WUm6yvJgLx6b7paV4tDS13nwk7X8biuKX5K3LV0NB/ei7LY0BfNWyA3/wuUG3ldER0sT20PJO7bnipKLDHyLmjPFZMH1uwm9ZnV19adTh3JEcRCTLLYxCUR0Qh4hlhAA2zUHCe+b66bmJmN6MTn/qJ81Z/fwqtzwr1XV8o5e+pab5pF/loXiOw5h2CESZ4t5iDAJXuCzlHEa5gFAl4eaox7mA4j2TTWVqDkO0d8AoQ6qamvWcfzgKB6RiKxDbUeo/X1gCsxW8MjrxRpyIHQKTpNMTXnUopo0tZAg4A8+SIznNTcJm74knIbmIc5CezR4eLRJ5BFfWx+ECqGgcdix92T152R+x+pcDOd5bQPO9Rssp2D4zlX4/7LScB7T1RJGF6umg0K/R0j1lEzHp93zZZgXeKkndxRogNWBYwLQDo3iFUcoqOQKWzEnK7F0ViKyTiqldvWWLl/HJXNcxtX0fI2rJ/BkvHRpn/iO2TkuRVVxxYEOHouYzOGA5ghK0zfEF5XamuaHWgPdsLndgX2JHHmskE8i62SuwLPsfH5TduQZRfaag9761hCrGoUFfSDvZq6Esf0OeZPaLjg0150lY469tR9PxeLZq2s5f1ehJEHv4xixsjQ70UM97e2oWfyWuPeQN5WKnl+80ZZ6FBeXk223ur06m6E8AFaTHsMfhyNsHvwDoz0eLw==)**
@@ -200,6 +206,7 @@ module hingeBodyHalf() {
hingeHalfFemale();
hingeHalfMale();
```
+**[Live Demo](https://cadhub.xyz/dev-ide/openScad#encoded_script_v2=eJyFVU2P0zAQPZNf4QMHp022TrpIQPEFtGiRqEBoJYRWFTKJ01qkTnGSFRXqf8dObNdOXeihssczb2befOR5xfEyX0UH9tR0X0jJ+ha/WEU/SEsfdqz4yWnb4uUo+MrKbocz+bxjfEs/Ur6V9yVS1lzbDlD8gRyowOgml7pFTYkgvKDqrk3vSV3d/e5EXxoUB3GRp9ZmIS06xo/SFiEJtm96Lu/b+6am2mN2M5G/U2cVsyu8K7f0U1W1tMO3/su6eaIfeCHonkoz6ASS5rMwRLyInsELl2kWryIJXfY1BQPMW0naZ9FUrKYwBn8iADqZVVuTjsJHh/EEJWgTq3cA2l89EfLZEp54tdhIHwCcotPEU1MeFanaTcmqigoqCdQCAHrOGm5vANSMS46/07EKMFyW2GgD0AyZwyzWhzSPreis5WWIEi/HjacHQMGErDN0dIbczO/knA0pLp5z3niGl9SfXw3o6R8s/D/1LL7uY0Qe/w+KB9UfLbwom5wSKJpOKnxLgBjS0M01bRSfxnCh5mpIDMEjrDI0DiT3tvDFUSZdUgFtfpPpmzvTl1glkWE75XM3Xkcld1TMFvB0taom6xTqZJXae7ondmQCvTxp+RHNIRRnL5FPKrY5hedHAa1JaEzlaCYOPZbIM8nKmUtwMDo/vml06AojbgMN+FUjIMOP6HVg+5jyO8Fr13aXyOK6vaSfU2/DGCmbXd2S8/BaBIsFeJOmgJSlnpkB6jz3hrP0FXJXnteVAl/u+GSHvRBnt4FxG3i7aCHng7PWgr/XjS66)**
We're using `difference` here as planned, but we've also introduced a new operation `union`.
`union` allows us to combine shapes into one, which is important here since `difference` works by subtracting the second child from the first and because both of the `linear_extrudes` are children `union` lets us combine them into a single child so that we can subtract `plateHoles`.
diff --git a/docs/docs/definitive-beginners/modifiers.mdx b/docs/docs/definitive-beginners/modifiers.mdx
index 1c36f7e..f86ad0c 100644
--- a/docs/docs/definitive-beginners/modifiers.mdx
+++ b/docs/docs/definitive-beginners/modifiers.mdx
@@ -12,7 +12,7 @@ The reason we're using `rotate` here is because we want to re-orientate our `pin
```cpp
module pin2() {
- translate([0,pivotRadius,hingeHalfExtrudeLength+tiny]){
+ translate([0,pivotRadius,hingeHalfExtrudeLength]){
rotate([0,175,0]){
cylinder(h=hingeLength/2+clearance/2, r1=pinRadius, r2=pinRadius+pinTaper);
}
@@ -22,6 +22,7 @@ module pin2() {
%hingeBodyHalf();
pin2();
```
+**[Live Demo](https://cadhub.xyz/dev-ide/openScad#encoded_script_v2=eJytU8FqhDAQvecrcmhBWbdqlqUH8VIo9NBDKQs9FCmpxjXUxm0SS5fiv3fU6EZXemkFSSYzb+a9yeQiF/GGROjAPyv9SDNeq3gboVeq2K7g6ZtgSsWb/uCJZ7qIQ3AXXOzZPRN7sDdBixYG26USO3pgMg6uCMSmJaOSipS1toHe0TK//dKyzoYsVkafrEeMDwj0XmV1yXAXcgM8HmSV85I5Lv5GGGsIVCXVzHm2RHiBFyRu68dYfdRUgnvU4E3kJW4EYQ1qZpWq7NjyNGVKLoDTC+tZO8syTMEqzxXTTuiazZq441EfMaEdeBPiyRiDccol9MKx/B3Z9mvMOqizc1j7ZASc96/3NKj/lxT+Lit0l3PavYRpOL+oqeLlXg5tSI9ALGPSmQ3JyhoSD8swHocQLHKyVsM8LlEjf+MmK20w4fXWvrn/JT3cEVC/nM1mhHy/73H38Ei7/gBVCEAa)**
@@ -51,6 +52,7 @@ difference() {
pin2();
}
```
+**[Live Demo](https://cadhub.xyz/dev-ide/openScad#encoded_script_v2=eJytUk1LxDAQvedX5OChZbv2YxEWSi+C4MGDyIIHKRLb6W6wpmuSiov0vzvdpDXdLV60EJrJvDd5bzIXlchWSUr2/KPRD6zkrcquUvLCFGx2vHgVoFS2MgePvNS7LMb0jost3IHYYryKeraw3GMpsWF7kFl0mSC2qIFJJgroY0u9ZXV186llWw5VnIphshw5ITLIW1O2NdAj5Bp13Mum4jV4Pv0ilGoEqppp8J4cE0EURLnf5ylV7y2TmB49BBN7uZ8irCPdyU1Neeh12mtqLlDTMxjV3rwNe2FTVQq0F/t2s0z88cggJrKjYCI8HzGUFlxiLzwnfxTbf539D+7cGs4+Hwnn/TOZjpg15/B3W7E/X9PtJU7D+UNNHc/3cmhDcUBhJUjvZEgWzpAEVMbZOIQYJT/RYpjHOWnJ37TJRltOvI7cl/tf0cMbofSSVxVIwAJW+cms9nDjK0V4GJr+p+Qbr+pF+Q==)**
@@ -64,6 +66,7 @@ module pin2() {
translate([0,pivotRadius,hingeHalfExtrudeLength+tiny]){
//
```
+**[Live Demo](https://cadhub.xyz/dev-ide/openScad#encoded_script_v2=eJytUsFqhDAQvfsVOfSgrFujS2FBvBQKPfRQykIPRUqq426ojdskli7Ff+9kjTbuSg+lgphx3pu8NzMXlchWSert+UejH1jJW5Vdpd4LU7DZ8eJVgFLZqv/xyEu9y2JM77jYwh2ILcYratjCco+lxIbtQWb0MkFsUQOTTBRgYku9ZXV186llWw5VnIpRshw5ETI0FwfkUorFvLembGsgR/g1arqXTcVr8APy5RGikaRqpsF/cgyFNKR5YPKEqPeWSUyPfsKJ1TxIEdZ53clNTXkwmu01NReo7xl6B/68JXthU1UKtB8H9rBMgvFXj5jIpuFEeD5iCCm4xL74Tv4o1jyd/Q7u3BrOOR8J5/3rM53Xv3MOf7cVB/M13V7iZpwPaup4vpdDG4oDCitB+icLs3AWJiQyzsaFxCj5iRbDbs5JS/6mbWH2cxAoG22J8Zq64/tf5cOgUH/JqwokYAEr/2RhDbw3lyI8ivohpN43qVRLIQ==)**
Fixed!
diff --git a/docs/docs/definitive-beginners/module-arguments.mdx b/docs/docs/definitive-beginners/module-arguments.mdx
index 0fc2b3e..b91fde7 100644
--- a/docs/docs/definitive-beginners/module-arguments.mdx
+++ b/docs/docs/definitive-beginners/module-arguments.mdx
@@ -67,6 +67,7 @@ pin(0);
pin(45);
pin(120);
```
+**[Live Demo](https://cadhub.xyz/dev-ide/openScad#encoded_script_v2=eJxtkMFrwyAUxu/+FR52MCRdjVlPweNgh51GoYzRg4uvjdSaoma0jP7veyZpF8YEwe/p93vP72HnZCVqcjJfXXxT2vRBrmryqQKsW9McHIQgq7GwMTq2ssTr1rg9vILbo654crvJO6DcWp3AS/4o8G1jQXnlGkh6sr4ou3s+R9/rG2VGXIrF3bNERzTugl7OEUaOne4tUOzBfBdVhPeMfhNKIz4PFjX74MXsM8X//fIE3WbJSekISsYJWfDtSE2ruVjjNHj2Z8h8NmRBfSnvIaASvyq/5ZHVA/FK0r6SlBPj2ZAXe1pNh1KkEvkBqMmEYw==)**
@@ -92,6 +93,7 @@ difference() {
pin(rotateY=180);
}
```
+**[Live Demo](https://cadhub.xyz/dev-ide/openScad#encoded_script_v2=eJx9Ul1Lw0AQfDa/YilCE5raJEUQSl4EQcEHkYKIFLkmm/bwelfvLmqR/Hc3nya1GAi5vd2Z3ZnseSbjebRw9vxD2UeW8tzElwtnzQwutzx5k2hMPK8vnnhqt3FI6S2XG7xHuaF4HpRo2WArKrlke9RxcBFRbSKQaSYTLOMGestEdvNldZ62LD3GWTTtMDNCWC4PhA0CInN2Ks0FQlV+TTM9aJVxga4H3w6AJZARzKL70hPkB36w8so8gHnPmaZ0p8cfSF15CyornOKok0oP5cxNG8ElzfeKtQL3tKSmocoyg9YNveYwjbzuqq4YjB34g8FXXQ1AwjX54vby1bDlUzTfVl2fo3dedYC//tWZwqnfUwr/lxV6pzn7XtJmuFpZEvr8538NhZ+2dFKuQmtJTVQCG8rSLWjtSg4kIUXtHq3WpLdaPugw7laXoug3mrRbPDCGpKQ8y1AjETTLcLQgC+dsNoM7+FS5SOXYQqJyaSG8CoAZYDDasQ1PQOa7NepRVWw4sQG3YwPIzAGsAotC1DeZ0oTaEjfYXEtq2HMxJlrqWDg/WYc6OQ==)**
And now we can use the pin as both the hole and the shaft, above is code for the hole, and both together are below:
@@ -147,6 +149,7 @@ module hingeHalfMale() {
%hingeHalfFemale(); // make female hinge transparent
hingeHalfMale();
```
+**[Live Demo](https://cadhub.xyz/dev-ide/openScad#encoded_script_v2=eJx9U9FKwzAUfe9X5EGhZZ1LOwSh9EVQfFAUGYjIkNjebmFdOtNMHLJ/96ZpY9oVB2Vt7rn3nnN6elaIdB4n3o5/VeqZ5Xxfp5eJ98FqWKx5thFQ1+ncHLzwXK3TCMtrLlZwD2KFz3Oqu0Xb24wSC7YDmdKLGLFZCUwykYF+blvvWFncfCu5z7spzsRZPLU9M+xQXBywl1Ic5m2rfF8CaeDXyOlJVgUvwQ/Ij0eIwqa6ZAr8N0dQSEO6DHSdkPpzzySWrZ6wJ3UZJAg7esfBpio/aM7tmpIL5PcORoE/LqldWBVFDcqPgvZmGgf2yCB6tGnYI760GEIyLtEX36k3ZPXv2P536twZzv3SNpz6ZypHz1xjCv+XFQXjM10vMRm+rBQKfQ2JbCg9Nu0nb69vw7jBEx2MziAzVjd2C9A70pmXHVBQDtK3Zg4SN3ESF1qQjFKb7InL14HEDqRLfg/bQnsGD+Klpd3Cltkc57woQALS8TsRgxyaaY6haXRF+6amVtN4qPWgBzb27eD3Ejr2WCP/TNbLXINH2fX5DdnRoSPnJ14kZDYjW7YBUjQnZo1husOgC+UNlCS/dQCJfw==)**
diff --git a/docs/docs/definitive-beginners/modules.mdx b/docs/docs/definitive-beginners/modules.mdx
index e903455..d9e15c7 100644
--- a/docs/docs/definitive-beginners/modules.mdx
+++ b/docs/docs/definitive-beginners/modules.mdx
@@ -32,6 +32,7 @@ linear_extrude(hingeLength){
offset(1)offset(-1)hingeBaseProfile(); // <- and here
}
```
+**[Live Demo](https://cadhub.xyz/dev-ide/openScad#encoded_script_v2=eJx1kE2LwjAQhu/5FXPYQwOVfuEp28uePYgIHqRIbKY22E138yGC9L8ba5XIrrfJ+07eeWY+GlUWOSM/8tTbFRfSmXLOyJ4bXLeyPio0pizuwkYK25aZt1upDrhAdfDvImWEfPfCdQij/uVbl7pvZIcRhQsBsJor03GL0TaYE6dxWtGbD2B+Hdfefo6JXwgqynzbQAZCOqmQ6x2erXYCo4AkycewvmkM2iijUzHL6VO6Dwtw0vgF6IEDUEtde/7AHRFuECFv+Duoq6n57z0YJAl8zsAZFNCixmmv92v9v1RG32dzNUUPV0ZqnRE=)**
## Module Syntax
@@ -65,6 +66,7 @@ module hingeBodyHalf() {
hingeBodyHalf();
```
+**[Live Demo](https://cadhub.xyz/dev-ide/openScad#encoded_script_v2=eJx1UD1vwyAU3PkVDB2M5Cr+UCbkpVOGDFFVqUNlRcQ8YlQCKeCqVeX/XmI7Fk4bJMTj3cHdvQehq7Kg6Cw/jX9mXHauWlN0YA5eWtm8a3CuKsfGq+S+rfIAt1IfYQv6GO5lRhE6Gd4pwEP/KVB31gipICH4B2HsLdNOMQ/JW6STZmlWkwuOsfvomA3wLJMuHNSEBlqP+hslw783TIlJRkkNzO7hy9uOQxKZXBWTjhHCgU9yMhWPBZlbI2PhNksXfuuZg3EjbRMCRvjg8bL66byGiv+I6np+8HdsI9Kjcd8Pdi9WTv7/cxjhzezoL4pYpkI=)**
## 3D Primitives
@@ -88,6 +90,7 @@ module pin() {
hingeBodyHalf();
pin();
```
+**[Live Demo](https://cadhub.xyz/dev-ide/openScad#encoded_script_v2=eJx1UktPhDAQvvdX9OCBRlQe8UR68eTBgzGbeDDEVDosjVjWthg3hv9ugcK2+yAh7fSbx/fNzFUtaZ4VaCd+OvPCuOg1vS/QB9OwaUT1KUFrms8Pr4KbhqYWboTcwhPIrbXzZIyWLnZKJTdsB4omt5n1RV8d71vAU8yDTfOsulq0EBH8hzA2ikndMgPRm8chTuKkJCOOsf7umbLwSiEO2JWksG4DGo4qdXz/yNralWmFBKbe4deonkPkCbjLXJ2urjWYKCXucpOR9Wn2CNgmccC3XH0wroSqrEAPnziO3+DORZSfw7uXa8Bp22ZkQPN/WdglWSk5n9NvoZ3h6XxCxUELF/XV3vLhoKKGBniMVUrXLbFWdrCul4U5sDia4LRT9vgH5jHd2w==)**
diff --git a/docs/docs/definitive-beginners/the-basics.mdx b/docs/docs/definitive-beginners/the-basics.mdx
index e26cc31..643ca57 100644
--- a/docs/docs/definitive-beginners/the-basics.mdx
+++ b/docs/docs/definitive-beginners/the-basics.mdx
@@ -22,6 +22,7 @@ We can see at the very least some circles and rectangles will be of use, so lets
circle(5);
square([15,3]);
```
+**[Live Demo](https://cadhub.xyz/dev-ide/openScad#encoded_script_v2=eJxLzixKzknVMNW05iouLE0sStWINjTVMY7VtAYAcmwH2A==)**
`circle(5);` gives us a circle with a radius of `5` and `square` is the 2d version of `cube`.
Here we've given it dimensions of 15 and 3 for x and y respectively (or width and height if you prefer).
@@ -40,6 +41,8 @@ translate([0,5,0]){
square([15,3]);
```
+**[Live Demo](https://cadhub.xyz/dev-ide/openScad#encoded_script_v2=eJwrKUrMK85JLEnViDbQMdUxiNWs5lJQSM4sSs5J1TDVtOaq5SouLE0sAsobmuoYx2paAwCRsA7o)**
+
`translate` is a little different to the modules we've seen so far in that instead of ending with a semicolon `;` it ends with `{ children }`. In the case above it has one child, the `circle`. `translate` shifts its children around, we're using it to shift it up by `5`. We put `5` in the second position in the square braces because we want to shift it along the Y axis. If you're ever not sure which axis you need to shift something, just try each until you find the one you're after.
@@ -57,6 +60,7 @@ translate([5,0,0]){
square([11,2]);
}
```
+**[Live Demo](https://cadhub.xyz/dev-ide/openScad#encoded_script_v2=eJwrKUrMK85JLEnViDbQMdUxiNWs5lJQSM4sSs5J1TDVtOaq5SouLE0sAsqb6pjGAgVKEDqA6mE6YIoMDXWMQKpqAc2BGmg=)**
@@ -85,6 +89,7 @@ translate([pivotRadius,0,0]){
square([11,2]);
}
```
+**[Live Demo](https://cadhub.xyz/dev-ide/openScad#encoded_script_v2=eJwryCzLLwlKTMksLbY1teYqKUrMK85JLEnViDbQKUDI6RjEalZzKSgkZxYl56RqIMloWnPVchUXliYWAfUg60Bix2qimIxiLsxkmBGGhjpGIPW1AMDeNbI=)**
The first line `pivotRadius=5;` is where the variable is assigned, that is the value of `5` is assigned to the name `pivotRadius`, Then we can use it everywhere we need that value.
The beauty of this is two fold,
@@ -108,5 +113,6 @@ translate([pivotRadius,0,0]){
square([baseWidth,baseThickness]);
}
```
+**[Live Demo](https://cadhub.xyz/dev-ide/openScad#encoded_script_v2=eJwryCzLLwlKTMksLbY1teZKSixODcnITM7OSy0utjWGCIRnppRk2BoCpUuKEvOKcxJLUjWiDXQKEFp1DGI1q7kUFJIzi5JzUjWQZDStuWq5igtLE4uAepB1ILFjNVFMRjEXZjLMCLh7dFCcCjKiFgD+/Uh/)**
There are some exceptions to the "magic number" rule, for example above `0` isn't a "magic number" since this conveys "no value for this axis" quite well.
diff --git a/docs/docs/definitive-beginners/wrap-up.mdx b/docs/docs/definitive-beginners/wrap-up.mdx
index 7a7f7ee..949cfce 100644
--- a/docs/docs/definitive-beginners/wrap-up.mdx
+++ b/docs/docs/definitive-beginners/wrap-up.mdx
@@ -98,6 +98,7 @@ module plateHoles() {
hingeHalfFemale();
hingeHalfMale();
```
+**[Live Demo](https://cadhub.xyz/dev-ide/openScad#encoded_script_v2=eJyFVU2P0zAQPZNf4QMHp022TrpIQPEFtGiRqEBoJYRWFTKJ01qkTnGSFRXqf8dObNdOXeihssczb2befOR5xfEyX0UH9tR0X0jJ+ha/WEU/SEsfdqz4yWnb4uUo+MrKbocz+bxjfEs/Ur6V9yVS1lzbDlD8gRyowOgml7pFTYkgvKDqrk3vSV3d/e5EXxoUB3GRp9ZmIS06xo/SFiEJtm96Lu/b+6am2mN2M5G/U2cVsyu8K7f0U1W1tMO3/su6eaIfeCHonkoz6ASS5rMwRLyInsELl2kWryIJXfY1BQPMW0naZ9FUrKYwBn8iADqZVVuTjsJHh/EEJWgTq3cA2l89EfLZEp54tdhIHwCcotPEU1MeFanaTcmqigoqCdQCAHrOGm5vANSMS46/07EKMFyW2GgD0AyZwyzWhzSPreis5WWIEi/HjacHQMGErDN0dIbczO/knA0pLp5z3niGl9SfXw3o6R8s/D/1LL7uY0Qe/w+KB9UfLbwom5wSKJpOKnxLgBjS0M01bRSfxnCh5mpIDMEjrDI0DiT3tvDFUSZdUgFtfpPpmzvTl1glkWE75XM3Xkcld1TMFvB0taom6xTqZJXae7ondmQCvTxp+RHNIRRnL5FPKrY5hedHAa1JaEzlaCYOPZbIM8nKmUtwMDo/vml06AojbgMN+FUjIMOP6HVg+5jyO8Fr13aXyOK6vaSfU2/DGCmbXd2S8/BaBIsFeJOmgJSlnpkB6jz3hrP0FXJXnteVAl/u+GSHvRBnt4FxG3i7aCHng7PWgr/XjS66)**
Lets reflect on what you've achieved