![](https://infinityplays.com/content/images/2021/04/Tutorial-8-1.png)
Adding additional functionality the Openscad template is fairly simple, first you set up the options you want for the customizer menu:
![](https://infinityplays.com/content/images/2021/04/Tutorial-8-2.png)
The menu will be added to the customizer:
![](https://infinityplays.com/content/images/2021/04/Tutorial-8-2-2.png)
Then you will need to add new module for creating the torus:
![](https://infinityplays.com/content/images/2021/04/Tutorial-8-3.png)
And then add a call to the torus module in the "all modules" module:
![](https://infinityplays.com/content/images/2021/04/Tutorial-8-4.png)
Now you can make a Torus:
![](https://infinityplays.com/content/images/2021/04/Tutorial-8.gif)
I'm going to use the new Torus function to make a mold for making o-rings out of silicone, first I will make a circle:
![](https://infinityplays.com/content/images/2021/04/Tutorial-8-6.png)
Next I'm going to put each module call on it's own line, comment out the modules I want to use for the difference command and use them in difference():
![](https://infinityplays.com/content/images/2021/04/Tutorial-8-5.png)
What this does is it allows me to call specific modules and use the difference() instruction with them, which ever one is first will have the others subtracted from it:
![](https://infinityplays.com/content/images/2021/04/Tutorial-8-2-2-1.png)
![](https://infinityplays.com/content/images/2021/04/Tutorial-8-7.png)
Now the Torus is subtracted from the circle, and I will add a cylinder for a cone shaped fill point:
![](https://infinityplays.com/content/images/2021/04/Tutorial-8-9.png)
Then I can adjust things on the fly if necessary:
![](https://infinityplays.com/content/images/2021/04/Tutorial-8-2.gif)
A tub drain plug with groove for an o-ring made with the torus module:
![](https://infinityplays.com/content/images/2021/04/plug1.png)
Finished print:
![](https://infinityplays.com/content/images/2021/04/20210416_173144.jpg)